SettingsMainSwitchPreference should display the restricted icon
if it is restricted. - Use the RestrictedPreferenceHelper to check the restricted state. Fix: 179245126 Test: rebotest and see the UI Change-Id: I3c0e3bd0f3596d6fa548b6f8f10e4d12e7e50c9a
This commit is contained in:
@@ -16,10 +16,13 @@
|
||||
|
||||
package com.android.settings.widget;
|
||||
|
||||
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.widget.Switch;
|
||||
|
||||
import androidx.core.content.res.TypedArrayUtils;
|
||||
import androidx.preference.PreferenceViewHolder;
|
||||
@@ -27,7 +30,7 @@ import androidx.preference.TwoStatePreference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.widget.SettingsMainSwitchBar.OnBeforeCheckedChangeListener;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
import com.android.settingslib.RestrictedPreferenceHelper;
|
||||
import com.android.settingslib.widget.OnMainSwitchChangeListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -38,7 +41,9 @@ import java.util.List;
|
||||
* This component is used as the main switch of the page
|
||||
* to enable or disable the prefereces on the page.
|
||||
*/
|
||||
public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
public class SettingsMainSwitchPreference extends TwoStatePreference implements
|
||||
OnMainSwitchChangeListener {
|
||||
|
||||
private final List<OnBeforeCheckedChangeListener> mBeforeCheckedChangeListeners =
|
||||
new ArrayList<>();
|
||||
private final List<OnMainSwitchChangeListener> mSwitchChangeListeners = new ArrayList<>();
|
||||
@@ -46,8 +51,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
private SettingsMainSwitchBar mMainSwitchBar;
|
||||
private CharSequence mTitle;
|
||||
private boolean mIsVisible;
|
||||
|
||||
private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin;
|
||||
private EnforcedAdmin mEnforcedAdmin;
|
||||
private RestrictedPreferenceHelper mRestrictedHelper;
|
||||
|
||||
public SettingsMainSwitchPreference(Context context) {
|
||||
super(context);
|
||||
@@ -78,8 +83,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
holder.setDividerAllowedBelow(false);
|
||||
|
||||
mMainSwitchBar = (SettingsMainSwitchBar) holder.findViewById(R.id.main_switch_bar);
|
||||
|
||||
mMainSwitchBar.show();
|
||||
mEnforcedAdmin = mRestrictedHelper.checkRestrictionEnforced();
|
||||
updateStatus(isChecked());
|
||||
registerListenerToSwitchBar();
|
||||
|
||||
@@ -90,6 +95,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
|
||||
private void init(Context context, AttributeSet attrs) {
|
||||
setLayoutResource(R.layout.preference_widget_main_switch);
|
||||
mSwitchChangeListeners.add(this);
|
||||
mIsVisible = true;
|
||||
|
||||
if (attrs != null) {
|
||||
@@ -103,6 +109,8 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
setTitle(title.toString());
|
||||
}
|
||||
a.recycle();
|
||||
|
||||
mRestrictedHelper = new RestrictedPreferenceHelper(context, this, attrs);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,13 +137,17 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwitchChanged(Switch switchView, boolean isChecked) {
|
||||
super.setChecked(isChecked);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the switch status of preference
|
||||
*/
|
||||
public void updateStatus(boolean checked) {
|
||||
setChecked(checked);
|
||||
if (mMainSwitchBar != null) {
|
||||
mMainSwitchBar.setChecked(checked);
|
||||
mMainSwitchBar.setTitle(mTitle);
|
||||
mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
|
||||
mMainSwitchBar.show();
|
||||
@@ -230,7 +242,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
|
||||
* Otherwise, calls setEnabled which will enables the entire view including
|
||||
* the text and switch.
|
||||
*/
|
||||
public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) {
|
||||
public void setDisabledByAdmin(EnforcedAdmin admin) {
|
||||
mEnforcedAdmin = admin;
|
||||
if (mMainSwitchBar != null) {
|
||||
mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
|
||||
|
Reference in New Issue
Block a user