@@ -8,8 +8,6 @@ import android.security.keystore.UserNotAuthenticatedException
88import androidx.biometric.*
99import androidx.biometric.BiometricManager.Authenticators.*
1010import androidx.fragment.app.FragmentActivity
11- import com.squareup.moshi.JsonClass
12- import com.squareup.moshi.Moshi
1311import io.flutter.embedding.engine.plugins.FlutterPlugin
1412import io.flutter.embedding.engine.plugins.activity.*
1513import 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 )
348351data class AndroidPromptInfo (
349352 val title : String ,
350353 val subtitle : String? ,
0 commit comments