1.相关类
CollapsedStatusBarFragment.javaStatusBar.java
2.原生隐藏控制逻辑
Android12 在锁屏界面开启时,状态栏显示电池电量,SIM状态和网络状态,隐藏掉了时间和通知等的显示(PanelView这些都会显示)
那么它是如何控制的呢?
在CollapsedStatusBarFragment.java中有一些flag可以控制,核心控制逻辑在adjustDisableFlags()方法中:
protected int adjustDisableFlags(int state) {boolean headsUpVisible = mStatusBarComponent.headsUpShouldBeVisible();if (headsUpVisible) {state |= DISABLE_CLOCK;}//下面的三个Flag就可以控制相关ICON显示if (!mKeyguardStateController.isLaunchTransitionFadingAway()&& !mKeyguardStateController.isKeyguardFadingAway()&& shouldHideNotificationIcons()&& !(mStatusBarStateController.getState() == StatusBarState.KEYGUARD&& headsUpVisible)) {state |= DISABLE_NOTIFICATION_ICONS;state |= DISABLE_SYSTEM_INFO;state |= DISABLE_CLOCK;}if (mNetworkController != null && EncryptionHelper.IS_DATA_ENCRYPTED) {if (mNetworkController.hasEmergencyCryptKeeperText()) {state |= DISABLE_NOTIFICATION_ICONS;}if (!mNetworkController.isRadioOn()) {state |= DISABLE_SYSTEM_INFO;}}