1bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickhampackage com.android.launcher3.shortcuts;
2bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
3bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickhamimport android.content.ComponentName;
4d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyalimport android.content.Intent;
5bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
6fc02c1b446ee54561ac7351fb6ff0f8294785f0eTony Wickhamimport com.android.launcher3.ShortcutInfo;
7bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickhamimport com.android.launcher3.compat.UserHandleCompat;
8bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickhamimport com.android.launcher3.util.ComponentKey;
9bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
10bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham/**
11bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham * A key that uniquely identifies a shortcut using its package, id, and user handle.
12bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham */
13bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickhampublic class ShortcutKey extends ComponentKey {
14bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
15bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham    public ShortcutKey(String packageName, UserHandleCompat user, String id) {
16bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham        // Use the id as the class name.
17bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham        super(new ComponentName(packageName, id), user);
18d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal    }
19d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal
20d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal    public String getId() {
21d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal        return componentName.getClassName();
22bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham    }
23bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham
24bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham    public static ShortcutKey fromInfo(ShortcutInfoCompat shortcutInfo) {
25bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham        return new ShortcutKey(shortcutInfo.getPackage(), shortcutInfo.getUserHandle(),
26bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham                shortcutInfo.getId());
27bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham    }
28d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal
29d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal    public static ShortcutKey fromIntent(Intent intent, UserHandleCompat user) {
30d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal        String shortcutId = intent.getStringExtra(
31d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal                ShortcutInfoCompat.EXTRA_SHORTCUT_ID);
32d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal        return new ShortcutKey(intent.getPackage(), user, shortcutId);
33d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal    }
34d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal
35fc02c1b446ee54561ac7351fb6ff0f8294785f0eTony Wickham    public static ShortcutKey fromShortcutInfo(ShortcutInfo info) {
36fc02c1b446ee54561ac7351fb6ff0f8294785f0eTony Wickham        return fromIntent(info.getPromisedIntent(), info.user);
37d3b87ef1963fb96177ca85bcd6a25879e27e419cSunny Goyal    }
38bfbf7f9f4a0b300613f0ff27a4eb592d88c08325Tony Wickham}
39