Skip to content

Commit 9563045

Browse files
author
Jenkins
committed
6.6.0
1 parent dc7a708 commit 9563045

24 files changed

Lines changed: 906 additions & 1649 deletions

RNDocumentReaderApi.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ Pod::Spec.new do |s|
1414
s.source = { :http => 'file:' + __dir__ }
1515
s.ios.deployment_target = '11.0'
1616
s.source_files = "ios/*.{h,m}"
17-
s.dependency 'DocumentReader', '6.5.2633'
17+
s.dependency 'DocumentReader', '6.6.2753'
1818
s.dependency 'React'
1919
end

android/build.gradle

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,30 @@
1-
buildscript {
2-
repositories {
3-
google()
4-
jcenter()
5-
}
6-
7-
dependencies {
8-
classpath 'com.android.tools.build:gradle:4.0.1'
9-
}
10-
}
11-
121
apply plugin: 'com.android.library'
2+
apply plugin: 'kotlin-android'
133

144
android {
15-
compileSdkVersion 30
16-
buildToolsVersion "30.0.0"
5+
compileSdkVersion 33
176

187
defaultConfig {
198
minSdkVersion 21
20-
targetSdkVersion 30
9+
targetSdkVersion 33
2110
versionCode 1
2211
versionName "1.0"
2312
}
24-
lintOptions {
25-
abortOnError false
26-
}
27-
compileOptions {
28-
sourceCompatibility JavaVersion.VERSION_1_8
29-
targetCompatibility JavaVersion.VERSION_1_8
30-
}
31-
}
32-
33-
repositories {
34-
mavenCentral()
3513
}
3614

3715
rootProject.allprojects {
3816
repositories {
3917
maven {
4018
url "https://maven.regulaforensics.com/RegulaDocumentReader"
4119
}
42-
maven {
43-
url "https://maven.regulaforensics.com/RegulaDocumentReader/Beta"
44-
}
4520
}
4621
}
4722

