diff --git a/.vscode/launch.json b/.vscode/launch.json index 251c85f..e1f9b7e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -2,22 +2,47 @@ "version": "0.2.0", "configurations": [ { - "name": "dev", + "name": "GMS_dev", "type": "dart", "request": "launch", "program": "${workspaceFolder}/lib/targets/dev.dart", + "preLaunchTask": "switch_to_gms" }, { - "name": "stage", + "name": "GMS_stage", "type": "dart", "request": "launch", "program": "${workspaceFolder}/lib/targets/stage.dart", + "preLaunchTask": "switch_to_gms" }, { - "name": "prod", + "name": "GMS_prod", "type": "dart", "request": "launch", "program": "${workspaceFolder}/lib/targets/prod.dart", - } + "preLaunchTask": "switch_to_gms" + }, + { + "name": "Aurora_dev", + "type": "dart", + "request": "launch", + "program": "${workspaceFolder}/lib/targets/dev.dart", + "preLaunchTask": "switch_to_aurora" + }, + { + "name": "Aurora_stage", + "type": "dart", + "request": "launch", + "program": "${workspaceFolder}/lib/targets/stage.dart", + "preLaunchTask": "switch_to_aurora" + }, + { + "name": "Aurora_prod", + "type": "dart", + "request": "launch", + "program": "${workspaceFolder}/lib/targets/prod.dart", + "preLaunchTask": "switch_to_aurora" + }, + ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a3a0436..1f27848 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -37,6 +37,18 @@ "reveal": "always" }, "problemMatcher": [] + }, + { + "label": "switch_to_gms", + "type": "shell", + "command": "./switch_service.sh gms", + "problemMatcher": [] + }, + { + "label": "switch_to_aurora", + "type": "shell", + "command": "./switch_service.sh aurora", + "problemMatcher": [] } ] } \ No newline at end of file diff --git a/app_services/aurora/app_services/lib/src/app_secure_storage.dart b/app_services/aurora/app_services/lib/src/app_secure_storage.dart index 02ce805..c0ab727 100644 --- a/app_services/aurora/app_services/lib/src/app_secure_storage.dart +++ b/app_services/aurora/app_services/lib/src/app_secure_storage.dart @@ -15,8 +15,8 @@ final class AppSecureStorage implements ISecureStorage { @override final String secretKey; - @override - String get name => 'AuroraAppSecureStorage'; + + static const name = 'AuroraAppSecureStorage'; /// Экземпляр хранилища данных final _box = const FlutterSecureStorage(); @@ -45,4 +45,7 @@ final class AppSecureStorage implements ISecureStorage { Future write(String key, String value) async { await _box.write(key: key, value: value); } + + @override + String get nameImpl => AppSecureStorage.name; } diff --git a/app_services/gms/app_services/lib/src/app_secure_storage.dart b/app_services/gms/app_services/lib/src/app_secure_storage.dart index be6e233..8b1d886 100644 --- a/app_services/gms/app_services/lib/src/app_secure_storage.dart +++ b/app_services/gms/app_services/lib/src/app_secure_storage.dart @@ -41,4 +41,7 @@ final class AppSecureStorage implements ISecureStorage { Future write(String key, String value) async { await _box.write(key: key, value: value); } + + @override + String get nameImpl => AppSecureStorage.name; } diff --git a/app_services/i_app_services/lib/src/i_secure_storage.dart b/app_services/i_app_services/lib/src/i_secure_storage.dart index bfed248..92ce229 100644 --- a/app_services/i_app_services/lib/src/i_secure_storage.dart +++ b/app_services/i_app_services/lib/src/i_secure_storage.dart @@ -41,4 +41,6 @@ abstract interface class ISecureStorage { /// Принимает: /// - [key] - ключ Future exists(String key); + + String get nameImpl; } diff --git a/lib/features/main/presentation/screens/main_screen.dart b/lib/features/main/presentation/screens/main_screen.dart index dd50b93..452a933 100644 --- a/lib/features/main/presentation/screens/main_screen.dart +++ b/lib/features/main/presentation/screens/main_screen.dart @@ -15,6 +15,9 @@ class MainScreen extends StatelessWidget { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ + Text( + 'Реализация SecureStorage: ${context.di.secureStorage.nameImpl}', + ), const SizedBox(height: 16), Text( 'Окружение: ${context.di.appConfig.env.name}', diff --git a/pubspec.yaml b/pubspec.yaml index 46ade01..4b32d13 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -32,13 +32,9 @@ dependencies: app_services: ### Базовая реализация ### - path: app_services/gms/app_services - - + path: app_services/gms/app_services ### Аврора реализация ### - #path: app_services/aurora/app_services - ### Telegram реализация ### - #path: app_services/telegram/app_services + # path: app_services/aurora/app_services dev_dependencies: flutter_test: diff --git a/switch_service.sh b/switch_service.sh new file mode 100644 index 0000000..97da64e --- /dev/null +++ b/switch_service.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +SERVICE=$1 +PUBSPEC_FILE="pubspec.yaml" + +if [ -z "$SERVICE" ]; then + echo "Usage: $0 [gms|aurora]" + exit 1 +fi + +case "$SERVICE" in + gms) + sed -i 's|^\(\s*\)#\s*path: app_services/gms/app_services|\1path: app_services/gms/app_services|' "$PUBSPEC_FILE" + sed -i 's|^\(\s*\)path: app_services/aurora/app_services|\1# path: app_services/aurora/app_services|' "$PUBSPEC_FILE" + ;; + aurora) + sed -i 's|^\(\s*\)#\s*path: app_services/aurora/app_services|\1path: app_services/aurora/app_services|' "$PUBSPEC_FILE" + sed -i 's|^\(\s*\)path: app_services/gms/app_services|\1# path: app_services/gms/app_services|' "$PUBSPEC_FILE" + ;; + *) + echo "Unknown option: $SERVICE" + echo "Usage: $0 [gms|aurora]" + exit 1 + ;; +esac + +echo "Переключились на $SERVICE. Запуск flutter pub get..." +flutter pub get