53 lines
1.9 KiB
Dart
53 lines
1.9 KiB
Dart
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'dart:io';
|
|
import 'package:flutter/services.dart' show rootBundle;
|
|
|
|
/// Fungsi untuk menyimpan path logo toko ke shared preferences
|
|
Future<void> saveStoreLogoPath(String logoPath) async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.setString('store_logo_path', logoPath);
|
|
}
|
|
|
|
/// Fungsi untuk menghapus path logo toko dari shared preferences
|
|
Future<void> removeStoreLogoPath() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
await prefs.remove('store_logo_path');
|
|
}
|
|
|
|
/// Fungsi untuk mengambil path logo toko dari shared preferences
|
|
Future<String?> getStoreLogoPath() async {
|
|
final prefs = await SharedPreferences.getInstance();
|
|
return prefs.getString('store_logo_path');
|
|
}
|
|
|
|
/// Fungsi untuk menyalin logo dari asset ke direktori dokumen aplikasi
|
|
/// dan menyimpan path-nya ke shared preferences
|
|
Future<void> copyAndSaveStoreLogoFromAsset(String assetPath) async {
|
|
try {
|
|
// Dapatkan direktori dokumen aplikasi
|
|
final dir = await getApplicationDocumentsDirectory();
|
|
final logoDir = Directory('${dir.path}/logos');
|
|
|
|
// Buat direktori jika belum ada
|
|
if (!await logoDir.exists()) {
|
|
await logoDir.create(recursive: true);
|
|
}
|
|
|
|
// Path file logo di direktori dokumen
|
|
final logoFile = File('${logoDir.path}/store_logo.png');
|
|
|
|
// Baca data dari asset
|
|
final data = await rootBundle.load(assetPath);
|
|
|
|
// Tulis data ke file di direktori dokumen
|
|
await logoFile.writeAsBytes(data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
|
|
|
|
// Simpan path ke shared preferences
|
|
await saveStoreLogoPath(logoFile.path);
|
|
} catch (e) {
|
|
print('Error copying logo from asset: $e');
|
|
// Jika gagal, hapus path yang mungkin tersimpan
|
|
await removeStoreLogoPath();
|
|
}
|
|
} |