import 'dart:io'; import 'dart:math'; import 'package:path_provider/path_provider.dart'; import '../models/init_get_it.dart'; import 'package:together_mobile/models/user_model.dart'; Future<String> getAvatarPath(String type,String avatarName) async { String avatarDir = await getAvatarDir(type); return '$avatarDir/$avatarName'; } Future<String> getAvatarDir(String type) async { Directory appDirectory = await getApplicationDocumentsDirectory(); switch (type) { case 'user': return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/user'; case 'groupChat': return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/group_chat'; case _: return '${appDirectory.path}/${getIt.get<UserAccount>().id}/images/avatars/default'; } } Future<String> getBoxDir() async { Directory appDirectory = await getApplicationDocumentsDirectory(); return '${appDirectory.path}/${getIt.get<UserAccount>().id}/ChatBox'; } Future<String> getChatImageDir() async { Directory appDirectory = await getApplicationDocumentsDirectory(); return '${appDirectory.path}/${getIt.get<UserAccount>().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'; }