summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSvetoslav Ganov <svetoslavganov@google.com>2016-05-12 20:03:46 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-05-12 20:03:46 +0000
commit1a046433ecb25dc4d1bfa7ab96d8bbc5dcfd7e76 (patch)
treed0a828e1d187bc829c7b2f05c4b99b593edc1e69 /src
parent941a7c8f242bdc8847c0b47a7621738ac416944f (diff)
parentf63739bb3f5de9927171b84630ec5872ba85fa6c (diff)
downloadandroid_packages_apps_PackageInstaller-1a046433ecb25dc4d1bfa7ab96d8bbc5dcfd7e76.tar.gz
android_packages_apps_PackageInstaller-1a046433ecb25dc4d1bfa7ab96d8bbc5dcfd7e76.tar.bz2
android_packages_apps_PackageInstaller-1a046433ecb25dc4d1bfa7ab96d8bbc5dcfd7e76.zip
Fix app install flow
am: f63739bb3f * commit 'f63739bb3f5de9927171b84630ec5872ba85fa6c': Fix app install flow Change-Id: I37bdfd9f7e005d57eb90e46f87f4cabcfaa6519c
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/packageinstaller/InstallAppProgress.java29
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java5
2 files changed, 25 insertions, 9 deletions
diff --git a/src/com/android/packageinstaller/InstallAppProgress.java b/src/com/android/packageinstaller/InstallAppProgress.java
index 38f53e53..e93c93c7 100755
--- a/src/com/android/packageinstaller/InstallAppProgress.java
+++ b/src/com/android/packageinstaller/InstallAppProgress.java
@@ -34,7 +34,6 @@ import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
-import android.graphics.drawable.LevelListDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
@@ -94,7 +93,7 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
setResult(msg.arg1 == PackageInstaller.STATUS_SUCCESS
? Activity.RESULT_OK : Activity.RESULT_FIRST_USER,
result);
- finish();
+ clearCachedApkIfNeededAndFinish();
return;
}
// Update the status text
@@ -206,6 +205,11 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
initView();
}
+ @Override
+ public void onBackPressed() {
+ clearCachedApkIfNeededAndFinish();
+ }
+
@SuppressWarnings("deprecation")
@Override
public Dialog onCreateDialog(int id, Bundle bundle) {
@@ -220,13 +224,13 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
//launch manage applications
Intent intent = new Intent("android.intent.action.MANAGE_PACKAGE_STORAGE");
startActivity(intent);
- finish();
+ clearCachedApkIfNeededAndFinish();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.i(TAG, "Canceling installation");
- finish();
+ clearCachedApkIfNeededAndFinish();
}
})
.setOnCancelListener(this)
@@ -370,14 +374,27 @@ public class InstallAppProgress extends Activity implements View.OnClickListener
if (mAppInfo.packageName != null) {
Log.i(TAG, "Finished installing "+mAppInfo.packageName);
}
- finish();
+ clearCachedApkIfNeededAndFinish();
} else if(v == mLaunchButton) {
startActivity(mLaunchIntent);
- finish();
+ clearCachedApkIfNeededAndFinish();
}
}
public void onCancel(DialogInterface dialog) {
+ clearCachedApkIfNeededAndFinish();
+ }
+
+ private void clearCachedApkIfNeededAndFinish() {
+ // If we are installing from a content:// the apk is copied in the cache
+ // dir and passed in here. As we aren't started for a result because our
+ // caller needs to be able to forward the result, here we make sure the
+ // staging file in the cache dir is removed.
+ if ("file".equals(mPackageURI.getScheme()) && mPackageURI.getPath() != null
+ && mPackageURI.getPath().startsWith(getCacheDir().toString())) {
+ File file = new File(mPackageURI.getPath());
+ file.delete();
+ }
finish();
}
}
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index ab4c6045..cbb9f646 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -72,7 +72,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
private static final String TAG = "PackageInstaller";
private static final int REQUEST_ENABLE_UNKNOWN_SOURCES = 1;
- private static final int REQUEST_INSTALL_PACKAGE = 2;
private static final String SCHEME_FILE = "file";
private static final String SCHEME_CONTENT = "content";
@@ -324,7 +323,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (request == REQUEST_ENABLE_UNKNOWN_SOURCES && result == RESULT_OK) {
initiateInstall();
}
- clearCachedApkIfNeededAndFinish();
}
private boolean isInstallRequestFromUnknownSource(Intent intent) {
@@ -684,7 +682,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
}
if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI);
- startActivityForResult(newIntent, REQUEST_INSTALL_PACKAGE);
+ startActivity(newIntent);
+ finish();
}
private void clearCachedApkIfNeededAndFinish() {