getLaunchableApplications method

  1. @override
Future<List<AndroidAppInfo>> getLaunchableApplications()
override

Retrieves a list of user launchable apps installed on the device. Must be overridden by platorm implementations.

Implementation

@override
Future<List<AndroidAppInfo>> getLaunchableApplications() async {
  List<Map<Object?, Object?>>? data;
  try {
    data = await methodChannel
        .invokeListMethod<Map<Object?, Object?>>('getLaunchableApplications');
  } on Exception catch (e) {
    if (kDebugMode) {
      debugPrint(
          'Platform - Failed to getLaunchableApplications: ${e.toString()}');
    }
    data = [];
  }
  data ??= [];

  List<AndroidAppInfo> apps = [];
  for (var map in data) {
    Map<String, dynamic> m = {};
    for (var element in map.entries) {
      m[element.key?.toString() ?? ''] = element.value;
    }
    final app = AndroidAppInfo.fromMap(m);
    apps.add(app);
  }
  return apps;
}