Loading packages/SystemUI/aconfig/systemui.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,17 @@ flag { bug: "308676488" } flag { name: "truncated_status_bar_icons_fix" namespace: "systemui" description: "Fixes the status bar icons being trunacted due to the status bar window height " "not being updated after certain rotations" bug: "323299264" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "compose_bouncer" namespace: "systemui" Loading packages/SystemUI/src/com/android/systemui/Dependency.java +3 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.window.StatusBarWindowController; import com.android.systemui.tuner.TunablePadding.TunablePaddingService; import com.android.systemui.tuner.TunerService; Loading Loading @@ -172,6 +173,7 @@ public class Dependency { @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy; @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy; @Inject Lazy<UserTracker> mUserTrackerLazy; @Inject Lazy<StatusBarWindowController> mStatusBarWindowControllerLazy; @Inject public Dependency() { Loading Loading @@ -226,6 +228,7 @@ public class Dependency { mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get); mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get); mProviders.put(UserTracker.class, mUserTrackerLazy::get); mProviders.put(StatusBarWindowController.class, mStatusBarWindowControllerLazy::get); Dependency.setInstance(this); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME; import static com.android.systemui.Flags.lightRevealMigration; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.predictiveBackSysui; import static com.android.systemui.Flags.truncatedStatusBarIconsFix; import static com.android.systemui.charging.WirelessChargingAnimation.UNKNOWN_BATTERY_LEVEL; import static com.android.systemui.statusbar.NotificationLockscreenUserManager.PERMISSION_SELF; import static com.android.systemui.statusbar.StatusBarState.SHADE; Loading Loading @@ -1906,10 +1907,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { mQSPanelController.updateResources(); } if (!truncatedStatusBarIconsFix()) { if (mStatusBarWindowController != null) { mStatusBarWindowController.refreshStatusBarHeight(); } } if (mShadeSurface != null) { mShadeSurface.updateResources(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +15 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.Flags.truncatedStatusBarIconsFix; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; Loading @@ -41,6 +43,7 @@ import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer; import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.window.StatusBarWindowController; import com.android.systemui.user.ui.binder.StatusBarUserChipViewBinder; import com.android.systemui.user.ui.viewmodel.StatusBarUserChipViewModel; import com.android.systemui.util.leak.RotationUtils; Loading @@ -50,6 +53,7 @@ import java.util.Objects; public class PhoneStatusBarView extends FrameLayout { private static final String TAG = "PhoneStatusBarView"; private final StatusBarContentInsetsProvider mContentInsetsProvider; private final StatusBarWindowController mStatusBarWindowController; private DarkReceiver mBattery; private Clock mClock; Loading @@ -72,6 +76,7 @@ public class PhoneStatusBarView extends FrameLayout { public PhoneStatusBarView(Context context, AttributeSet attrs) { super(context, attrs); mContentInsetsProvider = Dependency.get(StatusBarContentInsetsProvider.class); mStatusBarWindowController = Dependency.get(StatusBarWindowController.class); } void setTouchEventHandler(Gefingerpoken handler) { Loading Loading @@ -101,6 +106,9 @@ public class PhoneStatusBarView extends FrameLayout { Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mClock); if (updateDisplayParameters()) { updateLayoutForCutout(); if (truncatedStatusBarIconsFix()) { updateWindowHeight(); } } } Loading @@ -124,6 +132,9 @@ public class PhoneStatusBarView extends FrameLayout { if (updateDisplayParameters()) { updateLayoutForCutout(); requestLayout(); if (truncatedStatusBarIconsFix()) { updateWindowHeight(); } } } Loading Loading @@ -279,4 +290,8 @@ public class PhoneStatusBarView extends FrameLayout { insets.right, getPaddingBottom()); } private void updateWindowHeight() { mStatusBarWindowController.refreshStatusBarHeight(); } } packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,24 @@ public class CentralSurfacesImplTest extends SysuiTestCase { verify(mBubbles).onStatusBarVisibilityChanged(true); } @Test public void updateResources_flagEnabled_doesNotUpdateStatusBarWindowHeight() { mSetFlagsRule.enableFlags(com.android.systemui.Flags.FLAG_TRUNCATED_STATUS_BAR_ICONS_FIX); mCentralSurfaces.updateResources(); verify(mStatusBarWindowController, never()).refreshStatusBarHeight(); } @Test public void updateResources_flagDisabled_updatesStatusBarWindowHeight() { mSetFlagsRule.disableFlags(com.android.systemui.Flags.FLAG_TRUNCATED_STATUS_BAR_ICONS_FIX); mCentralSurfaces.updateResources(); verify(mStatusBarWindowController).refreshStatusBarHeight(); } /** * Configures the appropriate mocks and then calls {@link CentralSurfacesImpl#updateIsKeyguard} * to reconfigure the keyguard to reflect the requested showing/occluded states. Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +11 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,17 @@ flag { bug: "308676488" } flag { name: "truncated_status_bar_icons_fix" namespace: "systemui" description: "Fixes the status bar icons being trunacted due to the status bar window height " "not being updated after certain rotations" bug: "323299264" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "compose_bouncer" namespace: "systemui" Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +3 −0 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager; import com.android.systemui.statusbar.policy.BluetoothController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.window.StatusBarWindowController; import com.android.systemui.tuner.TunablePadding.TunablePaddingService; import com.android.systemui.tuner.TunerService; Loading Loading @@ -172,6 +173,7 @@ public class Dependency { @Inject Lazy<SystemUIDialogManager> mSystemUIDialogManagerLazy; @Inject Lazy<DialogLaunchAnimator> mDialogLaunchAnimatorLazy; @Inject Lazy<UserTracker> mUserTrackerLazy; @Inject Lazy<StatusBarWindowController> mStatusBarWindowControllerLazy; @Inject public Dependency() { Loading Loading @@ -226,6 +228,7 @@ public class Dependency { mProviders.put(SystemUIDialogManager.class, mSystemUIDialogManagerLazy::get); mProviders.put(DialogLaunchAnimator.class, mDialogLaunchAnimatorLazy::get); mProviders.put(UserTracker.class, mUserTrackerLazy::get); mProviders.put(StatusBarWindowController.class, mStatusBarWindowControllerLazy::get); Dependency.setInstance(this); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java +5 −3 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME; import static com.android.systemui.Flags.lightRevealMigration; import static com.android.systemui.Flags.newAodTransition; import static com.android.systemui.Flags.predictiveBackSysui; import static com.android.systemui.Flags.truncatedStatusBarIconsFix; import static com.android.systemui.charging.WirelessChargingAnimation.UNKNOWN_BATTERY_LEVEL; import static com.android.systemui.statusbar.NotificationLockscreenUserManager.PERMISSION_SELF; import static com.android.systemui.statusbar.StatusBarState.SHADE; Loading Loading @@ -1906,10 +1907,11 @@ public class CentralSurfacesImpl implements CoreStartable, CentralSurfaces { mQSPanelController.updateResources(); } if (!truncatedStatusBarIconsFix()) { if (mStatusBarWindowController != null) { mStatusBarWindowController.refreshStatusBarHeight(); } } if (mShadeSurface != null) { mShadeSurface.updateResources(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java +15 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ package com.android.systemui.statusbar.phone; import static com.android.systemui.Flags.truncatedStatusBarIconsFix; import android.annotation.Nullable; import android.content.Context; import android.content.res.Configuration; Loading @@ -41,6 +43,7 @@ import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver; import com.android.systemui.statusbar.phone.userswitcher.StatusBarUserSwitcherContainer; import com.android.systemui.statusbar.policy.Clock; import com.android.systemui.statusbar.window.StatusBarWindowController; import com.android.systemui.user.ui.binder.StatusBarUserChipViewBinder; import com.android.systemui.user.ui.viewmodel.StatusBarUserChipViewModel; import com.android.systemui.util.leak.RotationUtils; Loading @@ -50,6 +53,7 @@ import java.util.Objects; public class PhoneStatusBarView extends FrameLayout { private static final String TAG = "PhoneStatusBarView"; private final StatusBarContentInsetsProvider mContentInsetsProvider; private final StatusBarWindowController mStatusBarWindowController; private DarkReceiver mBattery; private Clock mClock; Loading @@ -72,6 +76,7 @@ public class PhoneStatusBarView extends FrameLayout { public PhoneStatusBarView(Context context, AttributeSet attrs) { super(context, attrs); mContentInsetsProvider = Dependency.get(StatusBarContentInsetsProvider.class); mStatusBarWindowController = Dependency.get(StatusBarWindowController.class); } void setTouchEventHandler(Gefingerpoken handler) { Loading Loading @@ -101,6 +106,9 @@ public class PhoneStatusBarView extends FrameLayout { Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mClock); if (updateDisplayParameters()) { updateLayoutForCutout(); if (truncatedStatusBarIconsFix()) { updateWindowHeight(); } } } Loading @@ -124,6 +132,9 @@ public class PhoneStatusBarView extends FrameLayout { if (updateDisplayParameters()) { updateLayoutForCutout(); requestLayout(); if (truncatedStatusBarIconsFix()) { updateWindowHeight(); } } } Loading Loading @@ -279,4 +290,8 @@ public class PhoneStatusBarView extends FrameLayout { insets.right, getPaddingBottom()); } private void updateWindowHeight() { mStatusBarWindowController.refreshStatusBarHeight(); } }
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -1054,6 +1054,24 @@ public class CentralSurfacesImplTest extends SysuiTestCase { verify(mBubbles).onStatusBarVisibilityChanged(true); } @Test public void updateResources_flagEnabled_doesNotUpdateStatusBarWindowHeight() { mSetFlagsRule.enableFlags(com.android.systemui.Flags.FLAG_TRUNCATED_STATUS_BAR_ICONS_FIX); mCentralSurfaces.updateResources(); verify(mStatusBarWindowController, never()).refreshStatusBarHeight(); } @Test public void updateResources_flagDisabled_updatesStatusBarWindowHeight() { mSetFlagsRule.disableFlags(com.android.systemui.Flags.FLAG_TRUNCATED_STATUS_BAR_ICONS_FIX); mCentralSurfaces.updateResources(); verify(mStatusBarWindowController).refreshStatusBarHeight(); } /** * Configures the appropriate mocks and then calls {@link CentralSurfacesImpl#updateIsKeyguard} * to reconfigure the keyguard to reflect the requested showing/occluded states. Loading