summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-09-10 21:24:22 -0700
committerJorim Jaggi <jjaggi@google.com>2015-09-11 14:02:45 -0700
commit88957ef8ee5be004b9c330f483a6c6855d5ca853 (patch)
treed2bc02e0207f2e60a16d4011ea524831b5492458 /src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
parent74a2283d2425107f7b39a29d8db7947d8c6f8c7c (diff)
downloadpackages_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/settings/ConfirmDeviceCredentialBaseActivity.java')
-rw-r--r--src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java15
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();
+ }
+ };
}