Simplify KeyguardBottomAreaView reinflation logic

Fixes: 131198766
Test: change from light to dark wallpaper, go to AOD
Test: atest KeyguardIndicationControllerTest
Test: atest KeyguardBottomAreaTest
Change-Id: Ide9b77a57e812528b308d68dbbbb673c1a435de0
This commit is contained in:
Lucas Dupin
2019-04-26 16:17:56 -07:00
parent 8e2fd0123a
commit 00ebe13cd6
6 changed files with 13 additions and 49 deletions

View File

@@ -143,11 +143,6 @@ public class KeyguardIndicationController implements StateListener,
StatusBarStateController statusBarStateController,
KeyguardUpdateMonitor keyguardUpdateMonitor) {
mContext = context;
mIndicationArea = indicationArea;
mTextView = indicationArea.findViewById(R.id.keyguard_indication_text);
mInitialTextColorState = mTextView != null ?
mTextView.getTextColors() : ColorStateList.valueOf(Color.WHITE);
mDisclosure = indicationArea.findViewById(R.id.keyguard_indication_enterprise_disclosure);
mLockIcon = lockIcon;
mShadeController = shadeController;
mAccessibilityController = accessibilityController;
@@ -172,6 +167,7 @@ public class KeyguardIndicationController implements StateListener,
mDevicePolicyManager = (DevicePolicyManager) context.getSystemService(
Context.DEVICE_POLICY_SERVICE);
setIndicationArea(indicationArea);
updateDisclosure();
mKeyguardUpdateMonitor.registerCallback(getKeyguardCallback());
@@ -180,17 +176,13 @@ public class KeyguardIndicationController implements StateListener,
mUnlockMethodCache.addListener(this);
}
/**
* Used by {@link com.android.systemui.statusbar.phone.StatusBar} to give the indication
* controller a chance to unregister itself as a receiver.
*
* //TODO: This can probably be converted to a fragment and not have to be manually recreated
*/
public void destroy() {
mKeyguardUpdateMonitor.removeCallback(mTickReceiver);
mKeyguardUpdateMonitor.removeCallback(getKeyguardCallback());
mStatusBarStateController.removeCallback(this);
mUnlockMethodCache.removeListener(this);
public void setIndicationArea(ViewGroup indicationArea) {
mIndicationArea = indicationArea;
mTextView = indicationArea.findViewById(R.id.keyguard_indication_text);
mInitialTextColorState = mTextView != null ?
mTextView.getTextColors() : ColorStateList.valueOf(Color.WHITE);
mDisclosure = indicationArea.findViewById(R.id.keyguard_indication_enterprise_disclosure);
updateIndication(false /* animate */);
}
private boolean handleLockLongClick(View view) {

View File

@@ -133,7 +133,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
private LockPatternUtils mLockPatternUtils;
private FlashlightController mFlashlightController;
private PreviewInflater mPreviewInflater;
private KeyguardIndicationController mIndicationController;
private AccessibilityController mAccessibilityController;
private StatusBar mStatusBar;
private KeyguardAffordanceHelper mAffordanceHelper;
@@ -221,7 +220,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
};
public void initFrom(KeyguardBottomAreaView oldBottomArea) {
setKeyguardIndicationController(oldBottomArea.mIndicationController);
setStatusBar(oldBottomArea.mStatusBar);
}
@@ -707,15 +705,6 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
}
};
public void setKeyguardIndicationController(
KeyguardIndicationController keyguardIndicationController) {
mIndicationController = keyguardIndicationController;
}
public void showTransientIndication(int id) {
mIndicationController.showTransientIndication(id);
}
public void updateLeftAffordance() {
updateLeftAffordanceIcon();
updateLeftPreview();

View File

@@ -337,6 +337,7 @@ public class NotificationPanelView extends PanelView implements
* work, check the current id with the cached id.
*/
private int mThemeResId;
private KeyguardIndicationController mKeyguardIndicationController;
@Inject
public NotificationPanelView(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
@@ -516,6 +517,7 @@ public class NotificationPanelView extends PanelView implements
mKeyguardBottomArea.initFrom(oldBottomArea);
addView(mKeyguardBottomArea, index);
initBottomArea();
mKeyguardIndicationController.setIndicationArea(mKeyguardBottomArea);
onDozeAmountChanged(mStatusBarStateController.getDozeAmount(),
mStatusBarStateController.getInterpolatedDozeAmount());
@@ -535,7 +537,8 @@ public class NotificationPanelView extends PanelView implements
}
public void setKeyguardIndicationController(KeyguardIndicationController indicationController) {
mKeyguardBottomArea.setKeyguardIndicationController(indicationController);
mKeyguardIndicationController = indicationController;
mKeyguardIndicationController.setIndicationArea(mKeyguardBottomArea);
}
@Override
@@ -3045,7 +3048,7 @@ public class NotificationPanelView extends PanelView implements
}
public void showTransientIndication(int id) {
mKeyguardBottomArea.showTransientIndication(id);
mKeyguardIndicationController.showTransientIndication(id);
}
@Override

View File

@@ -1166,18 +1166,6 @@ public class StatusBar extends SystemUI implements DemoMode,
@Override
public void onThemeChanged() {
// Recreate Indication controller because internal references changed
if (mKeyguardIndicationController != null) {
mKeyguardIndicationController.destroy();
}
mKeyguardIndicationController =
SystemUIFactory.getInstance().createKeyguardIndicationController(mContext,
mStatusBarWindow.findViewById(R.id.keyguard_indication_area),
mStatusBarWindow.findViewById(R.id.lock_icon));
mNotificationPanel.setKeyguardIndicationController(mKeyguardIndicationController);
mKeyguardIndicationController
.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager);
mKeyguardIndicationController.setVisible(mState == StatusBarState.KEYGUARD);
if (mStatusBarKeyguardViewManager != null) {
mStatusBarKeyguardViewManager.onThemeChanged();
}

View File

@@ -284,10 +284,5 @@ public class KeyguardIndicationControllerTest extends SysuiTestCase {
verify(mUnlockMethodCache).addListener(eq(mController));
verify(mStatusBarStateController).addCallback(eq(mController));
verify(mKeyguardUpdateMonitor, times(2)).registerCallback(any());
mController.destroy();
verify(mUnlockMethodCache).removeListener(eq(mController));
verify(mStatusBarStateController).removeCallback(eq(mController));
verify(mKeyguardUpdateMonitor, times(2)).removeCallback(any());
}
}

View File

@@ -22,8 +22,6 @@ class KeyguardBottomAreaTest : SysuiTestCase() {
@Mock
private lateinit var mStatusBar: StatusBar
@Mock
private lateinit var mKeyguardIndicationController: KeyguardIndicationController
private lateinit var mKeyguardBottomArea: KeyguardBottomAreaView
@Before
@@ -32,7 +30,6 @@ class KeyguardBottomAreaTest : SysuiTestCase() {
mKeyguardBottomArea = LayoutInflater.from(mContext).inflate(
R.layout.keyguard_bottom_area, null, false) as KeyguardBottomAreaView
mKeyguardBottomArea.setStatusBar(mStatusBar)
mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController)
}
@Test