getAvailable method

  1. @override
Future<List<InputLanguage>> getAvailable()
override

Lists the keyboards / input languages the user has enabled.

Implementation

@override
Future<List<InputLanguage>> getAvailable() async {
  try {
    final list = await methodChannel.invokeListMethod<Object?>(
      'getAvailable',
    );
    if (list == null) return const <InputLanguage>[];
    final result = <InputLanguage>[];
    for (final item in list) {
      if (item is Map) {
        final language = InputLanguage.fromMap(item);
        if (language != null && !result.contains(language)) {
          result.add(language);
        }
      }
    }
    return List<InputLanguage>.unmodifiable(result);
  } on MissingPluginException {
    return const <InputLanguage>[];
  }
}