Merge "[Settings] configuration for hidding SIM notification UI" into tm-qpr-dev-plus-aosp
diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
index 9c4f8f1..464ba9b 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.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 @@
     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 9d3f860..9b235ce 100644
--- a/src/com/android/settings/sim/SimSelectNotification.java
+++ b/src/com/android/settings/sim/SimSelectNotification.java
@@ -77,6 +77,10 @@
 
     @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 217801e..070e65a 100644
--- a/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
+++ b/src/com/android/settings/sim/smartForwarding/SmartForwardingActivity.java
@@ -38,6 +38,7 @@
 
 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 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 @@
     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 @@
                 .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 b33e94b..e1b2b4e 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 @@
         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))