From 50605427fb8f33b02964fa5e6f43c5996cce67a8 Mon Sep 17 00:00:00 2001 From: Rasheed Lewis Date: Wed, 13 Apr 2022 13:59:20 +0000 Subject: [PATCH] Replaced Quick Settings Auto-Rotate Icons to Use Animations Test: Unit tested and manually tested Bug: 228565281 Change-Id: Ib28bb2612af434e929404572be092efd359aa4fc --- .../systemui/qs/tiles/RotationLockTile.java | 13 ++++++----- .../qs/tiles/RotationLockTileTest.java | 22 +++++++++++++++++++ 2 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java index 177c82ed3d789..600874f0d01ad 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/RotationLockTile.java @@ -57,6 +57,7 @@ import javax.inject.Inject; /** Quick settings tile: Rotation **/ public class RotationLockTile extends QSTileImpl implements BatteryController.BatteryStateChangeCallback { + private static final String EMPTY_SECONDARY_STRING = ""; private final Icon mIcon = ResourceIcon.get(com.android.internal.R.drawable.ic_qs_auto_rotate); private final RotationLockController mController; @@ -144,13 +145,15 @@ public class RotationLockTile extends QSTileImpl implements && mController.isCameraRotationEnabled(); state.value = !rotationLocked; state.label = mContext.getString(R.string.quick_settings_rotation_unlocked_label); - state.icon = mIcon; + state.icon = ResourceIcon.get(R.drawable.qs_auto_rotate_icon_off); state.contentDescription = getAccessibilityString(rotationLocked); - if (!rotationLocked && cameraRotation) { - state.secondaryLabel = mContext.getResources().getString( - R.string.rotation_lock_camera_rotation_on); + if (!rotationLocked) { + state.secondaryLabel = cameraRotation ? mContext.getResources().getString( + R.string.rotation_lock_camera_rotation_on) + : EMPTY_SECONDARY_STRING; + state.icon = ResourceIcon.get(R.drawable.qs_auto_rotate_icon_on); } else { - state.secondaryLabel = ""; + state.secondaryLabel = EMPTY_SECONDARY_STRING; } state.stateDescription = state.secondaryLabel; diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RotationLockTileTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RotationLockTileTest.java index 55c51b255ac70..e9dfd3ed182be 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RotationLockTileTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/RotationLockTileTest.java @@ -36,9 +36,11 @@ import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.plugins.ActivityStarter; +import com.android.systemui.plugins.qs.QSTile; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.qs.QSTileHost; import com.android.systemui.qs.logging.QSLogger; +import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceStateRotationLockSettingController; import com.android.systemui.statusbar.policy.RotationLockController; @@ -194,6 +196,26 @@ public class RotationLockTileTest extends SysuiTestCase { assertEquals("", mLockTile.getState().secondaryLabel.toString()); } + @Test + public void testIcon_whenDisabled_isOffState() { + QSTile.BooleanState state = new QSTile.BooleanState(); + disableAutoRotation(); + + mLockTile.handleUpdateState(state, /* arg= */ null); + + assertEquals(state.icon, QSTileImpl.ResourceIcon.get(R.drawable.qs_auto_rotate_icon_off)); + } + + @Test + public void testIcon_whenEnabled_isOnState() { + QSTile.BooleanState state = new QSTile.BooleanState(); + enableAutoRotation(); + + mLockTile.handleUpdateState(state, /* arg= */ null); + + assertEquals(state.icon, QSTileImpl.ResourceIcon.get(R.drawable.qs_auto_rotate_icon_on)); + } + private void enableAutoRotation() { when(mRotationPolicyWrapper.isRotationLocked()).thenReturn(false); }