summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/util
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2015-06-18 11:38:42 -0700
committerWinson Chung <winsonc@google.com>2015-06-18 12:39:24 -0700
commit6b1c73f50a99a215c923aa0caca8e63c593a4eb2 (patch)
tree11f17da80e95d2f7dcbf3cab8187ae7bbaf3a1ec /src/com/android/launcher3/util
parent01d4053436a6a771b36b527a4f0ff49bbf468632 (diff)
downloadandroid_packages_apps_Trebuchet-6b1c73f50a99a215c923aa0caca8e63c593a4eb2.tar.gz
android_packages_apps_Trebuchet-6b1c73f50a99a215c923aa0caca8e63c593a4eb2.tar.bz2
android_packages_apps_Trebuchet-6b1c73f50a99a215c923aa0caca8e63c593a4eb2.zip
Moving predicted apps callbacks to use ComponentKey.
Bug: 21270185 Change-Id: If2d9dd77235e7a96de96a1a5441a589ef8a72a7f
Diffstat (limited to 'src/com/android/launcher3/util')
-rw-r--r--src/com/android/launcher3/util/ComponentKey.java32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/com/android/launcher3/util/ComponentKey.java b/src/com/android/launcher3/util/ComponentKey.java
index 0f17f009e..6a7df4318 100644
--- a/src/com/android/launcher3/util/ComponentKey.java
+++ b/src/com/android/launcher3/util/ComponentKey.java
@@ -17,8 +17,9 @@ package com.android.launcher3.util;
*/
import android.content.ComponentName;
-
+import android.content.Context;
import com.android.launcher3.compat.UserHandleCompat;
+import com.android.launcher3.compat.UserManagerCompat;
import java.util.Arrays;
@@ -38,6 +39,35 @@ public class ComponentKey {
}
+ /**
+ * Creates a new component key from an encoded component key string in the form of
+ * [flattenedComponentString#userId]. If the userId is not present, then it defaults
+ * to the current user.
+ */
+ public ComponentKey(Context context, String componentKeyStr) {
+ int userDelimiterIndex = componentKeyStr.indexOf("#");
+ if (userDelimiterIndex != -1) {
+ String componentStr = componentKeyStr.substring(0, userDelimiterIndex);
+ Long componentUser = Long.valueOf(componentKeyStr.substring(userDelimiterIndex + 1));
+ componentName = ComponentName.unflattenFromString(componentStr);
+ user = UserManagerCompat.getInstance(context)
+ .getUserForSerialNumber(componentUser.longValue());
+ } else {
+ // No user provided, default to the current user
+ componentName = ComponentName.unflattenFromString(componentKeyStr);
+ user = UserHandleCompat.myUserHandle();
+ }
+ mHashCode = Arrays.hashCode(new Object[] {componentName, user});
+ }
+
+ /**
+ * Encodes a component key as a string of the form [flattenedComponentString#userId].
+ */
+ public String flattenToString(Context context) {
+ return componentName.flattenToString() + "#" +
+ UserManagerCompat.getInstance(context).getSerialNumberForUser(user);
+ }
+
@Override
public int hashCode() {
return mHashCode;