blob: fd3ac721ded8346e37bdf85b89170cc2198c1da7 [file]
// This file is auto-generated. DO NOT MODIFY.
// Args: com.android.systemfeatures.RoFeaturesFromXml \
// --readonly=true \
// --feature-xml-files=frameworks/base/tools/systemfeatures/tests/data/features-1.xml,frameworks/base/tools/systemfeatures/tests/data/features-2.xml
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 RoFeaturesFromXml {
/**
* Check for FEATURE_BLUETOOTH.
*
* @hide
*/
public static boolean hasFeatureBluetooth(Context context) {
return hasFeatureFallback(context, PackageManager.FEATURE_BLUETOOTH);
}
/**
* Check for FEATURE_EMBEDDED.
*
* @hide
*/
@AssumeTrueForR8
public static boolean hasFeatureEmbedded(Context context) {
return true;
}
/**
* Check for FEATURE_PC.
*
* @hide
*/
@AssumeFalseForR8
public static boolean hasFeaturePc(Context context) {
return false;
}
/**
* Check for FEATURE_WATCH.
*
* @hide
*/
@AssumeFalseForR8
public static boolean hasFeatureWatch(Context context) {
return false;
}
/**
* Check for FEATURE_WIFI.
*
* @hide
*/
@AssumeTrueForR8
public static boolean hasFeatureWifi(Context context) {
return true;
}
private static boolean hasFeatureFallback(Context context, String featureName) {
return context.getPackageManager().hasSystemFeature(featureName);
}
/**
* @hide
*/
@Nullable
public static Boolean maybeHasFeature(String featureName, int version) {
if (featureName == null) return null;
switch (featureName) {
case PackageManager.FEATURE_EMBEDDED: return 1 >= version;
case PackageManager.FEATURE_PC: return false;
case PackageManager.FEATURE_WATCH: return false;
case PackageManager.FEATURE_WIFI: return 0 >= version;
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_EMBEDDED;
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;
}
}