Bug fixes, and updated the build number

This commit is contained in:
Abdullah Alassaf
2024-07-02 13:14:17 +03:00
parent 97e0f29ac6
commit c7d26d0e6e
5 changed files with 61 additions and 51 deletions

View File

@ -5,7 +5,9 @@
<application
android:label="syncrow_app"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
>
<activity
android:name=".MainActivity"
android:exported="true"

View File

@ -274,35 +274,39 @@ class AuthCubit extends Cubit<AuthState> {
}
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"));
}
}

View File

@ -30,8 +30,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
List<SceneStaticFunction> tempTasksList = [];
final Map<String, dynamic> selectedValues = {};
FutureOr<void> _onAddSceneTask(
AddTaskEvent event, Emitter<CreateSceneState> emit) {
FutureOr<void> _onAddSceneTask(AddTaskEvent event, Emitter<CreateSceneState> emit) {
final copyList = List<SceneStaticFunction>.from(tempTasksList);
tasksList.addAll(copyList);
tempTasksList.clear();
@ -90,15 +89,13 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
emit(AddSceneTask(tasksList: tasksList));
}
FutureOr<void> _selectedValue(
SelectedValueEvent event, Emitter<CreateSceneState> emit) {
FutureOr<void> _selectedValue(SelectedValueEvent event, Emitter<CreateSceneState> emit) {
selectedValues[event.code] = event.value;
emit(SelectedTaskValueState(value: event.value));
emit(AddSceneTask(tasksList: tasksList));
}
FutureOr<void> _removeTaskById(
RemoveTaskByIdEvent event, Emitter<CreateSceneState> emit) {
FutureOr<void> _removeTaskById(RemoveTaskByIdEvent event, Emitter<CreateSceneState> emit) {
emit(CreateSceneLoading());
for (var element in tasksList) {
@ -145,8 +142,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
}
}
FutureOr<void> _clearTaskList(
ClearTaskListEvent event, Emitter<CreateSceneState> emit) {
FutureOr<void> _clearTaskList(ClearTaskListEvent event, Emitter<CreateSceneState> emit) {
tasksList.clear();
emit(AddSceneTask(tasksList: tasksList));
}
@ -158,8 +154,8 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
try {
final response = await SceneApi.getSceneDetails(event.sceneId);
if (response.id.isNotEmpty) {
tasksList = List<SceneStaticFunction>.from(
getTaskListFunctionsFromApi(actions: response.actions));
tasksList =
List<SceneStaticFunction>.from(getTaskListFunctionsFromApi(actions: response.actions));
emit(AddSceneTask(
tasksList: tasksList,
));
@ -171,8 +167,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
}
}
FutureOr<void> _clearTempTaskList(
ClearTempTaskListEvent event, Emitter<CreateSceneState> emit) {
FutureOr<void> _clearTempTaskList(ClearTempTaskListEvent event, Emitter<CreateSceneState> emit) {
tempTasksList.clear();
selectedValues.clear();
emit(TempHoldSceneTask(tempTasksList: tempTasksList));
@ -188,13 +183,11 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
}
}
FutureOr<void> _deleteScene(
DeleteSceneEvent event, Emitter<CreateSceneState> emit) async {
FutureOr<void> _deleteScene(DeleteSceneEvent event, Emitter<CreateSceneState> 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 {

View File

@ -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();

View File

@ -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"