Automatically dismiss SIM combination warnings and selection dialogs.
When configuring CBRS profiles this dialog / notification will be dismissed after configuration is done, to avoid confusion. Bug: 142092510 Test: manual and unittest Change-Id: Iaf30062f555ec2c119c4aafd6aa013e73b5253f0
This commit is contained in:
@@ -21,11 +21,17 @@ import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_INCOMING_
|
||||
import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS;
|
||||
import static android.provider.Settings.EXTRA_ENABLE_MMS_DATA_REQUEST_REASON;
|
||||
import static android.provider.Settings.EXTRA_SUB_ID;
|
||||
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE;
|
||||
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA;
|
||||
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS;
|
||||
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_NAMES;
|
||||
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_WARNING_TYPE;
|
||||
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA;
|
||||
import static android.telephony.data.ApnSetting.TYPE_MMS;
|
||||
|
||||
import static com.android.settings.sim.SimDialogActivity.DATA_PICK;
|
||||
import static com.android.settings.sim.SimDialogActivity.INVALID_PICK;
|
||||
import static com.android.settings.sim.SimDialogActivity.PICK_DISMISS;
|
||||
import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_CHANNEL;
|
||||
import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_ID;
|
||||
import static com.android.settings.sim.SimSelectNotification.SIM_WARNING_NOTIFICATION_CHANNEL;
|
||||
@@ -36,6 +42,7 @@ 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.eq;
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -54,7 +61,6 @@ import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
|
||||
import com.android.settings.R;
|
||||
|
||||
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -196,6 +202,50 @@ public class SimSelectNotificationTest {
|
||||
verify(mNotificationManager, never()).createNotificationChannel(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onReceivePrimarySubListChange_WithDataPickExtra_shouldStartActivity() {
|
||||
Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
|
||||
intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
|
||||
EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);
|
||||
|
||||
mSimSelectNotification.onReceive(mContext, intent);
|
||||
|
||||
ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mContext).startActivity(intentCaptor.capture());
|
||||
Intent capturedIntent = intentCaptor.getValue();
|
||||
assertThat(capturedIntent).isNotNull();
|
||||
assertThat(capturedIntent.getComponent().getClassName()).isEqualTo(
|
||||
SimDialogActivity.class.getName());
|
||||
assertThat(capturedIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.isNotEqualTo(0);
|
||||
assertThat(capturedIntent.getIntExtra(SimDialogActivity.DIALOG_TYPE_KEY, INVALID_PICK))
|
||||
.isEqualTo(DATA_PICK);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onReceivePrimarySubListChange_WithDismissExtra_shouldDismiss() {
|
||||
Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
|
||||
intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
|
||||
EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);
|
||||
|
||||
mSimSelectNotification.onReceive(mContext, intent);
|
||||
clearInvocations(mContext);
|
||||
|
||||
// Dismiss.
|
||||
intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
|
||||
EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS);
|
||||
mSimSelectNotification.onReceive(mContext, intent);
|
||||
ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
|
||||
verify(mContext).startActivity(intentCaptor.capture());
|
||||
Intent capturedIntent = intentCaptor.getValue();
|
||||
assertThat(capturedIntent).isNotNull();
|
||||
assertThat(capturedIntent.getComponent().getClassName()).isEqualTo(
|
||||
SimDialogActivity.class.getName());
|
||||
assertThat(capturedIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.isNotEqualTo(0);
|
||||
assertThat(capturedIntent.getIntExtra(SimDialogActivity.DIALOG_TYPE_KEY, INVALID_PICK))
|
||||
.isEqualTo(PICK_DISMISS);
|
||||
}
|
||||
@Test
|
||||
public void onReceivePrimarySubListChange_DualCdmaWarning_notificationShouldSend() {
|
||||
Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
|
||||
|
Reference in New Issue
Block a user