WIP
This commit is contained in:
parent
b87b26fced
commit
8e5d40ff2f
|
@ -27,19 +27,25 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
final bool expandable;
|
||||
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;
|
||||
|
||||
late MenuListViewComponentModel menuListViewComponentModel;
|
||||
late MenuStaggeredViewComponentModel menuStaggeredViewComponentModel;
|
||||
late VoidCallback safeSetState;
|
||||
late List<MenuEntry?> menuEntries;
|
||||
List<MenuEntry?> menuEntries = [];
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {
|
||||
menuListViewComponentModel = createModel(context, () => MenuListViewComponentModel());
|
||||
menuStaggeredViewComponentModel = createModel(context, () => MenuStaggeredViewComponentModel());
|
||||
menuListViewComponentModel =
|
||||
createModel(context, () => MenuListViewComponentModel());
|
||||
menuStaggeredViewComponentModel =
|
||||
createModel(context, () => MenuStaggeredViewComponentModel());
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -48,27 +54,32 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
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 = [];
|
||||
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(
|
||||
item == MenuItem.button
|
||||
? MenuButtonWidget(
|
||||
icon: icon,
|
||||
action: action,
|
||||
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText),
|
||||
title: FFLocalizations.of(context)
|
||||
.getVariableText(enText: enText, ptText: ptText),
|
||||
safeSetState: safeSetState)
|
||||
: item == MenuItem.card
|
||||
? MenuCardItem(
|
||||
icon: icon,
|
||||
action: action,
|
||||
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText),
|
||||
title: FFLocalizations.of(context)
|
||||
.getVariableText(enText: enText, ptText: ptText),
|
||||
safeSetState: safeSetState)
|
||||
: item == MenuItem.tile
|
||||
? MenuCardItem(
|
||||
icon: icon,
|
||||
action: action,
|
||||
title: FFLocalizations.of(context).getVariableText(enText: enText, ptText: ptText),
|
||||
title: FFLocalizations.of(context)
|
||||
.getVariableText(enText: enText, ptText: ptText),
|
||||
safeSetState: safeSetState)
|
||||
: null,
|
||||
);
|
||||
|
@ -80,15 +91,18 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
log('Module: ${opt.value} - License: $v');
|
||||
switch (v) {
|
||||
case 'VISIVEL':
|
||||
addMenuEntry(Icons.engineering_outlined, 'Schedule Providers', 'Agendar Prestadores', () async {
|
||||
addMenuEntry(Icons.engineering_outlined, 'Schedule Providers',
|
||||
'Agendar Prestadores', () async {
|
||||
await open(context, '/provisionalSchedule');
|
||||
});
|
||||
break;
|
||||
case 'INVISIVEL':
|
||||
case 'BLOQUEADO':
|
||||
DialogUnavailable.unavailableFeature(context);
|
||||
break;
|
||||
default:
|
||||
case 'INVISIVEL':
|
||||
break;
|
||||
default:
|
||||
throw Exception('Invalid license value');
|
||||
}
|
||||
safeSetState();
|
||||
}
|
||||
|
@ -118,11 +132,13 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
ptText: 'Tem certeza que deseja sair?',
|
||||
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 {
|
||||
final bool isProvisional = await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true';
|
||||
final bool isProvisional =
|
||||
await StorageHelper().g(KeychainStorageKey.provisional.value) == 'true';
|
||||
if (isProvisional == true) {
|
||||
context.push(
|
||||
'/deliverySchedule',
|
||||
|
@ -140,7 +156,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
}
|
||||
|
||||
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) {
|
||||
context.push(
|
||||
'/provisionalSchedule',
|
||||
|
@ -158,7 +175,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
}
|
||||
|
||||
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) {
|
||||
context.push(
|
||||
'/fastPassPage',
|
||||
|
@ -250,7 +268,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
ptText: 'Tem certeza que deseja sair?',
|
||||
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 {
|
||||
|
@ -267,7 +286,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
}
|
||||
|
||||
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) {
|
||||
context.push(
|
||||
|
@ -286,7 +306,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
}
|
||||
|
||||
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) {
|
||||
context.push(
|
||||
|
@ -403,7 +424,8 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
}
|
||||
|
||||
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) {
|
||||
context.push(
|
||||
|
|
|
@ -148,11 +148,6 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) {
|
|||
name: 'vehiclesOnThePropertyPage',
|
||||
path: '/vehiclesOnThePropertyPage',
|
||||
builder: (context, params) => const VehicleOnTheProperty()),
|
||||
FFRoute(
|
||||
name: 'homePage',
|
||||
path: '/homePage',
|
||||
builder: (context, params) => HomePageWidget(key: UniqueKey()),
|
||||
),
|
||||
FFRoute(
|
||||
name: 'receptionPage',
|
||||
path: '/receptionPage',
|
||||
|
|
|
@ -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/internationalization.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/storage_helper.dart';
|
||||
import 'package:hub/shared/services/deeplink/deep_link_service.dart';
|
||||
|
|
|
@ -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/pages/about_property_page/about_property_screen.dart';
|
||||
import 'package:hub/shared/helpers/license/license_helper.dart';
|
||||
|
||||
class AboutPropertyModel extends FlutterFlowModel<AboutPropertyPage> {
|
||||
dynamic item;
|
||||
|
@ -22,13 +23,17 @@ class AboutPropertyModel extends FlutterFlowModel<AboutPropertyPage> {
|
|||
void initState(BuildContext context) {
|
||||
menuComponentModel = createModel(
|
||||
context,
|
||||
() => MenuComponentModel(expandable: true, style: MenuView.list_grid, item: MenuItem.button, menuOptions: [
|
||||
MenuOption.PetsOnTheProperty,
|
||||
MenuOption.ResidentsOnTheProperty,
|
||||
MenuOption.VisitsOnTheProperty,
|
||||
MenuOption.VehiclesOnTheProperty,
|
||||
MenuOption.PackagesOnTheProperty,
|
||||
]));
|
||||
() => MenuComponentModel(
|
||||
expandable: true,
|
||||
style: MenuView.list_grid,
|
||||
item: MenuItem.button,
|
||||
menuOptions: [
|
||||
Module.pets,
|
||||
Module.residents,
|
||||
Module.openedVisits,
|
||||
Module.vehicles,
|
||||
Module.orders,
|
||||
]));
|
||||
|
||||
initAsync();
|
||||
}
|
||||
|
|
|
@ -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/flutter_flow/flutter_flow_model.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/storage_helper.dart';
|
||||
|
||||
|
||||
class HomePageModel extends FlutterFlowModel<HomePageWidget> {
|
||||
HomePageModel({required this.safeSetState});
|
||||
late final VoidCallback safeSetState;
|
||||
|
@ -32,54 +32,64 @@ class HomePageModel extends FlutterFlowModel<HomePageWidget> {
|
|||
|
||||
Future<void> _initVariable() async {
|
||||
devUUID = (await StorageHelper().g(KeychainStorageKey.devUUID.value)) ?? '';
|
||||
userUUID = (await StorageHelper().g(KeychainStorageKey.userUUID.value)) ?? '';
|
||||
cliUUID = (await StorageHelper().g(KeychainStorageKey.clientUUID.value)) ?? '';
|
||||
userName = (await StorageHelper().g(KeychainStorageKey.userName.value)) ?? '';
|
||||
userUUID =
|
||||
(await StorageHelper().g(KeychainStorageKey.userUUID.value)) ?? '';
|
||||
cliUUID =
|
||||
(await StorageHelper().g(KeychainStorageKey.clientUUID.value)) ?? '';
|
||||
userName =
|
||||
(await StorageHelper().g(KeychainStorageKey.userName.value)) ?? '';
|
||||
userEmail = (await StorageHelper().g(SecureStorageKey.email.value)) ?? '';
|
||||
}
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {
|
||||
_initVariable();
|
||||
localComponentModel = createModel(context, () => LocalProfileComponentModel());
|
||||
localComponentModel =
|
||||
createModel(context, () => LocalProfileComponentModel());
|
||||
homeMenuComponentModel = createModel(
|
||||
context,
|
||||
() => MenuComponentModel(expandable: true, style: MenuView.list_grid, item: MenuItem.button, menuOptions: [
|
||||
MenuOption.SettingsOnTheApp,
|
||||
MenuOption.MessagesOnTheProperty,
|
||||
MenuOption.AccessOnTheProperty,
|
||||
MenuOption.PetsRegister,
|
||||
MenuOption.VisitorsRegister,
|
||||
MenuOption.ReservationsOnTheLocal,
|
||||
MenuOption.PackagesOnTheProperty,
|
||||
MenuOption.DeliverySchedule,
|
||||
MenuOption.WorkersOnTheProperty,
|
||||
MenuOption.AboutProperty,
|
||||
MenuOption.CompleteSchedule,
|
||||
MenuOption.FastPassSchedule,
|
||||
MenuOption.LiberationsOnTheProperty,
|
||||
MenuOption.QRCodeAccessInProperty,
|
||||
]));
|
||||
() => MenuComponentModel(
|
||||
expandable: true,
|
||||
style: MenuView.list_grid,
|
||||
item: MenuItem.button,
|
||||
menuOptions: [
|
||||
Module.messages,
|
||||
Module.access,
|
||||
Module.pets,
|
||||
Module.openedVisits,
|
||||
Module.reservations,
|
||||
Module.orders,
|
||||
Module.providerSchedule,
|
||||
Module.deliverySchedule,
|
||||
Module.completeSchedule,
|
||||
Module.fastPass,
|
||||
Module.liberations,
|
||||
Module.qrCode,
|
||||
Module.settings,
|
||||
]));
|
||||
drawerMenuComponentModel = createModel(
|
||||
context,
|
||||
() => MenuComponentModel(expandable: false, style: MenuView.list, item: MenuItem.tile, menuOptions: [
|
||||
MenuOption.SettingsOnTheApp,
|
||||
MenuOption.MessagesOnTheProperty,
|
||||
MenuOption.AccessOnTheProperty,
|
||||
MenuOption.PetsRegister,
|
||||
MenuOption.VisitorsRegister,
|
||||
MenuOption.ReservationsOnTheLocal,
|
||||
MenuOption.PackagesOnTheProperty,
|
||||
MenuOption.DeliverySchedule,
|
||||
MenuOption.WorkersOnTheProperty,
|
||||
MenuOption.AboutProperty,
|
||||
MenuOption.CompleteSchedule,
|
||||
MenuOption.FastPassSchedule,
|
||||
MenuOption.LiberationsOnTheProperty,
|
||||
MenuOption.QRCodeAccessInProperty,
|
||||
MenuOption.LogoutOnTheApp,
|
||||
]));
|
||||
messageWellComponentModel = createModel(context, () => MessageWellComponentModel());
|
||||
() => MenuComponentModel(
|
||||
expandable: false,
|
||||
style: MenuView.list,
|
||||
item: MenuItem.tile,
|
||||
menuOptions: [
|
||||
Module.messages,
|
||||
Module.access,
|
||||
Module.pets,
|
||||
Module.openedVisits,
|
||||
Module.reservations,
|
||||
Module.orders,
|
||||
Module.providerSchedule,
|
||||
Module.deliverySchedule,
|
||||
Module.completeSchedule,
|
||||
Module.fastPass,
|
||||
Module.liberations,
|
||||
Module.qrCode,
|
||||
Module.logout,
|
||||
]));
|
||||
messageWellComponentModel =
|
||||
createModel(context, () => MessageWellComponentModel());
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -21,8 +21,10 @@ class DatabaseStorage {
|
|||
return _database!;
|
||||
}
|
||||
|
||||
bool isInitialized = false;
|
||||
|
||||
Future<void> init() async {
|
||||
if (_database != null) return;
|
||||
if (isInitialized) return;
|
||||
_database = await openDatabase(
|
||||
join(await getDatabasesPath(), _dbName),
|
||||
version: _dbVersion,
|
||||
|
@ -31,6 +33,7 @@ class DatabaseStorage {
|
|||
onDowngrade: _onDowngrade,
|
||||
);
|
||||
await LicenseService.setupLicense(database);
|
||||
isInitialized = true;
|
||||
}
|
||||
|
||||
Future<void> _onCreate(Database database, int version) async {
|
||||
|
@ -39,13 +42,14 @@ class DatabaseStorage {
|
|||
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...');
|
||||
if (oldVersion < 2) {
|
||||
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 {}
|
||||
}
|
||||
|
|
|
@ -77,6 +77,9 @@ enum Module {
|
|||
providerSchedule,
|
||||
deliverySchedule,
|
||||
fastPass,
|
||||
qrCode,
|
||||
settings,
|
||||
logout,
|
||||
}
|
||||
|
||||
extension LicenseKeyExtension on Module {
|
||||
|
@ -116,31 +119,31 @@ extension LicenseKeyExtension on Module {
|
|||
String get route {
|
||||
switch (this) {
|
||||
case Module.messages:
|
||||
return '/messages';
|
||||
return '/messageHistoryPage';
|
||||
case Module.liberations:
|
||||
return '/liberations';
|
||||
return '/liberationHistory';
|
||||
case Module.reservations:
|
||||
return '/reservations';
|
||||
return '/reservation';
|
||||
case Module.access:
|
||||
return '/access';
|
||||
return '/acessHistoryPage';
|
||||
case Module.openedVisits:
|
||||
return '/opened-visits';
|
||||
return '/visitsOnTheProperty';
|
||||
case Module.vehicles:
|
||||
return '/vehicles';
|
||||
return '/vehiclesOnThePropertyPage';
|
||||
case Module.residents:
|
||||
return '/residents';
|
||||
return '/peopleOnThePropertyPage';
|
||||
case Module.pets:
|
||||
return '/pets';
|
||||
return '/petsPage';
|
||||
case Module.orders:
|
||||
return '/orders';
|
||||
return '/packageOrder';
|
||||
case Module.completeSchedule:
|
||||
return '/complete-schedule';
|
||||
return '/scheduleCompleteVisitPage';
|
||||
case Module.providerSchedule:
|
||||
return '/provider-schedule';
|
||||
return '/provisionalSchedule';
|
||||
case Module.deliverySchedule:
|
||||
return '/delivery-schedule';
|
||||
return '/deliverySchedule';
|
||||
case Module.fastPass:
|
||||
return '/fast-pass';
|
||||
return '/fastPassPage';
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
|
@ -170,7 +173,8 @@ class LicenseHelper {
|
|||
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) {
|
||||
DatabaseStorage.database.insert(
|
||||
tableLicense,
|
||||
|
@ -187,11 +191,12 @@ class LicenseHelper {
|
|||
}
|
||||
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
return response.first['value'].toString();
|
||||
return response.first['display'].toString();
|
||||
}
|
||||
|
||||
Future<void> s<T>(String key, T value) async {
|
||||
|
@ -211,7 +216,8 @@ class LicenseHelper {
|
|||
}
|
||||
|
||||
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 {
|
||||
|
|
|
@ -8,6 +8,7 @@ class KeychainHelper implements BaseStorage {
|
|||
static final KeychainHelper instance = KeychainHelper._();
|
||||
|
||||
static const String tableKeychain = 'keychain';
|
||||
bool _isInitialized = false;
|
||||
|
||||
static String get createTableQuery => '''
|
||||
CREATE TABLE $tableKeychain (
|
||||
|
@ -22,12 +23,15 @@ class KeychainHelper implements BaseStorage {
|
|||
|
||||
@override
|
||||
Future<void> init() async {
|
||||
if (_isInitialized) return;
|
||||
await DatabaseStorage.instance.init();
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
@override
|
||||
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) {
|
||||
return null;
|
||||
}
|
||||
|
@ -52,7 +56,8 @@ class KeychainHelper implements BaseStorage {
|
|||
|
||||
@override
|
||||
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
|
||||
|
|
|
@ -7,10 +7,13 @@ class SecureStorage implements BaseStorage {
|
|||
static final SecureStorage instance = SecureStorage._();
|
||||
|
||||
late final FlutterSecureStorage _secureStorage;
|
||||
bool _isInitialized = false;
|
||||
|
||||
@override
|
||||
Future<void> init() async {
|
||||
if (_isInitialized) return;
|
||||
_secureStorage = const FlutterSecureStorage();
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -7,10 +7,13 @@ class SharedPreferencesStorage implements BaseStorage {
|
|||
static final SharedPreferencesStorage instance = SharedPreferencesStorage._();
|
||||
|
||||
late final SharedPreferences _prefs;
|
||||
bool _isInitialized = false;
|
||||
|
||||
@override
|
||||
Future<void> init() async {
|
||||
if (_isInitialized) return;
|
||||
_prefs = await SharedPreferences.getInstance();
|
||||
_isInitialized = true;
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -10,10 +10,10 @@ class StorageHelper {
|
|||
StorageHelper._internal();
|
||||
|
||||
late BuildContext? _context;
|
||||
late bool _isRecovered = false;
|
||||
BuildContext? get context => _context;
|
||||
set context(BuildContext? context) => _context = context;
|
||||
|
||||
late bool _isRecovered = false;
|
||||
bool get isRecovered => _isRecovered;
|
||||
set isRecovered(bool isRecovered) => _isRecovered = isRecovered;
|
||||
|
||||
|
@ -22,10 +22,12 @@ class StorageHelper {
|
|||
await SharedPreferencesStorage.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') {
|
||||
await SharedPreferencesStorage.instance.set(SharedPreferencesKey.isFirstRun.value, false);
|
||||
if (isFirstRun != 'false') {
|
||||
await SharedPreferencesStorage.instance
|
||||
.set(SharedPreferencesKey.isFirstRun.value, false);
|
||||
await SecureStorage.instance.set(SecureStorageKey.isLogged.value, false);
|
||||
}
|
||||
}
|
||||
|
@ -44,7 +46,10 @@ class StorageHelper {
|
|||
static BaseStorage getInstanceByKey(String key) {
|
||||
if (SecureStorageKey.values.map((e) => e.value).toList().contains(key)) {
|
||||
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;
|
||||
} else {
|
||||
return KeychainHelper.instance;
|
||||
|
|
|
@ -5,7 +5,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:hub/flutter_flow/flutter_flow_theme.dart';
|
||||
import 'package:hub/flutter_flow/nav/nav.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 {
|
||||
static final DeepLinkService _instance = DeepLinkService._internal();
|
||||
|
|
Loading…
Reference in New Issue