summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/PackageInstallerActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/packageinstaller/PackageInstallerActivity.java')
-rw-r--r--src/com/android/packageinstaller/PackageInstallerActivity.java87
1 files changed, 1 insertions, 86 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java
index 621da358..7eea541e 100644
--- a/src/com/android/packageinstaller/PackageInstallerActivity.java
+++ b/src/com/android/packageinstaller/PackageInstallerActivity.java
@@ -26,19 +26,16 @@ import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo;
-import android.content.pm.ManifestDigest;
import android.content.pm.PackageInfo;
import android.content.pm.PackageInstaller;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageParser;
import android.content.pm.PackageUserState;
-import android.content.pm.ResolveInfo;
import android.content.pm.VerificationParams;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
-import android.os.SystemClock;
import android.os.UserManager;
import android.provider.Settings;
import android.support.v4.view.ViewPager;
@@ -53,7 +50,6 @@ import android.widget.TabHost;
import android.widget.TextView;
import java.io.File;
-import java.util.List;
/*
* This activity is launched when a new application is installed via side loading
@@ -75,7 +71,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
private Uri mOriginatingURI;
private Uri mReferrerURI;
private int mOriginatingUid = VerificationParams.NO_UID;
- private ManifestDigest mPkgDigest;
private boolean localLOGV = false;
PackageManager mPm;
@@ -87,8 +82,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
// ApplicationInfo object primarily used for already existing applications
private ApplicationInfo mAppInfo = null;
- private InstallFlowAnalytics mInstallFlowAnalytics;
-
// View for install progress
View mInstallConfirm;
// Buttons to indicate user acceptance
@@ -99,8 +92,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
static final String PREFS_ALLOWED_SOURCES = "allowed_sources";
- private static final String PACKAGE_MIME_TYPE = "application/vnd.android.package-archive";
-
private static final String TAB_ID_ALL = "all";
private static final String TAB_ID_NEW = "new";
@@ -119,16 +110,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
tabHost.setup();
ViewPager viewPager = (ViewPager)findViewById(R.id.pager);
TabsAdapter adapter = new TabsAdapter(this, tabHost, viewPager);
- adapter.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
- @Override
- public void onTabChanged(String tabId) {
- if (TAB_ID_ALL.equals(tabId)) {
- mInstallFlowAnalytics.setAllPermissionsDisplayed(true);
- } else if (TAB_ID_NEW.equals(tabId)) {
- mInstallFlowAnalytics.setNewPermissionsDisplayed(true);
- }
- }
- });
// If the app supports runtime permissions the new permissions will
// be requested at runtime, hence we do not show them at install.
boolean supportsRuntimePermissions = mPkgInfo.applicationInfo.targetSdkVersion
@@ -150,7 +131,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (!supportsRuntimePermissions) {
newPermissionsFound =
(perms.getPermissionCount(AppSecurityPermissions.WHICH_NEW) > 0);
- mInstallFlowAnalytics.setNewPermissionsFound(newPermissionsFound);
if (newPermissionsFound) {
permVisible = true;
mScrollView.addView(perms.getPermissionsView(
@@ -183,7 +163,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
adapter.addTab(tabHost.newTabSpec(TAB_ID_ALL).setIndicator(
getText(R.string.allPerms)), root);
}
- mInstallFlowAnalytics.setPermissionsDisplayed(permVisible);
if (!permVisible) {
if (mAppInfo != null) {
// This is an update to an application, but there are no
@@ -196,8 +175,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
msg = R.string.install_confirm_question_no_perms;
}
tabHost.setVisibility(View.GONE);
- mInstallFlowAnalytics.setAllPermissionsDisplayed(false);
- mInstallFlowAnalytics.setNewPermissionsDisplayed(false);
findViewById(R.id.filler).setVisibility(View.VISIBLE);
findViewById(R.id.divider).setVisibility(View.GONE);
mScrollView = null;
@@ -387,23 +364,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
return true;
}
- private boolean isVerifyAppsEnabled() {
- if (mUserManager.hasUserRestriction(UserManager.ENSURE_VERIFY_APPS)) {
- return true;
- }
- return Settings.Global.getInt(getContentResolver(),
- Settings.Global.PACKAGE_VERIFIER_ENABLE, 1) > 0;
- }
-
- private boolean isAppVerifierInstalled() {
- final PackageManager pm = getPackageManager();
- final Intent verification = new Intent(Intent.ACTION_PACKAGE_NEEDS_VERIFICATION);
- verification.setType(PACKAGE_MIME_TYPE);
- verification.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
- final List<ResolveInfo> receivers = pm.queryBroadcastReceivers(verification, 0);
- return (receivers.size() > 0) ? true : false;
- }
-
/**
* @return whether unknown sources is enabled by user in Settings
*/
@@ -443,10 +403,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
mAppInfo = null;
}
- mInstallFlowAnalytics.setReplace(mAppInfo != null);
- mInstallFlowAnalytics.setSystemApp(
- (mAppInfo != null) && ((mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0));
-
// If we have a session id, we're invoked to verify the permissions for the given
// package. Otherwise, we start the install process.
if (mSessionId != -1) {
@@ -495,21 +451,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
final boolean unknownSourcesAllowedByAdmin = isUnknownSourcesAllowedByAdmin();
final boolean unknownSourcesAllowedByUser = isUnknownSourcesEnabled();
- boolean requestFromUnknownSource = isInstallRequestFromUnknownSource(intent);
- mInstallFlowAnalytics = new InstallFlowAnalytics();
- mInstallFlowAnalytics.setContext(this);
- mInstallFlowAnalytics.setStartTimestampMillis(SystemClock.elapsedRealtime());
- mInstallFlowAnalytics.setInstallsFromUnknownSourcesPermitted(unknownSourcesAllowedByAdmin
- && unknownSourcesAllowedByUser);
- mInstallFlowAnalytics.setInstallRequestFromUnknownSource(requestFromUnknownSource);
- mInstallFlowAnalytics.setVerifyAppsEnabled(isVerifyAppsEnabled());
- mInstallFlowAnalytics.setAppVerifierInstalled(isAppVerifierInstalled());
- mInstallFlowAnalytics.setPackageUri(mPackageURI.toString());
-
if (DeviceUtils.isWear(this)) {
showDialogInner(DLG_NOT_SUPPORTED_ON_WEAR);
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_NOT_ALLOWED_ON_WEAR);
return;
}
@@ -517,15 +460,12 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (scheme != null && !"file".equals(scheme) && !"package".equals(scheme)) {
Log.w(TAG, "Unsupported scheme " + scheme);
setPmResult(PackageManager.INSTALL_FAILED_INVALID_URI);
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_FAILED_UNSUPPORTED_SCHEME);
finish();
return;
}
final PackageUtil.AppSnippet as;
if ("package".equals(mPackageURI.getScheme())) {
- mInstallFlowAnalytics.setFileUri(false);
try {
mPkgInfo = mPm.getPackageInfo(mPackageURI.getSchemeSpecificPart(),
PackageManager.GET_PERMISSIONS | PackageManager.GET_UNINSTALLED_PACKAGES);
@@ -536,15 +476,11 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
+ " not available. Discontinuing installation");
showDialogInner(DLG_PACKAGE_ERROR);
setPmResult(PackageManager.INSTALL_FAILED_INVALID_APK);
- mInstallFlowAnalytics.setPackageInfoObtained();
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_FAILED_PACKAGE_MISSING);
return;
}
as = new PackageUtil.AppSnippet(mPm.getApplicationLabel(mPkgInfo.applicationInfo),
mPm.getApplicationIcon(mPkgInfo.applicationInfo));
} else {
- mInstallFlowAnalytics.setFileUri(true);
final File sourceFile = new File(mPackageURI.getPath());
PackageParser.Package parsed = PackageUtil.getPackageInfo(sourceFile);
@@ -553,18 +489,13 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
Log.w(TAG, "Parse error when parsing manifest. Discontinuing installation");
showDialogInner(DLG_PACKAGE_ERROR);
setPmResult(PackageManager.INSTALL_FAILED_INVALID_APK);
- mInstallFlowAnalytics.setPackageInfoObtained();
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_FAILED_TO_GET_PACKAGE_INFO);
return;
}
mPkgInfo = PackageParser.generatePackageInfo(parsed, null,
PackageManager.GET_PERMISSIONS, 0, 0, null,
new PackageUserState());
- mPkgDigest = parsed.manifestDigest;
as = PackageUtil.getAppSnippet(this, mPkgInfo.applicationInfo, sourceFile);
}
- mInstallFlowAnalytics.setPackageInfoObtained();
//set view
setContentView(R.layout.install_start);
@@ -575,6 +506,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
mOriginatingUid = getOriginatingUid(intent);
// Block the install attempt on the Unknown Sources setting if necessary.
+ final boolean requestFromUnknownSource = isInstallRequestFromUnknownSource(intent);
if (!requestFromUnknownSource) {
initiateInstall();
return;
@@ -586,13 +518,9 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (!unknownSourcesAllowedByAdmin
|| (!unknownSourcesAllowedByUser && isManagedProfile)) {
showDialogInner(DLG_ADMIN_RESTRICTS_UNKNOWN_SOURCES);
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_BLOCKED_BY_UNKNOWN_SOURCES_SETTING);
} else if (!unknownSourcesAllowedByUser) {
// Ask user to enable setting first
showDialogInner(DLG_UNKNOWN_SOURCES);
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_BLOCKED_BY_UNKNOWN_SOURCES_SETTING);
} else {
initiateInstall();
}
@@ -675,8 +603,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (mSessionId != -1) {
mInstaller.setPermissionsResult(mSessionId, false);
}
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_CANCELLED_BY_USER);
super.onBackPressed();
}
@@ -688,14 +614,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
public void onClick(View v) {
if (v == mOk) {
if (mOkCanInstall || mScrollView == null) {
- mInstallFlowAnalytics.setInstallButtonClicked();
if (mSessionId != -1) {
mInstaller.setPermissionsResult(mSessionId, true);
-
- // We're only confirming permissions, so we don't really know how the
- // story ends; assume success.
- mInstallFlowAnalytics.setFlowFinishedWithPackageManagerResult(
- PackageManager.INSTALL_SUCCEEDED);
finish();
} else {
startInstall();
@@ -709,8 +629,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
if (mSessionId != -1) {
mInstaller.setPermissionsResult(mSessionId, false);
}
- mInstallFlowAnalytics.setFlowFinished(
- InstallFlowAnalytics.RESULT_CANCELLED_BY_USER);
finish();
}
}
@@ -722,9 +640,6 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen
mPkgInfo.applicationInfo);
newIntent.setData(mPackageURI);
newIntent.setClass(this, InstallAppProgress.class);
- newIntent.putExtra(InstallAppProgress.EXTRA_MANIFEST_DIGEST, mPkgDigest);
- newIntent.putExtra(
- InstallAppProgress.EXTRA_INSTALL_FLOW_ANALYTICS, mInstallFlowAnalytics);
String installerPackageName = getIntent().getStringExtra(
Intent.EXTRA_INSTALLER_PACKAGE_NAME);
if (mOriginatingURI != null) {