diff options
Diffstat (limited to 'src/com/android/launcher3/model/data/ItemInfo.java')
-rw-r--r-- | src/com/android/launcher3/model/data/ItemInfo.java | 32 |
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; + } + } } |