Add the confirmation dialog when user disable mobile data at first time
Bug: 189983549 Test: atest ProviderModelSliceTest Change-Id: I83fcadb07e4f8dff5d07bc4015c0c6004c4f5de5
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
|
||||
package com.android.settings.network;
|
||||
|
||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||
|
||||
import static com.android.settings.network.ProviderModelSlice.PREF_HAS_TURNED_OFF_MOBILE_DATA;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
@@ -28,9 +32,11 @@ import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.net.ConnectivityManager;
|
||||
@@ -100,6 +106,7 @@ public class ProviderModelSliceTest {
|
||||
WifiPickerTracker mWifiPickerTracker;
|
||||
@Mock
|
||||
WifiSliceItem mWifiSliceItem;
|
||||
AlertDialog mMockAlertDialog;
|
||||
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
|
||||
@@ -128,6 +135,11 @@ public class ProviderModelSliceTest {
|
||||
PROVIDER_MODEL_SLICE_URI));
|
||||
mMockProviderModelSlice = spy(new MockProviderModelSlice(
|
||||
mContext, mMockNetworkProviderWorker));
|
||||
mMockAlertDialog = new AlertDialog.Builder(mContext)
|
||||
.setTitle("")
|
||||
.create();
|
||||
mMockAlertDialog = spy(mMockAlertDialog);
|
||||
mMockProviderModelSlice.setMobileDataDisableDialog(mMockAlertDialog);
|
||||
mListBuilder = spy(new ListBuilder(mContext, PROVIDER_MODEL_SLICE_URI,
|
||||
ListBuilder.INFINITY).setAccentColor(-1));
|
||||
when(mProviderModelSliceHelper.createListBuilder(PROVIDER_MODEL_SLICE_URI)).thenReturn(
|
||||
@@ -350,6 +362,7 @@ public class ProviderModelSliceTest {
|
||||
private MockNetworkProviderWorker mNetworkProviderWorker;
|
||||
private boolean mHasCreateEthernetRow;
|
||||
private boolean mHasSeeAllRow;
|
||||
private AlertDialog mAlertDialog;
|
||||
|
||||
MockProviderModelSlice(Context context, MockNetworkProviderWorker networkProviderWorker) {
|
||||
super(context);
|
||||
@@ -366,6 +379,11 @@ public class ProviderModelSliceTest {
|
||||
return mNetworkProviderWorker;
|
||||
}
|
||||
|
||||
@Override
|
||||
AlertDialog getMobileDataDisableDialog(int defaultSubId, String carrierName) {
|
||||
return mAlertDialog;
|
||||
}
|
||||
|
||||
@Override
|
||||
ListBuilder.RowBuilder createEthernetRow() {
|
||||
mHasCreateEthernetRow = true;
|
||||
@@ -385,6 +403,64 @@ public class ProviderModelSliceTest {
|
||||
public boolean hasSeeAllRow() {
|
||||
return mHasSeeAllRow;
|
||||
}
|
||||
|
||||
public void setMobileDataDisableDialog(AlertDialog alertDialog) {
|
||||
mAlertDialog = alertDialog;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onNotifyChange_FirstTimeDisableToggleState_showDialog() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_TOGGLE_STATE, false);
|
||||
SharedPreferences sharedPref = mMockProviderModelSlice.getSharedPreference();
|
||||
when(mProviderModelSliceHelper.getMobileTitle()).thenReturn("mockRow");
|
||||
if (sharedPref != null) {
|
||||
SharedPreferences.Editor editor = sharedPref.edit();
|
||||
editor.putBoolean(PREF_HAS_TURNED_OFF_MOBILE_DATA, true);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
mMockProviderModelSlice.onNotifyChange(intent);
|
||||
|
||||
verify(mMockAlertDialog).show();
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onNotifyChange_EnableToggleState_doNotShowDialog() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_TOGGLE_STATE, true);
|
||||
SharedPreferences sharedPref = mMockProviderModelSlice.getSharedPreference();
|
||||
when(mProviderModelSliceHelper.getMobileTitle()).thenReturn("mockRow");
|
||||
if (sharedPref != null) {
|
||||
SharedPreferences.Editor editor = sharedPref.edit();
|
||||
editor.putBoolean(PREF_HAS_TURNED_OFF_MOBILE_DATA, true);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
mMockProviderModelSlice.onNotifyChange(intent);
|
||||
|
||||
verify(mMockAlertDialog, never()).show();
|
||||
}
|
||||
|
||||
@Test
|
||||
@UiThreadTest
|
||||
public void onNotifyChange_notFirstTimeDisableToggleState_doNotShowDialog() {
|
||||
final Intent intent = new Intent();
|
||||
intent.putExtra(EXTRA_TOGGLE_STATE, false);
|
||||
SharedPreferences sharedPref = mMockProviderModelSlice.getSharedPreference();
|
||||
when(mProviderModelSliceHelper.getMobileTitle()).thenReturn("mockRow");
|
||||
if (sharedPref != null) {
|
||||
SharedPreferences.Editor editor = sharedPref.edit();
|
||||
editor.putBoolean(PREF_HAS_TURNED_OFF_MOBILE_DATA, false);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
mMockProviderModelSlice.onNotifyChange(intent);
|
||||
|
||||
verify(mMockAlertDialog, never()).show();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Reference in New Issue
Block a user