diff --git a/lib/features/home/presentation/pages/home_page.dart b/lib/features/home/presentation/pages/home_page.dart index 288ad5da..27a16dba 100644 --- a/lib/features/home/presentation/pages/home_page.dart +++ b/lib/features/home/presentation/pages/home_page.dart @@ -21,41 +21,31 @@ class HomePageWidget extends StatefulWidget { class _HomePageWidgetState extends State { final scaffoldKey = GlobalKey(); + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addPostFrameCallback((_) async { + await LocalsRepositoryImpl().update(context); + }); + } + @override Widget build(BuildContext context) { - return MultiBlocProvider( - providers: [ - BlocProvider( - create: (context) => MenuBloc( - style: MenuView.list_grid, - item: EnumMenuItem.button, - entries: MenuEntry.getEntriesByType(MenuEntryType.Home), - )..add(MenuEvent()), - ), - BlocProvider( - create: (context) => HomeBloc()..add(HomeEvent()), - ), - BlocProvider( - create: (context) => LocalProfileBloc()..add(LocalProfileEvent()), - ), - - ], - child: Builder( - builder: (context) { - LocalsRepositoryImpl.license.add(true); - // context.read().updateProfile(context); - return Scaffold( - key: scaffoldKey, - backgroundColor: FlutterFlowTheme.of(context).primaryBackground, - drawerEnableOpenDragGesture: true, - drawerDragStartBehavior: DragStartBehavior.start, - drawer: CustomDrawer(), - appBar: buildAppBar(context), - body: buildPage(context), - ); - }, - ), + return Builder( + builder: (context) { + LocalsRepositoryImpl.license.add(true); + // context.read().updateProfile(context); + return Scaffold( + key: scaffoldKey, + backgroundColor: FlutterFlowTheme.of(context).primaryBackground, + drawerEnableOpenDragGesture: true, + drawerDragStartBehavior: DragStartBehavior.start, + drawer: CustomDrawer(), + appBar: buildAppBar(context), + body: buildPage(context), + ); + }, ); } diff --git a/lib/main.dart b/lib/main.dart index 324221f9..f100c8c7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -5,6 +5,7 @@ import 'dart:io'; import 'package:firebase_crashlytics/firebase_crashlytics.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:hub/backend/notifications/notification_service.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; @@ -19,7 +20,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:hub/shared/extensions/string_extensions.dart'; import 'backend/notifications/firebase_messaging_service.dart'; +import 'features/home/index.dart'; import 'initialization.dart'; +import 'shared/components/molecules/menu/index.dart'; import 'shared/components/molecules/modules/index.dart'; final GlobalKey navigatorKey = GlobalKey(); @@ -189,24 +192,43 @@ class _AppState extends State with WidgetsBindingObserver { @override void didChangeAppLifecycleState(AppLifecycleState state) async { if (state == AppLifecycleState.detached) { - await LocalsRepositoryImpl().update(context); + LocalsRepositoryImpl.license.add(false); + final response = await LocalsRepositoryImpl().update(context); + LocalsRepositoryImpl.license.add(response); await FirebaseMessagingService().updateDeviceToken(); } } @override Widget build(BuildContext context) { - return MaterialApp.router( - key: navigatorKey, - title: 'FRE ACCESS HUB', - builder: builder, - localizationsDelegates: localizationsDelegates, - locale: _locale, - supportedLocales: supportedLocales, - theme: _theme, - darkTheme: _darkTheme, - themeMode: _themeMode, - routerConfig: _router, + return MultiBlocProvider( + providers: [ + BlocProvider( + create: (context) => MenuBloc( + style: MenuView.list_grid, + item: EnumMenuItem.button, + entries: MenuEntry.getEntriesByType(MenuEntryType.Home), + )..add(MenuEvent()), + ), + BlocProvider( + create: (context) => HomeBloc()..add(HomeEvent()), + ), + BlocProvider( + create: (context) => LocalProfileBloc()..add(LocalProfileEvent()), + ), + ], + child: MaterialApp.router( + key: navigatorKey, + title: 'FRE ACCESS HUB', + builder: builder, + localizationsDelegates: localizationsDelegates, + locale: _locale, + supportedLocales: supportedLocales, + theme: _theme, + darkTheme: _darkTheme, + themeMode: _themeMode, + routerConfig: _router, + ), ); } } diff --git a/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart b/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart index d848fbbc..7d2d79fa 100644 --- a/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart +++ b/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart @@ -19,11 +19,10 @@ class LocalsRepositoryImpl implements LocalsRepository { @override Future update(BuildContext context) async { - log('update'); - LocalsRepositoryImpl.license.add(false); + // LocalsRepositoryImpl.license.add(false); final bool response = await remoteDataSource.processLocals(context); context.read().add(LocalProfileEvent()); - LocalsRepositoryImpl.license.add(response); + // LocalsRepositoryImpl.license.add(response); return response; } diff --git a/lib/shared/components/molecules/locals/presentation/blocs/local_profile_bloc.dart b/lib/shared/components/molecules/locals/presentation/blocs/local_profile_bloc.dart index 4017f06e..db8d2a02 100644 --- a/lib/shared/components/molecules/locals/presentation/blocs/local_profile_bloc.dart +++ b/lib/shared/components/molecules/locals/presentation/blocs/local_profile_bloc.dart @@ -40,12 +40,12 @@ class LocalProfileBloc extends Bloc { emit(state.copyWith(cliName: cliName, cliUUID: cliUUID)); } - void updateProfile(BuildContext context) { - LocalsRepositoryImpl.license.add(false); - context.read().add(MenuEvent()); - add(LocalProfileEvent()); - LocalsRepositoryImpl.license.add(true); - } + // void updateProfile(BuildContext context) { + // LocalsRepositoryImpl.license.add(false); + // context.read().add(MenuEvent()); + // add(LocalProfileEvent()); + // LocalsRepositoryImpl.license.add(true); + // } } class LocalProfileComponentModel extends FlutterFlowModel { diff --git a/lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart b/lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart index e31ddac1..9d436de2 100644 --- a/lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart +++ b/lib/shared/components/molecules/locals/presentation/widgets/local_profile/local_profile_widget.dart @@ -25,7 +25,9 @@ class _LocalProfileComponentWidgetState extends State 20 ? 12 : scaledFontSize; - - log('LocalProfileComponentWidget: build'); - log('snapshot.connectionState: ${snapshot.connectionState}'); - log('snapshot.hasError: ${snapshot.hasError}'); - log('snapshot.hasData: ${snapshot.hasData}'); - log('snapshot.data: ${snapshot.data}'); - if (snapshot.connectionState == ConnectionState.waiting) { return const Center(child: CircularProgressIndicator()); } else if (snapshot.hasError) { @@ -103,7 +98,9 @@ class _LocalProfileComponentWidgetState extends State entries = []; try { for (var entry in menuEntries) { - log('Processing entry: ${entry.key}'); + // log('Processing entry: ${entry.key}'); final bool isDefault = await menuDataSource.processDisplayDefault(item, entry, entries); if (isDefault) continue; final licenseValue = await LicenseRepositoryImpl().getLicense(entry.key); diff --git a/lib/shared/components/molecules/menu/presentation/blocs/menu_bloc.dart b/lib/shared/components/molecules/menu/presentation/blocs/menu_bloc.dart index e8c10663..8c249bf9 100644 --- a/lib/shared/components/molecules/menu/presentation/blocs/menu_bloc.dart +++ b/lib/shared/components/molecules/menu/presentation/blocs/menu_bloc.dart @@ -3,6 +3,8 @@ import 'dart:async'; import 'dart:developer'; import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/components/molecules/locals/index.dart'; import 'package:hub/shared/components/molecules/menu/data/repositories/menu_repository_impl.dart'; import 'package:hub/shared/components/molecules/menu/index.dart'; @@ -43,10 +45,9 @@ class MenuBloc extends Bloc { } Future _onMenuEvent(MenuEvent event, Emitter emit) async { - log('MenuBloc: waitForSaveCompletion'); await LicenseRemoteDataSourceImpl().waitForSaveCompletion(); - log('MenuBloc: _onMenuEvent'); + final List NewEntries = await MenuRepositoryImpl().generateMenuEntries(entries, item); emit(state.copyWith(menuEntries: NewEntries)); } diff --git a/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart b/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart index e751ef60..1ef3589a 100644 --- a/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart +++ b/lib/shared/components/molecules/modules/data/repositories/license_repository_impl.dart @@ -22,7 +22,6 @@ class LicenseRepositoryImpl implements LicenseRepository { log('updateLicense'); bool result = false; final bool isNewVersion = await localDataSource.isNewVersion(); - log('isNewVersion: $isNewVersion'); result = await remoteDataSource.setupLicense(database, isNewVersion); if (isNewVersion) { result = await remoteDataSource.fetchLicenses(isNewVersion); @@ -41,7 +40,6 @@ class LicenseRepositoryImpl implements LicenseRepository { @override Future getLicense(String key) async { final response = await localDataSource.get(key); - log('getLicense: $key: $response'); return response; } diff --git a/lib/shared/helpers/storage/keychain_storage.dart b/lib/shared/helpers/storage/keychain_storage.dart index 0431c8f1..d662dc1a 100644 --- a/lib/shared/helpers/storage/keychain_storage.dart +++ b/lib/shared/helpers/storage/keychain_storage.dart @@ -28,7 +28,7 @@ class KeychainHelper implements BaseStorage { if (response.isEmpty) { return null; } - log('() => get keychain: $key : ${response.first['value']}'); + // log('() => get keychain: $key : ${response.first['value']}'); return response.first['value'].toString(); } @@ -47,7 +47,7 @@ class KeychainHelper implements BaseStorage { 'createdAt': date, }, conflictAlgorithm: ConflictAlgorithm.replace); - log('() => set keychain: $key : $value'); + // log('() => set keychain: $key : $value'); } @override