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);
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;
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;
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());
+ }
}