Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java +43 −20 Original line number Diff line number Diff line Loading @@ -188,21 +188,9 @@ public class LiveLockScreenController { return mLiveLockScreenView; } private void updateLiveLockScreenView(final ComponentName cn) { // If mThirdPartyKeyguardViewComponent differs from cn, go ahead and update if (!Objects.equals(mLiveLockScreenComponentName, cn)) { mHandler.post(new Runnable() { private Runnable mAddNewLiveLockScreenRunnable = new Runnable() { @Override public void run() { mLiveLockScreenComponentName = cn; if (mLiveLockScreenView != null) { if (mPanelView.indexOfChild(mLiveLockScreenView) >= 0) { mPanelView.removeView(mLiveLockScreenView); } mLiveLockScreenView.unregisterKeyguardExternalViewCallback( mExternalKeyguardViewCallbacks); // setProviderComponent(null) will unbind the existing service mLiveLockScreenView.setProviderComponent(null); if (mLiveLockScreenComponentName != null) { mLiveLockScreenView = getExternalKeyguardView(mLiveLockScreenComponentName); Loading @@ -216,8 +204,43 @@ public class LiveLockScreenController { mLiveLockScreenView = null; } } }; private void updateLiveLockScreenView(final ComponentName cn) { mHandler.post(new Runnable() { @Override public void run() { // If mThirdPartyKeyguardViewComponent differs from cn, go ahead and update if (!Objects.equals(mLiveLockScreenComponentName, cn)) { mLiveLockScreenComponentName = cn; if (mLiveLockScreenView != null) { mLiveLockScreenView.unregisterKeyguardExternalViewCallback( mExternalKeyguardViewCallbacks); // setProviderComponent(null) will unbind the existing service mLiveLockScreenView.setProviderComponent(null); if (mPanelView.indexOfChild(mLiveLockScreenView) >= 0) { mLiveLockScreenView.registerOnWindowAttachmentChangedListener( new KeyguardExternalView.OnWindowAttachmentChangedListener() { @Override public void onAttachedToWindow() { } @Override public void onDetachedFromWindow() { mLiveLockScreenView .unregisterOnWindowAttachmentChangedListener( this); mHandler.post(mAddNewLiveLockScreenRunnable); } } ); mPanelView.removeView(mLiveLockScreenView); } else { mAddNewLiveLockScreenRunnable.run(); } } }); } } }); } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/LiveLockScreenController.java +43 −20 Original line number Diff line number Diff line Loading @@ -188,21 +188,9 @@ public class LiveLockScreenController { return mLiveLockScreenView; } private void updateLiveLockScreenView(final ComponentName cn) { // If mThirdPartyKeyguardViewComponent differs from cn, go ahead and update if (!Objects.equals(mLiveLockScreenComponentName, cn)) { mHandler.post(new Runnable() { private Runnable mAddNewLiveLockScreenRunnable = new Runnable() { @Override public void run() { mLiveLockScreenComponentName = cn; if (mLiveLockScreenView != null) { if (mPanelView.indexOfChild(mLiveLockScreenView) >= 0) { mPanelView.removeView(mLiveLockScreenView); } mLiveLockScreenView.unregisterKeyguardExternalViewCallback( mExternalKeyguardViewCallbacks); // setProviderComponent(null) will unbind the existing service mLiveLockScreenView.setProviderComponent(null); if (mLiveLockScreenComponentName != null) { mLiveLockScreenView = getExternalKeyguardView(mLiveLockScreenComponentName); Loading @@ -216,8 +204,43 @@ public class LiveLockScreenController { mLiveLockScreenView = null; } } }; private void updateLiveLockScreenView(final ComponentName cn) { mHandler.post(new Runnable() { @Override public void run() { // If mThirdPartyKeyguardViewComponent differs from cn, go ahead and update if (!Objects.equals(mLiveLockScreenComponentName, cn)) { mLiveLockScreenComponentName = cn; if (mLiveLockScreenView != null) { mLiveLockScreenView.unregisterKeyguardExternalViewCallback( mExternalKeyguardViewCallbacks); // setProviderComponent(null) will unbind the existing service mLiveLockScreenView.setProviderComponent(null); if (mPanelView.indexOfChild(mLiveLockScreenView) >= 0) { mLiveLockScreenView.registerOnWindowAttachmentChangedListener( new KeyguardExternalView.OnWindowAttachmentChangedListener() { @Override public void onAttachedToWindow() { } @Override public void onDetachedFromWindow() { mLiveLockScreenView .unregisterOnWindowAttachmentChangedListener( this); mHandler.post(mAddNewLiveLockScreenRunnable); } } ); mPanelView.removeView(mLiveLockScreenView); } else { mAddNewLiveLockScreenRunnable.run(); } } }); } } }); } }