48 lines
1.5 KiB
Dart
48 lines
1.5 KiB
Dart
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<void> 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
|
|
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
|
|
}
|
|
}
|
|
}
|