From 22c078c8dea9ba1f33b6add9d9e6818d19c0c749 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Thu, 30 Aug 2018 14:16:13 -0700 Subject: [PATCH] Remove the deprecated class DataUsageBase. - and update all its subclass to extend DataUsageBaseFragment instead. Bug: 111751694 Test: make RunSettingsRoboTests Change-Id: Ic5720af43082d8b39642b6a539515f3f20d32694 --- .../settings/datausage/AppDataUsage.java | 14 ++- .../datausage/BillingCycleSettings.java | 13 ++- .../settings/datausage/DataUsageBase.java | 96 ------------------- .../settings/datausage/DataUsageList.java | 15 ++- .../settings/datausage/DataUsageListTest.java | 8 +- 5 files changed, 42 insertions(+), 104 deletions(-) delete mode 100644 src/com/android/settings/datausage/DataUsageBase.java diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java index ff89a11bb07..f460c574731 100644 --- a/src/com/android/settings/datausage/AppDataUsage.java +++ b/src/com/android/settings/datausage/AppDataUsage.java @@ -40,6 +40,7 @@ import androidx.annotation.VisibleForTesting; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; import androidx.preference.Preference; +import androidx.preference.Preference.OnPreferenceChangeListener; import androidx.preference.PreferenceCategory; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -55,7 +56,7 @@ import com.android.settingslib.net.ChartDataLoaderCompat; import com.android.settingslib.net.UidDetail; import com.android.settingslib.net.UidDetailProvider; -public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener, +public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceChangeListener, DataSaverBackend.Listener { private static final String TAG = "AppDataUsage"; @@ -137,7 +138,6 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen addUid(mAppItem.uids.keyAt(i)); } } - addPreferencesFromResource(R.xml.app_data_usage); mTotalUsage = findPreference(KEY_TOTAL_USAGE); mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE); @@ -258,6 +258,16 @@ public class AppDataUsage extends DataUsageBase implements Preference.OnPreferen return super.onPreferenceTreeClick(preference); } + @Override + protected int getPreferenceScreenResId() { + return R.xml.app_data_usage; + } + + @Override + protected String getLogTag() { + return TAG; + } + @VisibleForTesting void updatePrefs() { updatePrefs(getAppRestrictBackground(), getUnrestrictData()); diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java index de715723249..2d96fe92092 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -52,7 +52,7 @@ import java.util.ArrayList; import java.util.List; @SearchIndexable -public class BillingCycleSettings extends DataUsageBase implements +public class BillingCycleSettings extends DataUsageBaseFragment implements Preference.OnPreferenceChangeListener, DataUsageEditController { private static final String TAG = "BillingCycleSettings"; @@ -105,7 +105,6 @@ public class BillingCycleSettings extends DataUsageBase implements Bundle args = getArguments(); mNetworkTemplate = args.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE); - addPreferencesFromResource(R.xml.billing_cycle); mBillingCycle = findPreference(KEY_BILLING_CYCLE); mEnableDataWarning = (SwitchPreference) findPreference(KEY_SET_DATA_WARNING); mEnableDataWarning.setOnPreferenceChangeListener(this); @@ -191,6 +190,16 @@ public class BillingCycleSettings extends DataUsageBase implements return MetricsEvent.BILLING_CYCLE; } + @Override + protected int getPreferenceScreenResId() { + return R.xml.billing_cycle; + } + + @Override + protected String getLogTag() { + return TAG; + } + @VisibleForTesting void setPolicyLimitBytes(long limitBytes) { if (LOGD) Log.d(TAG, "setPolicyLimitBytes()"); diff --git a/src/com/android/settings/datausage/DataUsageBase.java b/src/com/android/settings/datausage/DataUsageBase.java deleted file mode 100644 index c5df0bb0795..00000000000 --- a/src/com/android/settings/datausage/DataUsageBase.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2016 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.datausage; - -import android.content.Context; -import android.net.INetworkStatsService; -import android.net.NetworkPolicy; -import android.net.NetworkPolicyManager; -import android.os.Bundle; -import android.os.INetworkManagementService; -import android.os.RemoteException; -import android.os.ServiceManager; -import android.os.UserManager; -import android.telephony.SubscriptionManager; -import android.telephony.TelephonyManager; -import android.util.Log; - -import com.android.settings.SettingsPreferenceFragment; -import com.android.settingslib.NetworkPolicyEditor; - -/** - * @deprecated please use {@link DataUsageBaseFragment} instead. - */ -@Deprecated -public abstract class DataUsageBase extends SettingsPreferenceFragment { - private static final String TAG = "DataUsageBase"; - private static final String ETHERNET = "ethernet"; - - protected final TemplatePreference.NetworkServices services = - new TemplatePreference.NetworkServices(); - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - final Context context = getActivity(); - - services.mNetworkService = INetworkManagementService.Stub.asInterface( - ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE)); - services.mStatsService = INetworkStatsService.Stub.asInterface( - ServiceManager.getService(Context.NETWORK_STATS_SERVICE)); - services.mPolicyManager = NetworkPolicyManager.from(context); - - services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager); - - services.mTelephonyManager = TelephonyManager.from(context); - services.mSubscriptionManager = SubscriptionManager.from(context); - services.mUserManager = UserManager.get(context); - } - - @Override - public void onResume() { - super.onResume(); - services.mPolicyEditor.read(); - } - - protected boolean isAdmin() { - return services.mUserManager.isAdminUser(); - } - - protected boolean isMobileDataAvailable(int subId) { - return services.mSubscriptionManager.getActiveSubscriptionInfo(subId) != null; - } - - protected boolean isNetworkPolicyModifiable(NetworkPolicy policy, int subId) { - return policy != null && isBandwidthControlEnabled() && services.mUserManager.isAdminUser() - && isDataEnabled(subId); - } - - private boolean isDataEnabled(int subId) { - if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) { - return true; - } - return services.mTelephonyManager.getDataEnabled(subId); - } - - protected boolean isBandwidthControlEnabled() { - try { - return services.mNetworkService.isBandwidthControlEnabled(); - } catch (RemoteException e) { - Log.w(TAG, "problem talking with INetworkManagementService: ", e); - return false; - } - } -} diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java index 755eee3515e..b52d3998510 100644 --- a/src/com/android/settings/datausage/DataUsageList.java +++ b/src/com/android/settings/datausage/DataUsageList.java @@ -76,12 +76,12 @@ import java.util.List; * Panel showing data usage history across various networks, including options * to inspect based on usage cycle and control through {@link NetworkPolicy}. */ -public class DataUsageList extends DataUsageBase { +public class DataUsageList extends DataUsageBaseFragment { public static final String EXTRA_SUB_ID = "sub_id"; public static final String EXTRA_NETWORK_TEMPLATE = "network_template"; - private static final String TAG = "DataUsage"; + private static final String TAG = "DataUsageList"; private static final boolean LOGD = false; private static final String KEY_USAGE_AMOUNT = "usage_amount"; @@ -140,7 +140,6 @@ public class DataUsageList extends DataUsageBase { mUidDetailProvider = new UidDetailProvider(context); - addPreferencesFromResource(R.xml.data_usage_list); mUsageAmount = findPreference(KEY_USAGE_AMOUNT); mChart = (ChartDataUsagePreference) findPreference(KEY_CHART_DATA); mApps = (PreferenceGroup) findPreference(KEY_APPS_GROUP); @@ -235,6 +234,16 @@ public class DataUsageList extends DataUsageBase { super.onDestroy(); } + @Override + protected int getPreferenceScreenResId() { + return R.xml.data_usage_list; + } + + @Override + protected String getLogTag() { + return TAG; + } + void processArgument() { final Bundle args = getArguments(); if (args != null) { diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java index 0140d6fa3e0..acd00fda0fe 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java @@ -31,10 +31,12 @@ import android.os.Bundle; import android.provider.Settings; import androidx.fragment.app.FragmentActivity; +import androidx.preference.PreferenceManager; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settingslib.NetworkPolicyEditor; +import com.android.settingslib.core.instrumentation.VisibilityLoggerMixin; import org.junit.Before; import org.junit.Test; @@ -68,7 +70,11 @@ public class DataUsageListTest { @Test public void resumePause_shouldListenUnlistenDataStateChange() { - mDataUsageList.onAttach(mContext); + ReflectionHelpers.setField( + mDataUsageList, "mVisibilityLoggerMixin", mock(VisibilityLoggerMixin.class)); + ReflectionHelpers.setField( + mDataUsageList, "mPreferenceManager", mock(PreferenceManager.class)); + mDataUsageList.onResume(); verify(mListener).setListener(true, mDataUsageList.mSubId, mContext);