summaryrefslogtreecommitdiffstats
path: root/core/java/android/content
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-04-15 17:14:12 -0700
committerJeff Sharkey <jsharkey@android.com>2015-04-15 22:21:49 -0700
commite2d45be4dae116307f8edd85eaa61134221cb8f9 (patch)
tree136b7e24f05cc792db37f8a8cf140589b057d4f6 /core/java/android/content
parent9f09b2d93fb8b15d5905b22f566dc0fa99fd086f (diff)
downloadframeworks_base-e2d45be4dae116307f8edd85eaa61134221cb8f9.zip
frameworks_base-e2d45be4dae116307f8edd85eaa61134221cb8f9.tar.gz
frameworks_base-e2d45be4dae116307f8edd85eaa61134221cb8f9.tar.bz2
Candidate volumes for packages, fix symlink.
Add API to determine the possible candidate volumes that a package can be moved to. For example, it currently knows that we need to move ASEC-based apps through internal storage before migrating them to a private volume. Comparator for consistent VolumeInfo ordering when displayed in UI. Fix native library symlink to be volume UUID aware. Bug: 19993667 Change-Id: I68d5fac5f0f776ac1c7dd15e7a984bfe2704f3f7
Diffstat (limited to 'core/java/android/content')
-rw-r--r--core/java/android/content/pm/ApplicationInfo.java12
-rw-r--r--core/java/android/content/pm/PackageManager.java7
2 files changed, 19 insertions, 0 deletions
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 5bdb7bb..caf069f 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -21,6 +21,7 @@ import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
+import android.text.TextUtils;
import android.util.Printer;
import com.android.internal.util.ArrayUtils;
@@ -937,6 +938,17 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
return (flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
}
+ /** @hide */
+ public boolean isInternal() {
+ return (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) == 0;
+ }
+
+ /** @hide */
+ public boolean isExternalAsec() {
+ return TextUtils.isEmpty(volumeUuid)
+ && (flags & ApplicationInfo.FLAG_EXTERNAL_STORAGE) != 0;
+ }
+
/**
* @hide
*/
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index 8844ea8..a128872 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -20,6 +20,7 @@ import android.annotation.CheckResult;
import android.annotation.DrawableRes;
import android.annotation.IntDef;
import android.annotation.NonNull;
+import android.annotation.Nullable;
import android.annotation.SdkConstant;
import android.annotation.SdkConstant.SdkConstantType;
import android.annotation.StringRes;
@@ -4162,6 +4163,12 @@ public abstract class PackageManager {
public abstract void movePackageAndData(String packageName, String volumeUuid,
IPackageMoveObserver observer);
+ /** {@hide} */
+ public abstract @Nullable VolumeInfo getApplicationCurrentVolume(ApplicationInfo app);
+
+ /** {@hide} */
+ public abstract @NonNull List<VolumeInfo> getApplicationCandidateVolumes(ApplicationInfo app);
+
/**
* Returns the device identity that verifiers can use to associate their scheme to a particular
* device. This should not be used by anything other than a package verifier.