diff options
Diffstat (limited to 'src')
6 files changed, 71 insertions, 62 deletions
diff --git a/src/com/android/packageinstaller/PackageInstallerActivity.java b/src/com/android/packageinstaller/PackageInstallerActivity.java index 9153d71a..e9b50315 100644 --- a/src/com/android/packageinstaller/PackageInstallerActivity.java +++ b/src/com/android/packageinstaller/PackageInstallerActivity.java @@ -36,6 +36,7 @@ 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; @@ -132,8 +133,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen int msg = 0; if (mPkgInfo != null) { AppSecurityPermissions perms = new AppSecurityPermissions(this, mPkgInfo); - final int NP = perms.getPermissionCount(AppSecurityPermissions.WHICH_PERSONAL); - final int ND = perms.getPermissionCount(AppSecurityPermissions.WHICH_DEVICE); + final int N = perms.getPermissionCount(AppSecurityPermissions.WHICH_ALL); if (mAppInfo != null) { msg = (mAppInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0 ? R.string.install_confirm_question_update_system @@ -160,7 +160,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen findViewById(R.id.tabscontainer).setVisibility(View.GONE); findViewById(R.id.divider).setVisibility(View.VISIBLE); } - if (NP > 0 || ND > 0) { + if (N > 0) { permVisible = true; LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE); @@ -168,18 +168,8 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen if (mScrollView == null) { mScrollView = (CaffeinatedScrollView)root.findViewById(R.id.scrollview); } - if (NP > 0) { - ((ViewGroup)root.findViewById(R.id.privacylist)).addView( - perms.getPermissionsView(AppSecurityPermissions.WHICH_PERSONAL)); - } else { - root.findViewById(R.id.privacylist).setVisibility(View.GONE); - } - if (ND > 0) { - ((ViewGroup)root.findViewById(R.id.devicelist)).addView( - perms.getPermissionsView(AppSecurityPermissions.WHICH_DEVICE)); - } else { - root.findViewById(R.id.devicelist).setVisibility(View.GONE); - } + ((ViewGroup)root.findViewById(R.id.permission_list)).addView( + perms.getPermissionsView(AppSecurityPermissions.WHICH_ALL)); adapter.addTab(tabHost.newTabSpec(TAB_ID_ALL).setIndicator( getText(R.string.allPerms)), root); } @@ -402,6 +392,12 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen } private void initiateInstall() { + if (mPkgInfo.applicationInfo + .targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1) { + startInstall(); + return; + } + String pkgName = mPkgInfo.packageName; // Check if there is already a package on the device with this name // but it has been renamed to something else. @@ -665,39 +661,10 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen // story ends; assume success. mInstallFlowAnalytics.setFlowFinishedWithPackageManagerResult( PackageManager.INSTALL_SUCCEEDED); + finish(); } else { - // Start subactivity to actually install the application - Intent newIntent = new Intent(); - newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, - 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) { - newIntent.putExtra(Intent.EXTRA_ORIGINATING_URI, mOriginatingURI); - } - if (mReferrerURI != null) { - newIntent.putExtra(Intent.EXTRA_REFERRER, mReferrerURI); - } - if (mOriginatingUid != VerificationParams.NO_UID) { - newIntent.putExtra(Intent.EXTRA_ORIGINATING_UID, mOriginatingUid); - } - if (installerPackageName != null) { - newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, - installerPackageName); - } - if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false)) { - newIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true); - newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); - } - if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI); - startActivity(newIntent); + startInstall(); } - finish(); } else { mScrollView.pageScroll(View.FOCUS_DOWN); } @@ -712,4 +679,38 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen finish(); } } + + private void startInstall() { + // Start subactivity to actually install the application + Intent newIntent = new Intent(); + newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO, + 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) { + newIntent.putExtra(Intent.EXTRA_ORIGINATING_URI, mOriginatingURI); + } + if (mReferrerURI != null) { + newIntent.putExtra(Intent.EXTRA_REFERRER, mReferrerURI); + } + if (mOriginatingUid != VerificationParams.NO_UID) { + newIntent.putExtra(Intent.EXTRA_ORIGINATING_UID, mOriginatingUid); + } + if (installerPackageName != null) { + newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, + installerPackageName); + } + if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false)) { + newIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true); + newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); + } + if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI); + startActivity(newIntent); + finish(); + } } diff --git a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java index 2125db37..af4992b0 100644 --- a/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/AppPermissionsFragment.java @@ -85,7 +85,7 @@ public final class AppPermissionsFragment extends SettingsWithHeader @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); mHasConfirmedRevoke = false; setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); @@ -267,9 +267,8 @@ public final class AppPermissionsFragment extends SettingsWithHeader R.plurals.additional_permissions_more, count, count)); screen.addPreference(extraPerms); } - if (screen.getPreferenceCount() != 0) { - setLoading(false, true); - } + + setLoading(false /* loading */, true /* animate */); } @Override diff --git a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java index 95f2211f..4a733160 100644 --- a/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java +++ b/src/com/android/packageinstaller/permission/ui/GrantPermissionsActivity.java @@ -71,6 +71,8 @@ public class GrantPermissionsActivity extends Activity super.onCreate(icicle); setFinishOnTouchOutside(false); + setTitle(R.string.permission_request_title); + int uiMode = getResources().getConfiguration().uiMode & UI_MODE_TYPE_MASK; if (uiMode == UI_MODE_TYPE_TELEVISION) { mViewHandler = new GrantPermissionsTvViewHandler(this).setResultListener(this); diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java index 051676a8..9cea63af 100644 --- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java @@ -68,7 +68,7 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); if (ab != null) { @@ -260,13 +260,14 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment screen.addPreference(extraScreenPreference); } if (screen.getPreferenceCount() != 0) { - setLoading(false, true); + setLoading(false /* loading */, true /* animate */); } } public static class AdditionalPermissionsFragment extends PermissionsFrameFragment { @Override public void onCreate(Bundle icicle) { + setLoading(true /* loading */, false /* animate */); super.onCreate(icicle); getActivity().setTitle(R.string.additional_permissions); setHasOptionsMenu(true); @@ -297,6 +298,7 @@ public final class ManagePermissionsFragment extends PermissionsFrameFragment @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferenceScreen(((ManagePermissionsFragment) getTargetFragment()).mExtraScreen); + setLoading(false /* loading */, true /* animate */); } } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index 2b014b23..33462aef 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -88,7 +88,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setLoading(true, false); + setLoading(true /* loading */, false /* animate */); setHasOptionsMenu(true); final ActionBar ab = getActivity().getActionBar(); if (ab != null) { @@ -295,9 +295,7 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple } } - if (screen.getPreferenceCount() != 0) { - setLoading(false, true); - } + setLoading(false /* loading */, true /* animate */); if (mOnPermissionsLoadedListener != null) { mOnPermissionsLoadedListener.onPermissionsLoaded(permissionApps); @@ -384,13 +382,14 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onCreate(Bundle savedInstanceState) { mOuterFragment = (PermissionAppsFragment) getTargetFragment(); + setLoading(true /* loading */, false /* animate */); super.onCreate(savedInstanceState); } @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { if (mOuterFragment.mExtraScreen != null) { - setPreferenceScreen(mOuterFragment.mExtraScreen); + setPreferenceScreen(); } else { mOuterFragment.setOnPermissionsLoadedListener(this); } @@ -406,8 +405,13 @@ public final class PermissionAppsFragment extends PermissionsFrameFragment imple @Override public void onPermissionsLoaded(PermissionApps permissionApps) { - setPreferenceScreen(mOuterFragment.mExtraScreen); + setPreferenceScreen(); mOuterFragment.setOnPermissionsLoadedListener(null); } + + private void setPreferenceScreen() { + setPreferenceScreen(mOuterFragment.mExtraScreen); + setLoading(false /* loading */, true /* animate */); + } } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java index 88eda41f..e6b18944 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionsFrameFragment.java @@ -72,11 +72,12 @@ public abstract class PermissionsFrameFragment extends PreferenceFragment { private void setLoading(boolean loading, boolean animate, boolean force) { if (mIsLoading != loading || force) { mIsLoading = loading; - if (mLoadingView == null) { - return; + if (mPrefsView != null) { + setViewShown(mPrefsView, !loading, animate); + } + if (mLoadingView != null) { + setViewShown(mLoadingView, loading, animate); } - setViewShown(mPrefsView, !loading, animate); - setViewShown(mLoadingView, loading, animate); } } |