From b114e490d5ccbf8f36082c237cfbb3f42423f123 Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Wed, 13 Jan 2021 21:15:13 +0800 Subject: [PATCH] Provider model: add string for airplane mode Bug: 177399563 Test: build PASS and verify the slice's airplane screen. (PASS)atest NetworkProviderWorkerTest (PASS)atest ProviderModelSliceTest (PASS)atest ProviderModelSliceHelperTest Change-Id: I9f212b8c2c66bf8af32936fca92c46fe86a9b3ef --- .../settings/network/ProviderModelSlice.java | 19 +++++++++++-------- .../network/ProviderModelSliceHelper.java | 16 ++++++++-------- .../network/ProviderModelSliceHelperTest.java | 4 +++- .../network/ProviderModelSliceTest.java | 8 +++++--- 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index a495e8963b7..19c8fab7931 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -25,6 +25,7 @@ import android.app.settings.SettingsEnums; 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 @@ public class ProviderModelSlice extends WifiSlice { // 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 @@ public class ProviderModelSlice extends WifiSlice { 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 @@ public class ProviderModelSlice extends WifiSlice { 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 3164af4ed3c..2f81a609927 100644 --- a/src/com/android/settings/network/ProviderModelSliceHelper.java +++ b/src/com/android/settings/network/ProviderModelSliceHelper.java @@ -78,10 +78,10 @@ public class ProviderModelSliceHelper { 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 @@ public class ProviderModelSliceHelper { 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 @@ public class ProviderModelSliceHelper { 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 abbc2ec7923..f95c698e2a4 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.Network; 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 @@ public class ProviderModelSliceHelperTest { 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 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 076ce2b1d9d..29c52f7ae16 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 com.google.common.truth.Truth.assertThat; 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 @@ public class ProviderModelSliceTest { 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");