Merge "Fix dodgy states of keyguard transport controls" into klp-dev

This commit is contained in:
Adam Powell
2013-10-16 01:41:21 +00:00
committed by Android (Google) Code Review
2 changed files with 17 additions and 9 deletions

View File

@ -16,10 +16,6 @@
package com.android.keyguard; package com.android.keyguard;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.keyguard.KeyguardUpdateMonitor.DisplayClientState;
import android.app.Activity; import android.app.Activity;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.ActivityOptions; import android.app.ActivityOptions;
@ -55,6 +51,9 @@ import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.RemoteViews.OnClickHandler; import android.widget.RemoteViews.OnClickHandler;
import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardSecurityModel.SecurityMode;
import com.android.keyguard.KeyguardUpdateMonitor.DisplayClientState;
import java.io.File; import java.io.File;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
@ -280,7 +279,7 @@ public class KeyguardHostView extends KeyguardViewBase {
if (newState != mTransportState) { if (newState != mTransportState) {
mTransportState = newState; mTransportState = newState;
if (DEBUGXPORT) Log.v(TAG, "update widget: transport state changed"); if (DEBUGXPORT) Log.v(TAG, "update widget: transport state changed");
KeyguardHostView.this.post(mSwitchPageRunnable); KeyguardHostView.this.postShowAppropriateWidgetPage();
} }
} }
@Override @Override
@ -292,7 +291,7 @@ public class KeyguardHostView extends KeyguardViewBase {
if (newState != mTransportState) { if (newState != mTransportState) {
mTransportState = newState; mTransportState = newState;
if (DEBUGXPORT) Log.v(TAG, "update widget: play state changed"); if (DEBUGXPORT) Log.v(TAG, "update widget: play state changed");
KeyguardHostView.this.post(mSwitchPageRunnable); KeyguardHostView.this.postShowAppropriateWidgetPage();
} }
} }
} }
@ -496,6 +495,7 @@ public class KeyguardHostView extends KeyguardViewBase {
@Override @Override
protected void onDetachedFromWindow() { protected void onDetachedFromWindow() {
super.onDetachedFromWindow(); super.onDetachedFromWindow();
removeCallbacks(mSwitchPageRunnable);
mAppWidgetHost.stopListening(); mAppWidgetHost.stopListening();
KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitorCallbacks); KeyguardUpdateMonitor.getInstance(mContext).removeCallback(mUpdateMonitorCallbacks);
} }
@ -1438,7 +1438,7 @@ public class KeyguardHostView extends KeyguardViewBase {
mAppWidgetToShow = ss.appWidgetToShow; mAppWidgetToShow = ss.appWidgetToShow;
setInsets(ss.insets); setInsets(ss.insets);
if (DEBUG) Log.d(TAG, "onRestoreInstanceState, transport=" + mTransportState); if (DEBUG) Log.d(TAG, "onRestoreInstanceState, transport=" + mTransportState);
post(mSwitchPageRunnable); postShowAppropriateWidgetPage();
} }
@Override @Override
@ -1471,13 +1471,22 @@ public class KeyguardHostView extends KeyguardViewBase {
} }
} }
private void showAppropriateWidgetPage() { void showAppropriateWidgetPage() {
int state = mTransportState; int state = mTransportState;
ensureTransportPresentOrRemoved(state); ensureTransportPresentOrRemoved(state);
if (mAppWidgetContainer.isLayoutRequested()) {
postShowAppropriateWidgetPage();
return;
}
int pageToShow = getAppropriateWidgetPage(state); int pageToShow = getAppropriateWidgetPage(state);
mAppWidgetContainer.setCurrentPage(pageToShow); mAppWidgetContainer.setCurrentPage(pageToShow);
} }
void postShowAppropriateWidgetPage() {
removeCallbacks(mSwitchPageRunnable);
post(mSwitchPageRunnable);
}
/** /**
* Examines the current state and adds the transport to the widget pager when the state changes. * Examines the current state and adds the transport to the widget pager when the state changes.
* *

View File

@ -40,7 +40,6 @@ import android.view.accessibility.AccessibilityManager;
import android.view.animation.DecelerateInterpolator; import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.TextClock; import android.widget.TextClock;
import com.android.internal.widget.LockPatternUtils; import com.android.internal.widget.LockPatternUtils;
import java.util.ArrayList; import java.util.ArrayList;