]> sigrok.org Git - sigrok-androidutils.git/blobdiff - src/org/sigrok/androidutils/SigrokApplication.java
Include the device filter XML in the AAR
[sigrok-androidutils.git] / src / org / sigrok / androidutils / SigrokApplication.java
index 5a68792a1580c27351a1bcf201c80e555b2cfdc3..8406693571a16874c7cc9f609b13b6ea6f41ef7b 100644 (file)
@@ -29,6 +29,8 @@ public class SigrokApplication extends Application {
 
        private static final String JNI_LIBS_RESOURCE_ID_META =
            "org.sigrok.androidutils.jni_libs_resource_id";
+       private static final String DEVICE_FILTER_RESOURCE_ID_META =
+           "org.sigrok.androidutils.device_filter_resource_id";
 
        public SigrokApplication()
        {
@@ -57,6 +59,24 @@ public class SigrokApplication extends Application {
                }
        }
 
+       public static UsbSupplicant createUsbSupplicant(Context context)
+       {
+               ApplicationInfo appInfo = context.getApplicationInfo();
+               try {
+                       appInfo = context.getPackageManager().
+                               getApplicationInfo(context.getPackageName(),
+                               PackageManager.GET_META_DATA);
+               } catch (PackageManager.NameNotFoundException exc) {
+               }
+               if (appInfo.metaData != null &&
+                               appInfo.metaData.containsKey(DEVICE_FILTER_RESOURCE_ID_META)) {
+                       int resId = appInfo.metaData.getInt(DEVICE_FILTER_RESOURCE_ID_META);
+                       return new UsbSupplicant(context, resId);
+               }
+               Log.e("SigrokApplication", "Can't create UsbSupplicant (resource ID missing)");
+               return null;
+       }
+
        @Override
        public void onCreate()
        {