diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index fdf5596..9287665 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,7 +5,9 @@ + android:icon="@mipmap/ic_launcher" + android:allowBackup="false" + > { } getTokenAndValidate() async { - emit(AuthTokenLoading()); - const storage = FlutterSecureStorage(); - final firstLaunch = - await SharedPreferencesHelper.readBoolFromSP(StringsManager.firstLaunch) ?? true; + try { + emit(AuthTokenLoading()); + const storage = FlutterSecureStorage(); + final firstLaunch = + await SharedPreferencesHelper.readBoolFromSP(StringsManager.firstLaunch) ?? true; - if (firstLaunch) { - storage.deleteAll(); - } - - await SharedPreferencesHelper.saveBoolToSP(StringsManager.firstLaunch, false); - - final value = await storage.read(key: Token.loginAccessTokenKey) ?? ''; - if (value.isEmpty) { - emit(AuthTokenError(message: "Token not found")); - return; - } - - final tokenData = Token.decodeToken(value); - - if (tokenData.containsKey('exp')) { - final exp = tokenData['exp'] ?? 0; - final currentTime = DateTime.now().millisecondsSinceEpoch ~/ 1000; - - if (currentTime < exp) { - emit(AuthTokenSuccess()); - } else { - emit(AuthTokenError(message: "Token expired")); + if (firstLaunch) { + storage.deleteAll(); } - } else { + + await SharedPreferencesHelper.saveBoolToSP(StringsManager.firstLaunch, false); + + final value = await storage.read(key: Token.loginAccessTokenKey) ?? ''; + if (value.isEmpty) { + emit(AuthTokenError(message: "Token not found")); + return; + } + + final tokenData = Token.decodeToken(value); + + if (tokenData.containsKey('exp')) { + final exp = tokenData['exp'] ?? 0; + final currentTime = DateTime.now().millisecondsSinceEpoch ~/ 1000; + + if (currentTime < exp) { + emit(AuthTokenSuccess()); + } else { + emit(AuthTokenError(message: "Token expired")); + } + } else { + emit(AuthTokenError(message: "Something went wrong")); + } + } catch (_) { emit(AuthTokenError(message: "Something went wrong")); } } diff --git a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart index 39d929d..ad6ab58 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart @@ -30,8 +30,7 @@ class CreateSceneBloc extends Bloc List tempTasksList = []; final Map selectedValues = {}; - FutureOr _onAddSceneTask( - AddTaskEvent event, Emitter emit) { + FutureOr _onAddSceneTask(AddTaskEvent event, Emitter emit) { final copyList = List.from(tempTasksList); tasksList.addAll(copyList); tempTasksList.clear(); @@ -90,15 +89,13 @@ class CreateSceneBloc extends Bloc emit(AddSceneTask(tasksList: tasksList)); } - FutureOr _selectedValue( - SelectedValueEvent event, Emitter emit) { + FutureOr _selectedValue(SelectedValueEvent event, Emitter emit) { selectedValues[event.code] = event.value; emit(SelectedTaskValueState(value: event.value)); emit(AddSceneTask(tasksList: tasksList)); } - FutureOr _removeTaskById( - RemoveTaskByIdEvent event, Emitter emit) { + FutureOr _removeTaskById(RemoveTaskByIdEvent event, Emitter emit) { emit(CreateSceneLoading()); for (var element in tasksList) { @@ -145,8 +142,7 @@ class CreateSceneBloc extends Bloc } } - FutureOr _clearTaskList( - ClearTaskListEvent event, Emitter emit) { + FutureOr _clearTaskList(ClearTaskListEvent event, Emitter emit) { tasksList.clear(); emit(AddSceneTask(tasksList: tasksList)); } @@ -158,8 +154,8 @@ class CreateSceneBloc extends Bloc try { final response = await SceneApi.getSceneDetails(event.sceneId); if (response.id.isNotEmpty) { - tasksList = List.from( - getTaskListFunctionsFromApi(actions: response.actions)); + tasksList = + List.from(getTaskListFunctionsFromApi(actions: response.actions)); emit(AddSceneTask( tasksList: tasksList, )); @@ -171,8 +167,7 @@ class CreateSceneBloc extends Bloc } } - FutureOr _clearTempTaskList( - ClearTempTaskListEvent event, Emitter emit) { + FutureOr _clearTempTaskList(ClearTempTaskListEvent event, Emitter emit) { tempTasksList.clear(); selectedValues.clear(); emit(TempHoldSceneTask(tempTasksList: tempTasksList)); @@ -188,13 +183,11 @@ class CreateSceneBloc extends Bloc } } - FutureOr _deleteScene( - DeleteSceneEvent event, Emitter emit) async { + FutureOr _deleteScene(DeleteSceneEvent event, Emitter emit) async { emit(DeleteSceneLoading()); try { - final response = await SceneApi.deleteScene( - sceneId: event.sceneId, unitUuid: event.unitUuid); + final response = await SceneApi.deleteScene(sceneId: event.sceneId, unitUuid: event.unitUuid); if (response == true) { emit(const DeleteSceneSuccess(true)); } else { diff --git a/lib/features/scene/view/scene_view.dart b/lib/features/scene/view/scene_view.dart index e89bae3..83a537a 100644 --- a/lib/features/scene/view/scene_view.dart +++ b/lib/features/scene/view/scene_view.dart @@ -7,6 +7,7 @@ import 'package:syncrow_app/features/scene/bloc/scene_bloc/scene_event.dart'; import 'package:syncrow_app/features/scene/widgets/scene_view_widget/scene_grid_view.dart'; import 'package:syncrow_app/features/scene/widgets/scene_view_widget/scene_header.dart'; import 'package:syncrow_app/features/shared_widgets/create_unit.dart'; +import 'package:syncrow_app/features/shared_widgets/text_widgets/body_medium.dart'; import 'package:syncrow_app/utils/context_extension.dart'; @@ -60,12 +61,22 @@ class SceneView extends StatelessWidget { ); } if (state is SceneLoaded) { - return Expanded( - child: SceneGrid( - scenes: state.scenes, - loadingSceneId: state.loadingSceneId, - ), - ); + if (state.scenes.isNotEmpty) { + return Expanded( + child: SceneGrid( + scenes: state.scenes, + loadingSceneId: state.loadingSceneId, + ), + ); + } else { + return const Expanded( + child: Center( + child: BodyMedium( + text: 'No scenes have been added yet', + ), + ), + ); + } } return const SizedBox(); diff --git a/pubspec.yaml b/pubspec.yaml index 9f65699..59f680d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -5,7 +5,7 @@ description: This is the mobile application project, developed with Flutter for # pub.dev using `flutter pub publish`. This is preferred for private packages. publish_to: "none" # Remove this line if you wish to publish to pub.dev -version: 1.0.8+9 +version: 1.0.0+10 environment: sdk: ">=3.0.6 <4.0.0"