1 package org.robolectric.shadows; 2 3 import android.content.pm.PackageManager; 4 import android.os.Build.VERSION_CODES; 5 import com.google.common.collect.ImmutableMap; 6 import java.util.HashMap; 7 import java.util.Map; 8 import org.robolectric.RuntimeEnvironment; 9 10 final class SystemFeatureListInitializer { 11 getSystemFeatures()12 public static ImmutableMap<String, Boolean> getSystemFeatures() { 13 int apiLevel = RuntimeEnvironment.getApiLevel(); 14 Map<String, Boolean> features = new HashMap<>(); 15 16 features.put(PackageManager.FEATURE_TOUCHSCREEN, true); 17 18 if (apiLevel >= VERSION_CODES.N_MR1) { 19 features.put(PackageManager.FEATURE_WIFI, true); 20 } 21 22 if (apiLevel >= VERSION_CODES.O) { 23 features.put(PackageManager.FEATURE_WIFI_AWARE, true); 24 features.put(PackageManager.FEATURE_COMPANION_DEVICE_SETUP, true); 25 } 26 27 if (apiLevel >= VERSION_CODES.P) { 28 features.put(PackageManager.FEATURE_WIFI_DIRECT, true); 29 features.put(PackageManager.FEATURE_WIFI_RTT, true); 30 } 31 32 if (apiLevel >= VERSION_CODES.UPSIDE_DOWN_CAKE) { 33 // Starting in V, FEATURE_TELEPHONY_SUBSCRIPTION is required for some system services, 34 // such as VcnManager. 35 features.put(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, true); 36 } 37 38 return ImmutableMap.copyOf(features); 39 } 40 } 41