Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be94018b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Handle null case in AppStateAppOpsBridge"

parents c359bdf8 59e1e642
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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">

@@ -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>
+13 −3
Original line number Diff line number Diff line
@@ -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,
@@ -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);
@@ -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;
            }
        }
    }

@@ -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);