Loading AndroidManifest.xml +3 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,9 @@ <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.GRANT_REVOKE_PERMISSIONS" /> <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> <uses-permission android:name="android.permission.READ_INSTALL_SESSIONS" /> <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> Loading src/com/android/packageinstaller/PackageInstallerActivity.java +38 −38 Original line number Diff line number Diff line Loading @@ -126,12 +126,15 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen } } }); // 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 >= Build.VERSION_CODES.MNC; boolean permVisible = false; mScrollView = null; mOkCanInstall = false; int msg = 0; if (mPkgInfo != null) { AppSecurityPermissions perms = new AppSecurityPermissions(this, mPkgInfo); final int N = perms.getPermissionCount(AppSecurityPermissions.WHICH_ALL); if (mAppInfo != null) { Loading @@ -140,14 +143,18 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen : R.string.install_confirm_question_update; mScrollView = new CaffeinatedScrollView(this); mScrollView.setFillViewport(true); boolean newPermissionsFound = boolean newPermissionsFound = false; if (!supportsRuntimePermissions) { newPermissionsFound = (perms.getPermissionCount(AppSecurityPermissions.WHICH_NEW) > 0); mInstallFlowAnalytics.setNewPermissionsFound(newPermissionsFound); if (newPermissionsFound) { permVisible = true; mScrollView.addView(perms.getPermissionsView( AppSecurityPermissions.WHICH_NEW)); } else { } } if (!supportsRuntimePermissions && !newPermissionsFound) { LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE); TextView label = (TextView)inflater.inflate(R.layout.label, null); Loading @@ -160,7 +167,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen findViewById(R.id.tabscontainer).setVisibility(View.GONE); findViewById(R.id.divider).setVisibility(View.VISIBLE); } if (N > 0) { if (!supportsRuntimePermissions && N > 0) { permVisible = true; LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE); Loading @@ -173,7 +180,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) { Loading Loading @@ -392,12 +398,6 @@ 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. Loading Loading
AndroidManifest.xml +3 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,9 @@ <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.GRANT_REVOKE_PERMISSIONS" /> <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> <uses-permission android:name="android.permission.READ_INSTALL_SESSIONS" /> <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> Loading
src/com/android/packageinstaller/PackageInstallerActivity.java +38 −38 Original line number Diff line number Diff line Loading @@ -126,12 +126,15 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen } } }); // 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 >= Build.VERSION_CODES.MNC; boolean permVisible = false; mScrollView = null; mOkCanInstall = false; int msg = 0; if (mPkgInfo != null) { AppSecurityPermissions perms = new AppSecurityPermissions(this, mPkgInfo); final int N = perms.getPermissionCount(AppSecurityPermissions.WHICH_ALL); if (mAppInfo != null) { Loading @@ -140,14 +143,18 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen : R.string.install_confirm_question_update; mScrollView = new CaffeinatedScrollView(this); mScrollView.setFillViewport(true); boolean newPermissionsFound = boolean newPermissionsFound = false; if (!supportsRuntimePermissions) { newPermissionsFound = (perms.getPermissionCount(AppSecurityPermissions.WHICH_NEW) > 0); mInstallFlowAnalytics.setNewPermissionsFound(newPermissionsFound); if (newPermissionsFound) { permVisible = true; mScrollView.addView(perms.getPermissionsView( AppSecurityPermissions.WHICH_NEW)); } else { } } if (!supportsRuntimePermissions && !newPermissionsFound) { LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE); TextView label = (TextView)inflater.inflate(R.layout.label, null); Loading @@ -160,7 +167,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen findViewById(R.id.tabscontainer).setVisibility(View.GONE); findViewById(R.id.divider).setVisibility(View.VISIBLE); } if (N > 0) { if (!supportsRuntimePermissions && N > 0) { permVisible = true; LayoutInflater inflater = (LayoutInflater)getSystemService( Context.LAYOUT_INFLATER_SERVICE); Loading @@ -173,7 +180,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) { Loading Loading @@ -392,12 +398,6 @@ 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. Loading