Skip to content

Commit 6ddb770

Browse files
committed
feat: Buat fitur default screenshot jika tidak dapat mengambil screenshot device
1 parent 1df7224 commit 6ddb770

1 file changed

Lines changed: 27 additions & 0 deletions

File tree

lib/core/util/widget_helper.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import 'dart:io';
2+
import 'dart:math';
23

4+
import 'package:dipantau_desktop_client/core/util/enum/global_variable.dart';
35
import 'package:dipantau_desktop_client/core/util/helper.dart';
6+
import 'package:dipantau_desktop_client/core/util/shared_preferences_manager.dart';
47
import 'package:dipantau_desktop_client/feature/presentation/page/splash/splash_page.dart';
58
import 'package:dipantau_desktop_client/injection_container.dart';
69
import 'package:easy_localization/easy_localization.dart';
710
import 'package:flutter/material.dart';
11+
import 'package:flutter/services.dart';
812
import 'package:go_router/go_router.dart';
913
import 'package:path_provider/path_provider.dart';
1014

@@ -182,4 +186,27 @@ class WidgetHelper {
182186
},
183187
);
184188
}
189+
190+
Future<File> getImageFileFromAssets(String path) async {
191+
final byteData = await rootBundle.load(path);
192+
193+
final directoryPath = await getDirectoryApp('screenshot');
194+
var userId = sharedPreferencesManager.getString(SharedPreferencesManager.keyUserId) ?? '';
195+
final random = Random();
196+
if (userId.isEmpty) {
197+
userId = random.nextInt(100).toString();
198+
}
199+
final strRandomNumber = random.nextInt(100).toString();
200+
201+
final now = DateTime.now();
202+
final timeInMillis = now.millisecondsSinceEpoch;
203+
final timeInSeconds = Duration(milliseconds: timeInMillis).inSeconds;
204+
final pathString = '${timeInSeconds}_${userId}_${strRandomNumber}_1.jpg';
205+
final file = File('$directoryPath/$pathString');
206+
207+
await file.create(recursive: true);
208+
await file.writeAsBytes(byteData.buffer.asUint8List(byteData.offsetInBytes, byteData.lengthInBytes));
209+
210+
return file;
211+
}
185212
}

0 commit comments

Comments
 (0)