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());
|
||||
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);
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user