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

Commit f8d60b19 authored by Dan Aminzade's avatar Dan Aminzade
Browse files

Automatically grant location and body sensors permissions to

system packages that handle the com.android.fitness.TRACK
intent.

BUG: 31432884
Change-Id: I57ff470fe31ca6a3e824152b7b7eafd9759e3118
parent 64aba830
Loading
Loading
Loading
Loading
+14 −3
Original line number Diff line number Diff line
@@ -152,6 +152,7 @@ final class DefaultPermissionGrantPolicy {

    private static final String ACTION_TWINNING =
            "com.google.android.clockwork.intent.TWINNING_SETTINGS";
    private static final String ACTION_TRACK = "com.android.fitness.TRACK";

    private final PackageManagerService mService;
    private final Handler mHandler;
@@ -606,9 +607,9 @@ final class DefaultPermissionGrantPolicy {
                grantRuntimePermissionsLPw(musicPackage, STORAGE_PERMISSIONS, userId);
            }

            // Android Wear
            // Watches
            if (mService.hasSystemFeature(PackageManager.FEATURE_WATCH, 0)) {
                // Android Wear Home
                // Home application on watches
                Intent homeIntent = new Intent(Intent.ACTION_MAIN);
                homeIntent.addCategory(Intent.CATEGORY_HOME_MAIN);

@@ -626,7 +627,7 @@ final class DefaultPermissionGrantPolicy {
                            userId);
                }

                // Android Wear Twinning
                // Twinning on watches
                Intent twinningIntent = new Intent(ACTION_TWINNING);
                PackageParser.Package twinningPackage = getDefaultSystemHandlerActivityPackageLPr(
                        twinningIntent, userId);
@@ -636,6 +637,16 @@ final class DefaultPermissionGrantPolicy {
                    grantRuntimePermissionsLPw(twinningPackage, PHONE_PERMISSIONS, false, userId);
                    grantRuntimePermissionsLPw(twinningPackage, SMS_PERMISSIONS, false, userId);
                }

                // Fitness tracking on watches
                Intent trackIntent = new Intent(ACTION_TRACK);
                PackageParser.Package trackPackage = getDefaultSystemHandlerActivityPackageLPr(
                        trackIntent, userId);
                if (trackPackage != null
                        && doesPackageSupportRuntimePermissions(trackPackage)) {
                    grantRuntimePermissionsLPw(trackPackage, SENSORS_PERMISSIONS, false, userId);
                    grantRuntimePermissionsLPw(trackPackage, LOCATION_PERMISSIONS, false, userId);
                }
            }

            // Print Spooler