Loading res/xml/zen_mode_custom_rule_settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -22,11 +22,11 @@ <PreferenceCategory android:key="zen_custom_rule_category"> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom_rule_setting_default" android:title="@string/zen_mode_custom_behavior_summary_default"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom_rule_setting" android:title="@string/zen_mode_custom_behavior_summary" /> </PreferenceCategory> Loading res/xml/zen_mode_restrict_notifications_settings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -23,19 +23,19 @@ <PreferenceCategory android:key="restrict_category" android:title="@string/zen_mode_restrict_notifications_category"> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_mute_notifications" android:title="@string/zen_mode_restrict_notifications_mute" android:summary="@string/zen_mode_restrict_notifications_mute_summary" settings:searchable="false"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_hide_notifications" android:title="@string/zen_mode_restrict_notifications_hide" android:summary="@string/zen_mode_restrict_notifications_hide_summary" settings:searchable="false"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom" android:title="@string/zen_mode_restrict_notifications_custom" settings:searchable="false"/> Loading src/com/android/settings/display/ScreenTimeoutSettings.java +3 −3 Original line number Diff line number Diff line Loading @@ -37,13 +37,13 @@ import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.widget.CandidateInfo; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.RadioButtonPreference; import com.google.common.annotations.VisibleForTesting; Loading Loading @@ -152,8 +152,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements } for (CandidateInfo info : candidateList) { RadioButtonPreferenceWithExtraWidget pref = new RadioButtonPreferenceWithExtraWidget(getPrefContext()); RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference(pref, info.getKey(), info, defaultKey); screen.addPreference(pref); } Loading src/com/android/settings/gestures/SystemNavigationGestureSettings.java +4 −13 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVE import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_GONE; import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_SETTING; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; Loading @@ -49,7 +46,6 @@ import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.utils.CandidateInfoExtra; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget; import com.android.settings.widget.VideoPreference; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.CandidateInfo; Loading Loading @@ -119,8 +115,8 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i return; } for (CandidateInfo info : candidateList) { RadioButtonPreferenceWithExtraWidget pref = new RadioButtonPreferenceWithExtraWidget(getPrefContext()); RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference(pref, info.getKey(), info, defaultKey); bindPreferenceExtra(pref, info.getKey(), info, defaultKey, systemDefaultKey); screen.addPreference(pref); Loading @@ -131,20 +127,15 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i @Override public void bindPreferenceExtra(RadioButtonPreference pref, String key, CandidateInfo info, String defaultKey, String systemDefaultKey) { if (!(info instanceof CandidateInfoExtra) || !(pref instanceof RadioButtonPreferenceWithExtraWidget)) { if (!(info instanceof CandidateInfoExtra)) { return; } pref.setSummary(((CandidateInfoExtra) info).loadSummary()); RadioButtonPreferenceWithExtraWidget p = (RadioButtonPreferenceWithExtraWidget) pref; if (info.getKey() == KEY_SYSTEM_NAV_GESTURAL) { p.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_SETTING); p.setExtraWidgetOnClickListener((v) -> startActivity(new Intent( pref.setExtraWidgetOnClickListener((v) -> startActivity(new Intent( GestureNavigationSettingsFragment.GESTURE_NAVIGATION_SETTINGS))); } else { p.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_GONE); } } Loading src/com/android/settings/notification/zen/ZenCustomRadioButtonPreference.javadeleted 100644 → 0 +0 −144 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.notification.zen; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.RadioButton; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; import com.android.settingslib.TwoTargetPreference; /** * A radio button preference with a divider and a settings icon that links to another screen. */ public class ZenCustomRadioButtonPreference extends TwoTargetPreference implements View.OnClickListener { private RadioButton mButton; private boolean mChecked; private OnGearClickListener mOnGearClickListener; private OnRadioButtonClickListener mOnRadioButtonClickListener; public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs) { super(context, attrs); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context) { super(context); setLayoutResource(R.layout.preference_two_target_radio); } @Override protected int getSecondTargetResId() { return R.layout.preference_widget_gear; } public void setOnGearClickListener(OnGearClickListener l) { mOnGearClickListener = l; notifyChanged(); } public void setOnRadioButtonClickListener(OnRadioButtonClickListener l) { mOnRadioButtonClickListener = l; notifyChanged(); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); View buttonFrame = holder.findViewById(R.id.checkbox_frame); if (buttonFrame != null) { buttonFrame.setOnClickListener(this); } mButton = (RadioButton) holder.findViewById(android.R.id.checkbox); if (mButton != null) { mButton.setChecked(mChecked); } final View gear = holder.findViewById(android.R.id.widget_frame); final View divider = holder.findViewById(R.id.two_target_divider); if (mOnGearClickListener != null) { divider.setVisibility(View.VISIBLE); gear.setVisibility(View.VISIBLE); gear.setOnClickListener(this); } else { divider.setVisibility(View.GONE); gear.setVisibility(View.GONE); gear.setOnClickListener(null); } } public boolean isChecked() { return mButton != null && mChecked; } public void setChecked(boolean checked) { mChecked = checked; if (mButton != null) { mButton.setChecked(checked); } } public RadioButton getRadioButton() { return mButton; } @Override public void onClick() { if (mOnRadioButtonClickListener != null) { mOnRadioButtonClickListener.onRadioButtonClick(this); } } @Override public void onClick(View v) { if (v.getId() == android.R.id.widget_frame) { if (mOnGearClickListener != null) { mOnGearClickListener.onGearClick(this); } } else if (v.getId() == R.id.checkbox_frame) { if (mOnRadioButtonClickListener != null) { mOnRadioButtonClickListener.onRadioButtonClick(this); } } } public interface OnGearClickListener { void onGearClick(ZenCustomRadioButtonPreference p); } public interface OnRadioButtonClickListener { void onRadioButtonClick(ZenCustomRadioButtonPreference p); } } Loading
res/xml/zen_mode_custom_rule_settings.xml +2 −2 Original line number Diff line number Diff line Loading @@ -22,11 +22,11 @@ <PreferenceCategory android:key="zen_custom_rule_category"> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom_rule_setting_default" android:title="@string/zen_mode_custom_behavior_summary_default"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom_rule_setting" android:title="@string/zen_mode_custom_behavior_summary" /> </PreferenceCategory> Loading
res/xml/zen_mode_restrict_notifications_settings.xml +3 −3 Original line number Diff line number Diff line Loading @@ -23,19 +23,19 @@ <PreferenceCategory android:key="restrict_category" android:title="@string/zen_mode_restrict_notifications_category"> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_mute_notifications" android:title="@string/zen_mode_restrict_notifications_mute" android:summary="@string/zen_mode_restrict_notifications_mute_summary" settings:searchable="false"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_hide_notifications" android:title="@string/zen_mode_restrict_notifications_hide" android:summary="@string/zen_mode_restrict_notifications_hide_summary" settings:searchable="false"/> <com.android.settings.notification.zen.ZenCustomRadioButtonPreference <com.android.settingslib.widget.RadioButtonPreference android:key="zen_custom" android:title="@string/zen_mode_restrict_notifications_custom" settings:searchable="false"/> Loading
src/com/android/settings/display/ScreenTimeoutSettings.java +3 −3 Original line number Diff line number Diff line Loading @@ -37,13 +37,13 @@ import com.android.settings.search.actionbar.SearchMenuController; import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexableRaw; import com.android.settingslib.widget.CandidateInfo; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.RadioButtonPreference; import com.google.common.annotations.VisibleForTesting; Loading Loading @@ -152,8 +152,8 @@ public class ScreenTimeoutSettings extends RadioButtonPickerFragment implements } for (CandidateInfo info : candidateList) { RadioButtonPreferenceWithExtraWidget pref = new RadioButtonPreferenceWithExtraWidget(getPrefContext()); RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference(pref, info.getKey(), info, defaultKey); screen.addPreference(pref); } Loading
src/com/android/settings/gestures/SystemNavigationGestureSettings.java +4 −13 Original line number Diff line number Diff line Loading @@ -21,9 +21,6 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVE import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL_OVERLAY; import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_GONE; import static com.android.settings.widget.RadioButtonPreferenceWithExtraWidget.EXTRA_WIDGET_VISIBILITY_SETTING; import android.app.settings.SettingsEnums; import android.content.Context; import android.content.Intent; Loading @@ -49,7 +46,6 @@ import com.android.settings.support.actionbar.HelpMenuController; import com.android.settings.support.actionbar.HelpResourceProvider; import com.android.settings.utils.CandidateInfoExtra; import com.android.settings.widget.RadioButtonPickerFragment; import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget; import com.android.settings.widget.VideoPreference; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.widget.CandidateInfo; Loading Loading @@ -119,8 +115,8 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i return; } for (CandidateInfo info : candidateList) { RadioButtonPreferenceWithExtraWidget pref = new RadioButtonPreferenceWithExtraWidget(getPrefContext()); RadioButtonPreference pref = new RadioButtonPreference(getPrefContext()); bindPreference(pref, info.getKey(), info, defaultKey); bindPreferenceExtra(pref, info.getKey(), info, defaultKey, systemDefaultKey); screen.addPreference(pref); Loading @@ -131,20 +127,15 @@ public class SystemNavigationGestureSettings extends RadioButtonPickerFragment i @Override public void bindPreferenceExtra(RadioButtonPreference pref, String key, CandidateInfo info, String defaultKey, String systemDefaultKey) { if (!(info instanceof CandidateInfoExtra) || !(pref instanceof RadioButtonPreferenceWithExtraWidget)) { if (!(info instanceof CandidateInfoExtra)) { return; } pref.setSummary(((CandidateInfoExtra) info).loadSummary()); RadioButtonPreferenceWithExtraWidget p = (RadioButtonPreferenceWithExtraWidget) pref; if (info.getKey() == KEY_SYSTEM_NAV_GESTURAL) { p.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_SETTING); p.setExtraWidgetOnClickListener((v) -> startActivity(new Intent( pref.setExtraWidgetOnClickListener((v) -> startActivity(new Intent( GestureNavigationSettingsFragment.GESTURE_NAVIGATION_SETTINGS))); } else { p.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_GONE); } } Loading
src/com/android/settings/notification/zen/ZenCustomRadioButtonPreference.javadeleted 100644 → 0 +0 −144 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.settings.notification.zen; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.RadioButton; import androidx.preference.PreferenceViewHolder; import com.android.settings.R; import com.android.settingslib.TwoTargetPreference; /** * A radio button preference with a divider and a settings icon that links to another screen. */ public class ZenCustomRadioButtonPreference extends TwoTargetPreference implements View.OnClickListener { private RadioButton mButton; private boolean mChecked; private OnGearClickListener mOnGearClickListener; private OnRadioButtonClickListener mOnRadioButtonClickListener; public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context, AttributeSet attrs) { super(context, attrs); setLayoutResource(R.layout.preference_two_target_radio); } public ZenCustomRadioButtonPreference(Context context) { super(context); setLayoutResource(R.layout.preference_two_target_radio); } @Override protected int getSecondTargetResId() { return R.layout.preference_widget_gear; } public void setOnGearClickListener(OnGearClickListener l) { mOnGearClickListener = l; notifyChanged(); } public void setOnRadioButtonClickListener(OnRadioButtonClickListener l) { mOnRadioButtonClickListener = l; notifyChanged(); } @Override public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); View buttonFrame = holder.findViewById(R.id.checkbox_frame); if (buttonFrame != null) { buttonFrame.setOnClickListener(this); } mButton = (RadioButton) holder.findViewById(android.R.id.checkbox); if (mButton != null) { mButton.setChecked(mChecked); } final View gear = holder.findViewById(android.R.id.widget_frame); final View divider = holder.findViewById(R.id.two_target_divider); if (mOnGearClickListener != null) { divider.setVisibility(View.VISIBLE); gear.setVisibility(View.VISIBLE); gear.setOnClickListener(this); } else { divider.setVisibility(View.GONE); gear.setVisibility(View.GONE); gear.setOnClickListener(null); } } public boolean isChecked() { return mButton != null && mChecked; } public void setChecked(boolean checked) { mChecked = checked; if (mButton != null) { mButton.setChecked(checked); } } public RadioButton getRadioButton() { return mButton; } @Override public void onClick() { if (mOnRadioButtonClickListener != null) { mOnRadioButtonClickListener.onRadioButtonClick(this); } } @Override public void onClick(View v) { if (v.getId() == android.R.id.widget_frame) { if (mOnGearClickListener != null) { mOnGearClickListener.onGearClick(this); } } else if (v.getId() == R.id.checkbox_frame) { if (mOnRadioButtonClickListener != null) { mOnRadioButtonClickListener.onRadioButtonClick(this); } } } public interface OnGearClickListener { void onGearClick(ZenCustomRadioButtonPreference p); } public interface OnRadioButtonClickListener { void onRadioButtonClick(ZenCustomRadioButtonPreference p); } }