Remove the deprecated class DataUsageBase.

- and update all its subclass to extend DataUsageBaseFragment instead.

Bug: 111751694
Test: make RunSettingsRoboTests
Change-Id: Ic5720af43082d8b39642b6a539515f3f20d32694
This commit is contained in:
Doris Ling
2018-08-30 14:16:13 -07:00
parent 3029efc5f7
commit 22c078c8de
5 changed files with 42 additions and 104 deletions

View File

@@ -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());

View File

@@ -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()");

View File

@@ -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;
}
}
}

View File

@@ -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) {

View File

@@ -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);