Merge "Fix PiP disappearance after unlock" into tm-qpr-dev
This commit is contained in:
@@ -118,6 +118,33 @@ public final class WMShell extends CoreStartable
|
|||||||
private final UserInfoController mUserInfoController;
|
private final UserInfoController mUserInfoController;
|
||||||
private final Executor mSysUiMainExecutor;
|
private final Executor mSysUiMainExecutor;
|
||||||
|
|
||||||
|
// Listeners and callbacks. Note that we prefer member variable over anonymous class here to
|
||||||
|
// avoid the situation that some implementations, like KeyguardUpdateMonitor, use WeakReference
|
||||||
|
// internally and anonymous class could be released after registration.
|
||||||
|
private final ConfigurationController.ConfigurationListener mConfigurationListener =
|
||||||
|
new ConfigurationController.ConfigurationListener() {
|
||||||
|
@Override
|
||||||
|
public void onConfigChanged(Configuration newConfig) {
|
||||||
|
mShell.onConfigurationChanged(newConfig);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private final KeyguardStateController.Callback mKeyguardStateCallback =
|
||||||
|
new KeyguardStateController.Callback() {
|
||||||
|
@Override
|
||||||
|
public void onKeyguardShowingChanged() {
|
||||||
|
mShell.onKeyguardVisibilityChanged(mKeyguardStateController.isShowing(),
|
||||||
|
mKeyguardStateController.isOccluded(),
|
||||||
|
mKeyguardStateController.isAnimatingBetweenKeyguardAndSurfaceBehind());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private final KeyguardUpdateMonitorCallback mKeyguardUpdateMonitorCallback =
|
||||||
|
new KeyguardUpdateMonitorCallback() {
|
||||||
|
@Override
|
||||||
|
public void onKeyguardDismissAnimationFinished() {
|
||||||
|
mShell.onKeyguardDismissAnimationFinished();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
private boolean mIsSysUiStateValid;
|
private boolean mIsSysUiStateValid;
|
||||||
private KeyguardUpdateMonitorCallback mOneHandedKeyguardCallback;
|
private KeyguardUpdateMonitorCallback mOneHandedKeyguardCallback;
|
||||||
private WakefulnessLifecycle.Observer mWakefulnessObserver;
|
private WakefulnessLifecycle.Observer mWakefulnessObserver;
|
||||||
@@ -159,28 +186,11 @@ public final class WMShell extends CoreStartable
|
|||||||
public void start() {
|
public void start() {
|
||||||
// Notify with the initial configuration and subscribe for new config changes
|
// Notify with the initial configuration and subscribe for new config changes
|
||||||
mShell.onConfigurationChanged(mContext.getResources().getConfiguration());
|
mShell.onConfigurationChanged(mContext.getResources().getConfiguration());
|
||||||
mConfigurationController.addCallback(new ConfigurationController.ConfigurationListener() {
|
mConfigurationController.addCallback(mConfigurationListener);
|
||||||
@Override
|
|
||||||
public void onConfigChanged(Configuration newConfig) {
|
|
||||||
mShell.onConfigurationChanged(newConfig);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Subscribe to keyguard changes
|
// Subscribe to keyguard changes
|
||||||
mKeyguardStateController.addCallback(new KeyguardStateController.Callback() {
|
mKeyguardStateController.addCallback(mKeyguardStateCallback);
|
||||||
@Override
|
mKeyguardUpdateMonitor.registerCallback(mKeyguardUpdateMonitorCallback);
|
||||||
public void onKeyguardShowingChanged() {
|
|
||||||
mShell.onKeyguardVisibilityChanged(mKeyguardStateController.isShowing(),
|
|
||||||
mKeyguardStateController.isOccluded(),
|
|
||||||
mKeyguardStateController.isAnimatingBetweenKeyguardAndSurfaceBehind());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
mKeyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() {
|
|
||||||
@Override
|
|
||||||
public void onKeyguardDismissAnimationFinished() {
|
|
||||||
mShell.onKeyguardDismissAnimationFinished();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: Consider piping config change and other common calls to a shell component to
|
// TODO: Consider piping config change and other common calls to a shell component to
|
||||||
// delegate internally
|
// delegate internally
|
||||||
|
|||||||
Reference in New Issue
Block a user