Refactor AppPreference and AppSwitchPreference

- Move AppSwitchPreference
- Remove FeatureflagPreference summary

Bug: 176815722
Test: robotest
Change-Id: Id337097f237ac9ca6dfa01665df61b1258dc24f2
This commit is contained in:
Edgar Wang
2020-12-26 01:12:15 +08:00
parent a12003a9ac
commit fc02ce1c20
23 changed files with 23 additions and 84 deletions

View File

@@ -30,7 +30,7 @@ import androidx.preference.Preference.OnPreferenceClickListener;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
public class AccountTypePreference extends AppPreference implements OnPreferenceClickListener { public class AccountTypePreference extends AppPreference implements OnPreferenceClickListener {
/** /**

View File

@@ -22,7 +22,7 @@ import android.text.TextUtils;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.util.Log; import android.util.Log;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
public class ProcessStatsPreference extends AppPreference { public class ProcessStatsPreference extends AppPreference {
static final String TAG = "ProcessStatsPreference"; static final String TAG = "ProcessStatsPreference";

View File

@@ -21,14 +21,11 @@ import android.content.pm.PackageManager;
import android.os.UserHandle; import android.os.UserHandle;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.IconDrawableFactory; import android.util.IconDrawableFactory;
import android.view.View;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
public class DomainAppPreference extends AppPreference { public class DomainAppPreference extends AppPreference {

View File

@@ -46,11 +46,11 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.AppSwitchPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.widget.AppSwitchPreference;
import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.FooterPreference;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;

View File

@@ -41,7 +41,7 @@ import com.android.settings.applications.AppInfoBase;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.EmptyTextSettings; import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -42,7 +42,7 @@ import com.android.settings.applications.AppInfoBase;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.EmptyTextSettings; import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.text.Collator; import java.text.Collator;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -24,7 +24,7 @@ import com.android.settingslib.AppItem;
import com.android.settingslib.net.UidDetail; import com.android.settingslib.net.UidDetail;
import com.android.settingslib.net.UidDetailProvider; import com.android.settingslib.net.UidDetailProvider;
import com.android.settingslib.utils.ThreadUtils; import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.text.NumberFormat; import java.text.NumberFormat;

View File

@@ -24,11 +24,11 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.applications.appinfo.AppInfoDashboardFragment; import com.android.settings.applications.appinfo.AppInfoDashboardFragment;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.widget.AppSwitchPreference;
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.ApplicationsState.AppEntry; import com.android.settingslib.applications.ApplicationsState.AppEntry;
import com.android.settingslib.widget.AppSwitchPreference;
public class UnrestrictedDataAccessPreference extends AppSwitchPreference implements public class UnrestrictedDataAccessPreference extends AppSwitchPreference implements
DataSaverBackend.Listener { DataSaverBackend.Listener {

View File

@@ -38,21 +38,16 @@ public class FeatureFlagPreference extends SwitchPreference {
} else { } else {
isFeatureEnabled = FeatureFlagUtils.isEnabled(context, key); isFeatureEnabled = FeatureFlagUtils.isEnabled(context, key);
} }
setCheckedInternal(isFeatureEnabled); super.setChecked(isFeatureEnabled);
} }
@Override @Override
public void setChecked(boolean isChecked) { public void setChecked(boolean isChecked) {
setCheckedInternal(isChecked); super.setChecked(isChecked);
if (mIsPersistent) { if (mIsPersistent) {
FeatureFlagPersistent.setEnabled(getContext(), mKey, isChecked); FeatureFlagPersistent.setEnabled(getContext(), mKey, isChecked);
} else { } else {
FeatureFlagUtils.setEnabled(getContext(), mKey, isChecked); FeatureFlagUtils.setEnabled(getContext(), mKey, isChecked);
} }
} }
private void setCheckedInternal(boolean isChecked) {
super.setChecked(isChecked);
setSummary(Boolean.toString(isChecked));
}
} }

View File

@@ -28,7 +28,7 @@ import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.applications.UserAppInfo; import com.android.settings.applications.UserAppInfo;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.List; import java.util.List;

View File

@@ -25,7 +25,7 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
/** /**
* Custom preference for displaying battery usage info as a bar and an icon on * Custom preference for displaying battery usage info as a bar and an icon on

View File

@@ -27,7 +27,7 @@ import com.android.settings.widget.RestrictedAppPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.location.InjectedSetting; import com.android.settingslib.location.InjectedSetting;
import com.android.settingslib.location.SettingsInjector; import com.android.settingslib.location.SettingsInjector;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
/** /**
* Adds the preferences specified by the {@link InjectedSetting} objects to a preference group. * Adds the preferences specified by the {@link InjectedSetting} objects to a preference group.

View File

@@ -29,7 +29,7 @@ import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
import com.android.settingslib.location.RecentLocationApps; import com.android.settingslib.location.RecentLocationApps;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -27,7 +27,7 @@ import androidx.preference.PreferenceScreen;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.dashboard.profileselector.ProfileSelectFragment; import com.android.settings.dashboard.profileselector.ProfileSelectFragment;
import com.android.settingslib.location.RecentLocationApps; import com.android.settingslib.location.RecentLocationApps;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -47,7 +47,7 @@ import com.android.settings.utils.ManagedServiceSettings;
import com.android.settings.widget.EmptyTextSettings; import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.applications.ServiceListing; import com.android.settingslib.applications.ServiceListing;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.List; import java.util.List;

View File

@@ -37,7 +37,7 @@ import com.android.settings.applications.specialaccess.zenaccess.ZenAccessSettin
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.EmptyTextSettings; import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;

View File

@@ -37,7 +37,7 @@ import com.android.settings.notification.NotificationBackend;
import com.android.settings.notification.app.AppChannelsBypassingDndSettings; import com.android.settings.notification.app.AppChannelsBypassingDndSettings;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -37,7 +37,7 @@ import com.android.settings.notification.NotificationBackend;
import com.android.settings.notification.app.AppChannelsBypassingDndSettings; import com.android.settings.notification.app.AppChannelsBypassingDndSettings;
import com.android.settingslib.applications.ApplicationsState; import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@@ -34,7 +34,6 @@ import android.print.PrintJobInfo;
import android.print.PrintManager; import android.print.PrintManager;
import android.print.PrintManager.PrintJobStateChangeListener; import android.print.PrintManager.PrintJobStateChangeListener;
import android.printservice.PrintServiceInfo; import android.printservice.PrintServiceInfo;
import android.provider.SearchIndexableResource;
import android.provider.Settings; import android.provider.Settings;
import android.text.TextUtils; import android.text.TextUtils;
import android.text.format.DateUtils; import android.text.format.DateUtils;
@@ -56,7 +55,7 @@ import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.Indexable; import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
import java.text.DateFormat; import java.text.DateFormat;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -40,9 +40,9 @@ import androidx.preference.SwitchPreference;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.Utils; import com.android.settings.Utils;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.widget.AppSwitchPreference;
import com.android.settings.widget.EmptyTextSettings; import com.android.settings.widget.EmptyTextSettings;
import com.android.settingslib.applications.ServiceListing; import com.android.settingslib.applications.ServiceListing;
import com.android.settingslib.widget.AppSwitchPreference;
import java.util.List; import java.util.List;

View File

@@ -1,43 +0,0 @@
/*
* Copyright (C) 2017 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.widget;
import android.content.Context;
import android.view.View;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
public class AppSwitchPreference extends SwitchPreference {
public AppSwitchPreference(Context context) {
super(context);
setLayoutResource(R.layout.preference_app);
}
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
final View switchView = holder.findViewById(android.R.id.switch_widget);
if (switchView != null) {
final View rootView = switchView.getRootView();
rootView.setFilterTouchesWhenObscured(true);
}
}
}

View File

@@ -28,7 +28,7 @@ import androidx.preference.PreferenceViewHolder;
import com.android.settings.R; import com.android.settings.R;
import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedPreferenceHelper; import com.android.settingslib.RestrictedPreferenceHelper;
import com.android.settingslib.widget.apppreference.AppPreference; import com.android.settingslib.widget.AppPreference;
/** /**
* {@link AppPreference} that implements user restriction utilities using * {@link AppPreference} that implements user restriction utilities using

View File

@@ -41,17 +41,8 @@ public class FeatureFlagPreferenceTest {
} }
@Test @Test
public void constructor_shouldSetTitleAndSummary() { public void constructor_shouldSetTitle() {
assertThat(mPreference.getTitle()).isEqualTo(KEY); assertThat(mPreference.getTitle()).isEqualTo(KEY);
assertThat(mPreference.getSummary()).isEqualTo("false");
assertThat(mPreference.isChecked()).isFalse(); assertThat(mPreference.isChecked()).isFalse();
} }
@Test
public void toggle_shouldUpdateSummary() {
mPreference.setChecked(true);
assertThat(mPreference.getSummary()).isEqualTo("true");
assertThat(mPreference.isChecked()).isTrue();
}
} }