Merge "Fix feature flag check for FEATURE_COMPANION_DEVICE_SETUP" into tm-qpr-dev am: a63b02aa16

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19242639

Change-Id: I9a3bc758850e9320006c6605d7b9ec9c61899982
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Guojing Yuan
2022-07-13 22:45:44 +00:00
committed by Automerger Merge Worker

View File

@@ -30,6 +30,7 @@ import android.companion.CompanionDeviceService;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageInfo; import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.PackageInfoFlags; import android.content.pm.PackageManager.PackageInfoFlags;
@@ -39,8 +40,6 @@ import android.content.pm.ServiceInfo;
import android.os.Binder; import android.os.Binder;
import android.util.Slog; import android.util.Slog;
import com.android.internal.util.ArrayUtils;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -65,15 +64,18 @@ final class PackageUtils {
static void enforceUsesCompanionDeviceFeature(@NonNull Context context, static void enforceUsesCompanionDeviceFeature(@NonNull Context context,
@UserIdInt int userId, @NonNull String packageName) { @UserIdInt int userId, @NonNull String packageName) {
final boolean requested = ArrayUtils.contains( String requiredFeature = FEATURE_COMPANION_DEVICE_SETUP;
getPackageInfo(context, userId, packageName).reqFeatures,
FEATURE_COMPANION_DEVICE_SETUP);
if (requested) { FeatureInfo[] requestedFeatures = getPackageInfo(context, userId, packageName).reqFeatures;
throw new IllegalStateException("Must declare uses-feature " for (int i = 0; i < requestedFeatures.length; i++) {
+ FEATURE_COMPANION_DEVICE_SETUP if (requiredFeature.equals(requestedFeatures[i].name)) {
+ " in manifest to use this API"); return;
}
} }
throw new IllegalStateException("Must declare uses-feature "
+ requiredFeature
+ " in manifest to use this API");
} }
/** /**