Make PreventRingingSwitch preference clickable

- Talk back says the preference is clickable

Test: make ROBOTEST_FILTER=PreventRingingSwitchPreferenceControllerTest RunSettingsRoboTests -j40
Bug: 124827588
Change-Id: Ia409bbc6516f6aa11975726691131f1fad1518fd
This commit is contained in:
Beverly
2019-02-21 10:53:48 -05:00
parent ba9af60132
commit 986f2ecc55
2 changed files with 26 additions and 0 deletions

View File

@@ -61,6 +61,17 @@ public class PreventRingingSwitchPreferenceController extends AbstractPreference
LayoutPreference pref = screen.findPreference(getPreferenceKey());
if (pref != null) {
mSettingObserver = new SettingObserver(pref);
pref.setOnPreferenceClickListener(preference -> {
int preventRinging = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.VOLUME_HUSH_GESTURE,
Settings.Secure.VOLUME_HUSH_VIBRATE);
boolean isChecked = preventRinging != Settings.Secure.VOLUME_HUSH_OFF;
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.VOLUME_HUSH_GESTURE, isChecked
? Settings.Secure.VOLUME_HUSH_OFF
: Settings.Secure.VOLUME_HUSH_VIBRATE);
return true;
});
mSwitch = pref.findViewById(R.id.switch_bar);
if (mSwitch != null) {
mSwitch.addOnSwitchChangeListener(this);

View File

@@ -18,6 +18,7 @@ package com.android.settings.gestures;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -29,8 +30,10 @@ import android.content.res.Resources;
import android.provider.Settings;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.widget.LayoutPreference;
import org.junit.Before;
import org.junit.Test;
@@ -95,4 +98,16 @@ public class PreventRingingSwitchPreferenceControllerTest {
mController.updateState(mPreference);
verify(mController.mSwitch, times(1)).setChecked(true);
}
@Test
public void testPreferenceClickListenerAttached() {
PreferenceScreen preferenceScreen = mock(PreferenceScreen.class);
LayoutPreference mLayoutPreference = mock(LayoutPreference.class);
when(preferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
mLayoutPreference);
mController.displayPreference(preferenceScreen);
verify(mLayoutPreference, times(1))
.setOnPreferenceClickListener(any());
}
}