blob: ee97b26159dea635087c255c2e25d93409530fba [file] [log] [blame]
// This file is auto-generated. DO NOT MODIFY.
// Args: com.android.systemfeatures.RoFeatures \
// --readonly=true \
// --feature=WATCH:1 \
// --feature=WIFI:0 \
// --feature=VULKAN:UNAVAILABLE \
// --feature=AUTO: \
// --feature-apis=WATCH,PC
package com.android.systemfeatures;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.content.Context;
import android.content.pm.FeatureInfo;
import android.content.pm.PackageManager;
import android.util.ArrayMap;
import com.android.aconfig.annotations.AssumeFalseForR8;
import com.android.aconfig.annotations.AssumeTrueForR8;
/**
* @hide
*/
public final class RoFeatures {
/**
* Check for FEATURE_WATCH.
*
* @hide
*/
@AssumeTrueForR8
public static boolean hasFeatureWatch(Context context) {
return true;
}
/**
* Check for FEATURE_PC.
*
* @hide
*/
public static boolean hasFeaturePc(Context context) {
return hasFeatureFallback(context, PackageManager.FEATURE_PC);
}
/**
* Check for FEATURE_WIFI.
*
* @hide
*/
@AssumeTrueForR8
public static boolean hasFeatureWifi(Context context) {
return true;
}
/**
* Check for FEATURE_VULKAN.
*
* @hide
*/
@AssumeFalseForR8
public static boolean hasFeatureVulkan(Context context) {
return false;
}
/**
* Check for FEATURE_AUTO.
*
* @hide
*/
public static boolean hasFeatureAuto(Context context) {
return hasFeatureFallback(context, PackageManager.FEATURE_AUTO);
}
private static boolean hasFeatureFallback(Context context, String featureName) {
return context.getPackageManager().hasSystemFeature(featureName, 0);
}
/**
* @hide
*/
@Nullable
public static Boolean maybeHasFeature(String featureName, int version) {
switch (featureName) {
case PackageManager.FEATURE_WATCH: return 1 >= version;
case PackageManager.FEATURE_WIFI: return 0 >= version;
case PackageManager.FEATURE_VULKAN: return false;
default: break;
}
return null;
}
/**
* Gets features marked as available at compile-time, keyed by name.
*
* @hide
*/
@NonNull
public static ArrayMap<String, FeatureInfo> getReadOnlySystemEnabledFeatures() {
ArrayMap<String, FeatureInfo> features = new ArrayMap<>(2);
FeatureInfo fi = new FeatureInfo();
fi.name = PackageManager.FEATURE_WATCH;
fi.version = 1;
features.put(fi.name, new FeatureInfo(fi));
fi.name = PackageManager.FEATURE_WIFI;
fi.version = 0;
features.put(fi.name, new FeatureInfo(fi));
return features;
}
}