summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/InstallAppProgress.java
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2012-11-18 22:51:13 -0800
committerSteve Kondik <shade@chemlab.org>2012-11-18 22:51:13 -0800
commit32f720afab05e43b3a291afd76e75a6b1c2080c4 (patch)
tree3da93935a5961254eaa0a9d00ed661c020e9bbc3 /src/com/android/packageinstaller/InstallAppProgress.java
parent771c0f58c04ff478e0666dd04b07d8abe4c5d2e3 (diff)
parent3e76ae182cdb2d44a59ef3762321018bdb4de8dc (diff)
downloadandroid_packages_apps_PackageInstaller-32f720afab05e43b3a291afd76e75a6b1c2080c4.tar.gz
android_packages_apps_PackageInstaller-32f720afab05e43b3a291afd76e75a6b1c2080c4.tar.bz2
android_packages_apps_PackageInstaller-32f720afab05e43b3a291afd76e75a6b1c2080c4.zip
Merge branch 'jb-mr1-release' of https://android.googlesource.com/platform/packages/apps/PackageInstaller into HEADcm-10.1-M1
Change-Id: Ib1b0bbed7b33842394ef77676885a4d1940b6fdb
Diffstat (limited to 'src/com/android/packageinstaller/InstallAppProgress.java')
-rwxr-xr-xsrc/com/android/packageinstaller/InstallAppProgress.java34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java
index 8bfcd4f1..fc820782 100755
--- a/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/src/com/android/packageinstaller/InstallAppProgress.java
@@ -28,6 +28,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
+import android.content.pm.VerificationParams;
import android.graphics.drawable.LevelListDrawable;
import android.net.Uri;
import android.os.Bundle;
@@ -162,7 +163,7 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
mPackageURI = intent.getData();
final String scheme = mPackageURI.getScheme();
- if (scheme != null && !"file".equals(scheme)) {
+ if (scheme != null && !"file".equals(scheme) && !"package".equals(scheme)) {
throw new IllegalArgumentException("unexpected scheme " + scheme);
}
@@ -226,8 +227,14 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
Log.w(TAG, "Replacing package:" + mAppInfo.packageName);
}
- final File sourceFile = new File(mPackageURI.getPath());
- PackageUtil.AppSnippet as = PackageUtil.getAppSnippet(this, mAppInfo, sourceFile);
+ final PackageUtil.AppSnippet as;
+ if ("package".equals(mPackageURI.getScheme())) {
+ as = new PackageUtil.AppSnippet(pm.getApplicationLabel(mAppInfo),
+ pm.getApplicationIcon(mAppInfo));
+ } else {
+ final File sourceFile = new File(mPackageURI.getPath());
+ as = PackageUtil.getAppSnippet(this, mAppInfo, sourceFile);
+ }
mLabel = as.label;
PackageUtil.initSnippetForNewApp(this, as, R.id.app_snippet);
mStatusTextView = (TextView)findViewById(R.id.center_text);
@@ -243,8 +250,27 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
String installerPackageName = getIntent().getStringExtra(
Intent.EXTRA_INSTALLER_PACKAGE_NAME);
+ Uri originatingURI = getIntent().getParcelableExtra(Intent.EXTRA_ORIGINATING_URI);
+ Uri referrer = getIntent().getParcelableExtra(Intent.EXTRA_REFERRER);
+ int originatingUid = getIntent().getIntExtra(Intent.EXTRA_ORIGINATING_UID,
+ VerificationParams.NO_UID);
+ VerificationParams verificationParams = new VerificationParams(null, originatingURI,
+ referrer, originatingUid, null);
PackageInstallObserver observer = new PackageInstallObserver();
- pm.installPackage(mPackageURI, observer, installFlags, installerPackageName);
+
+ if ("package".equals(mPackageURI.getScheme())) {
+ try {
+ pm.installExistingPackage(mAppInfo.packageName);
+ observer.packageInstalled(mAppInfo.packageName,
+ PackageManager.INSTALL_SUCCEEDED);
+ } catch (PackageManager.NameNotFoundException e) {
+ observer.packageInstalled(mAppInfo.packageName,
+ PackageManager.INSTALL_FAILED_INVALID_APK);
+ }
+ } else {
+ pm.installPackageWithVerificationAndEncryption(mPackageURI, observer, installFlags,
+ installerPackageName, verificationParams, null);
+ }
}
@Override