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

This commit is contained in:
Guojing Yuan
2022-07-13 22:29:24 +00:00
committed by Android (Google) Code Review

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");
} }
/** /**