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

Commit dd3067ae authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Only show re-up if a flag is enabled

... Also reset settings to the regular value as we have a dedicated flag
to enable/disable the feature now.

Bug: 112390914
Test: Tried to trigger with option not set -> no notification
      atest CtsPermissionTestCases:android.permission.cts.LocationAccessCheckTest
Change-Id: If1b0515bff0de1a9f9dd827203cc0133a7b531da
parent 13d28601
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -52,9 +52,11 @@ import static com.android.packageinstaller.permission.utils.Utils.getGroupOfPlat
import static com.android.packageinstaller.permission.utils.Utils.getParcelableExtraSafe;
import static com.android.packageinstaller.permission.utils.Utils.getStringExtraSafe;
import static com.android.packageinstaller.permission.utils.Utils.getSystemServiceSafe;
import static com.android.packageinstaller.permission.utils.Utils.isLocationAccessCheckEnabled;

import static java.lang.System.currentTimeMillis;
import static java.util.concurrent.TimeUnit.DAYS;
import static java.util.concurrent.TimeUnit.MINUTES;

import android.app.AppOpsManager;
import android.app.AppOpsManager.HistoricalOps;
@@ -150,9 +152,8 @@ public class LocationAccessCheck {
     * @return The time in between check in milliseconds
     */
    private long getPeriodicCheckIntervalMillis() {
        // STOPSHIP: Set delay back to 1 day once location access should be checked again
        return Settings.Secure.getLong(mContentResolver,
                LOCATION_ACCESS_CHECK_INTERVAL_MILLIS, DAYS.toMillis(10000));
                LOCATION_ACCESS_CHECK_INTERVAL_MILLIS, DAYS.toMillis(1));
    }

    /**
@@ -174,9 +175,8 @@ public class LocationAccessCheck {
     * @return The delay in milliseconds
     */
    private long getDelayMillis() {
        // STOPSHIP: Set delay back to 10 minutes once location access should be checked again
        return Settings.Secure.getLong(mContentResolver,
                LOCATION_ACCESS_CHECK_DELAY_MILLIS, DAYS.toMillis(1000));
                LOCATION_ACCESS_CHECK_DELAY_MILLIS, MINUTES.toMillis(10));
    }

    /**
@@ -346,6 +346,10 @@ public class LocationAccessCheck {
    @WorkerThread
    private void addLocationNotificationIfNeeded(@NonNull JobParameters params,
            @NonNull LocationAccessCheckJobService service) {
        if (!isLocationAccessCheckEnabled()) {
            return;
        }

        synchronized (sLock) {
            try {
                if (currentTimeMillis() - mSharedPrefs.getLong(
+12 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Parcelable;
import android.os.UserHandle;
import android.provider.DeviceConfig;
import android.provider.Settings;
import android.text.Html;
import android.text.TextUtils;
@@ -651,4 +652,15 @@ public final class Utils {
            return new BitmapDrawable(context.getResources(), iconBmp);
        }
    }


    /**
     * Whether the Location Access Check is enabled.
     *
     * @return {@code true} iff the Location Access Check is enabled.
     */
    public static boolean isLocationAccessCheckEnabled() {
        return DeviceConfig.getProperty(DeviceConfig.Privacy.NAMESPACE,
                DeviceConfig.Privacy.PROPERTY_LOCATION_ACCESS_CHECK_ENABLED) != null;
    }
}