blob: dfc2937dc41d0cd859a9085da1570f9dbe5ef79b [file] [log] [blame]
Jared Duke2d1a8322024-08-23 22:17:09 +00001// This file is auto-generated. DO NOT MODIFY.
2// Args: com.android.systemfeatures.RoFeatures \
3// --readonly=true \
4// --feature=WATCH:1 \
5// --feature=WIFI:0 \
Jared Duke90e43632024-09-20 17:05:02 +00006// --feature=VULKAN:UNAVAILABLE \
Jared Duke2d1a8322024-08-23 22:17:09 +00007// --feature=AUTO: \
8// --feature-apis=WATCH,PC
9package com.android.systemfeatures;
10
11import android.annotation.Nullable;
12import android.content.Context;
13import android.content.pm.PackageManager;
14import com.android.aconfig.annotations.AssumeFalseForR8;
15import com.android.aconfig.annotations.AssumeTrueForR8;
16
17/**
18 * @hide
19 */
20public final class RoFeatures {
21 /**
22 * Check for FEATURE_WATCH.
23 *
24 * @hide
25 */
26 @AssumeTrueForR8
27 public static boolean hasFeatureWatch(Context context) {
28 return true;
29 }
30
31 /**
32 * Check for FEATURE_PC.
33 *
34 * @hide
35 */
36 public static boolean hasFeaturePc(Context context) {
37 return hasFeatureFallback(context, PackageManager.FEATURE_PC);
38 }
39
40 /**
41 * Check for FEATURE_WIFI.
42 *
43 * @hide
44 */
45 @AssumeTrueForR8
46 public static boolean hasFeatureWifi(Context context) {
47 return true;
48 }
49
50 /**
51 * Check for FEATURE_VULKAN.
52 *
53 * @hide
54 */
55 @AssumeFalseForR8
56 public static boolean hasFeatureVulkan(Context context) {
57 return false;
58 }
59
60 /**
61 * Check for FEATURE_AUTO.
62 *
63 * @hide
64 */
Jared Duke2d1a8322024-08-23 22:17:09 +000065 public static boolean hasFeatureAuto(Context context) {
Jared Duke90e43632024-09-20 17:05:02 +000066 return hasFeatureFallback(context, PackageManager.FEATURE_AUTO);
Jared Duke2d1a8322024-08-23 22:17:09 +000067 }
68
69 private static boolean hasFeatureFallback(Context context, String featureName) {
70 return context.getPackageManager().hasSystemFeature(featureName, 0);
71 }
72
73 /**
74 * @hide
75 */
76 @Nullable
77 public static Boolean maybeHasFeature(String featureName, int version) {
78 switch (featureName) {
79 case PackageManager.FEATURE_WATCH: return 1 >= version;
80 case PackageManager.FEATURE_WIFI: return 0 >= version;
Jared Duke90e43632024-09-20 17:05:02 +000081 case PackageManager.FEATURE_VULKAN: return false;
Jared Duke2d1a8322024-08-23 22:17:09 +000082 default: break;
83 }
84 return null;
85 }
86}