Merge "Update Prevent Ringing setting to avoid conflict with long press power" into sc-dev
This commit is contained in:
@@ -22,6 +22,8 @@ import static android.provider.Settings.Secure.VOLUME_HUSH_OFF;
|
||||
import static android.provider.Settings.Secure.VOLUME_HUSH_VIBRATE;
|
||||
|
||||
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
|
||||
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -33,8 +35,10 @@ import android.content.res.Resources;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.widget.PrimarySwitchPreference;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@@ -50,6 +54,9 @@ public class PreventRingingParentPreferenceControllerTest {
|
||||
@Mock
|
||||
private Resources mResources;
|
||||
|
||||
@Mock
|
||||
PreferenceScreen mScreen;
|
||||
|
||||
private Context mContext;
|
||||
private PreventRingingParentPreferenceController mController;
|
||||
private Preference mPreference;
|
||||
@@ -58,21 +65,53 @@ public class PreventRingingParentPreferenceControllerTest {
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mResources.getInteger(
|
||||
com.android.internal.R.integer.config_keyChordPowerVolumeUp)).thenReturn(
|
||||
PreventRingingParentPreferenceController.KEY_CHORD_POWER_VOLUME_UP_MUTE_TOGGLE);
|
||||
mController = new PreventRingingParentPreferenceController(mContext, "test_key");
|
||||
mPreference = new Preference(mContext);
|
||||
mPreference = new PrimarySwitchPreference(mContext);
|
||||
when(mScreen.findPreference("test_key")).thenReturn(mPreference);
|
||||
mController.displayPreference(mScreen);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAvailable_configIsTrue_shouldAvailableUnSearchable() {
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
public void isAvailable_configIsTrueAndKeyChordMute_shouldAvailableUnSearchable() {
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAvailable_configIsFalse_shouldReturnFalse() {
|
||||
public void getAvailabilityStatus_configIsTrueAndKeyNotMute_shouldReturnDisabledDependent() {
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(true);
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
|
||||
.thenReturn(true);
|
||||
when(mResources.getInteger(
|
||||
com.android.internal.R.integer.config_keyChordPowerVolumeUp)).thenReturn(2);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_configIsTrueLppDisabled_shouldReturnUnsupportedOnDevice() {
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(true);
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
|
||||
.thenReturn(false);
|
||||
when(mResources.getInteger(
|
||||
com.android.internal.R.integer.config_keyChordPowerVolumeUp)).thenReturn(2);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_configIsFalse_shouldReturnFalse() {
|
||||
when(mContext.getResources()).thenReturn(mResources);
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_volumeHushGestureEnabled)).thenReturn(false);
|
||||
@@ -101,6 +140,21 @@ public class PreventRingingParentPreferenceControllerTest {
|
||||
R.string.switch_off_text));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_keyChordDisabled_summaryUpdated() {
|
||||
when(mResources.getInteger(
|
||||
com.android.internal.R.integer.config_keyChordPowerVolumeUp)).thenReturn(2);
|
||||
// Ensure that the state displays unchecked even if the underlying field is set.
|
||||
Settings.Secure.putInt(mContext.getContentResolver(), VOLUME_HUSH_GESTURE,
|
||||
VOLUME_HUSH_MUTE);
|
||||
mController.updateState(mPreference);
|
||||
|
||||
assertThat(mPreference.isEnabled()).isFalse();
|
||||
assertThat(mPreference.getSummary()).isEqualTo(mContext.getResources().getText(
|
||||
R.string.prevent_ringing_option_unavailable_lpp_summary));
|
||||
assertThat(mController.isChecked()).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isChecked_vibrate_shouldReturnTrue() {
|
||||
Settings.Secure.putInt(mContext.getContentResolver(), VOLUME_HUSH_GESTURE,
|
||||
|
Reference in New Issue
Block a user