import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:flutter_dynamic_icon/flutter_dynamic_icon.dart'; import 'package:android_dynamic_icon/android_dynamic_icon.dart'; class AppIconHelper { static const _channel = MethodChannel('app_icon'); static Future setAppIcon(String iconName) async { if (Platform.isIOS) { // change icon on ios try { if (await FlutterDynamicIcon.supportsAlternateIcons) { await _channel.invokeMethod('changeIcon', iconName); // await FlutterDynamicIcon.setApplicationIconBadgeNumber(0); we don't need this rn, but we will await FlutterDynamicIcon.setAlternateIconName(iconName); } } on PlatformException catch (e) { if (kDebugMode) { print('Failed to change app icon: ${e.message}'); } } catch (e) { if (kDebugMode) { print('Ha nem megy, hat nem megy'); } } } else if (Platform.isAndroid) { // change icon on android // ignore: no_leading_underscores_for_local_identifiers final _androidDynamicIconPlugin = AndroidDynamicIcon(); await _androidDynamicIconPlugin.changeIcon( bundleId: 'hu.refilc.naplo', isNewIcon: iconName != 'refilc_default' ? true : false, iconName: iconName != 'refilc_default' ? iconName : '', iconNames: [ 'refilc_default', 'refilc_overcomplicated', 'refilc_concept', 'refilc_pride', ], ); } else { // ha nem megy hát nem megy } } }