From 5c595b378978f8b73dceb9598717bdbd394065a9 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Mon, 14 Nov 2022 10:14:57 +0000 Subject: [PATCH] [Settings] configuration for hidding SIM notification UI Hide SIM notification UI based on configuraion. Bug: 240515161 Test: test cases and local testing Merged-In: I07d9ddeb96ca590decf28126ce97fba4c1783304 Merged-In: I7a912a3393694155d29614d325796e08598985bf Merged-In: I0a7e0e9826a301f2aa0ca34f40b5570f0e384b4f Change-Id: I1b88f0f70f1b7487163849abfce93dbbc35c9ff9 --- src/com/android/settings/sim/SimDialogActivity.java | 6 ++++++ .../android/settings/sim/SimSelectNotification.java | 4 ++++ .../sim/smartForwarding/SmartForwardingActivity.java | 10 +++++++++- .../settings/sim/SimSelectNotificationTest.java | 5 +++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java index 732277b3d8a..db190d9249b 100644 --- a/src/com/android/settings/sim/SimDialogActivity.java +++ b/src/com/android/settings/sim/SimDialogActivity.java @@ -35,6 +35,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import com.android.settings.R; +import com.android.settings.network.SubscriptionUtil; import com.android.settings.network.telephony.SubscriptionActionDialogActivity; import java.util.List; @@ -65,6 +66,11 @@ public class SimDialogActivity extends FragmentActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SubscriptionUtil.isSimHardwareVisible(this)) { + Log.d(TAG, "Not support on device without SIM."); + finish(); + return; + } getWindow().addSystemFlags( WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); showOrUpdateDialog(); diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 5902b926020..c26e8f61841 100644 --- a/src/com/android/settings/sim/SimSelectNotification.java +++ b/src/com/android/settings/sim/SimSelectNotification.java @@ -77,6 +77,10 @@ public class SimSelectNotification extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { + if (!SubscriptionUtil.isSimHardwareVisible(context)) { + Log.w(TAG, "Received unexpected intent with null action."); + return; + } String action = intent.getAction(); if (action == null) { diff --git a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java index 217801e5a17..070e65a1d56 100644 --- a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java +++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java @@ -38,6 +38,7 @@ import androidx.core.content.ContextCompat; import com.android.settings.R; import com.android.settings.core.SettingsBaseActivity; +import com.android.settings.network.SubscriptionUtil; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -48,6 +49,7 @@ import com.google.common.util.concurrent.MoreExecutors; import java.util.concurrent.Executors; public class SmartForwardingActivity extends SettingsBaseActivity { + static final String LOG_TAG = SmartForwardingActivity.class.toString(); final ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()); @@ -55,6 +57,12 @@ public class SmartForwardingActivity extends SettingsBaseActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if (!SubscriptionUtil.isSimHardwareVisible(this)) { + Log.d(LOG_TAG, "Not support on device without SIM."); + finish(); + return; + } + final Toolbar toolbar = findViewById(R.id.action_bar); toolbar.setVisibility(View.VISIBLE); setActionBar(toolbar); @@ -166,4 +174,4 @@ public class SmartForwardingActivity extends SettingsBaseActivity { .create(); mDialog.show(); } -} \ No newline at end of file +} diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java index 10e291cf2c0..e4c8a63a0be 100644 --- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java +++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java @@ -42,6 +42,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.clearInvocations; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -137,6 +138,7 @@ public class SimSelectNotificationTest { when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName); when(mContext.getResources()).thenReturn(mResources); + when(mResources.getBoolean(R.bool.config_show_sim_info)).thenReturn(true); when(mResources.getText(R.string.enable_sending_mms_notification_title)) .thenReturn(mFakeNotificationTitle); when(mResources.getText(R.string.enable_mms_notification_channel_title)) @@ -236,6 +238,9 @@ public class SimSelectNotificationTest { @Test public void onReceivePrimarySubListChange_WithDismissExtra_shouldDismiss() { + doReturn(mExecutor).when(mActivity).getMainExecutor(); + SimDialogProhibitService.supportDismiss(mActivity); + Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED); intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE, EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);