summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chloris Kuo <chloriskuo@google.com> 2021-12-02 15:27:27 -0800
committer Chloris Kuo <chloriskuo@google.com> 2021-12-07 19:09:19 +0000
commit8c606ab1aa42f4fe135e0b2341ca7980d27a96e1 (patch)
tree8821f4ed423a8f17270485814f514c1ebc94613d
parent46386914b487a209a5a8b0d3104109b0286b8c4f (diff)
Enable default NAS for users who haven't done NAS migration
For users who haven't finished NAS migration (NAS_SETTINGS_UPDATED == false), we will enable the default NAS no matter user manually changed the NAS setting or not. Bug: 203689334 Test: atest NotificationManagerServiceTest Test: manually tested migration flow from SP1A, RQ3A, QQ3A with 1)factory reset, 2) set NAS to none, 3) set NAS to different default NAS Test: manually tested the bug affected flow: upgrade form RQ3A (factory reset) to SP1A and then upgrade to this fix Change-Id: Ieec25bab7fd9a587b0c0320678acaf2fce3a0b24
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java151
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java179
2 files changed, 36 insertions, 294 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 7ed897dfdbf9..7455cecee65b 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -266,7 +266,6 @@ import com.android.internal.logging.InstanceIdSequence;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.messages.nano.SystemMessageProto;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.SomeArgs;
@@ -615,12 +614,6 @@ public class NotificationManagerService extends SystemService {
private NotificationRecordLogger mNotificationRecordLogger;
private InstanceIdSequence mNotificationInstanceIdSequence;
private Set<String> mMsgPkgsAllowedAsConvos = new HashSet();
- protected static final String ACTION_ENABLE_NAS =
- "android.server.notification.action.ENABLE_NAS";
- protected static final String ACTION_DISABLE_NAS =
- "android.server.notification.action.DISABLE_NAS";
- protected static final String ACTION_LEARNMORE_NAS =
- "android.server.notification.action.LEARNMORE_NAS";
static class Archive {
final SparseArray<Boolean> mEnabled;
@@ -755,95 +748,25 @@ public class NotificationManagerService extends SystemService {
setDefaultAssistantForUser(userId);
}
- protected void migrateDefaultNASShowNotificationIfNecessary() {
+ protected void migrateDefaultNAS() {
final List<UserInfo> activeUsers = mUm.getUsers();
for (UserInfo userInfo : activeUsers) {
int userId = userInfo.getUserHandle().getIdentifier();
if (isNASMigrationDone(userId) || mUm.isManagedProfile(userId)) {
continue;
}
- if (mAssistants.hasUserSet(userId)) {
- ComponentName defaultFromConfig = mAssistants.getDefaultFromConfig();
- List<ComponentName> allowedComponents = mAssistants.getAllowedComponents(userId);
- if (allowedComponents.size() == 0) {
- setNASMigrationDone(userId);
- mAssistants.clearDefaults();
- continue;
- } else if (allowedComponents.contains(defaultFromConfig)) {
- setNASMigrationDone(userId);
- mAssistants.resetDefaultFromConfig();
- continue;
- }
- // TODO(b/192450820): re-enable when "user set" isn't over triggering
- //User selected different NAS, need onboarding
- /*enqueueNotificationInternal(getContext().getPackageName(),
- getContext().getOpPackageName(), Binder.getCallingUid(),
- Binder.getCallingPid(), TAG,
- SystemMessageProto.SystemMessage.NOTE_NAS_UPGRADE,
- createNASUpgradeNotification(userId), userId);*/
- }
- }
- }
-
- protected Notification createNASUpgradeNotification(int userId) {
- final Bundle extras = new Bundle();
- extras.putString(Notification.EXTRA_SUBSTITUTE_APP_NAME,
- getContext().getResources().getString(R.string.global_action_settings));
- int title = R.string.nas_upgrade_notification_title;
- int content = R.string.nas_upgrade_notification_content;
-
- Intent onboardingIntent = new Intent(Settings.ACTION_NOTIFICATION_ASSISTANT_SETTINGS);
- onboardingIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
-
- Intent enableIntent = new Intent(ACTION_ENABLE_NAS);
- enableIntent.putExtra(Intent.EXTRA_USER_ID, userId);
- PendingIntent enableNASPendingIntent = PendingIntent.getBroadcast(getContext(),
- 0, enableIntent, PendingIntent.FLAG_IMMUTABLE);
-
- Intent disableIntent = new Intent(ACTION_DISABLE_NAS);
- disableIntent.putExtra(Intent.EXTRA_USER_ID, userId);
- PendingIntent disableNASPendingIntent = PendingIntent.getBroadcast(getContext(),
- 0, disableIntent, PendingIntent.FLAG_IMMUTABLE);
-
- Intent learnMoreIntent = new Intent(ACTION_LEARNMORE_NAS);
- learnMoreIntent.putExtra(Intent.EXTRA_USER_ID, userId);
- PendingIntent learnNASPendingIntent = PendingIntent.getBroadcast(getContext(),
- 0, learnMoreIntent, PendingIntent.FLAG_IMMUTABLE);
-
- Notification.Action enableNASAction = new Notification.Action.Builder(
- 0,
- getContext().getResources().getString(
- R.string.nas_upgrade_notification_enable_action),
- enableNASPendingIntent).build();
-
- Notification.Action disableNASAction = new Notification.Action.Builder(
- 0,
- getContext().getResources().getString(
- R.string.nas_upgrade_notification_disable_action),
- disableNASPendingIntent).build();
-
- Notification.Action learnMoreNASAction = new Notification.Action.Builder(
- 0,
- getContext().getResources().getString(
- R.string.nas_upgrade_notification_learn_more_action),
- learnNASPendingIntent).build();
-
-
- return new Notification.Builder(getContext(), SystemNotificationChannels.SYSTEM_CHANGES)
- .setAutoCancel(false)
- .setOngoing(true)
- .setTicker(getContext().getResources().getString(title))
- .setSmallIcon(R.drawable.ic_settings_24dp)
- .setContentTitle(getContext().getResources().getString(title))
- .setContentText(getContext().getResources().getString(content))
- .setContentIntent(PendingIntent.getActivity(getContext(), 0, onboardingIntent,
- PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE))
- .setLocalOnly(true)
- .setStyle(new Notification.BigTextStyle())
- .addAction(enableNASAction)
- .addAction(disableNASAction)
- .addAction(learnMoreNASAction)
- .build();
+ List<ComponentName> allowedComponents = mAssistants.getAllowedComponents(userId);
+ if (allowedComponents.size() == 0) { // user set to none
+ Slog.d(TAG, "NAS Migration: user set to none, disable new NAS setting");
+ setNASMigrationDone(userId);
+ mAssistants.clearDefaults();
+ } else {
+ Slog.d(TAG, "Reset NAS setting and migrate to new default");
+ resetAssistantUserSet(userId);
+ // migrate to new default and set migration done
+ mAssistants.resetDefaultAssistantsIfNecessary();
+ }
+ }
}
@VisibleForTesting
@@ -1861,41 +1784,6 @@ public class NotificationManagerService extends SystemService {
}
};
- private final BroadcastReceiver mNASIntentReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- final String action = intent.getAction();
- int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, -1);
- if (ACTION_ENABLE_NAS.equals(action)) {
- mAssistants.resetDefaultFromConfig();
- setNotificationAssistantAccessGrantedForUserInternal(
- CollectionUtils.firstOrNull(mAssistants.getDefaultComponents()),
- userId, true, true);
- setNASMigrationDone(userId);
- cancelNotificationInternal(getContext().getPackageName(),
- getContext().getOpPackageName(), Binder.getCallingUid(),
- Binder.getCallingPid(), TAG,
- SystemMessageProto.SystemMessage.NOTE_NAS_UPGRADE, userId);
- } else if (ACTION_DISABLE_NAS.equals(action)) {
- //Set default NAS to be null if user selected none during migration
- mAssistants.clearDefaults();
- setNotificationAssistantAccessGrantedForUserInternal(
- null, userId, true, true);
- setNASMigrationDone(userId);
- cancelNotificationInternal(getContext().getPackageName(),
- getContext().getOpPackageName(), Binder.getCallingUid(),
- Binder.getCallingPid(), TAG,
- SystemMessageProto.SystemMessage.NOTE_NAS_UPGRADE, userId);
- } else if (ACTION_LEARNMORE_NAS.equals(action)) {
- Intent i = new Intent(getContext(), NASLearnMoreActivity.class);
- i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- getContext().sendBroadcastAsUser(
- new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), UserHandle.of(userId));
- getContext().startActivity(i);
- }
- }
- };
-
private final class SettingsObserver extends ContentObserver {
private final Uri NOTIFICATION_BADGING_URI
= Settings.Secure.getUriFor(Settings.Secure.NOTIFICATION_BADGING);
@@ -2407,12 +2295,6 @@ public class NotificationManagerService extends SystemService {
IntentFilter localeChangedFilter = new IntentFilter(Intent.ACTION_LOCALE_CHANGED);
getContext().registerReceiver(mLocaleChangeReceiver, localeChangedFilter);
-
- IntentFilter nasFilter = new IntentFilter();
- nasFilter.addAction(ACTION_ENABLE_NAS);
- nasFilter.addAction(ACTION_DISABLE_NAS);
- nasFilter.addAction(ACTION_LEARNMORE_NAS);
- getContext().registerReceiver(mNASIntentReceiver, nasFilter);
}
/**
@@ -2424,7 +2306,6 @@ public class NotificationManagerService extends SystemService {
getContext().unregisterReceiver(mNotificationTimeoutReceiver);
getContext().unregisterReceiver(mRestoreReceiver);
getContext().unregisterReceiver(mLocaleChangeReceiver);
- getContext().unregisterReceiver(mNASIntentReceiver);
if (mDeviceConfigChangedListener != null) {
DeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigChangedListener);
@@ -2691,7 +2572,7 @@ public class NotificationManagerService extends SystemService {
mConditionProviders.onBootPhaseAppsCanStart();
mHistoryManager.onBootPhaseAppsCanStart();
registerDeviceConfigChange();
- migrateDefaultNASShowNotificationIfNecessary();
+ migrateDefaultNAS();
} else if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
mSnoozeHelper.scheduleRepostsForPersistedNotifications(System.currentTimeMillis());
}
@@ -5229,10 +5110,6 @@ public class NotificationManagerService extends SystemService {
public void setNASMigrationDoneAndResetDefault(int userId, boolean loadFromConfig) {
checkCallerIsSystem();
setNASMigrationDone(userId);
- cancelNotificationInternal(getContext().getPackageName(),
- getContext().getOpPackageName(), Binder.getCallingUid(),
- Binder.getCallingPid(), TAG,
- SystemMessageProto.SystemMessage.NOTE_NAS_UPGRADE, userId);
if (loadFromConfig) {
mAssistants.resetDefaultFromConfig();
} else {
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 0ad119df6b55..c994b41be593 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -61,10 +61,6 @@ import static android.service.notification.NotificationListenerService.FLAG_FILT
import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE;
import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL;
-import static com.android.server.notification.NotificationManagerService.ACTION_DISABLE_NAS;
-import static com.android.server.notification.NotificationManagerService.ACTION_ENABLE_NAS;
-import static com.android.server.notification.NotificationManagerService.ACTION_LEARNMORE_NAS;
-
import static com.google.common.truth.Truth.assertThat;
import static junit.framework.Assert.assertEquals;
@@ -325,7 +321,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
@Mock
MultiRateLimiter mToastRateLimiter;
BroadcastReceiver mPackageIntentReceiver;
- BroadcastReceiver mNASIntentReceiver;
NotificationRecordLoggerFake mNotificationRecordLogger = new NotificationRecordLoggerFake();
private InstanceIdSequence mNotificationInstanceIdSequence = new InstanceIdSequenceFake(
1 << 30);
@@ -553,14 +548,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
&& filter.hasAction(Intent.ACTION_PACKAGES_UNSUSPENDED)
&& filter.hasAction(Intent.ACTION_PACKAGES_SUSPENDED)) {
mPackageIntentReceiver = broadcastReceivers.get(i);
- } else if (filter.hasAction(ACTION_ENABLE_NAS)
- && filter.hasAction(ACTION_DISABLE_NAS)
- && filter.hasAction(ACTION_LEARNMORE_NAS)) {
- mNASIntentReceiver = broadcastReceivers.get(i);
}
}
assertNotNull("package intent receiver should exist", mPackageIntentReceiver);
- assertNotNull("nas intent receiver should exist", mNASIntentReceiver);
// Pretend the shortcut exists
List<ShortcutInfo> shortcutInfos = new ArrayList<>();
@@ -655,16 +645,6 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mPackageIntentReceiver.onReceive(getContext(), intent);
}
- private void simulateNASUpgradeBroadcast(String action, int uid) {
- final Bundle extras = new Bundle();
- extras.putInt(Intent.EXTRA_USER_ID, uid);
-
- final Intent intent = new Intent(action);
- intent.putExtras(extras);
-
- mNASIntentReceiver.onReceive(getContext(), intent);
- }
-
private ArrayMap<Boolean, ArrayList<ComponentName>> generateResetComponentValues() {
ArrayMap<Boolean, ArrayList<ComponentName>> changed = new ArrayMap<>();
changed.put(true, new ArrayList<>());
@@ -6042,7 +6022,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
}
@Test
- public void testNASSettingUpgrade_userSetNull_noOnBoarding() throws RemoteException {
+ public void testNASSettingUpgrade_userSetNull() throws RemoteException {
ComponentName newDefaultComponent = ComponentName.unflattenFromString("package/Component1");
TestableNotificationManagerService service = spy(mService);
int userId = 11;
@@ -6055,14 +6035,13 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
.thenReturn(new ArrayList<>());
when(mAssistants.hasUserSet(userId)).thenReturn(true);
- service.migrateDefaultNASShowNotificationIfNecessary();
+ service.migrateDefaultNAS();
assertTrue(service.isNASMigrationDone(userId));
- verify(service, times(0)).createNASUpgradeNotification(eq(userId));
verify(mAssistants, times(1)).clearDefaults();
}
@Test
- public void testNASSettingUpgrade_userSetSameDefault_noOnBoarding() throws RemoteException {
+ public void testNASSettingUpgrade_userSet() throws RemoteException {
ComponentName defaultComponent = ComponentName.unflattenFromString("package/Component1");
TestableNotificationManagerService service = spy(mService);
int userId = 11;
@@ -6075,55 +6054,10 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
.thenReturn(new ArrayList(Arrays.asList(defaultComponent)));
when(mAssistants.hasUserSet(userId)).thenReturn(true);
- service.migrateDefaultNASShowNotificationIfNecessary();
- assertTrue(service.isNASMigrationDone(userId));
- verify(service, times(0)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(1)).resetDefaultFromConfig();
- }
-
- @Test
- public void testNASSettingUpgrade_userSetDifferentDefault_showOnboarding()
- throws RemoteException {
- ComponentName oldDefaultComponent = ComponentName.unflattenFromString("package/Component1");
- ComponentName newDefaultComponent = ComponentName.unflattenFromString("package/Component2");
- TestableNotificationManagerService service = spy(mService);
- int userId = 11;
- setUsers(new int[]{userId});
- setNASMigrationDone(false, userId);
- when(mAssistants.getDefaultComponents())
- .thenReturn(new ArraySet<>(Arrays.asList(oldDefaultComponent)));
- when(mAssistants.getDefaultFromConfig())
- .thenReturn(newDefaultComponent);
- when(mAssistants.getAllowedComponents(anyInt()))
- .thenReturn(Arrays.asList(oldDefaultComponent));
- when(mAssistants.hasUserSet(userId)).thenReturn(true);
-
- service.migrateDefaultNASShowNotificationIfNecessary();
- assertFalse(service.isNASMigrationDone(userId));
- //TODO(b/192450820)
- //verify(service, times(1)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
-
- //Test user clear data before enable/disable from onboarding notification
- ArrayMap<Boolean, ArrayList<ComponentName>> changedListeners =
- generateResetComponentValues();
- when(mListeners.resetComponents(anyString(), anyInt())).thenReturn(changedListeners);
- ArrayMap<Boolean, ArrayList<ComponentName>> changes = new ArrayMap<>();
- changes.put(true, new ArrayList(Arrays.asList(newDefaultComponent)));
- changes.put(false, new ArrayList());
- when(mAssistants.resetComponents(anyString(), anyInt())).thenReturn(changes);
-
- //Clear data
- service.getBinderService().clearData("package", userId, false);
- //Test migrate flow again
- service.migrateDefaultNASShowNotificationIfNecessary();
-
- //The notification should be still there
- assertFalse(service.isNASMigrationDone(userId));
- //TODO(b/192450820)
- //verify(service, times(2)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
- assertEquals(oldDefaultComponent, service.getApprovedAssistant(userId));
+ service.migrateDefaultNAS();
+ verify(mAssistants, times(1)).setUserSet(userId, false);
+ //resetDefaultAssistantsIfNecessary should invoke from readPolicyXml() and migration
+ verify(mAssistants, times(2)).resetDefaultAssistantsIfNecessary();
}
@Test
@@ -6143,24 +6077,22 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
.thenReturn(new ArraySet<>(Arrays.asList(oldDefaultComponent)));
when(mAssistants.getDefaultFromConfig())
.thenReturn(newDefaultComponent);
- //User1: need onboarding
+ //User1: set different NAS
when(mAssistants.getAllowedComponents(userId1))
.thenReturn(Arrays.asList(oldDefaultComponent));
- //User2: no onboarding
+ //User2: set to none
when(mAssistants.getAllowedComponents(userId2))
- .thenReturn(Arrays.asList(newDefaultComponent));
+ .thenReturn(new ArrayList<>());
when(mAssistants.hasUserSet(userId1)).thenReturn(true);
when(mAssistants.hasUserSet(userId2)).thenReturn(true);
- service.migrateDefaultNASShowNotificationIfNecessary();
- assertFalse(service.isNASMigrationDone(userId1));
+ service.migrateDefaultNAS();
+ // user1's setting get reset
+ verify(mAssistants, times(1)).setUserSet(userId1, false);
+ verify(mAssistants, times(0)).setUserSet(eq(userId2), anyBoolean());
assertTrue(service.isNASMigrationDone(userId2));
- //TODO(b/192450820)
- //verify(service, times(1)).createNASUpgradeNotification(any(Integer.class));
- // only user2's default get updated
- verify(mAssistants, times(1)).resetDefaultFromConfig();
}
@Test
@@ -6180,7 +6112,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
.thenReturn(new ArraySet<>(Arrays.asList(oldDefaultComponent)));
when(mAssistants.getDefaultFromConfig())
.thenReturn(newDefaultComponent);
- //Both profiles: need onboarding
+ //Both profiles: set different NAS
when(mAssistants.getAllowedComponents(userId1))
.thenReturn(Arrays.asList(oldDefaultComponent));
when(mAssistants.getAllowedComponents(userId2))
@@ -6189,13 +6121,9 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
when(mAssistants.hasUserSet(userId1)).thenReturn(true);
when(mAssistants.hasUserSet(userId2)).thenReturn(true);
- service.migrateDefaultNASShowNotificationIfNecessary();
+ service.migrateDefaultNAS();
assertFalse(service.isNASMigrationDone(userId1));
assertFalse(service.isNASMigrationDone(userId2));
-
- // TODO(b/192450820): only user1 get notification
- //verify(service, times(1)).createNASUpgradeNotification(eq(userId1));
- //verify(service, times(0)).createNASUpgradeNotification(eq(userId2));
}
@@ -6223,79 +6151,16 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
//Clear data
service.getBinderService().clearData("package", userId, false);
//Test migrate flow again
- service.migrateDefaultNASShowNotificationIfNecessary();
-
- //TODO(b/192450820): The notification should not appear again
- //verify(service, times(0)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
- }
-
- @Test
- public void testNASUpgradeNotificationDisableBroadcast_multiProfile() {
- int userId1 = 11;
- int userId2 = 12;
- setUsers(new int[]{userId1, userId2});
- when(mUm.isManagedProfile(userId2)).thenReturn(true);
- when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1, userId2});
-
- TestableNotificationManagerService service = spy(mService);
- setNASMigrationDone(false, userId1);
- setNASMigrationDone(false, userId2);
+ service.migrateDefaultNAS();
- simulateNASUpgradeBroadcast(ACTION_DISABLE_NAS, userId1);
-
- assertTrue(service.isNASMigrationDone(userId1));
- assertTrue(service.isNASMigrationDone(userId2));
- // User disabled the NAS from notification, the default stored in xml should be null
- // rather than the new default
- verify(mAssistants, times(1)).clearDefaults();
- verify(mAssistants, times(0)).resetDefaultFromConfig();
+ //Migration should not happen again
+ verify(mAssistants, times(0)).setUserSet(userId, false);
+ verify(mAssistants, times(0)).clearDefaults();
+ //resetDefaultAssistantsIfNecessary should only invoke once from readPolicyXml()
+ verify(mAssistants, times(1)).resetDefaultAssistantsIfNecessary();
- //TODO(b/192450820):No more notification after disabled
- //service.migrateDefaultNASShowNotificationIfNecessary();
- //verify(service, times(0)).createNASUpgradeNotification(anyInt());
}
- @Test
- public void testNASUpgradeNotificationEnableBroadcast_multiUser() {
- int userId1 = 11;
- int userId2 = 12;
- setUsers(new int[]{userId1, userId2});
- when(mUm.getProfileIds(userId1, false)).thenReturn(new int[]{userId1});
-
- TestableNotificationManagerService service = spy(mService);
- setNASMigrationDone(false, userId1);
- setNASMigrationDone(false, userId2);
-
- simulateNASUpgradeBroadcast(ACTION_ENABLE_NAS, userId1);
-
- assertTrue(service.isNASMigrationDone(userId1));
- assertFalse(service.isNASMigrationDone(userId2));
- verify(mAssistants, times(1)).resetDefaultFromConfig();
-
- //TODO(b/192450820)
- //service.migrateDefaultNASShowNotificationIfNecessary();
- //verify(service, times(0)).createNASUpgradeNotification(eq(userId1));
- }
-
- @Test
- public void testNASUpgradeNotificationLearnMoreBroadcast() {
- int userId = 11;
- setUsers(new int[]{userId});
- TestableNotificationManagerService service = spy(mService);
- setNASMigrationDone(false, userId);
- doNothing().when(mContext).startActivity(any());
-
- simulateNASUpgradeBroadcast(ACTION_LEARNMORE_NAS, userId);
-
- verify(mContext, times(1)).startActivity(any(Intent.class));
- assertFalse(service.isNASMigrationDone(userId));
- //TODO(b/192450820)
- //verify(service, times(0)).createNASUpgradeNotification(eq(userId));
- verify(mAssistants, times(0)).resetDefaultFromConfig();
- }
-
-
private void setNASMigrationDone(boolean done, int userId) {
Settings.Secure.putIntForUser(mContext.getContentResolver(),
Settings.Secure.NAS_SETTINGS_UPDATED, done ? 1 : 0, userId);