Home | History | Annotate | Download | only in shortcuts
      1 package com.android.launcher3.shortcuts;
      2 
      3 import android.content.ComponentName;
      4 import android.content.Intent;
      5 import android.os.UserHandle;
      6 
      7 import com.android.launcher3.ItemInfo;
      8 import com.android.launcher3.util.ComponentKey;
      9 
     10 /**
     11  * A key that uniquely identifies a shortcut using its package, id, and user handle.
     12  */
     13 public class ShortcutKey extends ComponentKey {
     14 
     15     public ShortcutKey(String packageName, UserHandle user, String id) {
     16         // Use the id as the class name.
     17         super(new ComponentName(packageName, id), user);
     18     }
     19 
     20     public String getId() {
     21         return componentName.getClassName();
     22     }
     23 
     24     public static ShortcutKey fromInfo(ShortcutInfoCompat shortcutInfo) {
     25         return new ShortcutKey(shortcutInfo.getPackage(), shortcutInfo.getUserHandle(),
     26                 shortcutInfo.getId());
     27     }
     28 
     29     public static ShortcutKey fromIntent(Intent intent, UserHandle user) {
     30         String shortcutId = intent.getStringExtra(
     31                 ShortcutInfoCompat.EXTRA_SHORTCUT_ID);
     32         return new ShortcutKey(intent.getPackage(), user, shortcutId);
     33     }
     34 
     35     public static ShortcutKey fromItemInfo(ItemInfo info) {
     36         return fromIntent(info.getIntent(), info.user);
     37     }
     38 }
     39