diff --git a/app/build.gradle b/app/build.gradle index 27299a5f737faa08e14660993f69d5cb626d0c95..83b243dc546dfeafaa9d9505413eac200445de2c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,11 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 23 - buildToolsVersion '25.0.0' + compileSdkVersion 28 defaultConfig { applicationId 'net.dlogic.ufr.apdu_example' minSdkVersion 15 - targetSdkVersion 15 + targetSdkVersion 28 versionCode 11 versionName '1.1' } @@ -16,12 +15,10 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } - productFlavors { - } } dependencies { - compile fileTree(include: ['*.jar'], dir: 'libs') - testCompile 'junit:junit:4.12' - compile files('libs/d2xx.jar') + implementation fileTree(include: ['*.jar'], dir: 'libs') + implementation 'junit:junit:4.12' + implementation files('libs/d2xx.jar') } diff --git a/app/build/generated/not_namespaced_r_class_sources/debug/r/net/dlogic/ufr/apdu_example/R.java b/app/build/generated/not_namespaced_r_class_sources/debug/r/net/dlogic/ufr/apdu_example/R.java new file mode 100644 index 0000000000000000000000000000000000000000..383767d6c4e321ca8a1d539a87a9656835ee358a --- /dev/null +++ b/app/build/generated/not_namespaced_r_class_sources/debug/r/net/dlogic/ufr/apdu_example/R.java @@ -0,0 +1,63 @@ +/* AUTO-GENERATED FILE. DO NOT MODIFY. + * + * This class was automatically generated by the + * aapt tool from the resource data it found. It + * should not be modified by hand. + */ + +package net.dlogic.ufr.apdu_example; + +public final class R { + public static final class array { + public static final int authentication_mode_names=0x7f010000; + public static final int beep_signal_modes=0x7f010001; + public static final int capdu_picker=0x7f010002; + public static final int light_signal_modes=0x7f010003; + } + public static final class dimen { + public static final int activity_horizontal_margin=0x7f020000; + public static final int activity_vertical_margin=0x7f020001; + } + public static final class drawable { + public static final int button_pattern=0x7f030000; + public static final int ic_launcher=0x7f030001; + } + public static final class id { + public static final int BlockRead=0x7f040000; + public static final int btnApduTransceive=0x7f040001; + public static final int btnDeselect=0x7f040002; + public static final int btnDeviceType=0x7f040003; + public static final int btnSelect=0x7f040004; + public static final int btnUiSignal=0x7f040005; + public static final int ebCAPDU=0x7f040006; + public static final int ebDeviceType=0x7f040007; + public static final int ebRAPDU=0x7f040008; + public static final int editText4=0x7f040009; + public static final int spnBeepMode=0x7f04000a; + public static final int spnCAPDUPicker=0x7f04000b; + public static final int spnLightMode=0x7f04000c; + public static final int textView=0x7f04000d; + public static final int textView2=0x7f04000e; + public static final int textView3=0x7f04000f; + public static final int textView4=0x7f040010; + } + public static final class layout { + public static final int dl_spinner_textview=0x7f050000; + public static final int main=0x7f050001; + } + public static final class mipmap { + public static final int ic_launcher=0x7f060000; + } + public static final class string { + public static final int app_name=0x7f070000; + public static final int title_activity_main=0x7f070001; + } + public static final class style { + public static final int AppTheme=0x7f080000; + } + public static final class xml { + public static final int accessory_filter=0x7f090000; + public static final int dev_desc_filter=0x7f090001; + public static final int device_filter=0x7f090002; + } +} \ No newline at end of file diff --git a/app/build/generated/source/buildConfig/androidTest/debug/net/dlogic/ufr/apdu_example/test/BuildConfig.java b/app/build/generated/source/buildConfig/androidTest/debug/net/dlogic/ufr/apdu_example/test/BuildConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..38dad6699e2bd511e56bef502cec6a07a689138e --- /dev/null +++ b/app/build/generated/source/buildConfig/androidTest/debug/net/dlogic/ufr/apdu_example/test/BuildConfig.java @@ -0,0 +1,13 @@ +/** + * Automatically generated file. DO NOT MODIFY + */ +package net.dlogic.ufr.apdu_example.test; + +public final class BuildConfig { + public static final boolean DEBUG = Boolean.parseBoolean("true"); + public static final String APPLICATION_ID = "net.dlogic.ufr.apdu_example.test"; + public static final String BUILD_TYPE = "debug"; + public static final String FLAVOR = ""; + public static final int VERSION_CODE = 11; + public static final String VERSION_NAME = "1.1"; +} diff --git a/app/build/generated/source/buildConfig/debug/net/dlogic/ufr/apdu_example/BuildConfig.java b/app/build/generated/source/buildConfig/debug/net/dlogic/ufr/apdu_example/BuildConfig.java new file mode 100644 index 0000000000000000000000000000000000000000..14bb46f12e26948e6607cd16e4f7212edc8b13ec --- /dev/null +++ b/app/build/generated/source/buildConfig/debug/net/dlogic/ufr/apdu_example/BuildConfig.java @@ -0,0 +1,13 @@ +/** + * Automatically generated file. DO NOT MODIFY + */ +package net.dlogic.ufr.apdu_example; + +public final class BuildConfig { + public static final boolean DEBUG = Boolean.parseBoolean("true"); + public static final String APPLICATION_ID = "net.dlogic.ufr.apdu_example"; + public static final String BUILD_TYPE = "debug"; + public static final String FLAVOR = ""; + public static final int VERSION_CODE = 11; + public static final String VERSION_NAME = "1.1"; +} diff --git a/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json b/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ b/app/build/intermediates/annotation_processor_list/debug/annotationProcessors.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/app/build/intermediates/apk_list/debug/mainApkListPersistenceDebug/apk-list.gson b/app/build/intermediates/apk_list/debug/mainApkListPersistenceDebug/apk-list.gson new file mode 100644 index 0000000000000000000000000000000000000000..6c3f5f8620d97cc84010073c8060065f0a408059 --- /dev/null +++ b/app/build/intermediates/apk_list/debug/mainApkListPersistenceDebug/apk-list.gson @@ -0,0 +1 @@ +[{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"}] \ No newline at end of file diff --git a/app/build/intermediates/blame/res/debug/multi-v2/debug.json b/app/build/intermediates/blame/res/debug/multi-v2/debug.json new file mode 100644 index 0000000000000000000000000000000000000000..021740db2506a25dd811c9b3298185a428ebffc4 --- /dev/null +++ b/app/build/intermediates/blame/res/debug/multi-v2/debug.json @@ -0,0 +1,86 @@ +{ + "logs": [ + { + "outputFile": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\values-w820dp-v13_values-w820dp-v13.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values-w820dp\\dimens.xml", + "from": { + "startLines": "4", + "startColumns": "4", + "startOffsets": "295", + "endColumns": "57", + "endOffsets": "348" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "57", + "endOffsets": "108" + } + } + ] + }, + { + "outputFile": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\values_values.arsc.flat", + "map": [ + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\strings.xml", + "from": { + "startLines": "29,12,21,4,1,2", + "startColumns": "1,1,4,1,4,1", + "startOffsets": "846,352,578,152,17,76", + "endLines": "32,19,27,10,1,2", + "endColumns": "16,16,19,16,60,72", + "endOffsets": "975,570,841,347,73,147" + }, + "to": { + "startLines": "2,6,14,21,30,31", + "startColumns": "4,4,4,4,4,4", + "startOffsets": "55,186,402,664,972,1033", + "endLines": "5,13,20,27,30,31", + "endColumns": "16,16,19,16,60,75", + "endOffsets": "181,397,659,853,1028,1104" + } + }, + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\styles.xml", + "from": { + "startLines": "3", + "startColumns": "4", + "startOffsets": "57", + "endLines": "5", + "endColumns": "12", + "endOffsets": "187" + }, + "to": { + "startLines": "32", + "startColumns": "4", + "startOffsets": "1109", + "endLines": "34", + "endColumns": "12", + "endOffsets": "1237" + } + }, + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\dimens.xml", + "from": { + "startLines": "2,3", + "startColumns": "4,4", + "startOffsets": "90,149", + "endColumns": "57,55", + "endOffsets": "143,200" + }, + "to": { + "startLines": "28,29", + "startColumns": "4,4", + "startOffsets": "858,916", + "endColumns": "57,55", + "endOffsets": "911,967" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/blame/res/debug/multi-v2/values-w820dp-v13.json b/app/build/intermediates/blame/res/debug/multi-v2/values-w820dp-v13.json new file mode 100644 index 0000000000000000000000000000000000000000..a0f58a1dfeb80ab1ed6dffa7ab3833da61cf83ad --- /dev/null +++ b/app/build/intermediates/blame/res/debug/multi-v2/values-w820dp-v13.json @@ -0,0 +1,26 @@ +{ + "logs": [ + { + "outputFile": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\incremental\\mergeDebugResources\\merged.dir\\values-w820dp-v13\\values-w820dp-v13.xml", + "map": [ + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values-w820dp\\dimens.xml", + "from": { + "startLines": "4", + "startColumns": "4", + "startOffsets": "295", + "endColumns": "57", + "endOffsets": "348" + }, + "to": { + "startLines": "2", + "startColumns": "4", + "startOffsets": "55", + "endColumns": "57", + "endOffsets": "108" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/blame/res/debug/multi-v2/values.json b/app/build/intermediates/blame/res/debug/multi-v2/values.json new file mode 100644 index 0000000000000000000000000000000000000000..760722099b54aef0683703117d359e95cf5ae812 --- /dev/null +++ b/app/build/intermediates/blame/res/debug/multi-v2/values.json @@ -0,0 +1,64 @@ +{ + "logs": [ + { + "outputFile": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\incremental\\mergeDebugResources\\merged.dir\\values\\values.xml", + "map": [ + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\strings.xml", + "from": { + "startLines": "29,12,21,4,1,2", + "startColumns": "1,1,4,1,4,1", + "startOffsets": "846,352,578,152,17,76", + "endLines": "32,19,27,10,1,2", + "endColumns": "16,16,19,16,60,72", + "endOffsets": "975,570,841,347,73,147" + }, + "to": { + "startLines": "2,6,14,21,30,31", + "startColumns": "4,4,4,4,4,4", + "startOffsets": "55,186,402,664,972,1033", + "endLines": "5,13,20,27,30,31", + "endColumns": "16,16,19,16,60,75", + "endOffsets": "181,397,659,853,1028,1104" + } + }, + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\styles.xml", + "from": { + "startLines": "3", + "startColumns": "4", + "startOffsets": "57", + "endLines": "5", + "endColumns": "12", + "endOffsets": "187" + }, + "to": { + "startLines": "32", + "startColumns": "4", + "startOffsets": "1109", + "endLines": "34", + "endColumns": "12", + "endOffsets": "1237" + } + }, + { + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\values\\dimens.xml", + "from": { + "startLines": "2,3", + "startColumns": "4,4", + "startOffsets": "90,149", + "endColumns": "57,55", + "endOffsets": "143,200" + }, + "to": { + "startLines": "28,29", + "startColumns": "4,4", + "startOffsets": "858,916", + "endColumns": "57,55", + "endOffsets": "911,967" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/app/build/intermediates/blame/res/debug/single/debug.json b/app/build/intermediates/blame/res/debug/single/debug.json new file mode 100644 index 0000000000000000000000000000000000000000..66895a7109e12d6950f6fbc3c8c4e7c963404775 --- /dev/null +++ b/app/build/intermediates/blame/res/debug/single/debug.json @@ -0,0 +1,58 @@ +[ + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_device_filter.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\device_filter.xml" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xhdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-xhdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-ldpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-ldpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-mdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-mdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-xhdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-xhdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi_button_pattern.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-hdpi\\button_pattern.xml" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\layout_dl_spinner_textview.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\layout\\dl_spinner_textview.xml" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-xxhdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-xxhdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-mdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-mdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-hdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-hdpi_ic_launcher.png.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-hdpi\\ic_launcher.png" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\layout_main.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\layout\\main.xml" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_dev_desc_filter.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\dev_desc_filter.xml" + }, + { + "merged": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_accessory_filter.xml.flat", + "source": "C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\accessory_filter.xml" + } +] \ No newline at end of file diff --git a/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/AndroidManifest.xml b/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..668af43ff84bb17e71ddd378bbce328438b08bac --- /dev/null +++ b/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/output.json b/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/output.json new file mode 100644 index 0000000000000000000000000000000000000000..2c53feee3634fc771b1810f904d759421c10aa43 --- /dev/null +++ b/app/build/intermediates/bundle_manifest/debug/processDebugManifest/bundle-manifest/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"BUNDLE_MANIFEST"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/out/output.json b/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/out/output.json new file mode 100644 index 0000000000000000000000000000000000000000..0637a088a01e8ddab3bf3fa98dbe804cbde1a0dc --- /dev/null +++ b/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/out/output.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/app/build/intermediates/dex/debug/mergeDexDebug/out/classes.dex b/app/build/intermediates/dex/debug/mergeDexDebug/out/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..939415a466ed69e4e99e811a805b4795559fac2f Binary files /dev/null and b/app/build/intermediates/dex/debug/mergeDexDebug/out/classes.dex differ diff --git a/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/out/classes.dex b/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/out/classes.dex new file mode 100644 index 0000000000000000000000000000000000000000..dd7ee6faae106f40f46228d89fdf5be41ff68750 Binary files /dev/null and b/app/build/intermediates/external_libs_dex/debug/mergeExtDexDebug/out/classes.dex differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state new file mode 100644 index 0000000000000000000000000000000000000000..4026c8b9b73c1d877ced590571f85012725b7cab Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= new file mode 100644 index 0000000000000000000000000000000000000000..e6f0e4a34df1aa22d3460822f4d4bcc835ce9f72 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= new file mode 100644 index 0000000000000000000000000000000000000000..3a7fc266c3e32283a2b21fe12166ebdcc33a1da1 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= differ diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= new file mode 100644 index 0000000000000000000000000000000000000000..9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeJavaRes/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= differ diff --git a/app/build/intermediates/incremental/debug-mergeNativeLibs/merge-state b/app/build/intermediates/incremental/debug-mergeNativeLibs/merge-state new file mode 100644 index 0000000000000000000000000000000000000000..73589f7bf9240164bc37597f76dc91d79cedf1f3 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeNativeLibs/merge-state differ diff --git a/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= new file mode 100644 index 0000000000000000000000000000000000000000..e6f0e4a34df1aa22d3460822f4d4bcc835ce9f72 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/0YcKOwRw3WD37ME6PzkJqv6FHrg= differ diff --git a/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= new file mode 100644 index 0000000000000000000000000000000000000000..3a7fc266c3e32283a2b21fe12166ebdcc33a1da1 Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/kn3PE+E60mwRM5v8Worzm74xIjw= differ diff --git a/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= new file mode 100644 index 0000000000000000000000000000000000000000..9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a Binary files /dev/null and b/app/build/intermediates/incremental/debug-mergeNativeLibs/zip-cache/rdjPlWA6U7BQTcT7cppIVt7PTRk= differ diff --git a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml new file mode 100644 index 0000000000000000000000000000000000000000..b245574c7124625415d2a1f79daf30309f33890e --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml new file mode 100644 index 0000000000000000000000000000000000000000..a51bcb72238e07e0a0786a931477c588a94470fb --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties b/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties new file mode 100644 index 0000000000000000000000000000000000000000..b106a7d92e1d89e12744a580a39e8166086532f9 --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugResources/compile-file-map.properties @@ -0,0 +1,15 @@ +#Thu Dec 05 13:35:49 CET 2019 +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\layout\\dl_spinner_textview.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\layout_dl_spinner_textview.xml.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\accessory_filter.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_accessory_filter.xml.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-mdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-mdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-mdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-mdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\device_filter.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_device_filter.xml.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-xhdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-xhdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\layout\\main.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\layout_main.xml.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\xml\\dev_desc_filter.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\xml_dev_desc_filter.xml.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-ldpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-ldpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-xxhdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-xxhdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-hdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-xhdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-xhdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\mipmap-hdpi\\ic_launcher.png=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\mipmap-hdpi_ic_launcher.png.flat +C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\src\\main\\res\\drawable-hdpi\\button_pattern.xml=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\res\\merged\\debug\\drawable-hdpi_button_pattern.xml.flat diff --git a/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-w820dp-v13/values-w820dp-v13.xml b/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-w820dp-v13/values-w820dp-v13.xml new file mode 100644 index 0000000000000000000000000000000000000000..3eda5f55d5dd48b6d54c2e35f8679d9be1b44f5b --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-w820dp-v13/values-w820dp-v13.xml @@ -0,0 +1,4 @@ + + + 64dp + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml b/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml new file mode 100644 index 0000000000000000000000000000000000000000..b5be1068664184c04baf7ac34a5c6c44a9e0f339 --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml @@ -0,0 +1,36 @@ + + + + Authent1 A keys + Authent1 B keys + + + None + Beep mode 1 + Beep mode 2 + Beep mode 3 + Beep mode 4 + Beep mode 5 + + + NFC NDEF tag app select + NFC CC select + NFC NDEF file select + ST M24SRxx sys file select + Read Binary + + + None + Light mode 1 + Light mode 2 + Light mode 3 + Light mode 4 + + 16dp + 16dp + DLogic uFR APDU example + DLogic uFR APDU example 1.1 + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugResources/merger.xml b/app/build/intermediates/incremental/mergeDebugResources/merger.xml new file mode 100644 index 0000000000000000000000000000000000000000..fa54d0314c7b2eeac95be0536e9cde1cf95348bb --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugResources/merger.xml @@ -0,0 +1,26 @@ + +16dp16dpDLogic uFR APDU exampleDLogic uFR APDU example 1.1 + None + Light mode 1 + Light mode 2 + Light mode 3 + Light mode 4 + + None + Beep mode 1 + Beep mode 2 + Beep mode 3 + Beep mode 4 + Beep mode 5 + + NFC NDEF tag app select + NFC CC select + NFC NDEF file select + ST M24SRxx sys file select + Read Binary + + Authent1 A keys + Authent1 B keys + 64dp \ No newline at end of file diff --git a/app/build/intermediates/incremental/mergeDebugShaders/merger.xml b/app/build/intermediates/incremental/mergeDebugShaders/merger.xml new file mode 100644 index 0000000000000000000000000000000000000000..ad7de639bd24b079bbd27bbc910e3c401f9f90da --- /dev/null +++ b/app/build/intermediates/incremental/mergeDebugShaders/merger.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt new file mode 100644 index 0000000000000000000000000000000000000000..b75501f6cb8ad5b618335dc528c3b96f60f3795a --- /dev/null +++ b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt @@ -0,0 +1,4 @@ +#Thu Dec 05 13:44:09 CET 2019 +base.0=C\:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\dex\\debug\\mergeDexDebug\\out\\classes.dex +path.0=classes.dex +renamed.0=classes.dex diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/Ln1C3zyJhd4Oy9qfC32N0g7nXvo= b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/Ln1C3zyJhd4Oy9qfC32N0g7nXvo= new file mode 100644 index 0000000000000000000000000000000000000000..80eae08ff458e2519063cb71e21efd4dbfc0b401 Binary files /dev/null and b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/Ln1C3zyJhd4Oy9qfC32N0g7nXvo= differ diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/et5CVCgF7dL6ovlB6QwW4hMKV9U= b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/et5CVCgF7dL6ovlB6QwW4hMKV9U= new file mode 100644 index 0000000000000000000000000000000000000000..55c31bd7a47777b6e5107a218e4e4a6a0d49bf94 Binary files /dev/null and b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/et5CVCgF7dL6ovlB6QwW4hMKV9U= differ diff --git a/app/build/intermediates/instant_app_manifest/debug/AndroidManifest.xml b/app/build/intermediates/instant_app_manifest/debug/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca48adcc4bbc073a5946dc739d23fa173d5dabfd --- /dev/null +++ b/app/build/intermediates/instant_app_manifest/debug/AndroidManifest.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/instant_app_manifest/debug/output.json b/app/build/intermediates/instant_app_manifest/debug/output.json new file mode 100644 index 0000000000000000000000000000000000000000..b8f3655cb8291410b8665123bd314cdcf981f9d7 --- /dev/null +++ b/app/build/intermediates/instant_app_manifest/debug/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"INSTANT_APP_MANIFEST"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/AndroidManifest.xml b/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..ca48adcc4bbc073a5946dc739d23fa173d5dabfd --- /dev/null +++ b/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/AndroidManifest.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/output.json b/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/output.json new file mode 100644 index 0000000000000000000000000000000000000000..8b361e5aa2c6914dbdb75524031a3d26077a6e54 --- /dev/null +++ b/app/build/intermediates/instant_app_manifest/debug/processDebugManifest/instant-app-manifest/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"INSTANT_APP_MANIFEST"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/instant_run_merged_manifests/debug/processDebugManifest/instant-run/output.json b/app/build/intermediates/instant_run_merged_manifests/debug/processDebugManifest/instant-run/output.json new file mode 100644 index 0000000000000000000000000000000000000000..92510182cfae239ae323703182a312aacfebd3d0 --- /dev/null +++ b/app/build/intermediates/instant_run_merged_manifests/debug/processDebugManifest/instant-run/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"INSTANT_RUN_MERGED_MANIFESTS"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/BuildConfig.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/BuildConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..f1ba972b41c188d249c30ca3e56ae2095cb73ace Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/BuildConfig.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$1.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cb5cf185b458cbc700d9fa93c3223f462400362b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$2.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$2.class new file mode 100644 index 0000000000000000000000000000000000000000..53fe1a3c840105087cfbd6c16df14930cb8d635e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$3.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..9361bc3fe9c702363d1fa7fe68bbb44c4b66bb73 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$3.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$4.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..ae31b62ee36f40d9544cfce7dfba36faafc6b74d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$4.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$5.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..4cd1055b794e13b29fa1295273ba6dc71912e0a9 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$5.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$6.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..7bb52a458ef7aa3db5e2c3a3d55deaad75351898 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$6.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$7.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$7.class new file mode 100644 index 0000000000000000000000000000000000000000..37dbbc5dcd19a9e413a5ae5cfb12cbd5cd9babad Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$7.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$8.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$8.class new file mode 100644 index 0000000000000000000000000000000000000000..b77491e6a88f67c7a33766dde94d59d423ba28dc Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$8.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Consts.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Consts.class new file mode 100644 index 0000000000000000000000000000000000000000..00db293a38b89061a3c2399d9e9d7581891c7898 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Consts.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$IncomingHandler.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$IncomingHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..d97de460a1d65e65c43519e05ae1a341ab30ee9d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$IncomingHandler.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$ReaderThread.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$ReaderThread.class new file mode 100644 index 0000000000000000000000000000000000000000..c8dd0c20b215523754928105873f6ea78a52e8dd Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$ReaderThread.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Task.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Task.class new file mode 100644 index 0000000000000000000000000000000000000000..b8d2e1bf9033021d4c0ea4e7a07522812584cd3c Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Task.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Tools.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Tools.class new file mode 100644 index 0000000000000000000000000000000000000000..22d352d17bbcd16e38463cf78b201f8075e9df17 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main$Tools.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..e586651b2900f6f512d4739caba04e46b925aa38 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/Main.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$array.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$array.class new file mode 100644 index 0000000000000000000000000000000000000000..66ed30e32ca09be3cc0bb1744ee6be03bbfe8a29 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$array.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$dimen.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$dimen.class new file mode 100644 index 0000000000000000000000000000000000000000..47799f5cad5a1455ef9ff74fa09b612b62a218d4 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$dimen.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$drawable.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$drawable.class new file mode 100644 index 0000000000000000000000000000000000000000..8e7573eae11b6445fcf80e2985e96fff854b772b Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$drawable.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$id.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$id.class new file mode 100644 index 0000000000000000000000000000000000000000..3a7b08bd122ce39120d4dadc67eadfcaf434a4e5 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$id.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$layout.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$layout.class new file mode 100644 index 0000000000000000000000000000000000000000..8de3256610c69e464c2dfd12c2d7c028bee7e5d4 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$layout.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$mipmap.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$mipmap.class new file mode 100644 index 0000000000000000000000000000000000000000..5df2b56a0a2134c8124bb2c4d5a31891f8e8a07c Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$mipmap.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$string.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$string.class new file mode 100644 index 0000000000000000000000000000000000000000..17b5821b6502b922243812f1f7da48de43e8d216 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$string.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$style.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$style.class new file mode 100644 index 0000000000000000000000000000000000000000..1198d396072304203e60d7cbe81ff2ad8d3aa78d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$style.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$xml.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$xml.class new file mode 100644 index 0000000000000000000000000000000000000000..1e4eab5b3a72bba858c6ac15e948d6d388ce9579 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R$xml.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R.class new file mode 100644 index 0000000000000000000000000000000000000000..a0a059257767f6913215afe6105056a704975810 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/apdu_example/R.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$1.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$1.class new file mode 100644 index 0000000000000000000000000000000000000000..60764b968abec355c79dc80d9b9a7665264393e4 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$1.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$2.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$2.class new file mode 100644 index 0000000000000000000000000000000000000000..699a11b8a6daac89e3f3331f30e6dbd0c79b63e3 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$2.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$AoAReadThread.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$AoAReadThread.class new file mode 100644 index 0000000000000000000000000000000000000000..6976548c93f1f2ccfac82ba7e880936029a0d61e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$AoAReadThread.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$CardParams.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$CardParams.class new file mode 100644 index 0000000000000000000000000000000000000000..b09aa80ab438afbc007cbe55fe851796d050e157 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$CardParams.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComParams.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComParams.class new file mode 100644 index 0000000000000000000000000000000000000000..14da7ae8636537445c5e731ae36ad876756d5fd6 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComParams.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComProtocol.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComProtocol.class new file mode 100644 index 0000000000000000000000000000000000000000..cf1a64074f7be24da2c969934a99a1f8fcc703d7 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$ComProtocol.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$Consts.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$Consts.class new file mode 100644 index 0000000000000000000000000000000000000000..a6b6f669334432eb98204c724bf6bf23e3f12a21 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$Consts.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlErrorCodes.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlErrorCodes.class new file mode 100644 index 0000000000000000000000000000000000000000..08743cb814b5eadc396a6e359fb3d602e54d999d Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlErrorCodes.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlReaderException.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlReaderException.class new file mode 100644 index 0000000000000000000000000000000000000000..aa831ee3bdba028e56d7392acaa397c338c5f2bf Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$DlReaderException.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$LocalException.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$LocalException.class new file mode 100644 index 0000000000000000000000000000000000000000..f1128c9def750ae61383b8b7a172fb04ea1f40e0 Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader$LocalException.class differ diff --git a/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader.class b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader.class new file mode 100644 index 0000000000000000000000000000000000000000..e32d908102467a345e4bee7981242d1bbfda4f1e Binary files /dev/null and b/app/build/intermediates/javac/debug/classes/net/dlogic/ufr/lib/DlReader.class differ diff --git a/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt b/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt new file mode 100644 index 0000000000000000000000000000000000000000..a98796d3b0a0d25241b95566cdb4fe2eb1787a47 --- /dev/null +++ b/app/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt @@ -0,0 +1,79 @@ +1 +2 +6 +7 C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +9 android:targetSdkVersion="28" /> +9-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +10 +11 +11-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:6:2-59 +11-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:6:16-56 +12 +12-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:7:5-67 +12-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:7:19-64 +13 +14 C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:9:5-36:19 +15 android:debuggable="true" +16 android:icon="@drawable/ic_launcher" +16-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:10:9-45 +17 android:label="@string/app_name" > +17-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:11:9-41 +18 C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:12:9-35:20 +19 android:name="net.dlogic.ufr.apdu_example.Main" +19-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:13:13-60 +20 android:autoRemoveFromRecents="true" +20-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:17:13-49 +21 android:configChanges="keyboardHidden|orientation|screenSize" +21-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:16:13-74 +22 android:label="@string/title_activity_main" +22-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:14:13-56 +23 android:launchMode="singleTask" > +23-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:15:13-44 +24 +24-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:20:13-23:29 +25 +25-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:21:17-69 +25-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:21:25-66 +26 +27 +27-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:22:17-77 +27-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:22:27-74 +28 +29 +29-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:25:13-27:29 +30 +30-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:26:17-90 +30-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:26:25-87 +31 +32 +33 C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:13-127 +34 android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" +34-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:24-86 +35 android:resource="@xml/device_filter" /> +35-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:87-124 +36 +37 +37-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:30:13-32:29 +38 +38-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:31:17-93 +38-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:31:25-90 +39 +40 +41 C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:13-133 +42 android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" +42-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:24-89 +43 android:resource="@xml/accessory_filter" /> +43-->C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:90-130 +44 +45 +46 +47 diff --git a/app/build/intermediates/merged_java_res/debug/out.jar b/app/build/intermediates/merged_java_res/debug/out.jar new file mode 100644 index 0000000000000000000000000000000000000000..98874e9b68974d284c233d070efdfc7e22f24e78 Binary files /dev/null and b/app/build/intermediates/merged_java_res/debug/out.jar differ diff --git a/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml b/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..668af43ff84bb17e71ddd378bbce328438b08bac --- /dev/null +++ b/app/build/intermediates/merged_manifests/debug/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build/intermediates/merged_manifests/debug/output.json b/app/build/intermediates/merged_manifests/debug/output.json new file mode 100644 index 0000000000000000000000000000000000000000..db1430e0561ed23fd9da7303e27762f5a31c11e5 --- /dev/null +++ b/app/build/intermediates/merged_manifests/debug/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/merged_manifests/debugAndroidTest/AndroidManifest.xml b/app/build/intermediates/merged_manifests/debugAndroidTest/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..efee0b53eb32448055041ef55cad2c80f63cfb6e --- /dev/null +++ b/app/build/intermediates/merged_manifests/debugAndroidTest/AndroidManifest.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/app/build/intermediates/merged_manifests/debugAndroidTest/output.json b/app/build/intermediates/merged_manifests/debugAndroidTest/output.json new file mode 100644 index 0000000000000000000000000000000000000000..2a9f94d2cf30b25e0a3ed138b641d183ac9f8ae0 --- /dev/null +++ b/app/build/intermediates/merged_manifests/debugAndroidTest/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug-androidTest.apk","fullName":"debugAndroidTest","baseName":"debug-androidTest"},"path":"AndroidManifest.xml","properties":{}}] \ No newline at end of file diff --git a/app/build/intermediates/metadata_feature_manifest/debug/processDebugManifest/metadata-feature/output.json b/app/build/intermediates/metadata_feature_manifest/debug/processDebugManifest/metadata-feature/output.json new file mode 100644 index 0000000000000000000000000000000000000000..144a8a30b87644b257681a1717de37f2d39da975 --- /dev/null +++ b/app/build/intermediates/metadata_feature_manifest/debug/processDebugManifest/metadata-feature/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"METADATA_FEATURE_MANIFEST"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{}}] \ No newline at end of file diff --git a/app/build/intermediates/processed_res/debug/processDebugResources/out/output.json b/app/build/intermediates/processed_res/debug/processDebugResources/out/output.json new file mode 100644 index 0000000000000000000000000000000000000000..ef40e774847b06e365200b45fbf966f6b827d73b --- /dev/null +++ b/app/build/intermediates/processed_res/debug/processDebugResources/out/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"PROCESSED_RES"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"resources-debug.ap_","properties":{"packageId":"net.dlogic.ufr.apdu_example","split":"","minSdkVersion":"15"}}] \ No newline at end of file diff --git a/app/build/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_ b/app/build/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_ new file mode 100644 index 0000000000000000000000000000000000000000..423fed6a790a7a2e1b487eb42abc2b017e36fa2d Binary files /dev/null and b/app/build/intermediates/processed_res/debug/processDebugResources/out/resources-debug.ap_ differ diff --git a/app/build/intermediates/res/merged/debug/drawable-hdpi_button_pattern.xml.flat b/app/build/intermediates/res/merged/debug/drawable-hdpi_button_pattern.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..ddf5e198f9ea423a509a7dd846a6ad7c06aedb21 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/drawable-hdpi_button_pattern.xml.flat differ diff --git a/app/build/intermediates/res/merged/debug/drawable-hdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/drawable-hdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..52ac52cacdcfe4515e3536042b3323536bc55435 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/drawable-hdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/drawable-ldpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/drawable-ldpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..0190dc7b171f4659d833ecfbeff24481df826868 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/drawable-ldpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/drawable-mdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/drawable-mdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..4af837068d46dce4af6a51d42fa48ebe096941c3 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/drawable-mdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/drawable-xhdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/drawable-xhdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..8f871f543a314180c013a585cf799ac7cf6c1686 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/drawable-xhdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/layout_dl_spinner_textview.xml.flat b/app/build/intermediates/res/merged/debug/layout_dl_spinner_textview.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..9ff76ee061a438eb5dcfa5adc0013fe85c7025d8 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/layout_dl_spinner_textview.xml.flat differ diff --git a/app/build/intermediates/res/merged/debug/layout_main.xml.flat b/app/build/intermediates/res/merged/debug/layout_main.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..b7faab8898c6c1243bb57562ff4929d358466d73 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/layout_main.xml.flat differ diff --git a/app/build/intermediates/res/merged/debug/mipmap-hdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/mipmap-hdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..98d5deb605e735ba334b2e77de671beb4a003969 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/mipmap-hdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/mipmap-mdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/mipmap-mdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..4ad4b11c885ccbaff7bb13b0e5d1df72b47ed931 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/mipmap-mdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/mipmap-xhdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/mipmap-xhdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..ec2bdc90922f349144b4f7b2d2b40f5526bfbdb9 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/mipmap-xhdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/mipmap-xxhdpi_ic_launcher.png.flat b/app/build/intermediates/res/merged/debug/mipmap-xxhdpi_ic_launcher.png.flat new file mode 100644 index 0000000000000000000000000000000000000000..88d53d14f493c6c195c8d3219a93b633a6d7a5fe Binary files /dev/null and b/app/build/intermediates/res/merged/debug/mipmap-xxhdpi_ic_launcher.png.flat differ diff --git a/app/build/intermediates/res/merged/debug/values-w820dp-v13_values-w820dp-v13.arsc.flat b/app/build/intermediates/res/merged/debug/values-w820dp-v13_values-w820dp-v13.arsc.flat new file mode 100644 index 0000000000000000000000000000000000000000..8c188d795893ed17e91fe580aa825ac47333fe18 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/values-w820dp-v13_values-w820dp-v13.arsc.flat differ diff --git a/app/build/intermediates/res/merged/debug/values_values.arsc.flat b/app/build/intermediates/res/merged/debug/values_values.arsc.flat new file mode 100644 index 0000000000000000000000000000000000000000..88e6477f967f6bf680c0ab0fb08ec27c95afd3af Binary files /dev/null and b/app/build/intermediates/res/merged/debug/values_values.arsc.flat differ diff --git a/app/build/intermediates/res/merged/debug/xml_accessory_filter.xml.flat b/app/build/intermediates/res/merged/debug/xml_accessory_filter.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..f830ca5a806753ff28daab692c91a265389102cc Binary files /dev/null and b/app/build/intermediates/res/merged/debug/xml_accessory_filter.xml.flat differ diff --git a/app/build/intermediates/res/merged/debug/xml_dev_desc_filter.xml.flat b/app/build/intermediates/res/merged/debug/xml_dev_desc_filter.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..b6551db10767763d3e9e6d03e5cf2896b93c5755 Binary files /dev/null and b/app/build/intermediates/res/merged/debug/xml_dev_desc_filter.xml.flat differ diff --git a/app/build/intermediates/res/merged/debug/xml_device_filter.xml.flat b/app/build/intermediates/res/merged/debug/xml_device_filter.xml.flat new file mode 100644 index 0000000000000000000000000000000000000000..23730f474857acc71854efd7aaa76dec28c32f3d Binary files /dev/null and b/app/build/intermediates/res/merged/debug/xml_device_filter.xml.flat differ diff --git a/app/build/intermediates/signing_config/debug/out/signing-config.json b/app/build/intermediates/signing_config/debug/out/signing-config.json new file mode 100644 index 0000000000000000000000000000000000000000..a08f47fd1b0ae2f2f77dc74e3f5a3eddaf5f6258 --- /dev/null +++ b/app/build/intermediates/signing_config/debug/out/signing-config.json @@ -0,0 +1 @@ +{"mName":"debug","mStoreFile":"C:\\Users\\Konferencija\\.android\\debug.keystore","mStorePassword":"android","mKeyAlias":"AndroidDebugKey","mKeyPassword":"android","mStoreType":"jks","mV1SigningEnabled":true,"mV2SigningEnabled":true} \ No newline at end of file diff --git a/app/build/intermediates/symbols/debug/R.txt b/app/build/intermediates/symbols/debug/R.txt new file mode 100644 index 0000000000000000000000000000000000000000..e07121be0e701f8e72a16f953a1eb08ad5d9d000 --- /dev/null +++ b/app/build/intermediates/symbols/debug/R.txt @@ -0,0 +1,34 @@ +int array authentication_mode_names 0x7f010000 +int array beep_signal_modes 0x7f010001 +int array capdu_picker 0x7f010002 +int array light_signal_modes 0x7f010003 +int dimen activity_horizontal_margin 0x7f020000 +int dimen activity_vertical_margin 0x7f020001 +int drawable button_pattern 0x7f030000 +int drawable ic_launcher 0x7f030001 +int id BlockRead 0x7f040000 +int id btnApduTransceive 0x7f040001 +int id btnDeselect 0x7f040002 +int id btnDeviceType 0x7f040003 +int id btnSelect 0x7f040004 +int id btnUiSignal 0x7f040005 +int id ebCAPDU 0x7f040006 +int id ebDeviceType 0x7f040007 +int id ebRAPDU 0x7f040008 +int id editText4 0x7f040009 +int id spnBeepMode 0x7f04000a +int id spnCAPDUPicker 0x7f04000b +int id spnLightMode 0x7f04000c +int id textView 0x7f04000d +int id textView2 0x7f04000e +int id textView3 0x7f04000f +int id textView4 0x7f040010 +int layout dl_spinner_textview 0x7f050000 +int layout main 0x7f050001 +int mipmap ic_launcher 0x7f060000 +int string app_name 0x7f070000 +int string title_activity_main 0x7f070001 +int style AppTheme 0x7f080000 +int xml accessory_filter 0x7f090000 +int xml dev_desc_filter 0x7f090001 +int xml device_filter 0x7f090002 diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/BuildConfig.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/BuildConfig.dex new file mode 100644 index 0000000000000000000000000000000000000000..57e0de3f703454b9bbe24e20e2bb16c6c4e65dad Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/BuildConfig.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$1.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$1.dex new file mode 100644 index 0000000000000000000000000000000000000000..6ced889b24b6e65121f4374e8a7f605e693bfd4d Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$1.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$2.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$2.dex new file mode 100644 index 0000000000000000000000000000000000000000..7833454a8a6635f210d8e4e4985f3773728db7f7 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$2.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$3.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$3.dex new file mode 100644 index 0000000000000000000000000000000000000000..9bb9bf60923dc48cc4eae8d0cf2000c03e6e2cd2 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$3.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$4.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$4.dex new file mode 100644 index 0000000000000000000000000000000000000000..ddf99e73e4126b010b3316615dbcd1f8a876958b Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$4.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$5.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$5.dex new file mode 100644 index 0000000000000000000000000000000000000000..ec5e726f9aa8d2bb35b5ccd5f06b8d7c32c65af8 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$5.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$6.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$6.dex new file mode 100644 index 0000000000000000000000000000000000000000..ce6e8acc6b77b287dcfdebd821f95926e4e4273f Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$6.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$7.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$7.dex new file mode 100644 index 0000000000000000000000000000000000000000..b448e6ceae3c78360e47308fa3c797aa8bf636e7 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$7.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$8.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$8.dex new file mode 100644 index 0000000000000000000000000000000000000000..af141ff12aca11136877e1ddb4977f011b07b2c1 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$8.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Consts.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Consts.dex new file mode 100644 index 0000000000000000000000000000000000000000..ac8c9148dfe72af2722b258b0150dabaece93084 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Consts.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$IncomingHandler.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$IncomingHandler.dex new file mode 100644 index 0000000000000000000000000000000000000000..c5b6d6667afa680f219f254270d157cfbd34bfe3 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$IncomingHandler.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$ReaderThread.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$ReaderThread.dex new file mode 100644 index 0000000000000000000000000000000000000000..7b1db5833f54a316dcac19fc069240dfd6cf90d6 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$ReaderThread.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Task.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Task.dex new file mode 100644 index 0000000000000000000000000000000000000000..1a56c11c7874fe6af4b0700c0aaa4cc29246f340 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Task.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Tools.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Tools.dex new file mode 100644 index 0000000000000000000000000000000000000000..8b4795dd2d57a62d3b0931cc8154c9ff9d31bf57 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main$Tools.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main.dex new file mode 100644 index 0000000000000000000000000000000000000000..218dea03af8d8463f76ffdd641bbb54203c0f31c Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/Main.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$array.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$array.dex new file mode 100644 index 0000000000000000000000000000000000000000..2bd576e0b3f922fa2175845c96b1570b151f17ed Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$array.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$dimen.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$dimen.dex new file mode 100644 index 0000000000000000000000000000000000000000..89f7e7cf67be55ab711d70ca6374f6d74f34d1cf Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$dimen.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$drawable.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$drawable.dex new file mode 100644 index 0000000000000000000000000000000000000000..c3c6b2f3e659943ab70c3c3ef572b917b53b3a5c Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$drawable.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$id.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$id.dex new file mode 100644 index 0000000000000000000000000000000000000000..7e44c364d63e433b2a7c20e856865fad580539bd Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$id.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$layout.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$layout.dex new file mode 100644 index 0000000000000000000000000000000000000000..ecc4044f17aee657ae45f257da121a7c3b00b9d6 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$layout.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$mipmap.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$mipmap.dex new file mode 100644 index 0000000000000000000000000000000000000000..5c88ba2a17737bfe163de4750802a1a72013089c Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$mipmap.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$string.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$string.dex new file mode 100644 index 0000000000000000000000000000000000000000..a6c7374663653168f9d3068b99476c0f38c5fb3d Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$string.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$style.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$style.dex new file mode 100644 index 0000000000000000000000000000000000000000..7f7e1371281f87b178379024722ae582e1d3130a Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$style.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$xml.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$xml.dex new file mode 100644 index 0000000000000000000000000000000000000000..ebfab764f54abd585111980b5a9750c94aae3a76 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R$xml.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R.dex new file mode 100644 index 0000000000000000000000000000000000000000..bd876c6a9973b819c22196668c9fc03e56024e20 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/apdu_example/R.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$1.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$1.dex new file mode 100644 index 0000000000000000000000000000000000000000..9acd2a226191bf314d4dcdf0e171548f2473a677 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$1.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$2.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$2.dex new file mode 100644 index 0000000000000000000000000000000000000000..437afbaa4f0052787e39ccaea3c376b6088a4b0f Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$2.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$AoAReadThread.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$AoAReadThread.dex new file mode 100644 index 0000000000000000000000000000000000000000..1193d9bf5449acdf52c920752709e2207d2c86bc Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$AoAReadThread.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$CardParams.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$CardParams.dex new file mode 100644 index 0000000000000000000000000000000000000000..6d2cf744aab7d6f339953ea91f14f05e39bc5409 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$CardParams.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComParams.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComParams.dex new file mode 100644 index 0000000000000000000000000000000000000000..577710e3ae714bd3261fd206073bc15034735475 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComParams.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComProtocol.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComProtocol.dex new file mode 100644 index 0000000000000000000000000000000000000000..73b493049e3c0d4500ff5c85478f2f5dce975ffa Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$ComProtocol.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$Consts.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$Consts.dex new file mode 100644 index 0000000000000000000000000000000000000000..1ca3e1a3a2664b85f1bc976dc1186822a5354582 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$Consts.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlErrorCodes.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlErrorCodes.dex new file mode 100644 index 0000000000000000000000000000000000000000..e2d420f7b9091c68e96920c49e9f563c600ffd11 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlErrorCodes.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlReaderException.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlReaderException.dex new file mode 100644 index 0000000000000000000000000000000000000000..006d02bef5c4b9182eac79de44fb58d453e57e51 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$DlReaderException.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$LocalException.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$LocalException.dex new file mode 100644 index 0000000000000000000000000000000000000000..856820979ecdc7347354c189b58f71aba75747e0 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader$LocalException.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader.dex b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader.dex new file mode 100644 index 0000000000000000000000000000000000000000..4531604ba6078584811eef3af9f01ea699896ec4 Binary files /dev/null and b/app/build/intermediates/transforms/dexBuilder/debug/0/net/dlogic/ufr/lib/DlReader.dex differ diff --git a/app/build/intermediates/transforms/dexBuilder/debug/__content__.json b/app/build/intermediates/transforms/dexBuilder/debug/__content__.json new file mode 100644 index 0000000000000000000000000000000000000000..03ffd4434d7870c1e152bc3f57cb087cd542281f --- /dev/null +++ b/app/build/intermediates/transforms/dexBuilder/debug/__content__.json @@ -0,0 +1 @@ +[{"name":"C:\\Users\\Konferencija\\AndroidStudioProjects\\ufr-apdu-examples-android\\app\\build\\intermediates\\javac\\debug\\classes","index":0,"scopes":["PROJECT"],"types":["DEX_ARCHIVE"],"format":"DIRECTORY","present":true}] \ No newline at end of file diff --git a/app/build/outputs/apk/debug/app-debug.apk b/app/build/outputs/apk/debug/app-debug.apk new file mode 100644 index 0000000000000000000000000000000000000000..02188f1b9958a6285a5f2a687fe3b78f7dbc07bc Binary files /dev/null and b/app/build/outputs/apk/debug/app-debug.apk differ diff --git a/app/build/outputs/apk/debug/output.json b/app/build/outputs/apk/debug/output.json new file mode 100644 index 0000000000000000000000000000000000000000..f98c0723515a26a5e4d335dff1e68f880d5ce716 --- /dev/null +++ b/app/build/outputs/apk/debug/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":11,"versionName":"1.1","enabled":true,"outputFile":"app-debug.apk","fullName":"debug","baseName":"debug"},"path":"app-debug.apk","properties":{}}] \ No newline at end of file diff --git a/app/build/outputs/logs/manifest-merger-debug-report.txt b/app/build/outputs/logs/manifest-merger-debug-report.txt new file mode 100644 index 0000000000000000000000000000000000000000..dea7c236af6820556be694d43b730644b7590322 --- /dev/null +++ b/app/build/outputs/logs/manifest-merger-debug-report.txt @@ -0,0 +1,97 @@ +-- Merging decision tree log --- +manifest +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:1-37:12 + package + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:3:5-42 + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + android:versionName + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:5:5-30 + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + xmlns:android + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:2:11-69 + android:versionCode + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:4:5-29 + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +uses-feature#android.hardware.usb.host +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:6:2-59 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:6:16-56 +uses-feature#android.hardware.usb.accessory +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:7:5-67 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:7:19-64 +application +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:9:5-36:19 + android:label + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:11:9-41 + android:icon + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:10:9-45 +activity#net.dlogic.ufr.apdu_example.Main +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:12:9-35:20 + android:label + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:14:13-56 + android:launchMode + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:15:13-44 + android:autoRemoveFromRecents + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:17:13-49 + android:configChanges + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:16:13-74 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:13:13-60 +intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:20:13-23:29 +action#android.intent.action.MAIN +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:21:17-69 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:21:25-66 +category#android.intent.category.LAUNCHER +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:22:17-77 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:22:27-74 +intent-filter#action:name:android.hardware.usb.action.USB_DEVICE_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:25:13-27:29 +action#android.hardware.usb.action.USB_DEVICE_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:26:17-90 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:26:25-87 +meta-data#android.hardware.usb.action.USB_DEVICE_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:13-127 + android:resource + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:87-124 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:28:24-86 +intent-filter#action:name:android.hardware.usb.action.USB_ACCESSORY_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:30:13-32:29 +action#android.hardware.usb.action.USB_ACCESSORY_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:31:17-93 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:31:25-90 +meta-data#android.hardware.usb.action.USB_ACCESSORY_ATTACHED +ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:13-133 + android:resource + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:90-130 + android:name + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml:33:24-89 +uses-sdk +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml reason: use-sdk injection requested +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml +INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + android:targetSdkVersion + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + android:minSdkVersion + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + ADDED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml + INJECTED from C:\Users\Konferencija\AndroidStudioProjects\ufr-apdu-examples-android\app\src\main\AndroidManifest.xml diff --git a/app/libs/DlReader.java b/app/libs/DlReader.java new file mode 100644 index 0000000000000000000000000000000000000000..7e91756c82c57409efb8c2ca772de42d48f33e2f --- /dev/null +++ b/app/libs/DlReader.java @@ -0,0 +1,1340 @@ +package net.dlogic.ufr.lib; + +/** + * Created by dlogic on 12.5.2015. + * + * 08.11.2017. class DlReader v2.9 + * - Updated APDUPlainTransceive() acording to a uFR firmware changes in version 3.9.44. + * - Support for APDU commands now depands on uFR firmware version 3.9.44 or later. + * 20.07.2017. class DlReader v2.8 + * - Added support for APDU commands: + * - New method: + * public synchronized void setISO14443_4_Mode() throws DlReaderException, + * InterruptedException + * Select ISO14443-4A tag and "open channel for the APDU commands" to the ISO14443-4A + * tag supporting APDU protocol. + * - New method: + * public synchronized void s_block_deselect() throws DlReaderException, + * InterruptedException + * Deselect ISO14443-4A tag. This is a mandatory call after finished one or more APDU + * transactions with a previously selected ISO14443-4A tag. Otherwise reader will be + * blocked for further work and you will be forced to call readerReset(). + * - New method: + * public synchronized byte[] APDUPlainTransceive(byte[] c_apdu) + * throws DlReaderException, InterruptedException + * Function that send c_apdu bytes to the to the ISO14443-4A tag supporting APDU + * protocol and, after successfully executed APDU command by the tag selected returns + * R-APDU. Count of the R-APDU bytes varies depending on the issued APDU command. + * Minimum number of the R-APDU bytes is 2 and in that case contains SW1 and SW2. + * 23.06.2017. class DlReader v2.7 + * - New method: + * public synchronized void blockWrite(byte[] data, byte block_address, + * byte auth_mode, byte[] key) throws DlReaderException, InterruptedException + * Write data (16 bytes) in to the blocks designated by the block_address parameter. + * On Mifare Classic compatible cards You have to skip direct write in to sector + * trailers. Otherwise You get an exception with code = 10 + * (FORBIDEN_DIRECT_WRITE_IN_SECTOR_TRAILER = 0x0A). + * 11.07.2016. class DlReader v2.6 + * - Fixed unchecked java.lang.NullPointerException (by throwing + * new DlReaderException("UFR_COMMUNICATION_TERMINATED") ) + * in net.dlogic.ufr.lib.DlReader$ComProtocol.portRead from + * com.ftdi.j2xx.ProcessInCtrl.readBulkInData() at + * com.ftdi.j2xx.FT_Device.read(). + * 28.06.2016. class DlReader v2.5 + * - Improvements in closeAoAEndpoints() when uFR device is in sleep mode on closing. + * In D-Logic usb_2_usb power bridge interface is implemented USB2USB_PING command + * for getting response when only bridge device is connected and when uFR is in sleep. + * Applicable on D-Logic usb_2_usb power bridge interface from firmware version 6. + * 17.06.2016. class DlReader v2.4 + * - Improvements in killAoAEndpoints(). + * - New method usb2usbResetUfr() which serve as a patch for LG G3 and similar Android + * devices connected to D-Logic usb_2_usb power bridge interface. + * - Patch for LG G3 and similar Android devices implemented in open() method. + * - The problem with LG G3 and similar Android devices is bad power status detecting + * algorithm in their API. When usb_2_usb power bridge interface switch from AoA to + * OTG mode, Android device does not detect there is no power supply attached until + * OTG ID pin goes logic high for a while. This will reset and restore true Android + * power status. + * - For most devices having Android version greater than 4.4 (KitKat), the only way + * when attachedAndroid Open Accessory device is plugged out from the USB port is to + * terminate Application by calling. + * android.os.Process.killProcess(android.os.Process.myPid()). + * 25.05.2016. class DlReader v2.3 + * - Improved algorithm for detecting connection/disconnection of the uFR devices. + * - For most devices not supporting USB Host mode (without OTG) only way when attached + * Android Open Accessory device is plugged out from the USB port is to terminate + * Application by calling android.os.Process.killProcess(android.os.Process.myPid()). + * 19.05.2016. class DlReader v2.2 + * - Added support for D-Logic FT312D-RS485 interface + * 18.05.2016. class DlReader v2.1 + * - Fixed algorithm for detecting connection/disconnection of the uFR devices, based + * only on chaging status now. We don't use UsbManager intents any more because they + * have proven to be unreliable on some Android devices. + * 28.04.2016. class DlReader v1.9 + * - BugFix: + * in commonBlockRead() fixed wrong checkXOR comparison due to implicit integer + * promotion during calculation. + * 22.04.2016. class DlReader v1.8 + * - Added support for DLogic AoA interfaces based on FTDI Vinculum II + * and AoA uFR interfaces based on FT312D chips. + * - AoA support implemented without any public methods. + * 04.12.2015. class DlReader v1.7 + * - Added method getNumOfDlDevices() + * 03.12.2015. class DlReader v1.6 + * - in ComProtocol.portWrite() from this version we use an nonblocking write() + * overloaded method from the FTDI class and we have implemented retry count + * (Consts.MAX_COMMUNICATION_BREAK_RETRIES times) on communication break. If + * number of communication break retries exceeded, raised DlReaderException have + * Consts.DL_READER_IS_NOT_CONNECTED err_code and usb device is closed. This algorithm + * solve usb otg device disconnect detection problem on the Runbo X5 and probably some + * other Android smart phones with usb otg port. + * 01.12.2015. class DlReader v1.5 + * - New method: + * public synchronized boolean readerStillConnected() + * returns true if device still connected to the system (false otherwise). + * - New Status Consts in DlReader.DlReaderException (defined in DlReader.Consts): + * public static final int DL_READER_COMMUNICATION_BREAK = 0x50; + * raised when there is communication problem (mostly hardware problems). + * public static final int DL_READER_IS_NOT_CONNECTED = 0x104; + * raised when the device is disconnected from the Android system (if device is + * still attached to the system check cable, connectors and/or device). + * 15.06.2015. class DlReader v1.3 + * - Implementation of the new functionality (Sleep mode of the attached nFR device). + * - New methods: public synchronized void enterSleepMode() throws DlReaderException, InterruptedException + * public synchronized void leaveSleepMode() throws DlReaderException, InterruptedException + * 12.05.2015. class DlReader v1.0 + * - First public release. + */ + +import android.app.PendingIntent; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.content.pm.PackageManager; +import android.hardware.usb.UsbAccessory; +import android.hardware.usb.UsbManager; +import android.os.BatteryManager; +import android.os.Build; +import android.os.ParcelFileDescriptor; + +import com.ftdi.j2xx.D2xxManager; +import com.ftdi.j2xx.FT_Device; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.FileDescriptor; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; + +public class DlReader { + private static final String DL_READER_PACKAGE_NAME = "net.dlogic.ufr.lib"; + private static final String ACTION_USB_PERMISSION = DL_READER_PACKAGE_NAME + ".USB_PERMISSION"; + private static final int MAX_BYTES = 256; + private static final int CHUNK_BYTES = 64; + private static DlReader mDlReader = null; + private static D2xxManager ftD2xx = null; + private static Context mContext = null; + boolean isCharging; + + private static int mAccessoriyFilterItems = 0; + private static ArrayList mModelStrings; + private static ArrayList mManufacturerStrings; + private static ArrayList mVersionStrings; + + private static ArrayList mDeviceDescriptionStrings; + + private static ParcelFileDescriptor mAoAFileDescriptor = null; + private static FileInputStream mAoAInStream = null; + private static FileOutputStream mAoAOutStream = null; + + private AoAReadThread mAoAReadThread = null; + private static byte[] AoAReadBuffer = new byte[MAX_BYTES]; // circular buffer + private static int totalBytes; + private static int writeIndex; + private static int readIndex; + + private static boolean mSupportUsbHost = false; + private static boolean mSupportAoA = false; + + private static boolean mPermissionRequestPending = false; + private static PendingIntent mPendingIntent = null; + private static IntentFilter mPermissionFilter = null; + private UsbManager mUsbManager = null; + private static FT_Device ft_device = null; + private static UsbAccessory mAccessory = null; + private static int open_index = -1; + private static int retry_cnt = 0; + //---------------------------------------------------------------------------------------------- + /*/ Broadcast Receivers: + private BroadcastReceiver mAoAPlugIntents = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + +// Toast.makeText(context, action, Toast.LENGTH_SHORT).show(); + + if (UsbManager.ACTION_USB_ACCESSORY_DETACHED.equals(action)) { + if (mAccessory != null) { + killAoAEndpoints(); + mAccessory = null; + open_index = -1; + } + } else if (UsbManager.ACTION_USB_ACCESSORY_ATTACHED.equals(action)) { + mAccessory = intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); + } + } + };*/ + + private BroadcastReceiver mPowerConnectionReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + + synchronized(this) { + IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); + Intent batteryStatus = context.registerReceiver(null, ifilter); + + // int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); + // isCharging = (status == BatteryManager.BATTERY_STATUS_CHARGING) || (status == BatteryManager.BATTERY_STATUS_FULL); + + // int chargePlug = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + // boolean usbCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_USB; + // boolean acCharge = chargePlug == BatteryManager.BATTERY_PLUGGED_AC; + + int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + isCharging = (status == BatteryManager.BATTERY_PLUGGED_USB); + + if (open_index > -1) { + if (isCharging && (ft_device != null) && (ft_device.isOpen())) { + ft_device.close(); + ft_device = null; + open_index = -1; + } + if (!isCharging && (mAccessory != null)) { + //if (!mSupportUsbHost) + if (android.os.Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) { + //System.runFinalizersOnExit(true); + //System.exit(0); + android.os.Process.killProcess(android.os.Process.myPid()); // For most of these type of devices this is only solution. + } else { + killAoAEndpoints(); + mAccessory = null; + open_index = -1; + } + } + } + } + } + }; + + private final BroadcastReceiver mAoADevicePermissions = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + +// Toast.makeText(context, action, Toast.LENGTH_LONG).show(); + + if (ACTION_USB_PERMISSION.equals(action)) { + synchronized(this) { + UsbAccessory accessory = intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY); + if(intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) { + mAccessory = accessory; + if (!openAoAEndpoints(mAccessory)) { + mAccessory = null; + } else { + open_index = 0; + } + } + mPermissionRequestPending = false; + } + } + } + }; + //---------------------------------------------------------------------------------------------- + + // constructor: + private DlReader(Context context, int AccessoryFilterXmlId, int DevDescFilterXmlId) throws DlReaderException { + Context appContext; + + if(context == null) { + throw new DlReaderException("DlReader failed: Can not find parentContext!"); + } else { + updateContext(context); + appContext = mContext.getApplicationContext(); + mUsbManager = (UsbManager)appContext.getSystemService(Context.USB_SERVICE); + if(mUsbManager == null) { + throw new DlReaderException("DlReader failed: USB not supported on this Android device"); + } else { + + mSupportUsbHost = mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_USB_HOST); + mSupportAoA = mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_USB_ACCESSORY); + + if (!mSupportUsbHost && !mSupportAoA) { + throw new DlReaderException("DlReader failed: USB not supported on this Android device"); + } + + if (mSupportUsbHost) { + try { + ftD2xx = D2xxManager.getInstance(context); + } catch (D2xxManager.D2xxException ex) { + throw new DlReaderException("Can't open usb host driver manager."); + } + } + +// IntentFilter filter = new IntentFilter(); +// filter.addAction(UsbManager.ACTION_USB_ACCESSORY_ATTACHED); +// filter.addAction(UsbManager.ACTION_USB_ACCESSORY_DETACHED); + //appContext.registerReceiver(this.mAoAPlugIntents, filter); + + IntentFilter filter = new IntentFilter(); + filter.addAction(Intent.ACTION_POWER_CONNECTED); + filter.addAction(Intent.ACTION_POWER_DISCONNECTED); + appContext.registerReceiver(this.mPowerConnectionReceiver, filter); + + XmlPullParser xpp = mContext.getResources().getXml(AccessoryFilterXmlId); + mModelStrings = new ArrayList(); + mManufacturerStrings = new ArrayList(); + mVersionStrings = new ArrayList(); + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("usb-accessory")) { + ++mAccessoriyFilterItems; + mModelStrings.add("mModel=" + xpp.getAttributeValue(null, "model")); + mManufacturerStrings.add("mManufacturer=" + xpp.getAttributeValue(null, "manufacturer")); + mVersionStrings.add("mVersion=" + xpp.getAttributeValue(null, "version")); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + xpp = mContext.getResources().getXml(DevDescFilterXmlId); + mDeviceDescriptionStrings = new ArrayList(); + try { + while (xpp.getEventType() != XmlPullParser.END_DOCUMENT) { + if (xpp.getEventType() == XmlPullParser.START_TAG) { + if (xpp.getName().equals("usb-device")) { + mDeviceDescriptionStrings.add(xpp.getAttributeValue(null, "description")); + } + } + xpp.next(); + } + } catch (XmlPullParserException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); + Intent batteryStatus = context.registerReceiver(null, ifilter); +// int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_STATUS, -1); +// isCharging = (status == BatteryManager.BATTERY_STATUS_CHARGING) || (status == BatteryManager.BATTERY_STATUS_FULL); + int status = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + isCharging = (status == BatteryManager.BATTERY_PLUGGED_USB); + } + } + } + + public static synchronized DlReader getInstance(Context context, int AccessoryFilterXmlId, int DevDescFilterXmlId) throws DlReaderException { + + if (mDlReader == null) { + mDlReader = new DlReader(context, AccessoryFilterXmlId, DevDescFilterXmlId); + } + + return mDlReader; + } + + private boolean updateContext(Context context) { + + if(context == null) { + return false; + } else { + if(mContext != context) { + mContext = context; + mPendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_UPDATE_CURRENT); + mPermissionFilter = new IntentFilter(ACTION_USB_PERMISSION); + mContext.getApplicationContext().registerReceiver(mAoADevicePermissions, mPermissionFilter); + } + return true; + } + } + + private boolean isAnyAccessoryAttached() { + UsbAccessory[] accessories = mUsbManager.getAccessoryList(); + + if (accessories == null) { + mAccessory = null; + return false; + } + return true; + } + + private boolean openAoAEndpoints(UsbAccessory accessory) { + + mAoAFileDescriptor = mUsbManager.openAccessory(accessory); + if (mAoAFileDescriptor == null || mAoAReadThread != null) { + return false; + } + + FileDescriptor fd = mAoAFileDescriptor.getFileDescriptor(); + + if (fd != null) { + mAoAInStream = new FileInputStream(fd); + mAoAOutStream = new FileOutputStream(fd); + } else { + return false; + } + + mAoAReadThread = new AoAReadThread(mAoAInStream); + mAoAReadThread.start(); + return true; + } + + private void killAoAEndpoints() { + + if (mAoAReadThread != null) { + mAoAReadThread.stopRequest(); + } + try { + if(mAoAFileDescriptor != null) { + mAoAFileDescriptor.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + try { + if(mAoAInStream != null) { + mAoAInStream.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + try { + if(mAoAOutStream != null) { + mAoAOutStream.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + try { + if (mAoAReadThread != null) { + //mAoAReadThread.setPriority(Thread.MIN_PRIORITY); + mAoAReadThread.interrupt(); + } + } catch (Exception e) { + e.printStackTrace(); + } + mAoAFileDescriptor = null; + mAoAInStream = null; + mAoAOutStream = null; + mAoAReadThread = null; + } + + private void closeAoAEndpoints() { + + try { + if (mAoAReadThread != null) { + mAoAReadThread.stopRequest(); + try { + usb2usbPing(); //getReaderType(); + } catch (Exception e) { + e.printStackTrace(); + } + mAoAReadThread.join(); + } + if(mAoAInStream != null) { + mAoAInStream.close(); + } + if(mAoAOutStream != null) { + mAoAOutStream.close(); + } + if(mAoAFileDescriptor != null) { + mAoAFileDescriptor.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + mAoAInStream = null; + mAoAOutStream = null; + mAoAFileDescriptor = null; + mAoAReadThread = null; + } + + private boolean openAccessory() { + boolean rt = false; + UsbAccessory[] accessories = mUsbManager.getAccessoryList(); + + if (accessories == null) { + mAccessory = null; + return false; + } + + for (UsbAccessory accessory: accessories) { + // Check if there is an appropriate accessory in the filter list: + for (int j = 0; j < mAccessoriyFilterItems; j++) { + if (accessory.toString().contains(mModelStrings.get(j)) + && accessory.toString().contains(mManufacturerStrings.get(j)) + && accessory.toString().contains(mVersionStrings.get(j))) { + + rt = true; + break; + } + } + if (rt) { + mAccessory = accessory; + break; + } + } + + if (mAccessory != null) { + if (mUsbManager.hasPermission(mAccessory)) { + if (!openAoAEndpoints(mAccessory)) { + mAccessory = null; + return false; + } + return true; + } else { + synchronized (mAoADevicePermissions) { + if (!mPermissionRequestPending) { + mPermissionRequestPending = true; + mUsbManager.requestPermission(mAccessory, mPendingIntent); + } + } + } + } + + return rt; + } + + private boolean tryOpenFtDevice() throws DlReaderException { + int dev_cnt; + D2xxManager.FtDeviceInfoListNode dev_infolist; + dev_cnt = ftD2xx.createDeviceInfoList(mContext); + + for (int outer_cnt = 0; outer_cnt < dev_cnt; outer_cnt++) { + + dev_infolist = ftD2xx.getDeviceInfoListDetail(outer_cnt); + if (dev_infolist.description == null) { + continue; + } + for (int inner_cnt = 0; inner_cnt < mDeviceDescriptionStrings.size(); inner_cnt++) { + + if (dev_infolist.description.equals(mDeviceDescriptionStrings.get(inner_cnt))) { + ft_device = ftD2xx.openByIndex(mContext, outer_cnt); + + if ((ft_device != null) && ft_device.isOpen()) { + + try { + if (!ft_device.setLatencyTimer(ComParams.LATENCY_TIMER)) { + throw new LocalException(); + } + if (!ft_device.setBitMode((byte) 0, ComParams.BIT_MODE)) { + throw new LocalException(); + } + if (!ft_device.setBaudRate(ComParams.BAUD_RATE)) { + throw new LocalException(); + } + if (!ft_device.setDataCharacteristics(ComParams.DATA_BITS, ComParams.STOP_BITS, ComParams.PARITY)) { + throw new LocalException(); + } + if (!ft_device.setFlowControl(ComParams.FLOW_CONTROL, (byte) 0, (byte) 0)) { + throw new LocalException(); + } + if (!ft_device.resetDevice()) { + throw new LocalException(); + } + } catch (LocalException ex) { + ft_device.close(); + throw new DlReaderException("Device closed due to a device setting failure."); + } + + open_index = outer_cnt; + return true; + } else { + throw new DlReaderException("Can't open device.",Consts.DL_READER_DEVICE_COULD_NOT_BE_OPENED); + } + } + } + } + return false; + } + + public synchronized void open() throws DlReaderException { + + if (open_index > -1) + throw new DlReaderException("Device opened already.", Consts.DL_READER_DEVICE_ALREADY_OPEN); + + if (mSupportUsbHost) { + // patch for LG G3 and similar Android devices: + IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); + Intent batteryStatus = mContext.registerReceiver(null, ifilter); + int bat_status = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1); + + if (bat_status > 0) { + if (tryOpenFtDevice()) { + try { + usb2usbOtgOff(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + ft_device.close(); + android.os.Process.killProcess(android.os.Process.myPid()); // For most of these type of devices this is only solution. + } + } + } + + if (mSupportAoA && isCharging) { + if (openAccessory()) { + open_index = 0; + if (mAccessory.toString().contains("mModel=Android Accessory FT312D")) { + setAoAConfig(115200); + } else if (mAccessory.toString().contains("mModel=FT312D-RS485")) { + setAoAConfig(250000); + } + return; + } + } + + if (mSupportUsbHost && !isCharging) { + if (tryOpenFtDevice()) + return; + } + throw new DlReaderException("There is no D-Logic devices attached.",Consts.DL_READER_NO_DEVICE_ATTACHED); +// if (!openAccessory()) { +// throw new DlReaderException("There is no D-Logic devices attached."); +// } else { +// open_index = 0; +// if (mAccessory.toString().contains("mModel=Android Accessory FT312D")) { +// setAoAConfig(); +// } +// } + } + + public synchronized void readerReset() throws DlReaderException, InterruptedException { + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + + try { + if (!ft_device.setRts()) { + throw new LocalException(); + } + Thread.sleep(100L); + if (!ft_device.clrRts()) { + throw new LocalException(); + } + } catch(LocalException ex){ + ft_device.close(); + throw new DlReaderException("Can't reset device."); + } + Thread.sleep(1100L); // ReaderReset with bootloader + // TODO: wait for BOOTLOADER character ! + // or 1100 ms + } + + public synchronized int getReaderType() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.GET_READER_TYPE, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + byte bytes_to_read; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + + bytes_to_read = ComProtocol.initialHandshaking(buffer); + buffer = ComProtocol.portRead(bytes_to_read); + if (!ComProtocol.testChecksum(buffer, bytes_to_read)) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + + return (buffer[0] & 0xFF) | (buffer[1] & 0xFF) << 8 | (buffer[2] & 0xFF) << 16 | (buffer[3] & 0xFF) << 24; + } + + public synchronized void readerUiSignal(byte lightSignalMode, byte beepSignalMode) throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.USER_INTERFACE_SIGNAL, Consts.CMD_TRAILER, 0, lightSignalMode, beepSignalMode, 0}; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + ComProtocol.initialHandshaking(buffer); + } + + public synchronized byte[] getCardIdEx(CardParams c_params) throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.GET_CARD_ID_EX, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0 }; + byte[] tmp_buff; + byte[] result; + byte bytes_to_read; + byte sak, uid_size; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + + bytes_to_read = ComProtocol.initialHandshaking(buffer); + sak = buffer[Consts.VAL0_INDEX]; + uid_size = buffer[Consts.VAL1_INDEX]; + + tmp_buff = ComProtocol.portRead(bytes_to_read); + + if (!ComProtocol.testChecksum(tmp_buff, bytes_to_read)) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + if (uid_size > 10) + throw new DlReaderException("UFR_BUFFER_OVERFLOW"); + + c_params.setSak(sak); + c_params.setUidSize(uid_size); + result = java.util.Arrays.copyOf(tmp_buff, uid_size); + return result; + } + + public synchronized void setISO14443_4_Mode() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] { Consts.CMD_HEADER, Consts.SET_ISO14433_4_MODE, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0 }; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + ComProtocol.initialHandshaking(buffer); + } + + public synchronized void s_block_deselect() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] { Consts.CMD_HEADER, Consts.S_BLOCK_DESELECT, Consts.CMD_TRAILER, 0, 55, 55, 0 }; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + ComProtocol.initialHandshaking(buffer); + } + + public synchronized byte[] APDUPlainTransceive(byte[] c_apdu) throws DlReaderException, InterruptedException { + byte[] cmd_intro = new byte[] { Consts.CMD_HEADER, Consts.APDU_TRANSCEIVE, Consts.CMD_TRAILER, 11, (byte)0xAA, (byte)0xCC, 0 }; + byte[] r_apdu; + byte bytes_to_read; + byte[] checksum = new byte[] {0}; + + if (c_apdu.length > Consts.BUFFER_SIZE - 1) { + throw new DlReaderException("UFR_BUFFER_OVERFLOW"); + } + cmd_intro[Consts.EXT_SIZE_INDEX] = (byte)(c_apdu.length + 1); + cmd_intro[Consts.PARAM0_INDEX] = (byte)(((c_apdu.length + 1) >> 8) & 0xFF); + checksum[0] = (byte)(ComProtocol.getChecksumFragment((byte)0, c_apdu, (byte)c_apdu.length) + Consts.CHECKSUM_CONST); + + bytes_to_read = ComProtocol.initialHandshaking(cmd_intro); + ComProtocol.portWrite(c_apdu, c_apdu.length); + ComProtocol.portWrite(checksum, 1); + ComProtocol.getAndTestResponse(cmd_intro, Consts.APDU_TRANSCEIVE); + bytes_to_read = cmd_intro[Consts.RESPONSE_EXT_LENGTH_INDEX]; + + r_apdu = ComProtocol.portRead(bytes_to_read - 1); + checksum = ComProtocol.portRead(1); + + if ((0xFF & checksum[0]) != (0xFF & (ComProtocol.getChecksumFragment((byte)0, r_apdu, (byte)r_apdu.length) + Consts.CHECKSUM_CONST))) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + + return r_apdu; + } + + public synchronized byte[] blockRead(byte block_address, byte auth_mode, byte[] key) throws DlReaderException, InterruptedException { + byte[] cmd_intro = new byte[] { Consts.CMD_HEADER, Consts.BLOCK_READ, Consts.CMD_TRAILER, 11, (byte)0xAA, (byte)0xCC, 0 }; + byte[] cmd_ext = new byte[11]; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + + cmd_intro[4] = auth_mode; + cmd_ext[0] = block_address; + + if (!ComProtocol.testAuthMode(auth_mode)) + throw new DlReaderException("UFR_PARAMETERS_ERROR"); + + java.lang.System.arraycopy(key, 0, cmd_ext, Consts.CMD_EXT_PROVIDED_KEY_INDEX, 6); + return ComProtocol.commonBlockRead(cmd_intro, cmd_ext, (byte)17); + } + + public synchronized void blockWrite(byte[] data, byte block_address, byte auth_mode, byte[] key) throws DlReaderException, InterruptedException { + byte[] cmd_intro = new byte[] { Consts.CMD_HEADER, Consts.BLOCK_WRITE, Consts.CMD_TRAILER, 27, (byte)0xAA, (byte)0xCC, 0 }; + byte[] cmd_ext = new byte[10]; + + if (open_index < 0) { + throw new DlReaderException("Device not opened."); + } + + if (!ComProtocol.testAuthMode(auth_mode)) + throw new DlReaderException("UFR_PARAMETERS_ERROR"); + + cmd_intro[4] = auth_mode; + cmd_ext[0] = block_address; + java.lang.System.arraycopy(key, 0, cmd_ext, Consts.CMD_EXT_PROVIDED_KEY_INDEX, 6); + + ComProtocol.commonBlockWrite(data, cmd_intro, cmd_ext); + } + + public synchronized void enterSleepMode() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.ENTER_SLEEP_MODE, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + + ComProtocol.initialHandshaking(buffer); + } + + public synchronized void leaveSleepMode() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.LEAVE_SLEEP_MODE, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + byte[] dummy = new byte[] {0}; + + // First write one dummy byte to a port: + ComProtocol.portWrite(dummy, 1); + Thread.sleep(100L); + ComProtocol.initialHandshaking(buffer); + } + + public synchronized void usb2usbResetUfr() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.USB2USB_FT232_RST, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + + ComProtocol.initialHandshaking(buffer); + } + + public synchronized void usb2usbOtgOff() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.USB2USB_OTG_OFF, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + + ComProtocol.initialHandshaking(buffer); + } + + public synchronized void usb2usbPing() throws DlReaderException, InterruptedException { + byte[] buffer = new byte[] {Consts.CMD_HEADER, Consts.USB2USB_PING, Consts.CMD_TRAILER, 0, (byte)0xAA, (byte)0xCC, 0}; + + ComProtocol.initialHandshaking(buffer); + } + + public synchronized boolean readerStillConnected() { + + if (open_index < 0) + return false; + + if (ft_device != null) { + return ft_device.isOpen(); + } else if (mAccessory != null) { + return true; + } else + return false; + } + + public synchronized void close() throws DlReaderException { + + if (open_index < 0) + return; + + if (ft_device != null) { + ft_device.close(); + ft_device = null; + } + if (mAccessory != null) { + closeAoAEndpoints(); + mAccessory = null; + } + open_index = -1; + } + + private static class ComProtocol { + + public static synchronized void erasePort() { + + if (ft_device != null) { + ft_device.purge((byte) (D2xxManager.FT_PURGE_RX | D2xxManager.FT_PURGE_TX)); + } else if (mAccessory != null) { + try { + //mAoAOutStream.flush(); + //mAoAInStream.reset(); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public static synchronized void portWrite(byte[] buffer, int buffer_size) throws DlReaderException { + if (ft_device != null) { + if (ft_device.write(buffer, buffer_size, false) != buffer_size) { + if (ft_device.isOpen()) { + if (++retry_cnt >= Consts.MAX_COMMUNICATION_BREAK_RETRIES) { + retry_cnt = 0; + open_index = -1; + ft_device.close(); + throw new DlReaderException("UFR DEVICE IS NOT CONNECTED", Consts.DL_READER_IS_NOT_CONNECTED); + } else { + throw new DlReaderException("UFR COMMUNICATION BREAK", Consts.DL_READER_COMMUNICATION_BREAK); + } + } else { + retry_cnt = 0; + open_index = -1; + throw new DlReaderException("UFR DEVICE IS NOT CONNECTED", Consts.DL_READER_IS_NOT_CONNECTED); + } + } + else { + retry_cnt = 0; + } + } else if (mAccessory != null) { + try { + mAoAOutStream.write(buffer, 0, buffer_size); + mAoAOutStream.flush(); + } catch (IOException e) { + throw new DlReaderException("AOA_COMMUNICATION_BREAK", DlErrorCodes.AOA_WRITE_ERROR); + } + } + } + + public static synchronized byte[] portRead(int buffer_size) throws DlReaderException + { + long time_start, time_end; + byte[] buffer = new byte[buffer_size]; + java.util.Arrays.fill(buffer, (byte) 0); + + if (ft_device != null) { + try { + if (ft_device.read(buffer, buffer_size, ComParams.READ_TIMEOUT) != buffer_size) { + throw new DlReaderException("UFR_COMMUNICATION_BREAK"); + } + } + catch (NullPointerException e) { + throw new DlReaderException("UFR_COMMUNICATION_TERMINATED"); + } + } else if (mAccessory != null) { + try { + time_start = System.nanoTime() / 1000000; + while (AoAAvailable() < buffer_size) { + time_end = System.nanoTime() / 1000000; + if ((time_end - time_start) > ComParams.READ_TIMEOUT) { + throw new DlReaderException("UFR_COMMUNICATION_BREAK (Timeout)"); + } + } + AoARead(buffer, buffer_size); + } catch (IOException e) { + throw new DlReaderException("UFR_COMMUNICATION_BREAK"); + } + } + + return buffer; + } + + public static byte getChecksum_local(byte[] buffer, byte length) + { // Ukoliko se ne bude koristila, spojiti sa CalcChecksum() + short i; + byte sum = buffer[0]; + + for (i = 1; i < (length - 1); i++) + { + sum ^= buffer[i]; + } + return (byte)(sum + Consts.CHECKSUM_CONST); + } + + + public static byte getChecksumFragment(byte previous_checksum, byte[] buffer, byte length) + { // !without +7 at the end + short i; + + for (i = 0; i < length; i++) + { + previous_checksum ^= buffer[i]; + } + return previous_checksum; + } + + public static void calcChecksum(byte[] buffer, byte length) + { + + buffer[length - 1] = getChecksum_local(buffer, length); + } + + public static boolean testChecksum(byte[] buffer, byte length) + { + short i; + byte sum = buffer[0]; + + for (i = 1; i < (length - 1); i++) + { + sum ^= buffer[i]; + } + sum += Consts.CHECKSUM_CONST; + return sum == buffer[length - 1]; + } + + public static boolean testAuthMode(byte auth_mode) { + + return (auth_mode == Consts.MIFARE_AUTHENT1A) || (auth_mode == Consts.MIFARE_AUTHENT1B); + } + + public static byte initialHandshaking(byte[] data) throws InterruptedException, DlReaderException + { + byte command = data[1]; + byte[] rcv_data; + + erasePort(); + Thread.sleep(10L); + calcChecksum(data, Consts.INTRO_SIZE); + portWrite(data, Consts.INTRO_SIZE); + rcv_data = portRead(Consts.INTRO_SIZE); + if (!testChecksum(rcv_data, Consts.INTRO_SIZE)) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + if ((rcv_data[0] == Consts.ERR_HEADER) && (rcv_data[2] == Consts.ERR_TRAILER)) + throw new DlReaderException("Reader error code: " + rcv_data[1], rcv_data[1] & 0xFF); + + if ((rcv_data[1] != command) + || (((rcv_data[0] != Consts.RESPONSE_HEADER) || (rcv_data[2] != Consts.RESPONSE_TRAILER)) + && ((rcv_data[0] != Consts.ACK_HEADER) || (rcv_data[2] != Consts.ACK_TRAILER)))) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + + java.lang.System.arraycopy(rcv_data, 0, data, 0, 7); + return data[3]; + } + + public static void getAndTestResponse(byte[] cmd_intro, byte command) throws DlReaderException + { + java.lang.System.arraycopy(portRead(Consts.INTRO_SIZE), 0, cmd_intro, 0, Consts.INTRO_SIZE); + + if (!testChecksum(cmd_intro, Consts.INTRO_SIZE)) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + if ((cmd_intro[0] == Consts.ERR_HEADER) || (cmd_intro[2] == Consts.ERR_TRAILER)) + throw new DlReaderException("Reader error code: " + cmd_intro[1], cmd_intro[1] & 0xFF); + if ((cmd_intro[0] != Consts.RESPONSE_HEADER) || (cmd_intro[2] != Consts.RESPONSE_TRAILER) + || (cmd_intro[1] != command)) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + } + + public static byte[] commonBlockRead(byte[] cmd_intro, byte[] cmd_ext, byte response_ext_length) throws InterruptedException, DlReaderException + { + byte command = cmd_intro[Consts.INTRO_CMD_INDEX]; + byte cmd_ext_length = cmd_intro[Consts.CMD_EXT_LENGTH_INDEX]; + byte bytes_to_read; + byte[] checksum; + byte[] data; + + bytes_to_read = initialHandshaking(cmd_intro); + + calcChecksum(cmd_ext, cmd_ext_length); + portWrite(cmd_ext, cmd_ext_length); + + getAndTestResponse(cmd_intro, command); + + if (cmd_intro[Consts.RESPONSE_EXT_LENGTH_INDEX] != response_ext_length) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + + data = portRead(response_ext_length - 1); + checksum = portRead(1); + if ((0xFF & checksum[0]) != (0xFF & (getChecksumFragment((byte)0, data, (byte)(response_ext_length - 1)) + Consts.CHECKSUM_CONST))) + throw new DlReaderException("UFR_COMMUNICATION_ERROR"); + + return data; + } + + public static void commonBlockWrite(byte[] data, byte[] cmd_intro, byte[] cmd_ext) throws InterruptedException, DlReaderException + { + byte command = cmd_intro[Consts.INTRO_CMD_INDEX]; + byte cmd_ext_length = cmd_intro[Consts.CMD_EXT_LENGTH_INDEX]; + byte[] checksum = new byte[] {0}; + + initialHandshaking(cmd_intro); + checksum[0] = getChecksumFragment((byte)0, cmd_ext, (byte) (cmd_ext_length - (data.length + 1))); + checksum[0] = (byte)(getChecksumFragment(checksum[0], data, (byte) data.length) + Consts.CHECKSUM_CONST); + + portWrite(cmd_ext, (cmd_ext_length - (data.length + 1))); + portWrite(data, data.length); + portWrite(checksum, 1); + getAndTestResponse(cmd_intro, command); + } + } + + private void setAoAConfig(int rs232_baud_rate) throws DlReaderException { + byte[] configdata = new byte[8]; + + /*prepare the baud rate buffer*/ + configdata[0] = (byte)rs232_baud_rate; + configdata[1] = (byte)(rs232_baud_rate >> 8); + configdata[2] = (byte)(rs232_baud_rate >> 16); + configdata[3] = (byte)(rs232_baud_rate >> 24); + + /*data bits*/ + configdata[4] = ComParams.DATA_BITS; + /*stop bits*/ + configdata[5] = 1; + /*parity*/ + configdata[6] = 0; + /*flow control*/ + configdata[7] = 0; + + /*send the UART configuration packet*/ + try { + ComProtocol.portWrite(configdata, (int) 8); + } catch (DlReaderException e) { + if (e.getErrCode() == DlErrorCodes.AOA_WRITE_ERROR) { + closeAoAEndpoints(); + open_index = -1; + mAccessory = null; + } + throw e; + } + } + + private static class ComParams { + public static final byte LATENCY_TIMER = 2; + public static final int BAUD_RATE = 1000000; + public static final long READ_TIMEOUT = 2500; + public static final long WRITE_TIMEOUT = 1000; + public static final byte BIT_MODE = D2xxManager.FT_BITMODE_RESET; + public static final byte DATA_BITS = D2xxManager.FT_DATA_BITS_8; + public static final short FLOW_CONTROL = D2xxManager.FT_FLOW_NONE; + public static final byte PARITY = D2xxManager.FT_PARITY_NONE; + public static final byte STOP_BITS = D2xxManager.FT_STOP_BITS_1; + } + + public static class Consts { + + // Lengths and ranges: + public static final int BUFFER_LOCAL_SIZE = 256; + public static final int BUFFER_SIZE = 192; + public static final byte INTRO_SIZE = 7; + public static final int EXT_SIZE_INDEX = 3; + public static final int PARAM0_INDEX = 4; + public static final int PARAM1_INDEX = 5; + public static final int VAL0_INDEX = 4; + public static final int VAL1_INDEX = 5; + public static final int INTRO_CMD_INDEX = 1; + public static final int CMD_EXT_LENGTH_INDEX = 3; + public static final int CMD_PARAM0_INDEX = 4; + public static final int CMD_EXT_PROVIDED_KEY_INDEX = 4; + public static final int RESPONSE_EXT_LENGTH_INDEX = 3; + public static final int RESPONSE_VAL0_INDEX = 4; + + // Protocol consts: + public static final byte CMD_HEADER = 0x55; + public static final byte CMD_TRAILER = (byte)0xAA; + public static final byte ACK_HEADER = (byte)0xAC; + public static final byte ACK_TRAILER = (byte)0xCA; + public static final byte RESPONSE_HEADER = (byte)0xDE; + public static final byte RESPONSE_TRAILER = (byte)0xED; + public static final byte ERR_HEADER = (byte)0xEC; + public static final byte ERR_TRAILER = (byte)0xCE; + public static final byte CHECKSUM_CONST = (byte)7; + + // Auth consts: + public static final byte RKA_AUTH1A = 0x00; // reder keys addressing mode, authentication using key A + public static final byte RKA_AUTH1B = 0x01; // reder keys addressing mode, authentication using key B + public static final byte AKM1_AUTH1A = 0x20; // auto keys, searching mode 1, authentication using key A + public static final byte AKM1_AUTH1B = 0x21; // auto keys, searching mode 1, authentication using key B + public static final byte AKM2_AUTH1A = 0x40; // auto keys, searching mode 2, authentication using key A + public static final byte AKM2_AUTH1B = 0x41; // auto keys, searching mode 2, authentication using key B + public static final byte PK_AUTH1A = 0x60; // provided keys, authentication using key A + public static final byte PK_AUTH1B = 0x61; // provided keys, authentication using key B + + public static final byte MIFARE_AUTHENT1A = 0x60; + public static final byte MIFARE_AUTHENT1B = 0x61; + + // uFR Commands: + public static final byte GET_READER_TYPE = 0x10; + public static final byte GET_READER_SERIAL = 0x11; + public static final byte GET_HARDWARE_VERSION = 0x2A; + public static final byte GET_FIRMWARE_VERSION = 0x29; + public static final byte GET_CARD_ID = 0x13; + public static final byte GET_CARD_ID_EX = 0x2C; + public static final byte BLOCK_READ = 0x16; + public static final byte BLOCK_WRITE = 0x17; + public static final byte SOFT_RESTART = 0x30; + public static final byte USER_INTERFACE_SIGNAL = 0x26; + public static final byte ENTER_SLEEP_MODE = 0x46; + public static final byte LEAVE_SLEEP_MODE = 0x47; + + public static final byte S_BLOCK_DESELECT = (byte)0x92; + public static final byte SET_ISO14433_4_MODE = (byte)0x93; + public static final byte APDU_TRANSCEIVE = (byte)0x94; + + public static final byte USB2USB_PING = (byte)0xF0; + public static final byte USB2USB_FT232_RST = (byte)0xF1; + public static final byte USB2USB_OTG_OFF = (byte)0xF2; + + // uFR Status: + public static final int DL_READER_COMMUNICATION_BREAK = 0x50; + public static final int DL_READER_IS_NOT_CONNECTED = 0x104; + public static final int DL_READER_GENERAL_EXCEPTION = 1000; + + public static final int DL_READER_NO_DEVICE_ATTACHED = 1001; + public static final int DL_READER_DEVICE_COULD_NOT_BE_OPENED = 1002; + public static final int DL_READER_DEVICE_ALREADY_OPEN = 1003; + + public static final int MAX_COMMUNICATION_BREAK_RETRIES = 2; + } + + public class DlErrorCodes { + private static final int AOA_WRITE_ERROR = 0x8001; + } + + public static class DlReaderException extends IOException { + private static final long serialVersionUID = 1L; + public int err_code; + + public DlReaderException() { + } + + public DlReaderException(String ftStatusMsg) { + super(ftStatusMsg); + err_code = Consts.DL_READER_GENERAL_EXCEPTION; + } + + public DlReaderException(String ftStatusMsg, int p_err_code) { + super(ftStatusMsg); + err_code = p_err_code; + } + + public int getErrCode() { + + return err_code; + } + } + + private static class LocalException extends IOException { + private static final long serialVersionUID = 1L; + + public LocalException() { + } + + public LocalException(String ftStatusMsg) { + super(ftStatusMsg); + } + } + + public static class CardParams { + private byte sak; + private byte uid_size; + + public CardParams() { + sak = 0; + uid_size = 0; + } + + public void setSak(byte p_sak) { + sak = p_sak; + } + + public byte getSak() { + return sak; + } + + public void setUidSize(byte p_uid_size) { + uid_size = p_uid_size; + } + + public byte getUidSize() { + return uid_size; + } + } + + // AoA available: + static private int AoAAvailable() { + + return totalBytes; + } + + // AoA read: + // Returns bytes actually read: + static private int AoARead(byte[] buffer, int byteCount) + { + + // Should be at least one byte to read: + if((byteCount < 1) || (totalBytes == 0)){ + return 0; + } + + /* Check for max limit*/ + if(byteCount > totalBytes) { + byteCount = totalBytes; + } + + // Copy to the user buffer: + for(int i = 0; i < byteCount; i++) + { + buffer[i] = AoAReadBuffer[readIndex]; + readIndex++; + /*shouldnt read more than what is there in the buffer, + * so no need to check the overflow + */ + readIndex %= MAX_BYTES; + } + + // Update the number of bytes available: + totalBytes -= byteCount; + + return byteCount; + } + + // AoA usb input data handler: + private class AoAReadThread extends Thread { + + FileInputStream instream; + boolean stop_thread = false; + + private int readcount; + + private byte [] usbdata = new byte[CHUNK_BYTES]; + + AoAReadThread(FileInputStream stream ) { + + instream = stream; + + this.setPriority(Thread.MAX_PRIORITY); + } + + public synchronized void stopRequest() { + + stop_thread = true; + } + + public void run() { + + while(!stop_thread) { + while (totalBytes > (MAX_BYTES - CHUNK_BYTES)) { + try { + Thread.sleep(32); + } + catch (InterruptedException e) { + e.printStackTrace(); + } + } + + try { + if (instream != null) { + readcount = instream.read(usbdata); + + if (readcount > 0) { + + // MAX_BYTES should be power(2, n), where n is a element of N + for(int i = 0; i < readcount; i++) { + + AoAReadBuffer[writeIndex] = usbdata[i]; + ++writeIndex; + writeIndex %= MAX_BYTES; + } + + if (writeIndex >= readIndex) { + totalBytes = writeIndex - readIndex; + } else { + totalBytes = (MAX_BYTES - readIndex) + writeIndex; + } + } + } + } catch (IOException e) { + stop_thread = true; + if (instream != null) { + try { + instream.close(); + } catch (IOException e1) { + e1.printStackTrace(); + } + } + e.printStackTrace(); + } + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2fb6299d7640ad5f910a739dec5df6053b8b04f4..9fe1d1459955d5b78253cb7e488358a36ee6d1a2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,6 @@ package="net.dlogic.ufr.apdu_example" android:versionCode="11" android:versionName="1.1" > - diff --git a/app/src/main/res/xml/dev_desc_filter.xml b/app/src/main/res/xml/dev_desc_filter.xml index 4360c53659fe39f21dc33879a5222879fdd20195..a211642bc4285a3a8e2a41a0e5a8d5a7d9c2c701 100644 --- a/app/src/main/res/xml/dev_desc_filter.xml +++ b/app/src/main/res/xml/dev_desc_filter.xml @@ -8,4 +8,17 @@ + + + + + + + + + + + + + diff --git a/build.gradle b/build.gradle index d0aa70430ccede160b7b023221e5caa096713b83..c8bbf23da1e935ec39b04876e1461e013ac84e96 100644 --- a/build.gradle +++ b/build.gradle @@ -2,10 +2,12 @@ buildscript { repositories { + google() jcenter() + } dependencies { - classpath 'com.android.tools.build:gradle:2.3.2' + classpath 'com.android.tools.build:gradle:3.5.2' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files @@ -14,7 +16,9 @@ buildscript { allprojects { repositories { + google() jcenter() + } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a33b169342004c2feb6b4fd001c9298476b2d19f..a1a4b9283f1947389bb44c48c850cd94f41cf480 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue Apr 18 13:30:08 CEST 2017 +#Thu Dec 05 13:19:47 CET 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip