@@ -567,6 +567,12 @@ abstract class AndroidWebkitLibraryPigeonProxyApiRegistrar(val binaryMessenger:
567
567
*/
568
568
abstract fun getPigeonApiCertificate (): PigeonApiCertificate
569
569
570
+ /* *
571
+ * An implementation of [PigeonApiWebSettingsCompat] used to add a new Dart instance of
572
+ * `WebSettingsCompat` to the Dart `InstanceManager`.
573
+ */
574
+ abstract fun getPigeonApiWebSettingsCompat (): PigeonApiWebSettingsCompat
575
+
570
576
fun setUp () {
571
577
AndroidWebkitLibraryPigeonInstanceManagerApi .setUpMessageHandlers(
572
578
binaryMessenger, instanceManager)
@@ -598,6 +604,8 @@ abstract class AndroidWebkitLibraryPigeonProxyApiRegistrar(val binaryMessenger:
598
604
binaryMessenger, getPigeonApiSslCertificateDName())
599
605
PigeonApiSslCertificate .setUpMessageHandlers(binaryMessenger, getPigeonApiSslCertificate())
600
606
PigeonApiCertificate .setUpMessageHandlers(binaryMessenger, getPigeonApiCertificate())
607
+ PigeonApiWebSettingsCompat .setUpMessageHandlers(
608
+ binaryMessenger, getPigeonApiWebSettingsCompat())
601
609
}
602
610
603
611
fun tearDown () {
@@ -623,6 +631,7 @@ abstract class AndroidWebkitLibraryPigeonProxyApiRegistrar(val binaryMessenger:
623
631
PigeonApiSslCertificateDName .setUpMessageHandlers(binaryMessenger, null )
624
632
PigeonApiSslCertificate .setUpMessageHandlers(binaryMessenger, null )
625
633
PigeonApiCertificate .setUpMessageHandlers(binaryMessenger, null )
634
+ PigeonApiWebSettingsCompat .setUpMessageHandlers(binaryMessenger, null )
626
635
}
627
636
}
628
637
@@ -727,6 +736,8 @@ private class AndroidWebkitLibraryPigeonProxyApiBaseCodec(
727
736
registrar.getPigeonApiSslCertificate().pigeon_newInstance(value) {}
728
737
} else if (value is java.security.cert.Certificate ) {
729
738
registrar.getPigeonApiCertificate().pigeon_newInstance(value) {}
739
+ } else if (value is androidx.webkit.WebSettingsCompat ) {
740
+ registrar.getPigeonApiWebSettingsCompat().pigeon_newInstance(value) {}
730
741
}
731
742
732
743
when {
@@ -6310,3 +6321,79 @@ abstract class PigeonApiCertificate(
6310
6321
}
6311
6322
}
6312
6323
}
6324
+
6325
+ @Suppress(" UNCHECKED_CAST" )
6326
+ abstract class PigeonApiWebSettingsCompat (
6327
+ open val pigeonRegistrar : AndroidWebkitLibraryPigeonProxyApiRegistrar
6328
+ ) {
6329
+ abstract fun setPaymentRequestEnabled (webSettings : android.webkit.WebSettings , enabled : Boolean )
6330
+
6331
+ companion object {
6332
+ @Suppress(" LocalVariableName" )
6333
+ fun setUpMessageHandlers (binaryMessenger : BinaryMessenger , api : PigeonApiWebSettingsCompat ? ) {
6334
+ val codec = api?.pigeonRegistrar?.codec ? : AndroidWebkitLibraryPigeonCodec ()
6335
+ run {
6336
+ val channel =
6337
+ BasicMessageChannel <Any ?>(
6338
+ binaryMessenger,
6339
+ " dev.flutter.pigeon.webview_flutter_android.WebSettingsCompat.setPaymentRequestEnabled" ,
6340
+ codec)
6341
+ if (api != null ) {
6342
+ channel.setMessageHandler { message, reply ->
6343
+ val args = message as List <Any ?>
6344
+ val webSettingsArg = args[0 ] as android.webkit.WebSettings
6345
+ val enabledArg = args[1 ] as Boolean
6346
+ val wrapped: List <Any ?> =
6347
+ try {
6348
+ api.setPaymentRequestEnabled(webSettingsArg, enabledArg)
6349
+ listOf (null )
6350
+ } catch (exception: Throwable ) {
6351
+ AndroidWebkitLibraryPigeonUtils .wrapError(exception)
6352
+ }
6353
+ reply.reply(wrapped)
6354
+ }
6355
+ } else {
6356
+ channel.setMessageHandler(null )
6357
+ }
6358
+ }
6359
+ }
6360
+ }
6361
+
6362
+ @Suppress(" LocalVariableName" , " FunctionName" )
6363
+ /* * Creates a Dart instance of WebSettingsCompat and attaches it to [pigeon_instanceArg]. */
6364
+ fun pigeon_newInstance (
6365
+ pigeon_instanceArg : androidx.webkit.WebSettingsCompat ,
6366
+ callback : (Result <Unit >) -> Unit
6367
+ ) {
6368
+ if (pigeonRegistrar.ignoreCallsToDart) {
6369
+ callback(
6370
+ Result .failure(
6371
+ AndroidWebKitError (" ignore-calls-error" , " Calls to Dart are being ignored." , " " )))
6372
+ } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) {
6373
+ callback(Result .success(Unit ))
6374
+ } else {
6375
+ val pigeon_identifierArg =
6376
+ pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg)
6377
+ val binaryMessenger = pigeonRegistrar.binaryMessenger
6378
+ val codec = pigeonRegistrar.codec
6379
+ val channelName =
6380
+ " dev.flutter.pigeon.webview_flutter_android.WebSettingsCompat.pigeon_newInstance"
6381
+ val channel = BasicMessageChannel <Any ?>(binaryMessenger, channelName, codec)
6382
+ channel.send(listOf (pigeon_identifierArg)) {
6383
+ if (it is List <* >) {
6384
+ if (it.size > 1 ) {
6385
+ callback(
6386
+ Result .failure(
6387
+ AndroidWebKitError (it[0 ] as String , it[1 ] as String , it[2 ] as String? )))
6388
+ } else {
6389
+ callback(Result .success(Unit ))
6390
+ }
6391
+ } else {
6392
+ callback(
6393
+ Result .failure(AndroidWebkitLibraryPigeonUtils .createConnectionError(channelName)))
6394
+ }
6395
+ }
6396
+ }
6397
+ }
6398
+ }
6399
+
0 commit comments