blob: 724639b52d234bd289f92b745b315d0b497b789f [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 \
6// --feature=VULKAN:-1 \
7// --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 */
65 @AssumeFalseForR8
66 public static boolean hasFeatureAuto(Context context) {
67 return false;
68 }
69
70 private static boolean hasFeatureFallback(Context context, String featureName) {
71 return context.getPackageManager().hasSystemFeature(featureName, 0);
72 }
73
74 /**
75 * @hide
76 */
77 @Nullable
78 public static Boolean maybeHasFeature(String featureName, int version) {
79 switch (featureName) {
80 case PackageManager.FEATURE_WATCH: return 1 >= version;
81 case PackageManager.FEATURE_WIFI: return 0 >= version;
82 case PackageManager.FEATURE_VULKAN: return -1 >= version;
83 case PackageManager.FEATURE_AUTO: return false;
84 default: break;
85 }
86 return null;
87 }
88}