diff --git a/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java b/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java index 88e78e80a95..661eb99c4a2 100644 --- a/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java +++ b/src/com/android/settings/display/FoldLockBehaviorPreferenceController.java @@ -24,12 +24,12 @@ import static com.android.settings.display.FoldLockBehaviorSettings.SETTING_VALU import static com.android.settings.display.FoldLockBehaviorSettings.SETTING_VALUE_STAY_AWAKE_ON_FOLD; import android.content.Context; -import android.content.res.Resources; import android.os.UserHandle; import android.provider.Settings; import androidx.preference.Preference; +import com.android.internal.foldables.FoldLockSettingAvailabilityProvider; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; @@ -45,17 +45,17 @@ import java.util.Map; */ public class FoldLockBehaviorPreferenceController extends BasePreferenceController { - private final Resources mResources; - - private static Map KEY_TO_TEXT = new HashMap<>(); + private static final Map KEY_TO_TEXT = new HashMap<>(); + private final FoldLockSettingAvailabilityProvider mFoldLockSettingAvailabilityProvider; public FoldLockBehaviorPreferenceController(Context context, String key) { - this(context, key, context.getResources()); + this(context, key, new FoldLockSettingAvailabilityProvider(context.getResources())); } - public FoldLockBehaviorPreferenceController(Context context, String key, Resources resources) { + public FoldLockBehaviorPreferenceController(Context context, String key, + FoldLockSettingAvailabilityProvider foldLockSettingAvailabilityProvider) { super(context, key); - mResources = resources; + mFoldLockSettingAvailabilityProvider = foldLockSettingAvailabilityProvider; KEY_TO_TEXT.put(SETTING_VALUE_STAY_AWAKE_ON_FOLD, resourceToString(R.string.stay_awake_on_fold_title)); KEY_TO_TEXT.put(SETTING_VALUE_SELECTIVE_STAY_AWAKE, @@ -66,7 +66,9 @@ public class FoldLockBehaviorPreferenceController extends BasePreferenceControll @Override public int getAvailabilityStatus() { - return mResources.getBoolean(com.android.internal.R.bool.config_fold_lock_behavior) + boolean isFoldLockBehaviorAvailable = + mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable(); + return isFoldLockBehaviorAvailable ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } diff --git a/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java index 2510bf141a2..4fc56b039c9 100644 --- a/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/FoldLockBehaviorPreferenceControllerTest.java @@ -25,9 +25,8 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import android.content.Context; -import android.content.res.Resources; -import com.android.internal.R; +import com.android.internal.foldables.FoldLockSettingAvailabilityProvider; import org.junit.Before; import org.junit.Test; @@ -41,27 +40,29 @@ import org.robolectric.RuntimeEnvironment; public class FoldLockBehaviorPreferenceControllerTest { @Mock - private Resources mResources; + private FoldLockSettingAvailabilityProvider mFoldLockSettingAvailabilityProvider; private Context mContext; private FoldLockBehaviorPreferenceController mController; @Before public void setUp() { mContext = RuntimeEnvironment.application; - mResources = Mockito.mock(Resources.class); - mController = new FoldLockBehaviorPreferenceController(mContext, "key", mResources); + mFoldLockSettingAvailabilityProvider = Mockito.mock( + FoldLockSettingAvailabilityProvider.class); + mController = new FoldLockBehaviorPreferenceController(mContext, "key", + mFoldLockSettingAvailabilityProvider); } @Test public void getAvailabilityStatus_withConfigNoShow_returnUnsupported() { - when(mResources.getBoolean(R.bool.config_fold_lock_behavior)).thenReturn(false); + when(mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable()).thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_withConfigNoShow_returnAvailable() { - when(mResources.getBoolean(R.bool.config_fold_lock_behavior)).thenReturn(true); + when(mFoldLockSettingAvailabilityProvider.isFoldLockBehaviorAvailable()).thenReturn(true); assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE); }