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 if (apiLevel >= VERSION_CODES.N_MR1) { 17 features.put(PackageManager.FEATURE_WIFI, true); 18 } 19 20 if (apiLevel >= VERSION_CODES.O) { 21 features.put(PackageManager.FEATURE_WIFI_AWARE, true); 22 features.put(PackageManager.FEATURE_COMPANION_DEVICE_SETUP, true); 23 } 24 25 if (apiLevel >= VERSION_CODES.P) { 26 features.put(PackageManager.FEATURE_WIFI_DIRECT, true); 27 features.put(PackageManager.FEATURE_WIFI_RTT, true); 28 } 29 30 if (apiLevel >= VERSION_CODES.UPSIDE_DOWN_CAKE) { 31 // Starting in V, FEATURE_TELEPHONY_SUBSCRIPTION is required for some system services, 32 // such as VcnManager. 33 features.put(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, true); 34 } 35 36 return ImmutableMap.copyOf(features); 37 } 38 } 39