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 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 removeStoreLogoPath() async { final prefs = await SharedPreferences.getInstance(); await prefs.remove('store_logo_path'); } /// Fungsi untuk mengambil path logo toko dari shared preferences Future 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 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(); } }