diff options
author | Jorim Jaggi <jjaggi@google.com> | 2015-09-10 21:24:22 -0700 |
---|---|---|
committer | Jorim Jaggi <jjaggi@google.com> | 2015-09-11 14:02:45 -0700 |
commit | 88957ef8ee5be004b9c330f483a6c6855d5ca853 (patch) | |
tree | d2bc02e0207f2e60a16d4011ea524831b5492458 /src/com/android | |
parent | 74a2283d2425107f7b39a29d8db7947d8c6f8c7c (diff) | |
download | packages_apps_Settings-88957ef8ee5be004b9c330f483a6c6855d5ca853.zip packages_apps_Settings-88957ef8ee5be004b9c330f483a6c6855d5ca853.tar.gz packages_apps_Settings-88957ef8ee5be004b9c330f483a6c6855d5ca853.tar.bz2 |
Add timeout if we dont get onEnterAnimationComplete
Window manager doesn't send us onEnterAnimationComplete in the case
where there are two activites starting at the same time and the
screen orientation is changing. Add a timeout to work around this
until we have a proper fix.
Bug: 23849216
Change-Id: I4be7787d1bc13f8cb0ffd892010c4b5c0142c783
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java index 176efbc..d9af800 100644 --- a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java +++ b/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java @@ -19,6 +19,7 @@ package com.android.settings; import android.app.Fragment; import android.app.KeyguardManager; import android.os.Bundle; +import android.os.Handler; import android.view.MenuItem; import android.view.WindowManager; @@ -28,6 +29,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi private boolean mDark; private boolean mEnterAnimationPending; private boolean mFirstTimeVisible = true; + private final Handler mHandler = new Handler(); @Override protected void onCreate(Bundle savedState) { @@ -67,6 +69,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi mFirstTimeVisible = false; prepareEnterAnimation(); mEnterAnimationPending = true; + mHandler.postDelayed(mEnterAnimationCompleteTimeoutRunnable, 1000); } } @@ -82,6 +85,7 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi public void onEnterAnimationComplete() { super.onEnterAnimationComplete(); if (mEnterAnimationPending) { + mHandler.removeCallbacks(mEnterAnimationCompleteTimeoutRunnable); startEnterAnimation(); mEnterAnimationPending = false; } @@ -94,4 +98,15 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi public void startEnterAnimation() { getFragment().startEnterAnimation(); } + + /** + * Workaround for a bug in window manager which results that onEnterAnimationComplete doesn't + * get called in all cases. + */ + private final Runnable mEnterAnimationCompleteTimeoutRunnable = new Runnable() { + @Override + public void run() { + onEnterAnimationComplete(); + } + }; } |