Loading res/xml/manage_external_storage_permission_details.xml +7 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:key="manage_external_storage_permission_details" android:title="@string/manage_external_storage_title"> Loading @@ -22,8 +24,9 @@ android:key="app_ops_settings_switch" android:title="@string/permit_manage_external_storage"/> <Preference android:summary="@string/allow_manage_external_storage_description" android:selectable="false"/> <com.android.settingslib.widget.FooterPreference android:title="@string/allow_manage_external_storage_description" android:selectable="false" settings:searchable="false"/> </PreferenceScreen> src/com/android/settings/applications/AppStateAppOpsBridge.java +13 −3 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, appOpsOpCode, permissions, AppGlobals.getPackageManager()); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions) { this(context, appState, callback, appOpsOpCodes, permissions, Loading @@ -73,6 +74,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, new int[]{appOpsOpCode}, permissions, packageManager); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions, IPackageManager packageManager) { super(appState, callback); Loading Loading @@ -155,8 +157,12 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { for (int i = 0; i < N; i++) { AppEntry app = apps.get(i); int userId = UserHandle.getUserId(app.info.uid); if (entries != null) { ArrayMap<String, PermissionState> userMap = entries.get(userId); app.extraInfo = userMap != null ? userMap.get(app.info.packageName) : null; } else { app.extraInfo = null; } } } Loading Loading @@ -247,6 +253,10 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { * a particular package. */ private void loadAppOpsStates(SparseArray<ArrayMap<String, PermissionState>> entries) { if (entries == null) { return; } // Find out which packages have been granted permission from AppOps. final List<AppOpsManager.PackageOps> packageOps = mAppOpsManager.getPackagesForOps( mAppOpsOpCodes); Loading Loading
res/xml/manage_external_storage_permission_details.xml +7 −4 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:settings="http://schemas.android.com/apk/res-auto" android:key="manage_external_storage_permission_details" android:title="@string/manage_external_storage_title"> Loading @@ -22,8 +24,9 @@ android:key="app_ops_settings_switch" android:title="@string/permit_manage_external_storage"/> <Preference android:summary="@string/allow_manage_external_storage_description" android:selectable="false"/> <com.android.settingslib.widget.FooterPreference android:title="@string/allow_manage_external_storage_description" android:selectable="false" settings:searchable="false"/> </PreferenceScreen>
src/com/android/settings/applications/AppStateAppOpsBridge.java +13 −3 Original line number Diff line number Diff line Loading @@ -61,6 +61,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, appOpsOpCode, permissions, AppGlobals.getPackageManager()); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions) { this(context, appState, callback, appOpsOpCodes, permissions, Loading @@ -73,6 +74,7 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, new int[]{appOpsOpCode}, permissions, packageManager); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions, IPackageManager packageManager) { super(appState, callback); Loading Loading @@ -155,8 +157,12 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { for (int i = 0; i < N; i++) { AppEntry app = apps.get(i); int userId = UserHandle.getUserId(app.info.uid); if (entries != null) { ArrayMap<String, PermissionState> userMap = entries.get(userId); app.extraInfo = userMap != null ? userMap.get(app.info.packageName) : null; } else { app.extraInfo = null; } } } Loading Loading @@ -247,6 +253,10 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { * a particular package. */ private void loadAppOpsStates(SparseArray<ArrayMap<String, PermissionState>> entries) { if (entries == null) { return; } // Find out which packages have been granted permission from AppOps. final List<AppOpsManager.PackageOps> packageOps = mAppOpsManager.getPackagesForOps( mAppOpsOpCodes); Loading