Data Usage summary creates a dialog to change data warning level
Clicking the Data usage summary preference will open the same dialog that billing cycle does to modify data warning level. The Dialog was abstracted to be used outside of the Billing Cycle settings fragment. Change-Id: I70398d4656b6da4233b2bfa0da6ffa7402ead69b Fixes: 26932938
This commit is contained in:
@@ -20,6 +20,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.INetworkStatsSession;
|
||||
import android.net.NetworkPolicy;
|
||||
import android.net.NetworkTemplate;
|
||||
import android.net.TrafficStats;
|
||||
import android.os.Bundle;
|
||||
@@ -48,6 +49,7 @@ import com.android.settings.Utils;
|
||||
import com.android.settings.dashboard.SummaryLoader;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settingslib.NetworkPolicyEditor;
|
||||
import com.android.settingslib.net.DataUsageController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -56,7 +58,7 @@ import java.util.List;
|
||||
import static android.net.ConnectivityManager.TYPE_ETHERNET;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI;
|
||||
|
||||
public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
public class DataUsageSummary extends DataUsageBase implements Indexable, DataUsageEditController {
|
||||
|
||||
private static final String TAG = "DataUsageSummary";
|
||||
static final boolean LOGD = false;
|
||||
@@ -87,15 +89,13 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
hasMobileData = false;
|
||||
}
|
||||
mDefaultTemplate = getDefaultTemplate(getContext(), defaultSubId);
|
||||
if (hasMobileData) {
|
||||
mLimitPreference = findPreference(KEY_LIMIT_SUMMARY);
|
||||
} else {
|
||||
removePreference(KEY_LIMIT_SUMMARY);
|
||||
}
|
||||
mSummaryPreference = (SummaryPreference) findPreference(KEY_STATUS_HEADER);
|
||||
|
||||
if (!hasMobileData || !isAdmin()) {
|
||||
removePreference(KEY_RESTRICT_BACKGROUND);
|
||||
}
|
||||
if (hasMobileData) {
|
||||
mLimitPreference = findPreference(KEY_LIMIT_SUMMARY);
|
||||
List<SubscriptionInfo> subscriptions =
|
||||
services.mSubscriptionManager.getActiveSubscriptionInfoList();
|
||||
if (subscriptions == null || subscriptions.size() == 0) {
|
||||
@@ -104,6 +104,10 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
for (int i = 0; subscriptions != null && i < subscriptions.size(); i++) {
|
||||
addMobileSection(subscriptions.get(i).getSubscriptionId());
|
||||
}
|
||||
mSummaryPreference.setSelectable(true);
|
||||
} else {
|
||||
removePreference(KEY_LIMIT_SUMMARY);
|
||||
mSummaryPreference.setSelectable(false);
|
||||
}
|
||||
boolean hasWifiRadio = hasWifiRadio(getContext());
|
||||
if (hasWifiRadio) {
|
||||
@@ -116,7 +120,6 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
: hasWifiRadio ? R.string.wifi_data_template
|
||||
: R.string.ethernet_data_template;
|
||||
|
||||
mSummaryPreference = (SummaryPreference) findPreference(KEY_STATUS_HEADER);
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@@ -142,6 +145,15 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceTreeClick(Preference preference) {
|
||||
if (preference == findPreference(KEY_STATUS_HEADER)) {
|
||||
BillingCycleSettings.BytesEditorFragment.show(this, false);
|
||||
return false;
|
||||
}
|
||||
return super.onPreferenceTreeClick(preference);
|
||||
}
|
||||
|
||||
private void addMobileSection(int subId) {
|
||||
TemplatePreferenceCategory category = (TemplatePreferenceCategory)
|
||||
inflatePreferences(R.xml.data_usage_cellular);
|
||||
@@ -213,6 +225,8 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
|
||||
mDefaultTemplate);
|
||||
Context context = getContext();
|
||||
NetworkPolicy policy = services.mPolicyEditor.getPolicy(mDefaultTemplate);
|
||||
info.warningLevel = policy.warningBytes;
|
||||
if (mSummaryPreference != null) {
|
||||
mSummaryPreference.setTitle(
|
||||
formatTitle(context, getString(mDataUsageTemplate), info.usageLevel));
|
||||
@@ -247,6 +261,21 @@ public class DataUsageSummary extends DataUsageBase implements Indexable {
|
||||
return MetricsEvent.DATA_USAGE_SUMMARY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkPolicyEditor getNetworkPolicyEditor() {
|
||||
return services.mPolicyEditor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkTemplate getNetworkTemplate() {
|
||||
return mDefaultTemplate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDataUsage() {
|
||||
updateState();
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if device has an ethernet network connection.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user