Merge "Replace some customized RadioButtonPreferences"
This commit is contained in:
@@ -1,144 +0,0 @@
|
||||
/*
|
||||
* 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);
|
||||
}
|
||||
}
|
@@ -16,9 +16,6 @@
|
||||
|
||||
package com.android.settings.notification.zen;
|
||||
|
||||
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.NotificationManager;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
@@ -37,7 +34,6 @@ import com.android.settings.R;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settings.notification.NotificationBackend;
|
||||
import com.android.settings.notification.app.ConversationListSettings;
|
||||
import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
@@ -186,13 +182,10 @@ public class ZenModePriorityConversationsPreferenceController
|
||||
}
|
||||
|
||||
private RadioButtonPreference makeRadioPreference(String key, int titleId) {
|
||||
RadioButtonPreferenceWithExtraWidget pref =
|
||||
new RadioButtonPreferenceWithExtraWidget(mPreferenceCategory.getContext());
|
||||
final RadioButtonPreference pref =
|
||||
new RadioButtonPreference(mPreferenceCategory.getContext());
|
||||
if (KEY_ALL.equals(key) || KEY_IMPORTANT.equals(key)) {
|
||||
pref.setExtraWidgetOnClickListener(mConversationSettingsWidgetClickListener);
|
||||
pref.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_SETTING);
|
||||
} else {
|
||||
pref.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_GONE);
|
||||
}
|
||||
pref.setKey(key);
|
||||
pref.setTitle(titleId);
|
||||
|
@@ -19,9 +19,6 @@ package com.android.settings.notification.zen;
|
||||
import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_CALLS;
|
||||
import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_MESSAGES;
|
||||
|
||||
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.NotificationManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -35,7 +32,6 @@ import androidx.preference.PreferenceCategory;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.widget.RadioButtonPreferenceWithExtraWidget;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
@@ -67,7 +63,7 @@ public class ZenModePrioritySendersPreferenceController
|
||||
private final boolean mIsMessages; // if this is false, then this preference is for calls
|
||||
|
||||
private PreferenceCategory mPreferenceCategory;
|
||||
private List<RadioButtonPreferenceWithExtraWidget> mRadioButtonPreferences = new ArrayList<>();
|
||||
private List<RadioButtonPreference> mRadioButtonPreferences = new ArrayList<>();
|
||||
|
||||
public ZenModePrioritySendersPreferenceController(Context context, String key,
|
||||
Lifecycle lifecycle, boolean isMessages) {
|
||||
@@ -114,7 +110,7 @@ public class ZenModePrioritySendersPreferenceController
|
||||
public void updateState(Preference preference) {
|
||||
final int currSetting = getPrioritySenders();
|
||||
|
||||
for (RadioButtonPreferenceWithExtraWidget pref : mRadioButtonPreferences) {
|
||||
for (RadioButtonPreference pref : mRadioButtonPreferences) {
|
||||
pref.setChecked(keyToSetting(pref.getKey()) == currSetting);
|
||||
}
|
||||
}
|
||||
@@ -126,7 +122,7 @@ public class ZenModePrioritySendersPreferenceController
|
||||
}
|
||||
|
||||
private void updateSummaries() {
|
||||
for (RadioButtonPreferenceWithExtraWidget pref : mRadioButtonPreferences) {
|
||||
for (RadioButtonPreference pref : mRadioButtonPreferences) {
|
||||
pref.setSummary(getSummary(pref.getKey()));
|
||||
}
|
||||
}
|
||||
@@ -169,9 +165,9 @@ public class ZenModePrioritySendersPreferenceController
|
||||
}
|
||||
}
|
||||
|
||||
private RadioButtonPreferenceWithExtraWidget makeRadioPreference(String key, int titleId) {
|
||||
RadioButtonPreferenceWithExtraWidget pref =
|
||||
new RadioButtonPreferenceWithExtraWidget(mPreferenceCategory.getContext());
|
||||
private RadioButtonPreference makeRadioPreference(String key, int titleId) {
|
||||
final RadioButtonPreference pref =
|
||||
new RadioButtonPreference(mPreferenceCategory.getContext());
|
||||
pref.setKey(key);
|
||||
pref.setTitle(titleId);
|
||||
pref.setOnClickListener(mRadioButtonClickListener);
|
||||
@@ -179,9 +175,6 @@ public class ZenModePrioritySendersPreferenceController
|
||||
View.OnClickListener widgetClickListener = getWidgetClickListener(key);
|
||||
if (widgetClickListener != null) {
|
||||
pref.setExtraWidgetOnClickListener(widgetClickListener);
|
||||
pref.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_SETTING);
|
||||
} else {
|
||||
pref.setExtraWidgetVisibility(EXTRA_WIDGET_VISIBILITY_GONE);
|
||||
}
|
||||
|
||||
mPreferenceCategory.addPreference(pref);
|
||||
|
@@ -24,12 +24,13 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenModeVisEffectsAllPreferenceController
|
||||
extends AbstractZenModePreferenceController
|
||||
implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener {
|
||||
implements RadioButtonPreference.OnClickListener {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF
|
||||
| Policy.SUPPRESSED_EFFECT_SCREEN_ON
|
||||
@@ -50,7 +51,7 @@ public class ZenModeVisEffectsAllPreferenceController
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
mPreference.setOnRadioButtonClickListener(this);
|
||||
mPreference.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -68,7 +69,7 @@ public class ZenModeVisEffectsAllPreferenceController
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRadioButtonClick(ZenCustomRadioButtonPreference p) {
|
||||
public void onRadioButtonClicked(RadioButtonPreference p) {
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
SettingsEnums.ACTION_ZEN_SOUND_AND_VIS_EFFECTS, true);
|
||||
mBackend.saveVisualEffectsPolicy(EFFECTS, true);
|
||||
|
@@ -26,11 +26,12 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenModeVisEffectsCustomPreferenceController
|
||||
extends AbstractZenModePreferenceController {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
protected static final int INTERRUPTIVE_EFFECTS =
|
||||
NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT
|
||||
@@ -53,12 +54,11 @@ public class ZenModeVisEffectsCustomPreferenceController
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnGearClickListener(p -> {
|
||||
mPreference.setExtraWidgetOnClickListener(p -> {
|
||||
launchCustomSettings();
|
||||
|
||||
});
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
launchCustomSettings();
|
||||
});
|
||||
}
|
||||
|
@@ -24,12 +24,13 @@ import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenModeVisEffectsNonePreferenceController
|
||||
extends AbstractZenModePreferenceController
|
||||
implements ZenCustomRadioButtonPreference.OnRadioButtonClickListener {
|
||||
implements RadioButtonPreference.OnClickListener {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
protected static final int EFFECTS = Policy.SUPPRESSED_EFFECT_SCREEN_OFF
|
||||
| Policy.SUPPRESSED_EFFECT_SCREEN_ON
|
||||
@@ -50,7 +51,7 @@ public class ZenModeVisEffectsNonePreferenceController
|
||||
public void displayPreference(PreferenceScreen screen) {
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
mPreference.setOnRadioButtonClickListener(this);
|
||||
mPreference.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,7 +68,7 @@ public class ZenModeVisEffectsNonePreferenceController
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRadioButtonClick(ZenCustomRadioButtonPreference preference) {
|
||||
public void onRadioButtonClicked(RadioButtonPreference preference) {
|
||||
mMetricsFeatureProvider.action(mContext,
|
||||
SettingsEnums.ACTION_ZEN_SOUND_ONLY, true);
|
||||
mBackend.saveVisualEffectsPolicy(EFFECTS, false);
|
||||
|
@@ -25,11 +25,12 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenRuleCustomPolicyPreferenceController extends
|
||||
AbstractZenCustomRulePreferenceController {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
public ZenRuleCustomPolicyPreferenceController(Context context, Lifecycle lifecycle,
|
||||
String key) {
|
||||
@@ -41,13 +42,12 @@ public class ZenRuleCustomPolicyPreferenceController extends
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnGearClickListener(p -> {
|
||||
mPreference.setExtraWidgetOnClickListener(p -> {
|
||||
setCustomPolicy();
|
||||
launchCustomSettings();
|
||||
|
||||
});
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
setCustomPolicy();
|
||||
launchCustomSettings();
|
||||
});
|
||||
|
@@ -26,11 +26,12 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenRuleDefaultPolicyPreferenceController extends
|
||||
AbstractZenCustomRulePreferenceController implements PreferenceControllerMixin {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
public ZenRuleDefaultPolicyPreferenceController(Context context, Lifecycle lifecycle,
|
||||
String key) {
|
||||
@@ -42,7 +43,7 @@ public class ZenRuleDefaultPolicyPreferenceController extends
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
mRule.setZenPolicy(null);
|
||||
mBackend.updateZenRule(mId, mRule);
|
||||
});
|
||||
|
@@ -27,11 +27,12 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenRuleVisEffectsAllPreferenceController extends
|
||||
AbstractZenCustomRulePreferenceController implements PreferenceControllerMixin {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
public ZenRuleVisEffectsAllPreferenceController(Context context, Lifecycle lifecycle,
|
||||
String key) {
|
||||
@@ -43,7 +44,7 @@ public class ZenRuleVisEffectsAllPreferenceController extends
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ZEN_SOUND_ONLY,
|
||||
Pair.create(MetricsProto.MetricsEvent.FIELD_ZEN_RULE_ID, mId));
|
||||
mRule.setZenPolicy(new ZenPolicy.Builder(mRule.getZenPolicy())
|
||||
|
@@ -27,11 +27,12 @@ import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.core.SubSettingLauncher;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenRuleVisEffectsCustomPreferenceController extends
|
||||
AbstractZenCustomRulePreferenceController implements PreferenceControllerMixin {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
public ZenRuleVisEffectsCustomPreferenceController(Context context, Lifecycle lifecycle,
|
||||
String key) {
|
||||
@@ -43,12 +44,12 @@ public class ZenRuleVisEffectsCustomPreferenceController extends
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnGearClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
launchCustomSettings();
|
||||
|
||||
});
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setExtraWidgetOnClickListener(p -> {
|
||||
launchCustomSettings();
|
||||
});
|
||||
}
|
||||
|
@@ -27,11 +27,12 @@ import androidx.preference.PreferenceScreen;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.widget.RadioButtonPreference;
|
||||
|
||||
public class ZenRuleVisEffectsNonePreferenceController extends
|
||||
AbstractZenCustomRulePreferenceController implements PreferenceControllerMixin {
|
||||
|
||||
private ZenCustomRadioButtonPreference mPreference;
|
||||
private RadioButtonPreference mPreference;
|
||||
|
||||
public ZenRuleVisEffectsNonePreferenceController(Context context, Lifecycle lifecycle,
|
||||
String key) {
|
||||
@@ -43,7 +44,7 @@ public class ZenRuleVisEffectsNonePreferenceController extends
|
||||
super.displayPreference(screen);
|
||||
mPreference = screen.findPreference(getPreferenceKey());
|
||||
|
||||
mPreference.setOnRadioButtonClickListener(p -> {
|
||||
mPreference.setOnClickListener(p -> {
|
||||
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ZEN_SOUND_AND_VIS_EFFECTS,
|
||||
Pair.create(MetricsProto.MetricsEvent.FIELD_ZEN_RULE_ID, mId));
|
||||
mRule.setZenPolicy(new ZenPolicy.Builder(mRule.getZenPolicy())
|
||||
|
Reference in New Issue
Block a user