Merge "Fix potential NPE & clean up some logic" into tm-dev

This commit is contained in:
Mady Mellor
2022-05-17 16:50:10 +00:00
committed by Android (Google) Code Review
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 userId: Int,
@UserIdInt parentUserId: Int @UserIdInt parentUserId: Int
): Boolean { ): 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 // First check if the user is a parent / top-level user
val parentUserId = entitiesByUser.keyAt(i) val parentUserId = entitiesByUser.keyAt(i)
if (!activeUsers.contains(parentUserId)) { if (!activeUsers.contains(parentUserId)) {
return removeBubblesForUser(parentUserId, -1) entitiesByUser.remove(parentUserId)
} else { 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 // 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. // as it could belong to a profile and have a different id from the parent.
return entitiesByUser.get(parentUserId).removeIf { b: BubbleEntity -> return entitiesByUser.get(parentUserId).removeIf { b: BubbleEntity ->

View File

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