Merge "Provider model: add string for airplane mode"
diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java
index a495e89..19c8fab 100644
--- a/src/com/android/settings/network/ProviderModelSlice.java
+++ b/src/com/android/settings/network/ProviderModelSlice.java
@@ -25,6 +25,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
+import android.provider.Settings;
 import android.telephony.SubscriptionManager;
 import android.util.Log;
 
@@ -81,11 +82,13 @@
         // Second section:  Add a carrier item.
         // Third section:  Add the Wi-Fi items which are not connected.
         // Fourth section:  If device has connection problem, this row show the message for user.
-
+        final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
         if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()) {
             log("Airplane mode is enabled.");
-            // ToDo Next CL will add the Airplane mode Message.
-            return mHelper.createListBuilder(getUri()).build();
+            listBuilder.setHeader(mHelper.createHeader(Settings.ACTION_AIRPLANE_MODE_SETTINGS));
+            listBuilder.addGridRow(mHelper.createMessageGridRow(R.string.condition_airplane_title,
+                    Settings.ACTION_AIRPLANE_MODE_SETTINGS));
+            return listBuilder.build();
         }
 
         int maxListSize = 0;
@@ -102,9 +105,6 @@
         final boolean hasCarrier = mHelper.hasCarrier();
         log("hasCarrier: " + hasCarrier);
 
-
-        final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
-
         // First section:  Add a Wi-Fi item which state is connected.
         final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
         if (connectedWifiItem != null) {
@@ -148,9 +148,12 @@
 
             if (!hasCarrier) {
                 // If there is no item in ProviderModelItem, slice needs a header.
-                listBuilder.setHeader(mHelper.createHeader());
+                listBuilder.setHeader(mHelper.createHeader(
+                        NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS));
             }
-            listBuilder.addGridRow(mHelper.createMessageGridRow(resId));
+            listBuilder.addGridRow(
+                    mHelper.createMessageGridRow(resId,
+                            NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS));
         }
 
         return listBuilder.build();
diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java
index 3164af4..2f81a60 100644
--- a/src/com/android/settings/network/ProviderModelSliceHelper.java
+++ b/src/com/android/settings/network/ProviderModelSliceHelper.java
@@ -78,10 +78,10 @@
         Log.d(TAG, s);
     }
 
-    protected ListBuilder.HeaderBuilder createHeader() {
+    protected ListBuilder.HeaderBuilder createHeader(String intentAction) {
         return new ListBuilder.HeaderBuilder()
                 .setTitle(mContext.getText(R.string.summary_placeholder))
-                .setPrimaryAction(getPrimarySliceAction());
+                .setPrimaryAction(getPrimarySliceAction(intentAction));
     }
 
     protected ListBuilder createListBuilder(Uri uri) {
@@ -91,12 +91,12 @@
         return builder;
     }
 
-    protected GridRowBuilder createMessageGridRow(int messageResId) {
+    protected GridRowBuilder createMessageGridRow(int messageResId, String intentAction) {
         final CharSequence title = mContext.getText(messageResId);
         return new GridRowBuilder()
                 // Add cells to the grid row.
                 .addCell(new GridRowBuilder.CellBuilder().addTitleText(title))
-                .setPrimaryAction(getPrimarySliceAction());
+                .setPrimaryAction(getPrimarySliceAction(intentAction));
     }
 
     @Nullable
@@ -145,15 +145,15 @@
         return rowBuilder;
     }
 
-    protected SliceAction getPrimarySliceAction() {
+    protected SliceAction getPrimarySliceAction(String intentAction) {
         return SliceAction.createDeeplink(
-                getPrimaryAction(),
+                getPrimaryAction(intentAction),
                 Utils.createIconWithDrawable(new ColorDrawable(Color.TRANSPARENT)),
                 ListBuilder.ICON_IMAGE, mContext.getText(R.string.summary_placeholder));
     }
 
-    private PendingIntent getPrimaryAction() {
-        final Intent intent = new Intent("android.settings.NETWORK_PROVIDER_SETTINGS")
+    private PendingIntent getPrimaryAction(String intentAction) {
+        final Intent intent = new Intent(intentAction)
                 .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         return PendingIntent.getActivity(mContext, 0 /* requestCode */,
                 intent, PendingIntent.FLAG_IMMUTABLE /* flags */);
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
index abbc2ec..f95c698 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java
@@ -34,6 +34,7 @@
 import android.net.NetworkCapabilities;
 import android.net.Uri;
 import android.os.PersistableBundle;
+import android.provider.Settings;
 import android.telephony.CarrierConfigManager;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionInfo;
@@ -116,7 +117,8 @@
         CharSequence title = ResourcesUtils.getResourcesString(mContext,
                 "non_carrier_network_unavailable");
 
-        GridRowBuilder testGridRow = mProviderModelSliceHelper.createMessageGridRow(messageResId);
+        GridRowBuilder testGridRow = mProviderModelSliceHelper.createMessageGridRow(messageResId,
+                Settings.ACTION_AIRPLANE_MODE_SETTINGS);
         List<CellBuilder> cellItem = testGridRow.getCells();
 
         assertThat(cellItem.get(0).getTitle()).isEqualTo(title);
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
index 076ce2b..29c52f7 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
@@ -23,6 +23,8 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyLong;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -287,15 +289,15 @@
         SliceAction mockSliceAction = getPrimarySliceAction();
         when(mMockHeader.getTitle()).thenReturn("mockHeader");
         when(mMockHeader.getPrimaryAction()).thenReturn(mockSliceAction);
-        when(mProviderModelSliceHelper.createHeader()).thenReturn(mMockHeader);
+        when(mProviderModelSliceHelper.createHeader(anyString())).thenReturn(mMockHeader);
 
         int resId = ResourcesUtils.getResourcesId(mContext, "string",
                 "non_carrier_network_unavailable");
-        when(mProviderModelSliceHelper.createMessageGridRow(resId)).thenReturn(
+        when(mProviderModelSliceHelper.createMessageGridRow(eq(resId), anyString())).thenReturn(
                 mMockGridRowBuilderNonCarrierNetworkUnavailable);
         resId = ResourcesUtils.getResourcesId(mContext, "string",
                 "all_network_unavailable");
-        when(mProviderModelSliceHelper.createMessageGridRow(resId)).thenReturn(
+        when(mProviderModelSliceHelper.createMessageGridRow(eq(resId), anyString())).thenReturn(
                 mMockGridRowBuilderAllNetworkUnavailable);
 
         when(mMockCarrierRowBuild.getTitle()).thenReturn("mockRow");