Skip to content

Commit 36e6652

Browse files
committed
android: Remove dependency on moshi
1 parent 54c26c4 commit 36e6652

7 files changed

Lines changed: 32 additions & 23 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 4.1.0-dev.1
2+
3+
* Android: Remove Moshi dependency altogether. #53
4+
15
## 4.0.1
26

37
* Update to Moshi 1.13 for Kotlin 1.6.0 compatibility. #53

android/build.gradle

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
2626
apply plugin: 'kotlin-kapt'
2727

2828
android {
29-
compileSdkVersion 30
29+
compileSdkVersion 31
3030

3131
sourceSets {
3232
main.java.srcDirs += 'src/main/kotlin'
@@ -52,7 +52,4 @@ dependencies {
5252
implementation "androidx.security:security-crypto:$security_version"
5353
implementation "androidx.biometric:biometric:$biometric_version"
5454
implementation "io.github.microutils:kotlin-logging:1.7.6"
55-
implementation "com.squareup.moshi:moshi:1.13.0"
56-
implementation "com.squareup.moshi:moshi-kotlin:1.13.0"
57-
kapt("com.squareup.moshi:moshi-kotlin-codegen:1.13.0")
5855
}

android/src/main/kotlin/design/codeux/biometric_storage/BiometricStorageFile.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ import android.os.Build
55
import android.security.keystore.KeyProperties
66
import androidx.security.crypto.EncryptedFile
77
import androidx.security.crypto.MasterKey
8-
import com.squareup.moshi.JsonClass
98
import mu.KotlinLogging
109
import java.io.File
1110
import java.io.IOException
1211
import javax.crypto.Cipher
1312

1413
private val logger = KotlinLogging.logger {}
1514

16-
@JsonClass(generateAdapter = true)
1715
data class InitOptions(
1816
val authenticationValidityDurationSeconds: Int = -1,
1917
val authenticationRequired: Boolean = true,

android/src/main/kotlin/design/codeux/biometric_storage/BiometricStoragePlugin.kt

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ import android.security.keystore.UserNotAuthenticatedException
88
import androidx.biometric.*
99
import androidx.biometric.BiometricManager.Authenticators.*
1010
import androidx.fragment.app.FragmentActivity
11-
import com.squareup.moshi.JsonClass
12-
import com.squareup.moshi.Moshi
1311
import io.flutter.embedding.engine.plugins.FlutterPlugin
1412
import io.flutter.embedding.engine.plugins.activity.*
1513
import io.flutter.plugin.common.*
@@ -94,10 +92,6 @@ class BiometricStoragePlugin : FlutterPlugin, ActivityAware, MethodCallHandler {
9492
const val PARAM_WRITE_CONTENT = "content"
9593
const val PARAM_ANDROID_PROMPT_INFO = "androidPromptInfo"
9694

97-
val moshi = Moshi.Builder()
98-
// ... add your own JsonAdapters and factories ...
99-
.build() as Moshi
100-
10195
val executor : ExecutorService = Executors.newSingleThreadExecutor()
10296
private val handler: Handler = Handler(Looper.getMainLooper())
10397
}
@@ -136,9 +130,12 @@ class BiometricStoragePlugin : FlutterPlugin, ActivityAware, MethodCallHandler {
136130
val getName = { requiredArgument<String>(PARAM_NAME) }
137131
val getAndroidPromptInfo = {
138132
requiredArgument<Map<String, Any>>(PARAM_ANDROID_PROMPT_INFO).let {
139-
moshi.adapter(AndroidPromptInfo::class.java).fromJsonValue(it) ?: throw MethodCallException(
140-
"BadArgument",
141-
"'$PARAM_ANDROID_PROMPT_INFO' is not well formed"
133+
AndroidPromptInfo(
134+
title = it["title"] as String,
135+
subtitle = it["subtitle"] as String?,
136+
description = it["description"] as String?,
137+
negativeButton = it["negativeButton"] as String,
138+
confirmationRequired = it["confirmationRequired"] as Boolean,
142139
)
143140
}
144141
}
@@ -211,9 +208,16 @@ class BiometricStoragePlugin : FlutterPlugin, ActivityAware, MethodCallHandler {
211208
}
212209
}
213210

214-
val options = moshi.adapter(InitOptions::class.java)
215-
.fromJsonValue(call.argument("options") ?: emptyMap<String, Any>())
216-
?: InitOptions()
211+
val options = call.argument<Map<String, Any>>("options")?.let { it ->
212+
InitOptions(
213+
authenticationValidityDurationSeconds = it["authenticationValidityDurationSeconds"] as Int,
214+
authenticationRequired = it["authenticationRequired"] as Boolean,
215+
androidBiometricOnly = it["androidBiometricOnly"] as Boolean,
216+
)
217+
} ?: InitOptions()
218+
// val options = moshi.adapter(InitOptions::class.java)
219+
// .fromJsonValue(call.argument("options") ?: emptyMap<String, Any>())
220+
// ?: InitOptions()
217221
storageFiles[name] = BiometricStorageFile(applicationContext, name, options)
218222
result.success(true)
219223
}
@@ -344,7 +348,6 @@ class BiometricStoragePlugin : FlutterPlugin, ActivityAware, MethodCallHandler {
344348
}
345349
}
346350

347-
@JsonClass(generateAdapter = true)
348351
data class AndroidPromptInfo(
349352
val title: String,
350353
val subtitle: String?,

example/android/app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
2626
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
2727

2828
android {
29-
compileSdkVersion 30
29+
compileSdkVersion 31
3030
ndkVersion "21.0.6113669"
3131

3232
sourceSets {

example/pubspec.lock

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ packages:
1414
path: ".."
1515
relative: true
1616
source: path
17-
version: "4.0.0"
17+
version: "4.0.1"
1818
boolean_selector:
1919
dependency: transitive
2020
description:
@@ -135,6 +135,13 @@ packages:
135135
url: "https://pub.dartlang.org"
136136
source: hosted
137137
version: "0.12.11"
138+
material_color_utilities:
139+
dependency: transitive
140+
description:
141+
name: material_color_utilities
142+
url: "https://pub.dartlang.org"
143+
source: hosted
144+
version: "0.1.3"
138145
meta:
139146
dependency: transitive
140147
description:
@@ -209,7 +216,7 @@ packages:
209216
name: test_api
210217
url: "https://pub.dartlang.org"
211218
source: hosted
212-
version: "0.4.3"
219+
version: "0.4.8"
213220
typed_data:
214221
dependency: transitive
215222
description:

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: biometric_storage
22
description: |
33
Secure Storage: Encrypted data store optionally secured by biometric lock with support
44
for iOS, Android, MacOS. Partial support for Linux, Windows and web (localStorage).
5-
version: 4.0.1
5+
version: 4.1.0-dev.1
66
homepage: https://github.com/authpass/biometric_storage/
77

88
environment:

0 commit comments

Comments
 (0)