From 504e71c284d9cc18abac15d8451bc15764bccb58 Mon Sep 17 00:00:00 2001 From: Bonian Chen Date: Thu, 20 Oct 2022 10:07:36 +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 Change-Id: I07d9ddeb96ca590decf28126ce97fba4c1783304 --- src/com/android/settings/sim/SimDialogActivity.java | 6 ++++++ .../android/settings/sim/SimSelectNotification.java | 4 ++++ .../sim/smartForwarding/SmartForwardingActivity.java | 10 +++++++++- .../settings/sim/SimSelectNotificationTest.java | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java index 9c4f8f18915..464ba9b4a51 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; + } SimDialogProhibitService.supportDismiss(this); getWindow().addSystemFlags( diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java index 9d3f860a014..9b235cea931 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 b33e94ba52e..e1b2b4ed84e 100644 --- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java +++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java @@ -143,6 +143,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))