diff --git a/res/values/strings.xml b/res/values/strings.xml index 2ddbae37c4b..aeaea6116b8 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -13203,23 +13203,29 @@ cards & passes - Power menu + Press and hold power button - - Power button menu - - - Don\u2019t show any content + + Press and hold for the Assistant + + Press and hold for the power menu + + Press and hold disabled To use, first set a screen lock - + Hold for Assistant - + Trigger the Assistant by holding the power button + + Power & Emergency Menu:\nPress Power and Volume up at the same time. + + Prevent ringing:\nShortcut available in the volume menu. + Show wallet diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml index f88531e3802..caaeb979387 100644 --- a/res/xml/power_menu_settings.xml +++ b/res/xml/power_menu_settings.xml @@ -1,19 +1,16 @@ - + + + diff --git a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java index 96db2c91a42..3e9c80fecce 100644 --- a/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java +++ b/src/com/android/settings/gestures/LongPressPowerButtonPreferenceController.java @@ -16,45 +16,30 @@ package com.android.settings.gestures; -import android.content.ContentResolver; import android.content.Context; -import android.content.pm.PackageManager; -import android.database.ContentObserver; -import android.net.Uri; -import android.os.Handler; -import android.os.Looper; import android.provider.Settings; -import androidx.annotation.Nullable; -import androidx.lifecycle.Lifecycle; -import androidx.lifecycle.LifecycleObserver; -import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; -import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; +import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; +import org.checkerframework.checker.nullness.qual.MonotonicNonNull; + /** * Configures the behaviour of long press power button action. */ -public class LongPressPowerButtonPreferenceController extends TogglePreferenceController implements - LifecycleObserver { +public class LongPressPowerButtonPreferenceController extends TogglePreferenceController { private static final String POWER_BUTTON_LONG_PRESS_SETTING = Settings.Global.POWER_BUTTON_LONG_PRESS; - private static final Uri POWER_BUTTON_LONG_PRESS_SETTING_URI = - Settings.Global.getUriFor(POWER_BUTTON_LONG_PRESS_SETTING); private static final String KEY_CHORD_POWER_VOLUME_UP_SETTING = Settings.Global.KEY_CHORD_POWER_VOLUME_UP; - // Used for fallback to global actions if necessary. - @VisibleForTesting - static final String CARDS_AVAILABLE_KEY = - Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE; - @VisibleForTesting - static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED; + private static final String FOOTER_HINT_KEY = "power_menu_power_volume_up_hint"; + private static final String ASSIST_SWITCH_KEY = "gesture_power_menu_long_press_for_assist"; /** * Values used for long press power button behaviour when Assist setting is enabled. @@ -63,9 +48,9 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo * source of the value. */ @VisibleForTesting - static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1; + static final int LONG_PRESS_POWER_NO_ACTION = 0; @VisibleForTesting - static final int LONG_PRESS_POWER_SHUT_OFF = 2; + static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1; @VisibleForTesting static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; // Settings.Secure.ASSISTANT @@ -89,13 +74,18 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo * power menu, depending on their respective settings. */ private static final int POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE = - R.integer.config_longPressOnPowerBehavior; + com.android.internal.R.integer.config_longPressOnPowerBehavior; private static final int KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE = - R.integer.config_keyChordPowerVolumeUp; + com.android.internal.R.integer.config_keyChordPowerVolumeUp; - @Nullable - private SettingObserver mSettingsObserver; + @MonotonicNonNull + @VisibleForTesting + Preference mFooterHint; + + @MonotonicNonNull + @VisibleForTesting + Preference mAssistSwitch; public LongPressPowerButtonPreferenceController(Context context, String key) { super(context, key); @@ -104,26 +94,22 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); - mSettingsObserver = new SettingObserver(screen.findPreference(getPreferenceKey())); + mFooterHint = screen.findPreference(FOOTER_HINT_KEY); + mAssistSwitch = screen.findPreference(ASSIST_SWITCH_KEY); + refreshStateDisplay(); } - /** - * Called when the settings pages resumes. - */ - @OnLifecycleEvent(Lifecycle.Event.ON_RESUME) - public void onResume() { - if (mSettingsObserver != null) { - mSettingsObserver.register(); - } - } - - /** - * Called when the settings page pauses. - */ - @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE) - public void onPause() { - if (mSettingsObserver != null) { - mSettingsObserver.unregister(); + @Override + public CharSequence getSummary() { + final int powerButtonValue = getPowerButtonValue(); + if (powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) { + return mContext.getString(R.string.power_menu_summary_long_press_for_assist_enabled); + } else if (powerButtonValue == LONG_PRESS_POWER_GLOBAL_ACTIONS) { + return mContext.getString( + R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu); + } else { + return mContext.getString( + R.string.power_menu_summary_long_press_for_assist_disabled_no_action); } } @@ -136,10 +122,7 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo @Override public boolean isChecked() { - final int powerButtonValue = Settings.Global.getInt(mContext.getContentResolver(), - POWER_BUTTON_LONG_PRESS_SETTING, - mContext.getResources().getInteger(POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE)); - return powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE; + return getPowerButtonValue() == LONG_PRESS_POWER_ASSISTANT_VALUE; } @Override @@ -148,12 +131,48 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo // The key chord value is dependant on the long press setting and it always // toggled in tandem. POWER_BUTTON_LONG_PRESS_SETTING is always the source // of truth for both. - return setPowerVolumeChordValue(isChecked); + setPowerVolumeChordValue(isChecked); + refreshStateDisplay(); + return true; } return false; } + private void refreshStateDisplay() { + if (mAssistSwitch != null) { + mAssistSwitch.setSummary(getSummary()); + } + + if (mFooterHint != null) { + String footerHintText = mContext.getString(R.string.power_menu_power_volume_up_hint); + // If the device supports hush gesture, we need to notify the user where to find + // the setting. + if (mContext.getResources().getBoolean( + com.android.internal.R.bool.config_volumeHushGestureEnabled)) { + footerHintText = footerHintText + "\n\n" + mContext.getString( + R.string.power_menu_power_prevent_ringing_hint); + } + + mFooterHint.setSummary(footerHintText); + mFooterHint.setVisible(isPowerMenuKeyChordEnabled(mContext)); + } + } + + private int getPowerButtonValue() { + return Settings.Global.getInt(mContext.getContentResolver(), + POWER_BUTTON_LONG_PRESS_SETTING, + mContext.getResources().getInteger(POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE)); + } + + private static boolean isPowerMenuKeyChordEnabled(Context context) { + return Settings.Global.getInt(context.getContentResolver(), + KEY_CHORD_POWER_VOLUME_UP_SETTING, + context.getResources().getInteger( + com.android.internal.R.integer.config_keyChordPowerVolumeUp)) + == KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS; + } + private boolean setPowerLongPressValue(boolean isChecked) { if (isChecked) { return Settings.Global.putInt(mContext.getContentResolver(), @@ -162,14 +181,12 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo // We need to determine the right disabled value - we set it to device default // if it's different than Assist, otherwise we fallback to either global actions or power - //menu. + // menu. final int defaultPowerButtonValue = mContext.getResources().getInteger( POWER_BUTTON_LONG_PRESS_DEFAULT_VALUE_RESOURCE); if (defaultPowerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) { - final int fallbackValue = isCardsOrControlsAvailable() ? LONG_PRESS_POWER_GLOBAL_ACTIONS - : LONG_PRESS_POWER_SHUT_OFF; return Settings.Global.putInt(mContext.getContentResolver(), - POWER_BUTTON_LONG_PRESS_SETTING, fallbackValue); + POWER_BUTTON_LONG_PRESS_SETTING, LONG_PRESS_POWER_NO_ACTION); } return Settings.Global.putInt(mContext.getContentResolver(), @@ -187,53 +204,11 @@ public class LongPressPowerButtonPreferenceController extends TogglePreferenceCo KEY_CHORD_POWER_VOLUME_UP_SETTING, KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); } - // If the key chord defaults to mute toggle, we restore that setting if LPP option is - // disabled. Otherwise we default to no action. - boolean isMuteToggleKeyChordDefault = mContext.getResources().getInteger( - KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE) - == KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE; + // We restore key chord to the default value. + int keyChordDefaultValue = mContext.getResources().getInteger( + KEY_CHORD_POWER_VOLUME_UP_DEFAULT_VALUE_RESOURCE); return Settings.Global.putInt(mContext.getContentResolver(), - KEY_CHORD_POWER_VOLUME_UP_SETTING, isMuteToggleKeyChordDefault - ? KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE - : KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); - } - - /** - * Returns true if the global actions menu on power button click is enabled via any of the - * content options. - */ - private boolean isCardsOrControlsAvailable() { - final ContentResolver resolver = mContext.getContentResolver(); - final boolean cardsAvailable = Settings.Secure.getInt(resolver, CARDS_AVAILABLE_KEY, 0) - != 0; - final boolean controlsAvailable = mContext.getPackageManager().hasSystemFeature( - PackageManager.FEATURE_CONTROLS); - return cardsAvailable || controlsAvailable; - } - - private final class SettingObserver extends ContentObserver { - - private final Preference mPreference; - - SettingObserver(Preference preference) { - super(new Handler(Looper.getMainLooper())); - mPreference = preference; - } - - public void register() { - final ContentResolver cr = mContext.getContentResolver(); - cr.registerContentObserver(POWER_BUTTON_LONG_PRESS_SETTING_URI, false, this); - } - - public void unregister() { - final ContentResolver cr = mContext.getContentResolver(); - cr.unregisterContentObserver(this); - } - - @Override - public void onChange(boolean selfChange) { - updateState(mPreference); - } + KEY_CHORD_POWER_VOLUME_UP_SETTING, keyChordDefaultValue); } } diff --git a/src/com/android/settings/gestures/PowerMenuPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPreferenceController.java index 06937530a63..0d5f810d884 100644 --- a/src/com/android/settings/gestures/PowerMenuPreferenceController.java +++ b/src/com/android/settings/gestures/PowerMenuPreferenceController.java @@ -17,28 +17,54 @@ package com.android.settings.gestures; import android.content.Context; +import android.provider.Settings; +import com.android.internal.annotations.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; public class PowerMenuPreferenceController extends BasePreferenceController { + private static final String POWER_BUTTON_LONG_PRESS_SETTING = + Settings.Global.POWER_BUTTON_LONG_PRESS; + + @VisibleForTesting + static final int LONG_PRESS_POWER_GLOBAL_ACTIONS = 1; + @VisibleForTesting + static final int LONG_PRESS_POWER_ASSISTANT_VALUE = 5; + public PowerMenuPreferenceController(Context context, String key) { super(context, key); } @Override public CharSequence getSummary() { - return mContext.getText(R.string.power_menu_long_press_for_assist); + final int powerButtonValue = getPowerButtonLongPressValue(mContext); + if (powerButtonValue == LONG_PRESS_POWER_ASSISTANT_VALUE) { + return mContext.getText(R.string.power_menu_summary_long_press_for_assist_enabled); + } else if (powerButtonValue == LONG_PRESS_POWER_GLOBAL_ACTIONS) { + return mContext.getText( + R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu); + } else { + return mContext.getText( + R.string.power_menu_summary_long_press_for_assist_disabled_no_action); + } } @Override public int getAvailabilityStatus() { - return isAssistInvocationAvailable() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE; + return isAssistInvocationAvailable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } private boolean isAssistInvocationAvailable() { return mContext.getResources().getBoolean( com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable); } + + private static int getPowerButtonLongPressValue(Context context) { + return Settings.Global.getInt(context.getContentResolver(), + POWER_BUTTON_LONG_PRESS_SETTING, + context.getResources().getInteger( + com.android.internal.R.integer.config_longPressOnPowerBehavior)); + } } diff --git a/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java index 085e53d232e..053fa5a12d7 100644 --- a/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/LongPressPowerButtonPreferenceControllerTest.java @@ -18,20 +18,28 @@ package com.android.settings.gestures; import static com.google.common.truth.Truth.assertThat; +import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.Application; import android.content.res.Resources; import android.provider.Settings; +import androidx.annotation.StringRes; +import androidx.preference.Preference; +import androidx.test.core.app.ApplicationProvider; + +import com.android.settings.R; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.MockitoAnnotations; +import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; -import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class LongPressPowerButtonPreferenceControllerTest { @@ -46,14 +54,20 @@ public class LongPressPowerButtonPreferenceControllerTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); - mContext = spy(RuntimeEnvironment.application); + mContext = spy(ApplicationProvider.getApplicationContext()); mResources = mock(Resources.class); when(mContext.getResources()).thenReturn(mResources); + when(mResources.getString(anyInt())).thenAnswer((Answer) invocation -> { + int id = invocation.getArgument(0); + return getString(id); + }); when(mResources.getBoolean( com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable)) .thenReturn(true); mController = new LongPressPowerButtonPreferenceController(mContext, KEY_LONG_PRESS_POWER_BUTTON); + mController.mAssistSwitch = mock(Preference.class); + mController.mFooterHint = mock(Preference.class); } @Test @@ -74,6 +88,60 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(mController.isAvailable()).isFalse(); } + @Test + public void preferenceChecked_powerMenuHintTextShown() { + mController.onPreferenceChange(null, true); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + + @Test + public void preferenceUnchecked_keyChordEnabled_powerMenuHintTextShown() { + when(mResources.getInteger( + com.android.internal.R.integer.config_keyChordPowerVolumeUp)) + .thenReturn( + LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); + + mController.onPreferenceChange(null, false); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + @Test + public void preferenceChecked_hushGestureEnabled_powerMenuHintTextIncludesHushHint() { + when(mResources.getBoolean( + com.android.internal.R.bool.config_volumeHushGestureEnabled)) + .thenReturn(true); + + mController.onPreferenceChange(null, true); + + verify(mController.mFooterHint).setSummary( + getString( + R.string.power_menu_power_volume_up_hint) + "\n\n" + + getString( + R.string.power_menu_power_prevent_ringing_hint)); + verify(mController.mFooterHint).setVisible(true); + } + + + @Test + public void preferenceUnchecked_keyChordDisabled_powerMenuHintTextHidden() { + mController.onPreferenceChange(null, false); + when(mResources.getInteger( + com.android.internal.R.integer.config_keyChordPowerVolumeUp)) + .thenReturn( + LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + + verify(mController.mFooterHint).setVisible(false); + } + @Test public void preferenceChecked_longPressPowerSettingSetToAssistant() { mController.onPreferenceChange(null, true); @@ -84,21 +152,29 @@ public class LongPressPowerButtonPreferenceControllerTest { assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_GLOBAL_ACTIONS); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_enabled)); } @Test public void preferenceUnchecked_longPressPowerSettingSetToDefaultValue() { - // Value out of range chosen deliberately. when(mResources.getInteger( com.android.internal.R.integer.config_longPressOnPowerBehavior)) - .thenReturn(8); + .thenReturn( + LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS); mController.onPreferenceChange(null, false); + assertThat(Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8); + Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( + LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_disabled_with_power_menu)); } @Test @@ -110,9 +186,10 @@ public class LongPressPowerButtonPreferenceControllerTest { when(mResources.getInteger( com.android.internal.R.integer.config_keyChordPowerVolumeUp)) .thenReturn( - LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE); + LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE); mController.onPreferenceChange(null, false); + assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo(8); assertThat(Settings.Global.getInt(mContext.getContentResolver(), @@ -121,7 +198,7 @@ public class LongPressPowerButtonPreferenceControllerTest { } @Test - public void preferenceUnchecked_assistDefault_setShutOff() { + public void preferenceUnchecked_assistDefault_setNoAction() { // Value out of range chosen deliberately. when(mResources.getInteger( com.android.internal.R.integer.config_longPressOnPowerBehavior)) @@ -129,33 +206,19 @@ public class LongPressPowerButtonPreferenceControllerTest { LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); mController.onPreferenceChange(null, false); + assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( - LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_SHUT_OFF); + LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_NO_ACTION); assertThat(Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + verify(mController.mAssistSwitch).setSummary( + getString( + R.string.power_menu_summary_long_press_for_assist_disabled_no_action)); } - - @Test - public void preferenceUnchecked_assistDefaultGlobalActionsEnabled_setGlobalActions() { - // Value out of range chosen deliberately. - when(mResources.getInteger( - com.android.internal.R.integer.config_longPressOnPowerBehavior)) - .thenReturn( - LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_ASSISTANT_VALUE); - Settings.Secure.putInt(mContext.getContentResolver(), - LongPressPowerButtonPreferenceController.CARDS_AVAILABLE_KEY, 1); - Settings.Secure.putInt(mContext.getContentResolver(), - LongPressPowerButtonPreferenceController.CARDS_ENABLED_KEY, 1); - - mController.onPreferenceChange(null, false); - assertThat(Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.POWER_BUTTON_LONG_PRESS, -1)).isEqualTo( - LongPressPowerButtonPreferenceController.LONG_PRESS_POWER_GLOBAL_ACTIONS); - assertThat(Settings.Global.getInt(mContext.getContentResolver(), - Settings.Global.KEY_CHORD_POWER_VOLUME_UP, -1)).isEqualTo( - LongPressPowerButtonPreferenceController.KEY_CHORD_POWER_VOLUME_UP_NO_ACTION); + private String getString(@StringRes int id) { + return ApplicationProvider.getApplicationContext().getString(id); } } diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java index 811ed70f268..1a82a139922 100644 --- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java @@ -70,6 +70,6 @@ public class PowerMenuPreferenceControllerTest { .thenReturn(false); assertThat(mController.getAvailabilityStatus()).isEqualTo( - BasePreferenceController.CONDITIONALLY_UNAVAILABLE); + BasePreferenceController.UNSUPPORTED_ON_DEVICE); } }