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

Unverified Commit 8ebe54a1 authored by Chirayu Desai's avatar Chirayu Desai Committed by Michael Bestas
Browse files

Exempt location packages from location indicators

* Otherwise it gets pretty spammy

config_locationProviderPackageNames:
* Pretty obvious, location providers, e.g. microG

config_locationExtraPackageNames:
* microG UnifiedNlp plugins
* https://cs.android.com/android/_/android/platform/frameworks/base/+/ffb94e69c3fc308d6d4164e2309f74442282fc84
* This grants location permissions, however we're excluding these apps from
  location indicators - they already have location permissions!
* https://cs.android.com/search?q=config_locationExtraPackageNames&sq=
* It isn't used for much else, so it's fine to re-use it for this

TODO: Figure something out for user-installed UnifiedNlp plugins

Test:
1. Open app with location access such as OrganicMaps, verify apps shown as using location
2. No more regular in background location indicators from UnifiedNlp, or Nearby

Change-Id: I395335b858a2ec8fc4879139afcdaa590523d994
parent 5f76298b
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -229,6 +229,9 @@ public final class PermissionManager {

    private List<SplitPermissionInfo> mSplitPermissionInfos;

    private static String[] sLocationProviderPkgNames;
    private static String[] sLocationExtraPkgNames;

    /**
     * Creates a new instance.
     *
@@ -1177,6 +1180,16 @@ public final class PermissionManager {
                pkgNames.add(exemptedPackage);
            }
        }
        for (String pkgName: sLocationProviderPkgNames) {
            if (pkgName != null) {
                pkgNames.add(pkgName);
            }
        }
        for (String pkgName: sLocationExtraPkgNames) {
            if (pkgName != null) {
                pkgNames.add(pkgName);
            }
        }
        return pkgNames;
    }

@@ -1192,6 +1205,10 @@ public final class PermissionManager {
            for (int i = 0; i < EXEMPTED_ROLES.length; i++) {
                INDICATOR_EXEMPTED_PACKAGES[i] = context.getString(EXEMPTED_ROLES[i]);
            }
            sLocationProviderPkgNames = context.getResources().getStringArray(
                    R.array.config_locationProviderPackageNames);
            sLocationExtraPkgNames = context.getResources().getStringArray(
                    R.array.config_locationExtraPackageNames);
        }
    }
    /**