interface<T extends SignResult> method

Future<T?> interface<T extends SignResult>(
  1. BuildContext context,
  2. SignRequest<T> signRequest, {
  3. CryptSignatureTheme? theme,
})

Открыть экран выбора сертификата и подписать В случает подписи PKCS7 на Android возвращает PKCS7SignResult Возвращает SignResult для всеъ остальных

Implementation

Future<T?> interface<T extends SignResult>(BuildContext context, SignRequest<T> signRequest, {CryptSignatureTheme? theme}) async {
  NavigatorState navigator = Navigator.of(context);
  Directory directory = await getApplicationDocumentsDirectory();
  await Directory('${directory.path}/certificates').create();

  T? result = await navigator.push(
    FadePageRoute(
      builder: (context) => MultiProvider(
        providers: [
          Provider<CryptSignatureProvider>(create: (context) => CryptSignatureProvider(context, theme ?? CryptSignatureTheme(), signRequest)),
          Provider<CertificateRepository>(create: (context) => certificateRepository),
          ChangeNotifierProvider<LockService>(create: (context) => LockService()),
          ChangeNotifierProvider<LicenseService>(create: (context) => LicenseService(context.read<LockService>())),
        ],
        builder: (context, child) => const HomeWidget(),
      ),
    ),
  );

  return result;
}