student-plus/lib/helpers/app_icon_helper.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
}
}
}