Merge "setTemporaryAppWhitelistDuration(long duration) is deprecated." into sc-dev

This commit is contained in:
Hui Yu
2021-03-02 01:49:36 +00:00
committed by Android (Google) Code Review
5 changed files with 27 additions and 8 deletions

View File

@@ -29,6 +29,8 @@ import static android.os.PowerManager.LOCATION_MODE_ALL_DISABLED_WHEN_SCREEN_OFF
import static android.os.PowerManager.LOCATION_MODE_FOREGROUND_ONLY;
import static android.os.PowerManager.LOCATION_MODE_GPS_DISABLED_WHEN_SCREEN_OFF;
import static android.os.PowerManager.LOCATION_MODE_THROTTLE_REQUESTS_WHEN_SCREEN_OFF;
import static android.os.PowerWhitelistManager.REASON_LOCATION_PROVIDER;
import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import static com.android.server.location.LocationManagerService.D;
import static com.android.server.location.LocationManagerService.TAG;
@@ -227,7 +229,10 @@ public class LocationProviderManager extends
BroadcastOptions options = BroadcastOptions.makeBasic();
options.setDontSendToRestrictedApps(true);
// allows apps to start a fg service in response to a location PI
options.setTemporaryAppWhitelistDuration(TEMPORARY_APP_ALLOWLIST_DURATION_MS);
options.setTemporaryAppAllowlist(TEMPORARY_APP_ALLOWLIST_DURATION_MS,
TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
REASON_LOCATION_PROVIDER,
"");
Intent intent = new Intent().putExtra(KEY_LOCATION_CHANGED,
locationResult.getLastLocation());

View File

@@ -29,6 +29,7 @@ import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Handler;
import android.os.PowerWhitelistManager;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Log;
@@ -195,8 +196,9 @@ final class MediaButtonReceiverHolder {
mediaButtonIntent.putExtra(Intent.EXTRA_PACKAGE_NAME, callingPackageName);
final BroadcastOptions options = BroadcastOptions.makeBasic();
options.setTemporaryAppWhitelistDuration(
FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS);
options.setTemporaryAppAllowlist(FGS_STARTS_TEMP_ALLOWLIST_DURATION_MS,
PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
PowerWhitelistManager.REASON_MEDIA_BUTTON, "");
if (mPendingIntent != null) {
if (DEBUG_KEY_EVENT) {
Log.d(TAG, "Sending " + keyEvent + " to the last known PendingIntent "

View File

@@ -16,6 +16,9 @@
package com.android.server.pm.verify.domain.proxy;
import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V1;
import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import android.Manifest;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -238,7 +241,8 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy {
final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration();
mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(),
mVerifierComponent.getPackageName(), allowListTimeout,
UserHandle.USER_SYSTEM, true, "domain verification agent");
UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V1,
"domain verification agent");
int size = verifications.size();
for (int index = 0; index < size; index++) {
@@ -261,7 +265,9 @@ public class DomainVerificationProxyV1 implements DomainVerificationProxy {
.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
final BroadcastOptions options = BroadcastOptions.makeBasic();
options.setTemporaryAppWhitelistDuration(allowListTimeout);
options.setTemporaryAppAllowlist(allowListTimeout,
TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
REASON_DOMAIN_VERIFICATION_V1, "");
mContext.sendBroadcastAsUser(intent, UserHandle.SYSTEM, null, options.toBundle());
}
}

View File

@@ -16,6 +16,9 @@
package com.android.server.pm.verify.domain.proxy;
import static android.os.PowerWhitelistManager.REASON_DOMAIN_VERIFICATION_V2;
import static android.os.PowerWhitelistManager.TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.BroadcastOptions;
@@ -69,11 +72,14 @@ public class DomainVerificationProxyV2 implements DomainVerificationProxy {
final long allowListTimeout = mConnection.getPowerSaveTempWhitelistAppDuration();
final BroadcastOptions options = BroadcastOptions.makeBasic();
options.setTemporaryAppWhitelistDuration(allowListTimeout);
options.setTemporaryAppAllowlist(allowListTimeout,
TEMPORARY_ALLOWLIST_TYPE_FOREGROUND_SERVICE_ALLOWED,
REASON_DOMAIN_VERIFICATION_V2, "");
mConnection.getDeviceIdleInternal().addPowerSaveTempWhitelistApp(Process.myUid(),
mVerifierComponent.getPackageName(), allowListTimeout,
UserHandle.USER_SYSTEM, true, "domain verification agent");
UserHandle.USER_SYSTEM, true, REASON_DOMAIN_VERIFICATION_V2,
"domain verification agent");
Intent intent = new Intent(Intent.ACTION_DOMAINS_NEED_VERIFICATION)
.setComponent(mVerifierComponent)

View File

@@ -477,7 +477,7 @@ class DomainVerificationProxyTest {
whenever(
addPowerSaveTempWhitelistApp(
anyInt(), anyString(), anyLong(), anyInt(),
anyBoolean(), anyString()
anyBoolean(), anyInt(), anyString()
)
)
}