setup fcm
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import 'dart:io';
|
||||
import 'package:image/image.dart' as img;
|
||||
|
||||
/// Jalankan dengan: dart run tool/generate_notification_icon.dart
|
||||
void main() async {
|
||||
final inputPath = 'assets/images/logo_white.png';
|
||||
final outputBase = 'android/app/src/main/res';
|
||||
|
||||
final sizes = {
|
||||
'drawable-mdpi': 24,
|
||||
'drawable-hdpi': 36,
|
||||
'drawable-xhdpi': 48,
|
||||
'drawable-xxhdpi': 72,
|
||||
'drawable-xxxhdpi': 96,
|
||||
};
|
||||
|
||||
final inputFile = File(inputPath);
|
||||
if (!inputFile.existsSync()) {
|
||||
print('ERROR: File tidak ditemukan: $inputPath');
|
||||
exit(1);
|
||||
}
|
||||
|
||||
final originalBytes = inputFile.readAsBytesSync();
|
||||
final original = img.decodeImage(originalBytes);
|
||||
if (original == null) {
|
||||
print('ERROR: Gagal decode image');
|
||||
exit(1);
|
||||
}
|
||||
|
||||
print('Source: $inputPath (${original.width}x${original.height})');
|
||||
|
||||
for (final entry in sizes.entries) {
|
||||
final folder = '$outputBase/${entry.key}';
|
||||
final outputPath = '$folder/ic_notification.png';
|
||||
|
||||
Directory(folder).createSync(recursive: true);
|
||||
|
||||
final size = entry.value;
|
||||
final resized = img.copyResize(original, width: size, height: size);
|
||||
final pngBytes = img.encodePng(resized);
|
||||
|
||||
File(outputPath).writeAsBytesSync(pngBytes);
|
||||
print('Generated: $outputPath (${size}x${size})');
|
||||
}
|
||||
|
||||
print('\nDone! Gunakan icon: "ic_notification" di fcm_service.dart');
|
||||
}
|
||||
Reference in New Issue
Block a user