Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 495c1ce1 authored by Abel Tesfaye's avatar Abel Tesfaye Committed by Automerger Merge Worker
Browse files

Merge "Gate QS smart-auto-rotate status with config flag" into udc-dev am:...

Merge "Gate QS smart-auto-rotate status with config flag" into udc-dev am: 55712d9d am: 34ca66ee

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22905823



Change-Id: Ic3294ed2ffbfa37349a67c320d5623ae4201d5a5
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 809941eb 34ca66ee
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -68,6 +68,7 @@ public class RotationLockTile extends QSTileImpl<BooleanState> implements
    private final SensorPrivacyManager mPrivacyManager;
    private final SensorPrivacyManager mPrivacyManager;
    private final BatteryController mBatteryController;
    private final BatteryController mBatteryController;
    private final SettingObserver mSetting;
    private final SettingObserver mSetting;
    private final boolean mAllowRotationResolver;


    @Inject
    @Inject
    public RotationLockTile(
    public RotationLockTile(
@@ -105,6 +106,8 @@ public class RotationLockTile extends QSTileImpl<BooleanState> implements
            }
            }
        };
        };
        mBatteryController.observe(getLifecycle(), this);
        mBatteryController.observe(getLifecycle(), this);
        mAllowRotationResolver = mContext.getResources().getBoolean(
                com.android.internal.R.bool.config_allowRotationResolver);
    }
    }


    @Override
    @Override
@@ -145,7 +148,7 @@ public class RotationLockTile extends QSTileImpl<BooleanState> implements


        final boolean powerSave = mBatteryController.isPowerSave();
        final boolean powerSave = mBatteryController.isPowerSave();
        final boolean cameraLocked = mPrivacyManager.isSensorPrivacyEnabled(CAMERA);
        final boolean cameraLocked = mPrivacyManager.isSensorPrivacyEnabled(CAMERA);
        final boolean cameraRotation =
        final boolean cameraRotation = mAllowRotationResolver &&
                !powerSave && !cameraLocked && hasSufficientPermission(mContext)
                !powerSave && !cameraLocked && hasSufficientPermission(mContext)
                        && mController.isCameraRotationEnabled();
                        && mController.isCameraRotationEnabled();
        state.value = !rotationLocked;
        state.value = !rotationLocked;
+31 −0
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@ import android.os.Handler;
import android.test.suitebuilder.annotation.SmallTest;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
import android.testing.TestableLooper;
import android.testing.TestableResources;


import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.MetricsLogger;
import com.android.systemui.R;
import com.android.systemui.R;
@@ -94,14 +95,18 @@ public class RotationLockTileTest extends SysuiTestCase {
    private RotationLockController mController;
    private RotationLockController mController;
    private TestableLooper mTestableLooper;
    private TestableLooper mTestableLooper;
    private RotationLockTile mLockTile;
    private RotationLockTile mLockTile;
    private TestableResources mTestableResources;


    @Before
    @Before
    public void setUp() throws Exception {
    public void setUp() throws Exception {
        MockitoAnnotations.initMocks(this);
        MockitoAnnotations.initMocks(this);
        mTestableLooper = TestableLooper.get(this);
        mTestableLooper = TestableLooper.get(this);
        mTestableResources = mContext.getOrCreateTestableResources();


        when(mHost.getContext()).thenReturn(mContext);
        when(mHost.getContext()).thenReturn(mContext);
        when(mHost.getUserContext()).thenReturn(mContext);
        when(mHost.getUserContext()).thenReturn(mContext);
        mTestableResources.addOverride(com.android.internal.R.bool.config_allowRotationResolver,
                true);


        mController = new RotationLockControllerImpl(mRotationPolicyWrapper,
        mController = new RotationLockControllerImpl(mRotationPolicyWrapper,
                mDeviceStateRotationLockSettingController, DEFAULT_SETTINGS);
                mDeviceStateRotationLockSettingController, DEFAULT_SETTINGS);
@@ -207,6 +212,32 @@ public class RotationLockTileTest extends SysuiTestCase {
        assertEquals("", mLockTile.getState().secondaryLabel.toString());
        assertEquals("", mLockTile.getState().secondaryLabel.toString());
    }
    }


    @Test
    public void testSecondaryString_rotationResolverDisabled_isEmpty() {
        mTestableResources.addOverride(com.android.internal.R.bool.config_allowRotationResolver,
                false);
        mLockTile = new RotationLockTile(
                mHost,
                mUiEventLogger,
                mTestableLooper.getLooper(),
                new Handler(mTestableLooper.getLooper()),
                new FalsingManagerFake(),
                mMetricsLogger,
                mStatusBarStateController,
                mActivityStarter,
                mQSLogger,
                mController,
                mPrivacyManager,
                mBatteryController,
                new FakeSettings()
        );

        mLockTile.refreshState();
        mTestableLooper.processAllMessages();

        assertEquals("", mLockTile.getState().secondaryLabel.toString());
    }

    @Test
    @Test
    public void testIcon_whenDisabled_isOffState() {
    public void testIcon_whenDisabled_isOffState() {
        QSTile.BooleanState state = new QSTile.BooleanState();
        QSTile.BooleanState state = new QSTile.BooleanState();