Merge "Fix potential NPE & clean up some logic" into tm-dev am: 5126e8b1b5

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18421368

Change-Id: Ibad2dcfd364fb4a178c81fb53d974b734f2d1c7d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mady Mellor
2022-05-18 21:20:32 +00:00
committed by Automerger Merge Worker
2 changed files with 14 additions and 3 deletions

View File

@@ -126,7 +126,11 @@ class BubbleVolatileRepository(private val launcherApps: LauncherApps) {
@UserIdInt userId: Int,
@UserIdInt parentUserId: Int
): Boolean {
return entitiesByUser.get(parentUserId).removeIf { b: BubbleEntity -> b.userId == userId }
if (entitiesByUser.get(parentUserId) != null) {
return entitiesByUser.get(parentUserId).removeIf {
b: BubbleEntity -> b.userId == userId }
}
return false
}
/**
@@ -141,8 +145,9 @@ class BubbleVolatileRepository(private val launcherApps: LauncherApps) {
// First check if the user is a parent / top-level user
val parentUserId = entitiesByUser.keyAt(i)
if (!activeUsers.contains(parentUserId)) {
return removeBubblesForUser(parentUserId, -1)
} else {
entitiesByUser.remove(parentUserId)
return true
} else if (entitiesByUser.get(parentUserId) != null) {
// Then check if each of the bubbles in the top-level user, still has a valid user
// as it could belong to a profile and have a different id from the parent.
return entitiesByUser.get(parentUserId).removeIf { b: BubbleEntity ->

View File

@@ -269,6 +269,12 @@ class BubbleVolatileRepositoryTest : ShellTestCase() {
assertThat(repository.getEntities(user11.identifier).toList())
.isEqualTo(listOf(bubble11, bubble12))
}
@Test
fun testRemoveBubbleForUser_invalidInputDoesntCrash() {
repository.removeBubblesForUser(-1, 0)
repository.removeBubblesForUser(-1, -1)
}
}
private const val PKG_MESSENGER = "com.example.messenger"