OSDN Git Service

Updates to data usage prefs
authorAntony Sargent <asargent@google.com>
Tue, 9 Apr 2019 23:52:22 +0000 (16:52 -0700)
committerAndrew Sapperstein <asapperstein@google.com>
Wed, 10 Apr 2019 01:53:24 +0000 (01:53 +0000)
-Remove 'Data Usage' pref from Network & internet homepage
-Add 'Data warning & limit' to mobile network details page

Fixes: 127535879
Fixes: 130241963
Test: robotests

Change-Id: I28b3de34dcf11140762b4e3ee5b465f842ac48d4

AndroidManifest.xml
res/xml/mobile_network_settings_v2.xml
res/xml/network_and_internet_v2.xml
src/com/android/settings/datausage/BillingCyclePreferenceController.java [new file with mode: 0644]
src/com/android/settings/network/telephony/MobileNetworkSettings.java

index 6d3c207..2bf356f 100644 (file)
             <intent-filter>
                 <action android:name="com.android.settings.action.SETTINGS" />
             </intent-filter>
-            <meta-data android:name="com.android.settings.order" android:value="-6"/>
-            <meta-data android:name="com.android.settings.category"
-                android:value="com.android.settings.category.ia.wireless" />
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.datausage.DataUsageSummary" />
         </activity>
index 4c7de5a..e7cc1dc 100644 (file)
         android:title="@string/mobile_data_usage_title"
         settings:controller="com.android.settings.network.telephony.DataUsagePreferenceController"/>
 
+    <com.android.settings.datausage.BillingCyclePreference
+        android:key="billing_preference"
+        android:title="@string/billing_cycle"
+        settings:controller="com.android.settings.datausage.BillingCyclePreferenceController" />
+
     <SwitchPreference
         android:key="enhanced_4g_lte"
         android:title="@string/enhanced_4g_lte_mode_title"
index 0d9e2ea..d10e7ef 100644 (file)
@@ -19,7 +19,7 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:key="network_and_internet_screen"
     android:title="@string/network_dashboard_title"
-    settings:initialExpandedChildrenCount="6">
+    settings:initialExpandedChildrenCount="5">
 
     <PreferenceCategory
         android:key="multi_network_header"
diff --git a/src/com/android/settings/datausage/BillingCyclePreferenceController.java b/src/com/android/settings/datausage/BillingCyclePreferenceController.java
new file mode 100644 (file)
index 0000000..0220a12
--- /dev/null
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2019 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.NetworkPolicyManager;
+import android.net.NetworkTemplate;
+import android.os.INetworkManagementService;
+import android.os.ServiceManager;
+import android.os.UserManager;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.NetworkPolicyEditor;
+
+import androidx.preference.PreferenceScreen;
+
+public class BillingCyclePreferenceController extends BasePreferenceController {
+    private int mSubscriptionId;
+
+    public BillingCyclePreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    public void init(int subscriptionId) {
+        mSubscriptionId = subscriptionId;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        BillingCyclePreference preference = screen.findPreference(getPreferenceKey());
+
+        TemplatePreference.NetworkServices services = new TemplatePreference.NetworkServices();
+        services.mNetworkService = INetworkManagementService.Stub.asInterface(
+                ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
+        services.mStatsService = INetworkStatsService.Stub.asInterface(
+                ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
+        services.mPolicyManager = mContext.getSystemService(NetworkPolicyManager.class);
+        services.mPolicyEditor = new NetworkPolicyEditor(services.mPolicyManager);
+        services.mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+        services.mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
+        services.mUserManager = mContext.getSystemService(UserManager.class);
+
+        NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
+                services.mTelephonyManager.getSubscriberId(mSubscriptionId));
+        NetworkTemplate template = NetworkTemplate.normalize(mobileAll,
+                services.mTelephonyManager.getMergedSubscriberIds());
+
+        preference.setTemplate(template, mSubscriptionId, services);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+}
index 9659548..3578792 100644 (file)
@@ -36,6 +36,7 @@ import com.android.internal.telephony.TelephonyIntents;
 import com.android.settings.R;
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settings.datausage.BillingCyclePreferenceController;
 import com.android.settings.datausage.DataUsageSummaryPreferenceController;
 import com.android.settings.development.featureflags.FeatureFlagPersistent;
 import com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController;
@@ -134,6 +135,7 @@ public class MobileNetworkSettings extends RestrictedDashboardFragment {
           use(SmsDefaultSubscriptionController.class).init(getLifecycle());
           use(MobileNetworkSwitchController.class).init(getLifecycle(), mSubId);
           use(CarrierSettingsVersionPreferenceController.class).init(mSubId);
+          use(BillingCyclePreferenceController.class).init(mSubId);
         }
         use(MobileDataPreferenceController.class).init(getFragmentManager(), mSubId);
         use(RoamingPreferenceController.class).init(getFragmentManager(), mSubId);