ShortcutManager: Handle package broadcasts.
- Do a cleanup when an app is gone.
- Record the app version and signatures.
- Also make saveToXml() capable of saving for backup.
Bug 27548047
Change-Id: I7eb2bbec7665b4d625630e7312c0f2a8b03c5ffa
diff --git a/services/core/java/com/android/server/pm/ShortcutLauncher.java b/services/core/java/com/android/server/pm/ShortcutLauncher.java
index f1920c7..740a8f7 100644
--- a/services/core/java/com/android/server/pm/ShortcutLauncher.java
+++ b/services/core/java/com/android/server/pm/ShortcutLauncher.java
@@ -32,7 +32,7 @@
/**
* Launcher information used by {@link ShortcutService}.
*/
-class ShortcutLauncher {
+class ShortcutLauncher implements ShortcutPackageItem {
private static final String TAG = ShortcutService.TAG;
static final String TAG_ROOT = "launcher-pins";
@@ -44,10 +44,10 @@
private static final String ATTR_PACKAGE_NAME = "package-name";
@UserIdInt
- final int mUserId;
+ private final int mUserId;
@NonNull
- final String mPackageName;
+ private final String mPackageName;
/**
* Package name -> IDs.
@@ -59,6 +59,16 @@
mPackageName = packageName;
}
+ @UserIdInt
+ public int getUserId() {
+ return mUserId;
+ }
+
+ @NonNull
+ public String getPackageName() {
+ return mPackageName;
+ }
+
public void pinShortcuts(@NonNull ShortcutService s, @NonNull String packageName,
@NonNull List<String> ids) {
final int idSize = ids.size();
@@ -103,7 +113,7 @@
/**
* Persist.
*/
- public void saveToXml(XmlSerializer out) throws IOException {
+ public void saveToXml(XmlSerializer out, boolean forBackup) throws IOException {
final int size = mPinnedShortcuts.size();
if (size == 0) {
return; // Nothing to write.
@@ -190,7 +200,7 @@
for (int j = 0; j < idSize; j++) {
pw.print(prefix);
- pw.print(" ");
+ pw.print(" Pinned: ");
pw.print(ids.valueAt(j));
pw.println();
}