navigateToWallet method

Future<void> navigateToWallet(
  1. Locale locale,
  2. OnPayCallback onPay,
  3. OnPayCallback onCountComplete,
  4. GetTransactionFunction getTransactionFunction,
  5. String transactionId,
  6. int countDownInSeconds,
  7. EventCallback? log,
)

Navigate to the wallet payment screen with countdown functionality.

This method launches the wallet payment interface where users can complete payments using various wallet methods including QR codes, mobile wallets, and alias-based payments.

Parameters

  • locale - Locale for the payment screen UI
  • onPay - Callback function called when payment is completed
  • onCountComplete - Callback function called when countdown expires
  • getTransactionFunction - Function to retrieve transaction details
  • transactionId - Unique identifier for this transaction
  • countDownInSeconds - Duration for payment timeout countdown
  • log - Optional callback for logging payment events

Usage

await walletSdk.navigateToWallet(
  Locale('en'),
  (result) =&gt; print('Payment completed: $result'),
  (result) =&gt; print('Countdown expired: $result'),
  () =&gt; getTransactionDetails(),
  'txn_12345',
  300, // 5 minutes
  (event) =&gt; print('Wallet event: $event'),
);

Implementation

Future<void> navigateToWallet(
  Locale locale,
  OnPayCallback onPay,
  OnPayCallback onCountComplete,
  GetTransactionFunction getTransactionFunction,
  String transactionId,
  int countDownInSeconds,
  EventCallback? log,
) async {
  await AmwalSdkNavigator.amwalNavigatorObserver.navigator!.push(
    MaterialPageRoute(
      builder: (_) => WalletSdkApp(
        locale: locale,
        onPay: onPay,
        onCountComplete: onCountComplete,
        transactionId: transactionId,
        getTransactionFunction: getTransactionFunction,
        countDownInSeconds: countDownInSeconds,
        log: log,
      ),
    ),
  );
}