4823
dependencies {
4924
//noinspection GradleDynamicVersion
5025
implementation 'com.facebook.react:react-native:+'
5126
//noinspection GradleDependency
52-
implementation('com.regula.documentreader:api:6.5.7488') {
27+
implementation('com.regula.documentreader:api:6.6.8072') {
5328
transitive = true
5429
}
5530
}
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
22
package="com.regula.documentreader">
33

4+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
5+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
6+
<uses-permission android:name="android.permission.CAMERA" />
7+
<uses-permission android:name="android.permission.INTERNET" />
48
<uses-permission android:name="android.permission.NFC" />
59
</manifest>
6-
10+
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package com.regula.documentreader
2+
3+
import android.Manifest.permission.*
4+
import android.annotation.SuppressLint
5+
import android.app.Activity
6+
import android.bluetooth.BluetoothAdapter
7+
import android.content.ComponentName
8+
import android.content.Intent
9+
import android.content.ServiceConnection
10+
import android.content.pm.PackageManager.PERMISSION_GRANTED
11+
import android.os.Build
12+
import android.os.IBinder
13+
import android.provider.Settings
14+
import androidx.annotation.RequiresPermission
15+
import androidx.core.app.ActivityCompat.requestPermissions
16+
import androidx.core.content.ContextCompat.checkSelfPermission
17+
import com.regula.documentreader.api.ble.BLEWrapper
18+
import com.regula.documentreader.api.ble.BleWrapperCallback
19+
import com.regula.documentreader.api.ble.RegulaBleService
20+
import com.regula.documentreader.api.internal.permission.BluetoothPermissionHelper.BLE_ACCESS_PERMISSION
21+
import com.regula.documentreader.api.internal.permission.BluetoothSettingsHelper.isBluetoothEnabled
22+
import com.regula.documentreader.api.internal.permission.BluetoothSettingsHelper.isLocationServiceEnabled
23+
24+
class BluetoothUtil {
25+
companion object {
26+
private const val REQUEST_ENABLE_LOCATION = 196
27+
private const val REQUEST_ENABLE_BT = 197
28+
29+
@SuppressLint("StaticFieldLeak")
30+
var bleManager: BLEWrapper? = null
31+
32+
@RequiresPermission("android.permission.BLUETOOTH_CONNECT")
33+
private fun requestEnableBle(activity: Activity) {
34+
val enableIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
35+
activity.startActivityForResult(enableIntent, REQUEST_ENABLE_BT)
36+
}
37+
38+
private fun requestEnableLocationService(activity: Activity) {
39+
val myIntent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
40+
activity.startActivityForResult(myIntent, REQUEST_ENABLE_LOCATION)
41+
}
42+
43+
// requestEnableBle() is called after a check for permission
44+
@SuppressLint("MissingPermission")
45+
fun isBlePermissionsGranted(activity: Activity): Boolean {
46+
if (!isLocationServiceEnabled(activity)) {
47+
requestEnableLocationService(activity)
48+
return false
49+
}
50+
deniedBluetoothPermissions(activity)?.let {
51+
requestPermissions(activity, it, BLE_ACCESS_PERMISSION)
52+
return false
53+
}
54+
if (!isBluetoothEnabled(activity)) {
55+
requestEnableBle(activity)
56+
return false
57+
}
58+
return true
59+
}
60+
61+
private fun deniedBluetoothPermissions(activity: Activity): Array<String>? {
62+
val result = mutableListOf<String>()
63+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
64+
result.addAll(deniedBluetoothPermission(activity, BLUETOOTH_SCAN))
65+
result.addAll(deniedBluetoothPermission(activity, BLUETOOTH_CONNECT))
66+
} else
67+
result.addAll(deniedBluetoothPermission(activity, ACCESS_FINE_LOCATION))
68+
return result.let { if (it.size > 0) it.toTypedArray() else null }
69+
}
70+
71+
private fun deniedBluetoothPermission(
72+
activity: Activity,
73+
permission: String
74+
): Array<String> {
75+
if (checkSelfPermission(activity, permission) != PERMISSION_GRANTED)
76+
return arrayOf(permission)
77+
return arrayOf()
78+
}
79+
80+
fun startBluetoothService(
81+
activity: Activity,
82+
onConnected: (Boolean) -> Unit,
83+
onDisconnected: () -> Unit,
84+
onReady: () -> Unit,
85+
) {
86+
val bleIntent = Intent(activity, RegulaBleService::class.java)
87+
activity.startService(bleIntent)
88+
89+
activity.bindService(bleIntent, object : ServiceConnection {
90+
override fun onServiceConnected(name: ComponentName, service: IBinder) {
91+
bleManager = (service as RegulaBleService.LocalBinder).service.bleManager
92+
val isBleManagerConnected = bleManager?.isConnected == true
93+
onConnected(isBleManagerConnected)
94+
if (!isBleManagerConnected) {
95+
bleManager?.addCallback(object : BleWrapperCallback() {
96+
override fun onDeviceReady() {
97+
bleManager!!.removeCallback(this)
98+
onReady()
99+
}
100+
})
101+
}
102+
}
103+
104+
override fun onServiceDisconnected(name: ComponentName) = onDisconnected()
105+
}, 0)
106+
}
107+
}
108+
}

android/src/main/java/com/regula/documentreader/Helpers.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,12 @@ static Bitmap bitmapFromBase64(String base64) {
3131
return result;
3232
}
3333

34-
static BitmapDrawable drawableFromBase64(String base64, Context context)
35-
{
34+
static BitmapDrawable drawableFromBase64(String base64, Context context) {
3635
byte[] decodedByte = Base64.decode(base64, 0);
37-
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
36+
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length);
3837
float density = context.getResources().getDisplayMetrics().density;
39-
int width = (int)(bitmap.getWidth()*density);
40-
int height = (int)(bitmap.getHeight()*density);
38+
int width = (int) (bitmap.getWidth() * density);
39+
int height = (int) (bitmap.getHeight() * density);
4140
return new BitmapDrawable(context.getResources(), Bitmap.createScaledBitmap(bitmap, width, height, false));
4241
}
4342

0 commit comments

Comments
 (0)