@Override public FeatureInfo[] getSystemAvailableFeatures() { return mBase.getSystemAvailableFeatures(); }
public final static boolean isFeatureAvailable(Context context, String feature) { final PackageManager packageManager = context.getPackageManager(); final FeatureInfo[] featuresList = packageManager.getSystemAvailableFeatures(); for (FeatureInfo f : featuresList) { if (f.name != null && f.name.equals(feature)) { return true; } } return false; }
@Override void collect(@NonNull ReportField reportField, @NonNull Context context, @NonNull CoreConfiguration config, @NonNull ReportBuilder reportBuilder, @NonNull CrashReportData target) throws JSONException { final JSONObject result = new JSONObject(); final PackageManager pm = context.getPackageManager(); final FeatureInfo[] features = pm.getSystemAvailableFeatures(); for (final FeatureInfo feature : features) { final String featureName = feature.name; if (featureName != null) { result.put(featureName, true); } else { result.put("glEsVersion", feature.getGlEsVersion()); } } target.put(ReportField.DEVICE_FEATURES, result); } }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private static int getVersionFromPackageManager(Context context) { PackageManager packageManager=context.getPackageManager(); FeatureInfo[] featureInfos= packageManager.getSystemAvailableFeatures(); if (featureInfos != null && featureInfos.length > 0) { for (FeatureInfo featureInfo : featureInfos) { // Null feature name means this feature is the open // gl es version feature. if (featureInfo.name == null) { if (featureInfo.reqGlEsVersion != FeatureInfo.GL_ES_VERSION_UNDEFINED) { return getMajorVersion(featureInfo.reqGlEsVersion); } else { return 1; // Lack of property means OpenGL ES // version 1 } } } } return 1; }
private void logSystemFeatures() { for (FeatureInfo feature : getPackageManager().getSystemAvailableFeatures()) { log("System Feature: "+feature.name); } }
@Test public void getSystemAvailableFeatures() { assertThat(packageManager.getSystemAvailableFeatures()).isNull(); FeatureInfo feature = new FeatureInfo(); feature.reqGlEsVersion = 0x20000; feature.flags = FeatureInfo.FLAG_REQUIRED; shadowPackageManager.addSystemAvailableFeature(feature); assertThat(packageManager.getSystemAvailableFeatures()).asList().contains(feature); shadowPackageManager.clearSystemAvailableFeatures(); assertThat(packageManager.getSystemAvailableFeatures()).isNull(); }