Data plan usage summary activity.

Change-Id: Ibb0889563d432591fd00ac00d03633b1894ad124
Note: These changes are required for Data balance UI.
Bug: 62349208
Test: make RunSettingsRoboTests -j40
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 01dc44b..be93d87 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -89,6 +89,7 @@
     public static class AccountSyncSettingsInAddAccountActivity extends SettingsActivity { /* empty */ }
     public static class CryptKeeperSettingsActivity extends SettingsActivity { /* empty */ }
     public static class DeviceAdminSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class DataPlanUsageSummaryActivity extends SettingsActivity { /* empty */ }
     public static class DataUsageSummaryActivity extends SettingsActivity { /* empty */ }
     public static class MobileDataUsageListActivity extends SettingsActivity { /* empty */ }
     public static class ConfigureWifiSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 225c5ea..f120b7f 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -33,7 +33,6 @@
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.drawable.Drawable;
-import android.nfc.NfcAdapter;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -50,7 +49,6 @@
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.Toolbar;
-
 import com.android.internal.util.ArrayUtils;
 import com.android.settings.Settings.WifiSettingsActivity;
 import com.android.settings.backup.BackupSettingsActivity;
@@ -67,7 +65,6 @@
 import com.android.settings.widget.SwitchBar;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.SettingsDrawerActivity;
-
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Set;
@@ -779,10 +776,33 @@
                 pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH), isAdmin)
                 || somethingChanged;
 
-        somethingChanged = setTileEnabled(new ComponentName(packageName,
-                        Settings.DataUsageSummaryActivity.class.getName()),
-                Utils.isBandwidthControlEnabled(), isAdmin)
-                || somethingChanged;
+        boolean isDataPlanFeatureEnabled = FeatureFactory.getFactory(this)
+                .getDataPlanFeatureProvider()
+                .isEnabled();
+
+        // When the data plan feature flag is turned on we disable DataUsageSummaryActivity
+        // and enable DataPlanUsageSummaryActivity. When the feature flag is turned off we do the
+        // reverse.
+
+        // Disable DataUsageSummaryActivity if the data plan feature flag is turned on otherwise
+        // disable DataPlanUsageSummaryActivity.
+        somethingChanged = setTileEnabled(
+                new ComponentName(packageName,
+                        isDataPlanFeatureEnabled
+                                ? Settings.DataUsageSummaryActivity.class.getName()
+                                : Settings.DataPlanUsageSummaryActivity.class.getName()),
+                false /* enabled */,
+                isAdmin) || somethingChanged;
+
+        // Enable DataUsageSummaryActivity if the data plan feature flag is turned on otherwise
+        // enable DataPlanUsageSummaryActivity.
+        somethingChanged = setTileEnabled(
+                new ComponentName(packageName,
+                        isDataPlanFeatureEnabled
+                                ? Settings.DataPlanUsageSummaryActivity.class.getName()
+                                : Settings.DataUsageSummaryActivity.class.getName()),
+                Utils.isBandwidthControlEnabled() /* enabled */,
+                isAdmin) || somethingChanged;
 
         somethingChanged = setTileEnabled(new ComponentName(packageName,
                         Settings.SimSettingsActivity.class.getName()),
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 9e664e5..380c070 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -61,6 +61,7 @@
 import com.android.settings.bluetooth.BluetoothSettings;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.dashboard.SupportFragment;
+import com.android.settings.datausage.DataPlanUsageSummary;
 import com.android.settings.datausage.DataUsageList;
 import com.android.settings.datausage.DataUsageSummary;
 import com.android.settings.deletionhelper.AutomaticStorageManagerSettings;
@@ -186,6 +187,7 @@
             PickupGestureSettings.class.getName(),
             DoubleTwistGestureSettings.class.getName(),
             CryptKeeperSettings.class.getName(),
+            DataPlanUsageSummary.class.getName(),
             DataUsageSummary.class.getName(),
             DreamSettings.class.getName(),
             UserSettings.class.getName(),
@@ -269,6 +271,7 @@
             SupportDashboardActivity.class.getName(),
             // Home page > Network & Internet
             Settings.WifiSettingsActivity.class.getName(),
+            Settings.DataPlanUsageSummaryActivity.class.getName(),
             Settings.DataUsageSummaryActivity.class.getName(),
             Settings.SimSettingsActivity.class.getName(),
             // Home page > Connected devices