import 'dart:io'; import 'dart:math'; import 'package:path_provider/path_provider.dart'; import '/models/init_get_it.dart'; import '/models/user_model.dart'; Future getAvatarPath(String type,String avatarName) async { String avatarDir = await getAvatarDir(type); return '$avatarDir/$avatarName'; } Future getAvatarDir(String type) async { Directory appDirectory = await getApplicationDocumentsDirectory(); switch (type) { case 'user': return '${appDirectory.path}/${getIt.get().id}/images/avatars/user'; case 'groupChat': return '${appDirectory.path}/${getIt.get().id}/images/avatars/group_chat'; case _: return '${appDirectory.path}/${getIt.get().id}/images/avatars/default'; } } Future getBoxDir() async { Directory appDirectory = await getApplicationDocumentsDirectory(); return '${appDirectory.path}/${getIt.get().id}/ChatBox'; } Future getChatImageDir() async { Directory appDirectory = await getApplicationDocumentsDirectory(); return '${appDirectory.path}/${getIt.get().id}/images'; } String getRandomFilename() { final random = Random(); const availableChars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz'; String randomString = List.generate( 11, (index) => availableChars[random.nextInt(availableChars.length)]) .join(); return '$randomString.png'; }