[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
This commit is contained in:
Bonian Chen
2022-11-14 10:14:57 +00:00
parent ccfa7fa918
commit 5c595b3789
4 changed files with 24 additions and 1 deletions

View File

@@ -35,6 +35,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.SubscriptionActionDialogActivity; import com.android.settings.network.telephony.SubscriptionActionDialogActivity;
import java.util.List; import java.util.List;
@@ -65,6 +66,11 @@ public class SimDialogActivity extends FragmentActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (!SubscriptionUtil.isSimHardwareVisible(this)) {
Log.d(TAG, "Not support on device without SIM.");
finish();
return;
}
getWindow().addSystemFlags( getWindow().addSystemFlags(
WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS); WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
showOrUpdateDialog(); showOrUpdateDialog();

View File

@@ -77,6 +77,10 @@ public class SimSelectNotification extends BroadcastReceiver {
@Override @Override
public void onReceive(Context context, Intent intent) { 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(); String action = intent.getAction();
if (action == null) { if (action == null) {

View File

@@ -38,6 +38,7 @@ import androidx.core.content.ContextCompat;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.SettingsBaseActivity; 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.FutureCallback;
import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Futures;
@@ -48,6 +49,7 @@ import com.google.common.util.concurrent.MoreExecutors;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
public class SmartForwardingActivity extends SettingsBaseActivity { public class SmartForwardingActivity extends SettingsBaseActivity {
static final String LOG_TAG = SmartForwardingActivity.class.toString();
final ListeningExecutorService service = final ListeningExecutorService service =
MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor()); MoreExecutors.listeningDecorator(Executors.newSingleThreadExecutor());
@@ -55,6 +57,12 @@ public class SmartForwardingActivity extends SettingsBaseActivity {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(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); final Toolbar toolbar = findViewById(R.id.action_bar);
toolbar.setVisibility(View.VISIBLE); toolbar.setVisibility(View.VISIBLE);
setActionBar(toolbar); setActionBar(toolbar);
@@ -166,4 +174,4 @@ public class SmartForwardingActivity extends SettingsBaseActivity {
.create(); .create();
mDialog.show(); mDialog.show();
} }
} }

View File

@@ -42,6 +42,7 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -137,6 +138,7 @@ public class SimSelectNotificationTest {
when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName); when(mSubInfo.getDisplayName()).thenReturn(mFakeDisplayName);
when(mContext.getResources()).thenReturn(mResources); 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)) when(mResources.getText(R.string.enable_sending_mms_notification_title))
.thenReturn(mFakeNotificationTitle); .thenReturn(mFakeNotificationTitle);
when(mResources.getText(R.string.enable_mms_notification_channel_title)) when(mResources.getText(R.string.enable_mms_notification_channel_title))
@@ -236,6 +238,9 @@ public class SimSelectNotificationTest {
@Test @Test
public void onReceivePrimarySubListChange_WithDismissExtra_shouldDismiss() { public void onReceivePrimarySubListChange_WithDismissExtra_shouldDismiss() {
doReturn(mExecutor).when(mActivity).getMainExecutor();
SimDialogProhibitService.supportDismiss(mActivity);
Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED); Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE, intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA); EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);