From 6d7a8cced81683bdee8647d7478641c13aa22adb Mon Sep 17 00:00:00 2001 From: Edgar Wang Date: Mon, 15 Feb 2021 01:41:01 +0800 Subject: [PATCH] Remove RestrictedLockUtils dependency in MainSwitchPreference - Extract related things to SettingsMainSwitchBar Bug: 180226735 Test: robotest Change-Id: Ibb0e687519ef48f85f47028374437e00ac2adabd --- .../MainSwitchPreference/Android.bp | 1 - .../settingslib/widget/MainSwitchBar.java | 59 +------------------ .../widget/MainSwitchPreference.java | 17 ------ .../settingslib/widget/MainSwitchBarTest.java | 9 --- 4 files changed, 3 insertions(+), 83 deletions(-) diff --git a/packages/SettingsLib/MainSwitchPreference/Android.bp b/packages/SettingsLib/MainSwitchPreference/Android.bp index 1feec21e24e4d..7b7496ca650af 100644 --- a/packages/SettingsLib/MainSwitchPreference/Android.bp +++ b/packages/SettingsLib/MainSwitchPreference/Android.bp @@ -15,7 +15,6 @@ android_library { static_libs: [ "androidx.preference_preference", - "SettingsLibRestrictedLockUtils", ], sdk_version: "system_current", diff --git a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java index 1c9298ed60856..8d9a562fede7c 100644 --- a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java +++ b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchBar.java @@ -24,16 +24,12 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.CompoundButton; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Switch; import android.widget.TextView; -import androidx.annotation.VisibleForTesting; import androidx.core.content.res.TypedArrayUtils; -import com.android.settingslib.RestrictedLockUtils; - import java.util.ArrayList; import java.util.List; @@ -48,12 +44,8 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec private View mAboveDivider; private View mBelowDivider; - private TextView mTextView; - private ImageView mRestrictedIcon; - private Switch mSwitch; - - private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin; - private boolean mDisabledByAdmin; + protected TextView mTextView; + protected Switch mSwitch; public MainSwitchBar(Context context) { this(context, null); @@ -81,14 +73,6 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec addOnSwitchChangeListener((switchView, isChecked) -> setChecked(isChecked)); - mRestrictedIcon = findViewById(R.id.restricted_icon); - mRestrictedIcon.setOnClickListener((View v) -> { - if (mDisabledByAdmin) { - RestrictedLockUtils.sendShowAdminSupportDetailsIntent(context, mEnforcedAdmin); - onRestrictedIconClick(); - } - }); - setChecked(mSwitch.isChecked()); if (attrs != null) { @@ -110,7 +94,7 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec @Override public boolean performClick() { - return getDelegatingView().performClick(); + return mSwitch.performClick(); } /** @@ -188,52 +172,15 @@ public class MainSwitchBar extends LinearLayout implements CompoundButton.OnChec } } - /** - * If admin is not null, disables the text and switch but keeps the view clickable. - * Otherwise, calls setEnabled which will enables the entire view including - * the text and switch. - */ - public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) { - mEnforcedAdmin = admin; - if (admin != null) { - super.setEnabled(true); - mDisabledByAdmin = true; - mTextView.setEnabled(false); - mSwitch.setEnabled(false); - mSwitch.setVisibility(View.GONE); - mRestrictedIcon.setVisibility(View.VISIBLE); - } else { - mDisabledByAdmin = false; - mSwitch.setVisibility(View.VISIBLE); - mRestrictedIcon.setVisibility(View.GONE); - setEnabled(true); - } - } - /** * Enable or disable the text and switch. */ public void setEnabled(boolean enabled) { - if (enabled && mDisabledByAdmin) { - setDisabledByAdmin(null); - return; - } super.setEnabled(enabled); mTextView.setEnabled(enabled); mSwitch.setEnabled(enabled); } - /** - * Called by the restricted icon clicked. - */ - protected void onRestrictedIconClick() { - } - - @VisibleForTesting - View getDelegatingView() { - return mDisabledByAdmin ? mRestrictedIcon : mSwitch; - } - private void propagateChecked(boolean isChecked) { final int count = mSwitchChangeListeners.size(); for (int n = 0; n < count; n++) { diff --git a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchPreference.java b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchPreference.java index 35afec38dd3d8..ebeffcc3c3617 100644 --- a/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchPreference.java +++ b/packages/SettingsLib/MainSwitchPreference/src/com/android/settingslib/widget/MainSwitchPreference.java @@ -24,8 +24,6 @@ import androidx.core.content.res.TypedArrayUtils; import androidx.preference.PreferenceViewHolder; import androidx.preference.TwoStatePreference; -import com.android.settingslib.RestrictedLockUtils; - import java.util.ArrayList; import java.util.List; @@ -41,8 +39,6 @@ public class MainSwitchPreference extends TwoStatePreference { private MainSwitchBar mMainSwitchBar; private CharSequence mTitle; - private RestrictedLockUtils.EnforcedAdmin mEnforcedAdmin; - public MainSwitchPreference(Context context) { super(context); init(context, null); @@ -115,7 +111,6 @@ public class MainSwitchPreference extends TwoStatePreference { if (mMainSwitchBar != null) { mMainSwitchBar.setChecked(checked); mMainSwitchBar.setTitle(mTitle); - mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin); mMainSwitchBar.show(); } } @@ -142,18 +137,6 @@ public class MainSwitchPreference extends TwoStatePreference { } } - /** - * If admin is not null, disables the text and switch but keeps the view clickable. - * Otherwise, calls setEnabled which will enables the entire view including - * the text and switch. - */ - public void setDisabledByAdmin(RestrictedLockUtils.EnforcedAdmin admin) { - mEnforcedAdmin = admin; - if (mMainSwitchBar != null) { - mMainSwitchBar.setDisabledByAdmin(mEnforcedAdmin); - } - } - private void registerListenerToSwitchBar() { for (OnMainSwitchChangeListener listener : mSwitchChangeListeners) { mMainSwitchBar.addOnSwitchChangeListener(listener); diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java index 9347609aab4e0..a8077539b3a35 100644 --- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java +++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/widget/MainSwitchBarTest.java @@ -23,8 +23,6 @@ import android.view.View; import android.widget.Switch; import android.widget.TextView; -import com.android.settingslib.RestrictedLockUtils; - import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -80,11 +78,4 @@ public class MainSwitchBarTest { assertThat(mBar.getVisibility()).isEqualTo(View.GONE); } - - @Test - public void disabledByAdmin_shouldDelegateToRestrictedIcon() { - mBar.setDisabledByAdmin(new RestrictedLockUtils.EnforcedAdmin()); - - assertThat(mBar.getDelegatingView().getId()).isEqualTo(R.id.restricted_icon); - } }