summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chaohui Wang <chaohuiw@google.com> 2023-01-19 04:49:11 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-01-19 04:49:11 +0000
commit2e6e9465fa33e554a2d061a7dfd48cba48d59a5e (patch)
tree744247af5ba3296b53b480a252f43fb3c070ab95
parentdd107e2eab85f21af11b062b20de7294ed6b6696 (diff)
parente41f7cc8ad9a4fc0996f9fbffa66b5a6b23223cb (diff)
Merge "Add identityHashCode to App List item key"
-rw-r--r--packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt
index 7199e3a319fe..57a60e505553 100644
--- a/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt
+++ b/packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppList.kt
@@ -49,6 +49,7 @@ import com.android.settingslib.spaprivileged.model.app.AppListModel
import com.android.settingslib.spaprivileged.model.app.AppListViewModel
import com.android.settingslib.spaprivileged.model.app.AppRecord
import com.android.settingslib.spaprivileged.model.app.IAppListViewModel
+import com.android.settingslib.spaprivileged.model.app.userId
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
@@ -135,7 +136,7 @@ private fun <T : AppRecord> AppListModel<T>.AppListWidget(
header()
}
- items(count = list.size, key = { option to list[it].record.app.packageName }) {
+ items(count = list.size, key = { list[it].record.itemKey(option) }) {
remember(list) { getGroupTitleIfFirst(option, list, it) }
?.let { group -> CategoryTitle(title = group) }
@@ -149,6 +150,9 @@ private fun <T : AppRecord> AppListModel<T>.AppListWidget(
}
}
+private fun <T : AppRecord> T.itemKey(option: Int) =
+ listOf(option, app.packageName, app.userId, System.identityHashCode(this))
+
/** Returns group title if this is the first item of the group. */
private fun <T : AppRecord> AppListModel<T>.getGroupTitleIfFirst(
option: Int,