together_mobile/lib/utils/app_dir.dart

45 lines
1.4 KiB
Dart

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<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';
}