diff options
author | Chris Soyars <ctsoyars@gmail.com> | 2010-02-28 09:39:18 -0500 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2010-04-11 21:44:15 -0400 |
commit | 61774978cbf6fa4ccdac081d9aed16ed96904a77 (patch) | |
tree | 555f01221cd3f1d0056b498daed3b4dada291c84 | |
parent | 7b570cb2e02ddf1324b48d4d2ceb932324cec48c (diff) | |
download | android_frameworks_base-61774978cbf6fa4ccdac081d9aed16ed96904a77.tar.gz android_frameworks_base-61774978cbf6fa4ccdac081d9aed16ed96904a77.tar.bz2 android_frameworks_base-61774978cbf6fa4ccdac081d9aed16ed96904a77.zip |
Rebase
-rw-r--r-- | services/java/com/android/server/PackageManagerService.java | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/services/java/com/android/server/PackageManagerService.java b/services/java/com/android/server/PackageManagerService.java index 6fad12caa25..13483dc7cda 100644 --- a/services/java/com/android/server/PackageManagerService.java +++ b/services/java/com/android/server/PackageManagerService.java @@ -27,6 +27,7 @@ import org.xmlpull.v1.XmlSerializer; import android.app.ActivityManagerNative; import android.app.IActivityManager; import android.content.ComponentName; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -57,6 +58,7 @@ import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.content.pm.ServiceInfo; import android.content.pm.Signature; +import android.database.Cursor; import android.net.Uri; import android.os.Binder; import android.os.Build; @@ -3543,17 +3545,34 @@ class PackageManagerService extends IPackageManager.Stub { /* Called when a downloaded package installation is completed (usually by the Market) */ public void installPackage(final Uri packageURI, final IPackageInstallObserver observer, final int flags, final String installerPackageName) { - // Here we need to throw an Intent to prompt the user to choose the install location. - - Intent intent = new Intent(); - intent.setData(packageURI); - intent.putExtra("installerPackageName", installerPackageName); - intent.putExtra("flags", flags); - intent.setComponent(new ComponentName("com.android.packageinstaller","com.android.packageinstaller.MarketInstallerActivity")); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - mContext.startActivity(intent); - - return; + // Here we need to throw an Intent to prompt the user to choose the install location. + Boolean prompt = false; + + ContentResolver cr = mContext.getContentResolver(); + Cursor c = cr.query(Uri.parse("content://org.ducktape.provider.Settings/settings"), new String[] { "value" }, "key='apps2sd_prompt'", null, null); + c.moveToFirst(); + if (c.getCount()==0){ + prompt = false; + } else if (c.getString(0).equals("1")) { + prompt = true; + } + c.close(); + + if (prompt) { + Intent intent = new Intent(); + Bundle bundle = new Bundle(); + bundle.putInt("flags", flags); + bundle.putString("installerPackageName", installerPackageName); + intent.setData(packageURI); + intent.putExtras(bundle); + intent.setComponent(new ComponentName("com.android.packageinstaller","com.android.packageinstaller.MarketInstallerActivity")); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + mContext.startActivity(intent); + } else { + installPackageExt(packageURI, observer, flags, installerPackageName, false); + } + + return; } public void installPackageExt(final Uri packageURI, final IPackageInstallObserver observer, final int flags, final String installerPackageName, boolean extInstall) { |