This commit is contained in:
J. A. Messias 2024-11-21 16:15:14 -03:00
parent b87b26fced
commit 8e5d40ff2f
12 changed files with 159 additions and 100 deletions

View File

@ -27,19 +27,25 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
final bool expandable; final bool expandable;
final List<Module> menuOptions; final List<Module> menuOptions;
MenuComponentModel({required this.style, required this.item, required this.expandable, required this.menuOptions}); MenuComponentModel(
{required this.style,
required this.item,
required this.expandable,
required this.menuOptions});
bool isGrid = false; bool isGrid = false;
late MenuListViewComponentModel menuListViewComponentModel; late MenuListViewComponentModel menuListViewComponentModel;
late MenuStaggeredViewComponentModel menuStaggeredViewComponentModel; late MenuStaggeredViewComponentModel menuStaggeredViewComponentModel;
late VoidCallback safeSetState; late VoidCallback safeSetState;
late List<MenuEntry?> menuEntries; List<MenuEntry?> menuEntries = [];
@override @override
void initState(BuildContext context) { void initState(BuildContext context) {
menuListViewComponentModel = createModel(context, () => MenuListViewComponentModel()); menuListViewComponentModel =
menuStaggeredViewComponentModel = createModel(context, () => MenuStaggeredViewComponentModel()); createModel(context, () => MenuListViewComponentModel());
menuStaggeredViewComponentModel =
createModel(context, () => MenuStaggeredViewComponentModel());
} }
@override @override
@ -48,27 +54,32 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
menuStaggeredViewComponentModel.dispose(); menuStaggeredViewComponentModel.dispose();
} }
Future<List<MenuEntry?>> generateMenuEntries(BuildContext context, MenuItem item, List<Module> options) async { Future<List<MenuEntry?>> generateMenuEntries(
BuildContext context, MenuItem item, List<Module> options) async {
List<MenuEntry?> entries = []; List<MenuEntry?> entries = [];
Future<MenuEntry?> addMenuEntry(IconData icon, String enText, String ptText, Function() action) async { Future<MenuEntry?> addMenuEntry(
IconData icon, String enText, String ptText, Function() action) async {
entries.add( entries.add(
item == MenuItem.button item == MenuItem.button
? MenuButtonWidget( ? MenuButtonWidget(
icon: icon, icon: icon,
action: action, action: action,
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText), title: FFLocalizations.of(context)
.getVariableText(enText: enText, ptText: ptText),
safeSetState: safeSetState) safeSetState: safeSetState)
: item == MenuItem.card : item == MenuItem.card
? MenuCardItem( ? MenuCardItem(
icon: icon, icon: icon,
action: action, action: action,
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText), title: FFLocalizations.of(context)
.getVariableText(enText: enText, ptText: ptText),
safeSetState: safeSetState) safeSetState: safeSetState)
: item == MenuItem.tile : item == MenuItem.tile
? MenuCardItem( ? MenuCardItem(
icon: icon, icon: icon,
action: action, action: action,
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText), title: FFLocalizations.of(context)
.getVariableText(enText: enText, ptText: ptText),
safeSetState: safeSetState) safeSetState: safeSetState)
: null, : null,
); );
@ -80,15 +91,18 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
log('Module: ${opt.value} - License: $v'); log('Module: ${opt.value} - License: $v');
switch (v) { switch (v) {
case 'VISIVEL': case 'VISIVEL':
addMenuEntry(Icons.engineering_outlined, 'Schedule Providers', 'Agendar Prestadores', () async { addMenuEntry(Icons.engineering_outlined, 'Schedule Providers',
'Agendar Prestadores', () async {
await open(context, '/provisionalSchedule'); await open(context, '/provisionalSchedule');
}); });
break; break;
case 'INVISIVEL': case 'BLOQUEADO':
DialogUnavailable.unavailableFeature(context); DialogUnavailable.unavailableFeature(context);
break; break;
default: case 'INVISIVEL':
break; break;
default:
throw Exception('Invalid license value');
} }
safeSetState(); safeSetState();
} }
@ -118,11 +132,13 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
ptText: 'Tem certeza que deseja sair?', ptText: 'Tem certeza que deseja sair?',
enText: 'Are you sure you want to logout?', enText: 'Are you sure you want to logout?',
); );
showAlertDialog(context, title, content, () async => await AuthenticationService.signOut(context)); showAlertDialog(context, title, content,
() async => await AuthenticationService.signOut(context));
} }
Future openDeliverySchedule(BuildContext context) async { Future openDeliverySchedule(BuildContext context) async {
final bool isProvisional = await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true'; final bool isProvisional =
await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true';
if (isProvisional == true) { if (isProvisional == true) {
context.push( context.push(
'/deliverySchedule', '/deliverySchedule',
@ -140,7 +156,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
} }
Future openProvisionalSchedule(BuildContext context) async { Future openProvisionalSchedule(BuildContext context) async {
final isProvisional = await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true'; final isProvisional =
await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true';
if (isProvisional == true) { if (isProvisional == true) {
context.push( context.push(
'/provisionalSchedule', '/provisionalSchedule',
@ -158,7 +175,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
} }
Future openFastPassSchedule(BuildContext context) async { Future openFastPassSchedule(BuildContext context) async {
final isWpp = await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true'; final isWpp =
await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true';
if (isWpp) { if (isWpp) {
context.push( context.push(
'/fastPassPage', '/fastPassPage',
@ -250,7 +268,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
ptText: 'Tem certeza que deseja sair?', ptText: 'Tem certeza que deseja sair?',
enText: 'Are you sure you want to logout?', enText: 'Are you sure you want to logout?',
); );
showAlertDialog(context, title, content, () async => await AuthenticationService.signOut(context)); showAlertDialog(context, title, content,
() async => await AuthenticationService.signOut(context));
} }
Future openPreferencesSettings(BuildContext context) async { Future openPreferencesSettings(BuildContext context) async {
@ -267,7 +286,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
} }
Future openMyOrders(BuildContext context) async { Future openMyOrders(BuildContext context) async {
final isWpp = await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true'; final isWpp =
await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true';
; ;
if (isWpp) { if (isWpp) {
context.push( context.push(
@ -286,7 +306,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
} }
Future openReservations(BuildContext context) async { Future openReservations(BuildContext context) async {
final isWpp = await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true'; final isWpp =
await StorageHelper().g(KeychainStorageKey.whatsapp.value) == 'true';
; ;
if (isWpp) { if (isWpp) {
context.push( context.push(
@ -403,7 +424,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
} }
Future openPetsRegister(BuildContext context) async { Future openPetsRegister(BuildContext context) async {
bool isPet = await StorageHelper().g(KeychainStorageKey.pets.value) == 'true'; bool isPet =
await StorageHelper().g(KeychainStorageKey.pets.value) == 'true';
; ;
if (isPet) { if (isPet) {
context.push( context.push(

View File

@ -148,11 +148,6 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) {
name: 'vehiclesOnThePropertyPage', name: 'vehiclesOnThePropertyPage',
path: '/vehiclesOnThePropertyPage', path: '/vehiclesOnThePropertyPage',
builder: (context, params) => const VehicleOnTheProperty()), builder: (context, params) => const VehicleOnTheProperty()),
FFRoute(
name: 'homePage',
path: '/homePage',
builder: (context, params) => HomePageWidget(key: UniqueKey()),
),
FFRoute( FFRoute(
name: 'receptionPage', name: 'receptionPage',
path: '/receptionPage', path: '/receptionPage',

View File

@ -16,6 +16,7 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/internationalization.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/shared/helpers/database/database_helper.dart';
import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart';
import 'package:hub/shared/helpers/storage/storage_helper.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart';
import 'package:hub/shared/services/deeplink/deep_link_service.dart'; import 'package:hub/shared/services/deeplink/deep_link_service.dart';

View File

@ -6,6 +6,7 @@ import 'package:hub/components/organism_components/menu_component/menu_component
import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart';
import 'package:hub/pages/about_property_page/about_property_screen.dart'; import 'package:hub/pages/about_property_page/about_property_screen.dart';
import 'package:hub/shared/helpers/license/license_helper.dart';
class AboutPropertyModel extends FlutterFlowModel<AboutPropertyPage> { class AboutPropertyModel extends FlutterFlowModel<AboutPropertyPage> {
dynamic item; dynamic item;
@ -22,12 +23,16 @@ class AboutPropertyModel extends FlutterFlowModel<AboutPropertyPage> {
void initState(BuildContext context) { void initState(BuildContext context) {
menuComponentModel = createModel( menuComponentModel = createModel(
context, context,
() => MenuComponentModel(expandable: true, style: MenuView.list_grid, item: MenuItem.button, menuOptions: [ () => MenuComponentModel(
MenuOption.PetsOnTheProperty, expandable: true,
MenuOption.ResidentsOnTheProperty, style: MenuView.list_grid,
MenuOption.VisitsOnTheProperty, item: MenuItem.button,
MenuOption.VehiclesOnTheProperty, menuOptions: [
MenuOption.PackagesOnTheProperty, Module.pets,
Module.residents,
Module.openedVisits,
Module.vehicles,
Module.orders,
])); ]));
initAsync(); initAsync();

View File

@ -6,10 +6,10 @@ import 'package:hub/components/organism_components/menu_component/menu_component
import 'package:hub/components/organism_components/message_well_component/message_well_component_model.dart'; import 'package:hub/components/organism_components/message_well_component/message_well_component_model.dart';
import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/flutter_flow_model.dart';
import 'package:hub/pages/home_page/home_page_widget.dart'; import 'package:hub/pages/home_page/home_page_widget.dart';
import 'package:hub/shared/helpers/license/license_helper.dart';
import 'package:hub/shared/helpers/storage/base_storage.dart'; import 'package:hub/shared/helpers/storage/base_storage.dart';
import 'package:hub/shared/helpers/storage/storage_helper.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart';
class HomePageModel extends FlutterFlowModel<HomePageWidget> { class HomePageModel extends FlutterFlowModel<HomePageWidget> {
HomePageModel({required this.safeSetState}); HomePageModel({required this.safeSetState});
late final VoidCallback safeSetState; late final VoidCallback safeSetState;
@ -32,54 +32,64 @@ class HomePageModel extends FlutterFlowModel<HomePageWidget> {
Future<void> _initVariable() async { Future<void> _initVariable() async {
devUUID = (await StorageHelper().g(KeychainStorageKey.devUUID.value)) ?? ''; devUUID = (await StorageHelper().g(KeychainStorageKey.devUUID.value)) ?? '';
userUUID = (await StorageHelper().g(KeychainStorageKey.userUUID.value)) ?? ''; userUUID =
cliUUID = (await StorageHelper().g(KeychainStorageKey.clientUUID.value)) ?? ''; (await StorageHelper().g(KeychainStorageKey.userUUID.value)) ?? '';
userName = (await StorageHelper().g(KeychainStorageKey.userName.value)) ?? ''; cliUUID =
(await StorageHelper().g(KeychainStorageKey.clientUUID.value)) ?? '';
userName =
(await StorageHelper().g(KeychainStorageKey.userName.value)) ?? '';
userEmail = (await StorageHelper().g(SecureStorageKey.email.value)) ?? ''; userEmail = (await StorageHelper().g(SecureStorageKey.email.value)) ?? '';
} }
@override @override
void initState(BuildContext context) { void initState(BuildContext context) {
_initVariable(); _initVariable();
localComponentModel = createModel(context, () => LocalProfileComponentModel()); localComponentModel =
createModel(context, () => LocalProfileComponentModel());
homeMenuComponentModel = createModel( homeMenuComponentModel = createModel(
context, context,
() => MenuComponentModel(expandable: true, style: MenuView.list_grid, item: MenuItem.button, menuOptions: [ () => MenuComponentModel(
MenuOption.SettingsOnTheApp, expandable: true,
MenuOption.MessagesOnTheProperty, style: MenuView.list_grid,
MenuOption.AccessOnTheProperty, item: MenuItem.button,
MenuOption.PetsRegister, menuOptions: [
MenuOption.VisitorsRegister, Module.messages,
MenuOption.ReservationsOnTheLocal, Module.access,
MenuOption.PackagesOnTheProperty, Module.pets,
MenuOption.DeliverySchedule, Module.openedVisits,
MenuOption.WorkersOnTheProperty, Module.reservations,
MenuOption.AboutProperty, Module.orders,
MenuOption.CompleteSchedule, Module.providerSchedule,
MenuOption.FastPassSchedule, Module.deliverySchedule,
MenuOption.LiberationsOnTheProperty, Module.completeSchedule,
MenuOption.QRCodeAccessInProperty, Module.fastPass,
Module.liberations,
Module.qrCode,
Module.settings,
])); ]));
drawerMenuComponentModel = createModel( drawerMenuComponentModel = createModel(
context, context,
() => MenuComponentModel(expandable: false, style: MenuView.list, item: MenuItem.tile, menuOptions: [ () => MenuComponentModel(
MenuOption.SettingsOnTheApp, expandable: false,
MenuOption.MessagesOnTheProperty, style: MenuView.list,
MenuOption.AccessOnTheProperty, item: MenuItem.tile,
MenuOption.PetsRegister, menuOptions: [
MenuOption.VisitorsRegister, Module.messages,
MenuOption.ReservationsOnTheLocal, Module.access,
MenuOption.PackagesOnTheProperty, Module.pets,
MenuOption.DeliverySchedule, Module.openedVisits,
MenuOption.WorkersOnTheProperty, Module.reservations,
MenuOption.AboutProperty, Module.orders,
MenuOption.CompleteSchedule, Module.providerSchedule,
MenuOption.FastPassSchedule, Module.deliverySchedule,
MenuOption.LiberationsOnTheProperty, Module.completeSchedule,
MenuOption.QRCodeAccessInProperty, Module.fastPass,
MenuOption.LogoutOnTheApp, Module.liberations,
Module.qrCode,
Module.logout,
])); ]));
messageWellComponentModel = createModel(context, () => MessageWellComponentModel()); messageWellComponentModel =
createModel(context, () => MessageWellComponentModel());
} }
@override @override

View File

@ -21,8 +21,10 @@ class DatabaseStorage {
return _database!; return _database!;
} }
bool isInitialized = false;
Future<void> init() async { Future<void> init() async {
if (_database != null) return; if (isInitialized) return;
_database = await openDatabase( _database = await openDatabase(
join(await getDatabasesPath(), _dbName), join(await getDatabasesPath(), _dbName),
version: _dbVersion, version: _dbVersion,
@ -31,6 +33,7 @@ class DatabaseStorage {
onDowngrade: _onDowngrade, onDowngrade: _onDowngrade,
); );
await LicenseService.setupLicense(database); await LicenseService.setupLicense(database);
isInitialized = true;
} }
Future<void> _onCreate(Database database, int version) async { Future<void> _onCreate(Database database, int version) async {
@ -39,13 +42,14 @@ class DatabaseStorage {
await database.execute(LicenseHelper.createTableQuery); await database.execute(LicenseHelper.createTableQuery);
} }
Future<void> _onUpgrade(Database database, int oldVersion, int newVersion) async { Future<void> _onUpgrade(
Database database, int oldVersion, int newVersion) async {
log('Upgrading database from version $oldVersion to $newVersion...'); log('Upgrading database from version $oldVersion to $newVersion...');
if (oldVersion < 2) { if (oldVersion < 2) {
await database.execute(LicenseHelper.createTableQuery); await database.execute(LicenseHelper.createTableQuery);
await LicenseService.setupLicense(database);
} }
} }
Future<void> _onDowngrade(Database database, int oldVersion, int newVersion) async {} Future<void> _onDowngrade(
Database database, int oldVersion, int newVersion) async {}
} }

View File

@ -77,6 +77,9 @@ enum Module {
providerSchedule, providerSchedule,
deliverySchedule, deliverySchedule,
fastPass, fastPass,
qrCode,
settings,
logout,
} }
extension LicenseKeyExtension on Module { extension LicenseKeyExtension on Module {
@ -116,31 +119,31 @@ extension LicenseKeyExtension on Module {
String get route { String get route {
switch (this) { switch (this) {
case Module.messages: case Module.messages:
return '/messages'; return '/messageHistoryPage';
case Module.liberations: case Module.liberations:
return '/liberations'; return '/liberationHistory';
case Module.reservations: case Module.reservations:
return '/reservations'; return '/reservation';
case Module.access: case Module.access:
return '/access'; return '/acessHistoryPage';
case Module.openedVisits: case Module.openedVisits:
return '/opened-visits'; return '/visitsOnTheProperty';
case Module.vehicles: case Module.vehicles:
return '/vehicles'; return '/vehiclesOnThePropertyPage';
case Module.residents: case Module.residents:
return '/residents'; return '/peopleOnThePropertyPage';
case Module.pets: case Module.pets:
return '/pets'; return '/petsPage';
case Module.orders: case Module.orders:
return '/orders'; return '/packageOrder';
case Module.completeSchedule: case Module.completeSchedule:
return '/complete-schedule'; return '/scheduleCompleteVisitPage';
case Module.providerSchedule: case Module.providerSchedule:
return '/provider-schedule'; return '/provisionalSchedule';
case Module.deliverySchedule: case Module.deliverySchedule:
return '/delivery-schedule'; return '/deliverySchedule';
case Module.fastPass: case Module.fastPass:
return '/fast-pass'; return '/fastPassPage';
default: default:
return ''; return '';
} }
@ -170,7 +173,8 @@ class LicenseHelper {
await DatabaseStorage.instance.init(); await DatabaseStorage.instance.init();
} }
static Future<void> insertLicenseFoo(final List<String> key, final String display) async { static Future<void> insertLicenseFoo(
final List<String> key, final String display) async {
for (var element in key) { for (var element in key) {
DatabaseStorage.database.insert( DatabaseStorage.database.insert(
tableLicense, tableLicense,
@ -187,11 +191,12 @@ class LicenseHelper {
} }
Future<String?> g(String key) async { Future<String?> g(String key) async {
var response = await DatabaseStorage.database.query(tableLicense, where: 'key = ?', whereArgs: [key]); var response = await DatabaseStorage.database.query(tableLicense,
where: 'key = ?', whereArgs: [key], columns: ['display']);
if (response.isEmpty) { if (response.isEmpty) {
return null; return null;
} }
return response.first['value'].toString(); return response.first['display'].toString();
} }
Future<void> s<T>(String key, T value) async { Future<void> s<T>(String key, T value) async {
@ -211,7 +216,8 @@ class LicenseHelper {
} }
Future<void> d(String key) async { Future<void> d(String key) async {
await DatabaseStorage.database.delete(tableLicense, where: 'key = ?', whereArgs: [key]); await DatabaseStorage.database
.delete(tableLicense, where: 'key = ?', whereArgs: [key]);
} }
Future<void> c() async { Future<void> c() async {

View File

@ -8,6 +8,7 @@ class KeychainHelper implements BaseStorage {
static final KeychainHelper instance = KeychainHelper._(); static final KeychainHelper instance = KeychainHelper._();
static const String tableKeychain = 'keychain'; static const String tableKeychain = 'keychain';
bool _isInitialized = false;
static String get createTableQuery => ''' static String get createTableQuery => '''
CREATE TABLE $tableKeychain ( CREATE TABLE $tableKeychain (
@ -22,12 +23,15 @@ class KeychainHelper implements BaseStorage {
@override @override
Future<void> init() async { Future<void> init() async {
if (_isInitialized) return;
await DatabaseStorage.instance.init(); await DatabaseStorage.instance.init();
_isInitialized = true;
} }
@override @override
Future<String?> get(String key) async { Future<String?> get(String key) async {
var response = await DatabaseStorage.database.query(tableKeychain, where: 'key = ?', whereArgs: [key]); var response = await DatabaseStorage.database
.query(tableKeychain, where: 'key = ?', whereArgs: [key]);
if (response.isEmpty) { if (response.isEmpty) {
return null; return null;
} }
@ -52,7 +56,8 @@ class KeychainHelper implements BaseStorage {
@override @override
Future<void> delete(String key) async { Future<void> delete(String key) async {
await DatabaseStorage.database.delete(tableKeychain, where: 'key = ?', whereArgs: [key]); await DatabaseStorage.database
.delete(tableKeychain, where: 'key = ?', whereArgs: [key]);
} }
@override @override

View File

@ -7,10 +7,13 @@ class SecureStorage implements BaseStorage {
static final SecureStorage instance = SecureStorage._(); static final SecureStorage instance = SecureStorage._();
late final FlutterSecureStorage _secureStorage; late final FlutterSecureStorage _secureStorage;
bool _isInitialized = false;
@override @override
Future<void> init() async { Future<void> init() async {
if (_isInitialized) return;
_secureStorage = const FlutterSecureStorage(); _secureStorage = const FlutterSecureStorage();
_isInitialized = true;
} }
@override @override

View File

@ -7,10 +7,13 @@ class SharedPreferencesStorage implements BaseStorage {
static final SharedPreferencesStorage instance = SharedPreferencesStorage._(); static final SharedPreferencesStorage instance = SharedPreferencesStorage._();
late final SharedPreferences _prefs; late final SharedPreferences _prefs;
bool _isInitialized = false;
@override @override
Future<void> init() async { Future<void> init() async {
if (_isInitialized) return;
_prefs = await SharedPreferences.getInstance(); _prefs = await SharedPreferences.getInstance();
_isInitialized = true;
} }
@override @override

View File

@ -10,10 +10,10 @@ class StorageHelper {
StorageHelper._internal(); StorageHelper._internal();
late BuildContext? _context; late BuildContext? _context;
late bool _isRecovered = false;
BuildContext? get context => _context; BuildContext? get context => _context;
set context(BuildContext? context) => _context = context; set context(BuildContext? context) => _context = context;
late bool _isRecovered = false;
bool get isRecovered => _isRecovered; bool get isRecovered => _isRecovered;
set isRecovered(bool isRecovered) => _isRecovered = isRecovered; set isRecovered(bool isRecovered) => _isRecovered = isRecovered;
@ -22,10 +22,12 @@ class StorageHelper {
await SharedPreferencesStorage.instance.init(); await SharedPreferencesStorage.instance.init();
await KeychainHelper.instance.init(); await KeychainHelper.instance.init();
String? isFirstRun = await SharedPreferencesStorage.instance.get(SharedPreferencesKey.isFirstRun.value); String? isFirstRun = await SharedPreferencesStorage.instance
.get(SharedPreferencesKey.isFirstRun.value);
if (isFirstRun == 'true') { if (isFirstRun != 'false') {
await SharedPreferencesStorage.instance.set(SharedPreferencesKey.isFirstRun.value, false); await SharedPreferencesStorage.instance
.set(SharedPreferencesKey.isFirstRun.value, false);
await SecureStorage.instance.set(SecureStorageKey.isLogged.value, false); await SecureStorage.instance.set(SecureStorageKey.isLogged.value, false);
} }
} }
@ -44,7 +46,10 @@ class StorageHelper {
static BaseStorage getInstanceByKey(String key) { static BaseStorage getInstanceByKey(String key) {
if (SecureStorageKey.values.map((e) => e.value).toList().contains(key)) { if (SecureStorageKey.values.map((e) => e.value).toList().contains(key)) {
return SecureStorage.instance; return SecureStorage.instance;
} else if (SharedPreferencesKey.values.map((e) => e.value).toList().contains(key)) { } else if (SharedPreferencesKey.values
.map((e) => e.value)
.toList()
.contains(key)) {
return SharedPreferencesStorage.instance; return SharedPreferencesStorage.instance;
} else { } else {
return KeychainHelper.instance; return KeychainHelper.instance;

View File

@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart';
import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/nav/nav.dart';
import 'package:hub/pages/forgot_password_page/forgot_password_screen.dart'; import 'package:hub/pages/forgot_password_page/forgot_password_screen.dart';
import 'package:hub/shared/helpers/storage_helper.dart'; import 'package:hub/shared/helpers/storage/storage_helper.dart';
class DeepLinkService { class DeepLinkService {
static final DeepLinkService _instance = DeepLinkService._internal(); static final DeepLinkService _instance = DeepLinkService._internal();