Integrate refactored device-state auto-rotate setting manager
Added DeviceStateAutoRotateSettingManagerProvider to provide appropriate implementation of DeviceStateAutoRotateSettingManager based on flag. Integrate DeviceStateAutoRotateSettingManagerImpl to be used when auto-rotate refactor flag is ON. For more info:go/auto-rotate-refactor Bug: 394303723 Bug: 394303731 Flag: com.android.window.flags.enable_device_state_auto_rotate_setting_refactor Test: atest DeviceStateAutoRotateSettingManagerProviderTest Change-Id: I63494b6548f1f533a9a1979f2b19640c3ad1dc8d
This commit is contained in:
committed by
dshivangi
parent
a9ef330701
commit
b830e703f3
@@ -35,7 +35,6 @@ import com.android.settings.core.TogglePreferenceController;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
|
||||||
import com.android.settingslib.search.SearchIndexableRaw;
|
import com.android.settingslib.search.SearchIndexableRaw;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -46,7 +45,7 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont
|
|||||||
|
|
||||||
private TwoStatePreference mPreference;
|
private TwoStatePreference mPreference;
|
||||||
|
|
||||||
private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager;
|
private final DeviceStateAutoRotateSettingManager mAutoRotateSettingsManager;
|
||||||
private final int mOrder;
|
private final int mOrder;
|
||||||
private final DeviceStateAutoRotateSettingManager.DeviceStateAutoRotateSettingListener
|
private final DeviceStateAutoRotateSettingManager.DeviceStateAutoRotateSettingListener
|
||||||
mDeviceStateAutoRotateSettingListener = () -> updateState(mPreference);
|
mDeviceStateAutoRotateSettingListener = () -> updateState(mPreference);
|
||||||
@@ -62,7 +61,8 @@ public class DeviceStateAutoRotateSettingController extends TogglePreferenceCont
|
|||||||
mMetricsFeatureProvider = metricsFeatureProvider;
|
mMetricsFeatureProvider = metricsFeatureProvider;
|
||||||
mDeviceState = deviceState;
|
mDeviceState = deviceState;
|
||||||
mDeviceStateDescription = deviceStateDescription;
|
mDeviceStateDescription = deviceStateDescription;
|
||||||
mAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(context);
|
mAutoRotateSettingsManager =
|
||||||
|
DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(context);
|
||||||
mOrder = order;
|
mOrder = order;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -0,0 +1,62 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2025 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings.display
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.hardware.devicestate.DeviceStateManager
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.Handler
|
||||||
|
import android.os.Looper
|
||||||
|
import com.android.internal.annotations.VisibleForTesting
|
||||||
|
import com.android.settingslib.devicestate.AndroidSecureSettings
|
||||||
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager
|
||||||
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManagerProvider.createInstance
|
||||||
|
import com.android.settingslib.devicestate.PosturesHelper
|
||||||
|
import com.android.settingslib.utils.ThreadUtils
|
||||||
|
import com.android.window.flags.Flags
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides appropriate instance of [DeviceStateAutoRotateSettingManager], based on the value of
|
||||||
|
* [Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR].
|
||||||
|
*/
|
||||||
|
object DeviceStateAutoRotateSettingManagerProvider {
|
||||||
|
private var nullableSingletonSettingManager: DeviceStateAutoRotateSettingManager? = null
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides a singleton instance of [DeviceStateAutoRotateSettingManager], based on the
|
||||||
|
* value of[Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR]. It is supposed to
|
||||||
|
* be used by apps that don't support dagger to provide and manager instance.
|
||||||
|
*/
|
||||||
|
@JvmStatic
|
||||||
|
fun getSingletonInstance(context: Context) =
|
||||||
|
nullableSingletonSettingManager ?: createInstance(
|
||||||
|
context,
|
||||||
|
ThreadUtils.getBackgroundExecutor(),
|
||||||
|
AndroidSecureSettings(context.contentResolver),
|
||||||
|
Handler(Looper.getMainLooper()),
|
||||||
|
PosturesHelper(context, context.getSystemService(DeviceStateManager::class.java))
|
||||||
|
).also {
|
||||||
|
nullableSingletonSettingManager = it
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Resets the singleton instance of [DeviceStateAutoRotateSettingManager]. */
|
||||||
|
@JvmStatic
|
||||||
|
@VisibleForTesting
|
||||||
|
fun resetInstance() {
|
||||||
|
nullableSingletonSettingManager = null
|
||||||
|
}
|
||||||
|
}
|
@@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
package com.android.settings.display;
|
package com.android.settings.display;
|
||||||
|
|
||||||
|
import static com.android.settingslib.devicestate.DeviceStateAutoRotateSettingUtils.isDeviceStateRotationLockEnabled;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -25,7 +27,6 @@ import com.android.internal.view.RotationPolicy;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
|
||||||
import com.android.settingslib.devicestate.SettableDeviceState;
|
import com.android.settingslib.devicestate.SettableDeviceState;
|
||||||
import com.android.settingslib.search.SearchIndexableRaw;
|
import com.android.settingslib.search.SearchIndexableRaw;
|
||||||
|
|
||||||
@@ -51,8 +52,8 @@ public class DeviceStateAutoRotationHelper {
|
|||||||
|
|
||||||
static ImmutableList<AbstractPreferenceController> createPreferenceControllers(
|
static ImmutableList<AbstractPreferenceController> createPreferenceControllers(
|
||||||
Context context) {
|
Context context) {
|
||||||
List<SettableDeviceState> settableDeviceStates = DeviceStateRotationLockSettingsManager
|
List<SettableDeviceState> settableDeviceStates = DeviceStateAutoRotateSettingManagerProvider
|
||||||
.getInstance(context).getSettableDeviceStates();
|
.getSingletonInstance(context).getSettableDeviceStates();
|
||||||
int numDeviceStates = settableDeviceStates.size();
|
int numDeviceStates = settableDeviceStates.size();
|
||||||
if (numDeviceStates == 0) {
|
if (numDeviceStates == 0) {
|
||||||
return ImmutableList.of();
|
return ImmutableList.of();
|
||||||
@@ -99,7 +100,7 @@ public class DeviceStateAutoRotationHelper {
|
|||||||
/** Returns whether the device state based auto-rotation settings are enabled. */
|
/** Returns whether the device state based auto-rotation settings are enabled. */
|
||||||
public static boolean isDeviceStateRotationEnabled(Context context) {
|
public static boolean isDeviceStateRotationEnabled(Context context) {
|
||||||
return RotationPolicy.isRotationLockToggleVisible(context)
|
return RotationPolicy.isRotationLockToggleVisible(context)
|
||||||
&& DeviceStateRotationLockSettingsManager.isDeviceStateRotationLockEnabled(context);
|
&& isDeviceStateRotationLockEnabled(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -108,6 +109,6 @@ public class DeviceStateAutoRotationHelper {
|
|||||||
*/
|
*/
|
||||||
public static boolean isDeviceStateRotationEnabledForA11y(Context context) {
|
public static boolean isDeviceStateRotationEnabledForA11y(Context context) {
|
||||||
return RotationPolicy.isRotationSupported(context)
|
return RotationPolicy.isRotationSupported(context)
|
||||||
&& DeviceStateRotationLockSettingsManager.isDeviceStateRotationLockEnabled(context);
|
&& isDeviceStateRotationLockEnabled(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -47,7 +47,6 @@ import com.android.settings.core.TogglePreferenceController;
|
|||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SmartAutoRotateController controls whether auto rotation is enabled
|
* SmartAutoRotateController controls whether auto rotation is enabled
|
||||||
@@ -75,7 +74,7 @@ public class SmartAutoRotateController extends TogglePreferenceController implem
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final DeviceStateRotationLockSettingsManager mDeviceStateAutoRotateSettingsManager;
|
private final DeviceStateAutoRotateSettingManager mDeviceStateAutoRotateSettingsManager;
|
||||||
private final DeviceStateAutoRotateSettingManager.DeviceStateAutoRotateSettingListener
|
private final DeviceStateAutoRotateSettingManager.DeviceStateAutoRotateSettingListener
|
||||||
mDeviceStateAutoRotateSettingListener = () -> updateState(mPreference);
|
mDeviceStateAutoRotateSettingListener = () -> updateState(mPreference);
|
||||||
private RotationPolicy.RotationPolicyListener mRotationPolicyListener;
|
private RotationPolicy.RotationPolicyListener mRotationPolicyListener;
|
||||||
@@ -85,8 +84,9 @@ public class SmartAutoRotateController extends TogglePreferenceController implem
|
|||||||
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
|
mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
|
||||||
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
mPrivacyManager = SensorPrivacyManager.getInstance(context);
|
||||||
mPowerManager = context.getSystemService(PowerManager.class);
|
mPowerManager = context.getSystemService(PowerManager.class);
|
||||||
mDeviceStateAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(
|
mDeviceStateAutoRotateSettingsManager =
|
||||||
context);
|
DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(
|
||||||
|
context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -39,7 +39,6 @@ import android.hardware.devicestate.DeviceStateManager;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -144,16 +143,15 @@ public class DeviceStateAutoRotateDetailsFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void enableDeviceStateSettableRotationStates(String[] settableStates,
|
private void enableDeviceStateSettableRotationStates(String[] settableStates,
|
||||||
String[] settableStatesDescriptions) {
|
String[] settableStatesDescriptions) {
|
||||||
when(mResources.getStringArray(
|
when(mResources.getStringArray(
|
||||||
com.android.internal.R.array.config_perDeviceStateRotationLockDefaults)).thenReturn(
|
com.android.internal.R.array.config_perDeviceStateRotationLockDefaults)).thenReturn(
|
||||||
settableStates);
|
settableStates);
|
||||||
when(mResources.getStringArray(
|
when(mResources.getStringArray(
|
||||||
R.array.config_settableAutoRotationDeviceStatesDescriptions)).thenReturn(
|
R.array.config_settableAutoRotationDeviceStatesDescriptions)).thenReturn(
|
||||||
settableStatesDescriptions);
|
settableStatesDescriptions);
|
||||||
DeviceStateRotationLockSettingsManager.resetInstance();
|
DeviceStateAutoRotateSettingManagerProvider.resetInstance();
|
||||||
DeviceStateRotationLockSettingsManager.getInstance(mContext)
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
.resetStateForTesting(mResources);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets up posture mappings for PosturesHelper
|
// Sets up posture mappings for PosturesHelper
|
||||||
|
@@ -37,7 +37,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
|
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
||||||
import com.android.settingslib.search.SearchIndexableRaw;
|
import com.android.settingslib.search.SearchIndexableRaw;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -66,7 +66,7 @@ public class DeviceStateAutoRotateSettingControllerTest {
|
|||||||
private static final int DEFAULT_ORDER = -10;
|
private static final int DEFAULT_ORDER = -10;
|
||||||
|
|
||||||
private final Context mContext = Mockito.spy(RuntimeEnvironment.application);
|
private final Context mContext = Mockito.spy(RuntimeEnvironment.application);
|
||||||
private DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager;
|
private DeviceStateAutoRotateSettingManager mAutoRotateSettingsManager;
|
||||||
|
|
||||||
@Mock private MetricsFeatureProvider mMetricsFeatureProvider;
|
@Mock private MetricsFeatureProvider mMetricsFeatureProvider;
|
||||||
@Mock private DeviceStateManager mDeviceStateManager;
|
@Mock private DeviceStateManager mDeviceStateManager;
|
||||||
@@ -82,7 +82,7 @@ public class DeviceStateAutoRotateSettingControllerTest {
|
|||||||
doReturn(List.of(DEFAULT_DEVICE_STATE)).when(
|
doReturn(List.of(DEFAULT_DEVICE_STATE)).when(
|
||||||
mDeviceStateManager).getSupportedDeviceStates();
|
mDeviceStateManager).getSupportedDeviceStates();
|
||||||
mAutoRotateSettingsManager =
|
mAutoRotateSettingsManager =
|
||||||
DeviceStateRotationLockSettingsManager.getInstance(mContext);
|
DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mContext);
|
||||||
mController = new DeviceStateAutoRotateSettingController(
|
mController = new DeviceStateAutoRotateSettingController(
|
||||||
mContext,
|
mContext,
|
||||||
DEFAULT_DEVICE_STATE.getIdentifier(),
|
DEFAULT_DEVICE_STATE.getIdentifier(),
|
||||||
|
@@ -0,0 +1,111 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2025 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.android.settings.display;
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.res.Resources
|
||||||
|
import android.hardware.devicestate.DeviceStateManager
|
||||||
|
import android.platform.test.annotations.DisableFlags
|
||||||
|
import android.platform.test.annotations.EnableFlags
|
||||||
|
import android.platform.test.flag.junit.SetFlagsRule
|
||||||
|
import androidx.test.core.app.ApplicationProvider
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
|
import androidx.test.filters.SmallTest
|
||||||
|
import com.android.internal.R
|
||||||
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManagerImpl
|
||||||
|
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager
|
||||||
|
import com.android.window.flags.Flags
|
||||||
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
import org.junit.After
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Assert.assertNotSame
|
||||||
|
import org.junit.Assert.assertSame
|
||||||
|
import org.junit.Rule
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mock
|
||||||
|
import org.mockito.junit.MockitoJUnit
|
||||||
|
import org.mockito.Mockito.`when` as whenever
|
||||||
|
|
||||||
|
@SmallTest
|
||||||
|
@RunWith(AndroidJUnit4::class)
|
||||||
|
class DeviceStateAutoRotateSettingManagerProviderTest {
|
||||||
|
|
||||||
|
@get:Rule
|
||||||
|
val setFlagsRule: SetFlagsRule = SetFlagsRule()
|
||||||
|
@get:Rule
|
||||||
|
val rule = MockitoJUnit.rule()
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var mockContext: Context
|
||||||
|
@Mock
|
||||||
|
private lateinit var mockDeviceStateManager: DeviceStateManager
|
||||||
|
@Mock
|
||||||
|
private lateinit var mockResources: Resources
|
||||||
|
|
||||||
|
private val context: Context = ApplicationProvider.getApplicationContext()
|
||||||
|
|
||||||
|
@Before
|
||||||
|
fun setup() {
|
||||||
|
whenever(mockContext.contentResolver).thenReturn(context.contentResolver)
|
||||||
|
whenever(mockContext.getSystemService(DeviceStateManager::class.java)).thenReturn(
|
||||||
|
mockDeviceStateManager
|
||||||
|
)
|
||||||
|
whenever(mockContext.resources).thenReturn(mockResources)
|
||||||
|
whenever(mockResources.getStringArray(R.array.config_perDeviceStateRotationLockDefaults))
|
||||||
|
.thenReturn(arrayOf())
|
||||||
|
}
|
||||||
|
|
||||||
|
@After
|
||||||
|
fun tearDown() {
|
||||||
|
DeviceStateAutoRotateSettingManagerProvider.resetInstance()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR)
|
||||||
|
fun getSingletonInstance_refactorFlagEnabled_returnsRefactoredManager() {
|
||||||
|
val manager = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
|
||||||
|
assertThat(manager).isInstanceOf(DeviceStateAutoRotateSettingManagerImpl::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR)
|
||||||
|
fun getSingletonInstance_refactorFlagDisabled_returnsLegacyManager() {
|
||||||
|
val manager = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
|
||||||
|
assertThat(manager).isInstanceOf(DeviceStateRotationLockSettingsManager::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR)
|
||||||
|
fun getSingletonInstance_resetInstance_returnsNewInstance() {
|
||||||
|
val manager1 = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
DeviceStateAutoRotateSettingManagerProvider.resetInstance()
|
||||||
|
val manager2 = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
|
||||||
|
assertNotSame(manager1, manager2)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@EnableFlags(Flags.FLAG_ENABLE_DEVICE_STATE_AUTO_ROTATE_SETTING_REFACTOR)
|
||||||
|
fun getSingletonInstance_getInstanceTwice_returnsSameInstance() {
|
||||||
|
val manager1 = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
val manager2 = DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(mockContext)
|
||||||
|
|
||||||
|
assertSame(manager1, manager2)
|
||||||
|
}
|
||||||
|
}
|
@@ -45,7 +45,7 @@ import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettin
|
|||||||
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
||||||
import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
|
import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowSystemSettings;
|
import com.android.settings.testutils.shadow.ShadowSystemSettings;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
import com.android.settingslib.devicestate.DeviceStateAutoRotateSettingManager;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -74,7 +74,7 @@ public class SmartAutoRotateControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private DeviceStateManager mDeviceStateManager;
|
private DeviceStateManager mDeviceStateManager;
|
||||||
private ContentResolver mContentResolver;
|
private ContentResolver mContentResolver;
|
||||||
private DeviceStateRotationLockSettingsManager mDeviceStateAutoRotateSettingsManager;
|
private DeviceStateAutoRotateSettingManager mDeviceStateAutoRotateSettingManager;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -91,8 +91,8 @@ public class SmartAutoRotateControllerTest {
|
|||||||
doReturn(context).when(context).getApplicationContext();
|
doReturn(context).when(context).getApplicationContext();
|
||||||
doReturn(mDeviceStateManager).when(context).getSystemService(DeviceStateManager.class);
|
doReturn(mDeviceStateManager).when(context).getSystemService(DeviceStateManager.class);
|
||||||
doReturn(getDeviceStateList()).when(mDeviceStateManager).getSupportedDeviceStates();
|
doReturn(getDeviceStateList()).when(mDeviceStateManager).getSupportedDeviceStates();
|
||||||
mDeviceStateAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(
|
mDeviceStateAutoRotateSettingManager =
|
||||||
context);
|
DeviceStateAutoRotateSettingManagerProvider.getSingletonInstance(context);
|
||||||
mController = Mockito.spy(new SmartAutoRotateController(context, "test_key"));
|
mController = Mockito.spy(new SmartAutoRotateController(context, "test_key"));
|
||||||
|
|
||||||
when(mController.isCameraLocked()).thenReturn(false);
|
when(mController.isCameraLocked()).thenReturn(false);
|
||||||
@@ -187,13 +187,13 @@ public class SmartAutoRotateControllerTest {
|
|||||||
|
|
||||||
private void lockDeviceStateRotation() {
|
private void lockDeviceStateRotation() {
|
||||||
ShadowDeviceStateRotationLockSettingsManager shadowManager =
|
ShadowDeviceStateRotationLockSettingsManager shadowManager =
|
||||||
Shadow.extract(mDeviceStateAutoRotateSettingsManager);
|
Shadow.extract(mDeviceStateAutoRotateSettingManager);
|
||||||
shadowManager.setRotationLockedForAllStates(true);
|
shadowManager.setRotationLockedForAllStates(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void unlockDeviceStateRotation() {
|
private void unlockDeviceStateRotation() {
|
||||||
ShadowDeviceStateRotationLockSettingsManager shadowManager =
|
ShadowDeviceStateRotationLockSettingsManager shadowManager =
|
||||||
Shadow.extract(mDeviceStateAutoRotateSettingsManager);
|
Shadow.extract(mDeviceStateAutoRotateSettingManager);
|
||||||
shadowManager.setRotationLockedForAllStates(false);
|
shadowManager.setRotationLockedForAllStates(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -58,7 +58,6 @@ import com.android.settings.testutils.ResolveInfoBuilder;
|
|||||||
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
|
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
|
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -258,15 +257,14 @@ public class SmartAutoRotatePreferenceFragmentTest {
|
|||||||
private void enableDeviceStateSettableRotationStates(
|
private void enableDeviceStateSettableRotationStates(
|
||||||
String[] settableStates, String[] settableStatesDescriptions) {
|
String[] settableStates, String[] settableStatesDescriptions) {
|
||||||
when(mResources.getStringArray(
|
when(mResources.getStringArray(
|
||||||
com.android.internal.R.array.config_perDeviceStateRotationLockDefaults))
|
com.android.internal.R.array.config_perDeviceStateRotationLockDefaults))
|
||||||
.thenReturn(settableStates);
|
.thenReturn(settableStates);
|
||||||
when(mResources.getStringArray(R.array.config_settableAutoRotationDeviceStatesDescriptions))
|
when(mResources.getStringArray(R.array.config_settableAutoRotationDeviceStatesDescriptions))
|
||||||
.thenReturn(settableStatesDescriptions);
|
.thenReturn(settableStatesDescriptions);
|
||||||
when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available))
|
when(mResources.getBoolean(R.bool.config_auto_rotate_face_detection_available))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
DeviceStateRotationLockSettingsManager.resetInstance();
|
DeviceStateAutoRotateSettingManagerProvider.resetInstance();
|
||||||
DeviceStateRotationLockSettingsManager.getInstance(mContext)
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
.resetStateForTesting(mResources);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sets up posture mappings for PosturesHelper
|
// Sets up posture mappings for PosturesHelper
|
||||||
|
Reference in New Issue
Block a user