Merge "Update Prevent Ringing setting to avoid conflict with long press power" into sc-dev

This commit is contained in:
Jernej Virag
2021-07-02 08:51:17 +00:00
committed by Android (Google) Code Review
3 changed files with 125 additions and 19 deletions

View File

@@ -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,