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:
@@ -61,6 +61,17 @@ public class PreventRingingSwitchPreferenceController extends AbstractPreference
|
|||||||
LayoutPreference pref = screen.findPreference(getPreferenceKey());
|
LayoutPreference pref = screen.findPreference(getPreferenceKey());
|
||||||
if (pref != null) {
|
if (pref != null) {
|
||||||
mSettingObserver = new SettingObserver(pref);
|
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);
|
mSwitch = pref.findViewById(R.id.switch_bar);
|
||||||
if (mSwitch != null) {
|
if (mSwitch != null) {
|
||||||
mSwitch.addOnSwitchChangeListener(this);
|
mSwitch.addOnSwitchChangeListener(this);
|
||||||
|
@@ -18,6 +18,7 @@ package com.android.settings.gestures;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
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.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
@@ -29,8 +30,10 @@ import android.content.res.Resources;
|
|||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.widget.SwitchBar;
|
import com.android.settings.widget.SwitchBar;
|
||||||
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -95,4 +98,16 @@ public class PreventRingingSwitchPreferenceControllerTest {
|
|||||||
mController.updateState(mPreference);
|
mController.updateState(mPreference);
|
||||||
verify(mController.mSwitch, times(1)).setChecked(true);
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user