From 076ca8c8373a3d5f3f56103fa85966cc6c34c94a Mon Sep 17 00:00:00 2001 From: rich cannings Date: Thu, 26 Jul 2012 14:09:49 -0700 Subject: Accept and pass URLs to PackageManagerService This change passes the originating URI and referrer of an apk, when available, to the package manager. Bug: 6544677 Change-Id: I6b1036012399f6cd42feceedeca2493b6b20501a --- src/com/android/packageinstaller/InstallAppProgress.java | 7 ++++++- .../android/packageinstaller/PackageInstallerActivity.java | 12 +++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java index 8bfcd4f1..6e471cb2 100755 --- a/src/com/android/packageinstaller/InstallAppProgress.java +++ b/src/com/android/packageinstaller/InstallAppProgress.java @@ -243,8 +243,13 @@ 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); + PackageInstallObserver observer = new PackageInstallObserver(); - pm.installPackage(mPackageURI, observer, installFlags, installerPackageName); + + pm.installPackageWithOrigin(mPackageURI, observer, installFlags, + installerPackageName, originatingURI, referrer); } @Override diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index 99631035..d76295ac 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -60,7 +60,9 @@ import java.util.ArrayList; */ public class PackageInstallerActivity extends Activity implements OnCancelListener, OnClickListener { private static final String TAG = "PackageInstaller"; - private Uri mPackageURI; + private Uri mPackageURI; + private Uri mPackageOriginatingURI; + private Uri mPackageReferrer; private boolean localLOGV = false; PackageManager mPm; PackageParser.Package mPkgInfo; @@ -284,6 +286,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen // get intent information final Intent intent = getIntent(); mPackageURI = intent.getData(); + mPackageOriginatingURI = intent.getParcelableExtra(Intent.EXTRA_ORIGINATING_URI); + mPackageReferrer = intent.getParcelableExtra(Intent.EXTRA_REFERRER); mPm = getPackageManager(); final String scheme = mPackageURI.getScheme(); @@ -364,6 +368,12 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen newIntent.setData(mPackageURI); newIntent.setClass(this, InstallAppProgress.class); String installerPackageName = getIntent().getStringExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME); + if (mPackageOriginatingURI != null) { + newIntent.putExtra(Intent.EXTRA_ORIGINATING_URI, mPackageOriginatingURI); + } + if (mPackageReferrer != null) { + newIntent.putExtra(Intent.EXTRA_REFERRER, mPackageReferrer); + } if (installerPackageName != null) { newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, installerPackageName); } -- cgit v1.2.3