summaryrefslogtreecommitdiff
path: root/src/com/android/launcher3/model/data/ItemInfo.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/model/data/ItemInfo.java')
-rw-r--r--src/com/android/launcher3/model/data/ItemInfo.java32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/com/android/launcher3/model/data/ItemInfo.java b/src/com/android/launcher3/model/data/ItemInfo.java
index 9afa4593a9..86393a0012 100644
--- a/src/com/android/launcher3/model/data/ItemInfo.java
+++ b/src/com/android/launcher3/model/data/ItemInfo.java
@@ -60,9 +60,12 @@ import com.android.launcher3.logger.LauncherAtom.TaskSwitcherContainer;
import com.android.launcher3.logger.LauncherAtom.WallpapersContainer;
import com.android.launcher3.logger.LauncherAtomExtensions.ExtendedContainers;
import com.android.launcher3.model.ModelWriter;
+import com.android.launcher3.pm.UserCache;
import com.android.launcher3.util.ComponentKey;
import com.android.launcher3.util.ContentWriter;
import com.android.launcher3.util.SettingsCache;
+import com.android.launcher3.util.UserIconInfo;
+import com.android.systemui.shared.system.SysUiStatsLog;
import java.util.Optional;
@@ -414,7 +417,9 @@ public class ItemInfo {
@NonNull
protected LauncherAtom.ItemInfo.Builder getDefaultItemInfoBuilder() {
LauncherAtom.ItemInfo.Builder itemBuilder = LauncherAtom.ItemInfo.newBuilder();
- itemBuilder.setIsWork(!Process.myUserHandle().equals(user));
+ UserIconInfo info = getUserInfo();
+ itemBuilder.setIsWork(info != null && info.isWork());
+ itemBuilder.setUserType(getUserType(info));
SettingsCache settingsCache = SettingsCache.INSTANCE.getNoCreate();
boolean isKidsMode = settingsCache != null && settingsCache.getValue(NAV_BAR_KIDS_MODE, 0);
itemBuilder.setIsKidsMode(isKidsMode);
@@ -510,4 +515,29 @@ public class ItemInfo {
@Nullable final ModelWriter modelWriter) {
this.title = title;
}
+
+ private UserIconInfo getUserInfo() {
+ UserCache userCache = UserCache.INSTANCE.getNoCreate();
+ if (userCache == null) {
+ return null;
+ }
+
+ return userCache.getUserInfo(user);
+ }
+
+ private int getUserType(UserIconInfo info) {
+ if (info == null) {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_UNKNOWN;
+ } else if (info.isMain()) {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_MAIN;
+ } else if (info.isPrivate()) {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_PRIVATE;
+ } else if (info.isWork()) {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_WORK;
+ } else if (info.isCloned()) {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_CLONED;
+ } else {
+ return SysUiStatsLog.LAUNCHER_UICHANGED__USER_TYPE__TYPE_UNKNOWN;
+ }
+ }
}