launchUPIApp function

Future<void> launchUPIApp({
  1. required String link,
  2. required UPIApp option,
})

send link & option to launchUPIApp, platform handling is done here

Implementation

Future<void> launchUPIApp(
    {required String link, required UPIApp option}) async {
  final url = rewriteUrl(Uri.parse(link), option);

  if (option.supportsIntentLaunch && PlatformUtils.isAndroid) {
    final AndroidIntent intent = AndroidIntent(
      action: 'action_view',
      data: url.toString(),
      package: option.androidPackageName,
    );

    if (kDebugMode) {
      Logger.log('[Payment] Launching $url');
      Logger.log('[Payment] package: ${option.androidPackageName}');
    }

    await intent.launch();
    return;
  }

  if (kDebugMode) {
    Logger.log('[Payment] Launching url $url');
  }

  launchUrl(
    Uri.parse(url),
    mode: LaunchMode.externalApplication,
  );
}