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

Commit 8ca9887b authored by LuK1337's avatar LuK1337 Committed by Nolen Johnson
Browse files

camera: Allow extending aux list/excludelist via sdk resources

Properties are limited and don't allow us to list as many apps as we
wish.

Change-Id: I4432f627f1fa120b6ea41c252cd512beb129848c
parent f9997754
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -414,6 +414,7 @@ java_defaults {
        "audiopolicy-aidl-java",
        "sounddose-aidl-java",
        "modules-utils-expresslog",
        "org.lineageos.platform.resources"
    ],
}

+15 −6
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.app.ActivityThread;
import android.app.AppOpsManager;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.ImageFormat;
import android.graphics.Point;
import android.graphics.Rect;
@@ -274,12 +275,20 @@ public class Camera {
        String packageName = ActivityThread.currentOpPackageName();
        if (packageName == null)
            return true;
        List<String> packageList = Arrays.asList(
                SystemProperties.get("vendor.camera.aux.packagelist", packageName).split(","));
        List<String> packageExcludelist = Arrays.asList(
                SystemProperties.get("vendor.camera.aux.packageexcludelist", "").split(","));

        return packageList.contains(packageName) && !packageExcludelist.contains(packageName);
        List<String> packageList = new ArrayList<>(Arrays.asList(
                SystemProperties.get("vendor.camera.aux.packagelist", ",").split(",")));
        List<String> packageExcludelist = new ArrayList<>(Arrays.asList(
                SystemProperties.get("vendor.camera.aux.packageexcludelist", ",").split(",")));

        // Append packages from lineage-sdk resources
        Resources res = ActivityThread.currentApplication().getResources();
        packageList.addAll(Arrays.asList(res.getStringArray(
                org.lineageos.platform.internal.R.array.config_cameraAuxPackageAllowList)));
        packageExcludelist.addAll(Arrays.asList(res.getStringArray(
                org.lineageos.platform.internal.R.array.config_cameraAuxPackageExcludeList)));

        return (packageList.isEmpty() || packageList.contains(packageName)) &&
                !packageExcludelist.contains(packageName);
    }

    /**