WIP
This commit is contained in:
parent
91031eb80b
commit
17b9953f82
|
@ -37,7 +37,7 @@ class _LocalProfileComponentWidgetState extends State<LocalProfileComponentWidge
|
|||
//
|
||||
// WidgetsBinding.instance
|
||||
// .addPostFrameCallback((_) async => await LocalizationService.processLocals(context).then((value) => value == true ? onUpdate() : null));
|
||||
LocalizationService.processLocals(context).then((value) => value == true ? onUpdate() : null);
|
||||
// LocalizationService.processLocals(context).then((value) => value == true ? onUpdate() : null);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -24,6 +24,8 @@ import 'package:hub/shared/services/localization/localization_service.dart';
|
|||
import 'package:hub/shared/utils/device_util.dart';
|
||||
import 'package:responsive_framework/responsive_framework.dart';
|
||||
|
||||
import 'backend/notifications/firebase_messaging_service.dart';
|
||||
|
||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
void main() async {
|
||||
|
@ -250,7 +252,6 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||
super.initState();
|
||||
WidgetsBinding.instance.addObserver(this);
|
||||
|
||||
log('DeviceUtil: ${DeviceUtil.getDeviceOSVersion()}');
|
||||
|
||||
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
|
||||
_appStateNotifier = AppStateNotifier.instance;
|
||||
|
@ -271,7 +272,10 @@ class _AppState extends State<App> with WidgetsBindingObserver {
|
|||
|
||||
@override
|
||||
void didChangeAppLifecycleState(AppLifecycleState state) async {
|
||||
if(state == AppLifecycleState.resumed) await LocalizationService.processLocals(context);
|
||||
if(state == AppLifecycleState.detached) {
|
||||
await LocalizationService.processLocals(context);
|
||||
FirebaseMessagingService().updateDeviceToken();
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -42,7 +42,7 @@ class _HomePageWidgetState extends State<HomePageWidget> {
|
|||
_model = createModel(context, () => HomePageModel());
|
||||
_model.updateOnChange = true;
|
||||
|
||||
FirebaseMessagingService().updateDeviceToken();
|
||||
|
||||
|
||||
_model.textController ??= TextEditingController();
|
||||
_model.textFieldFocusNode ??= FocusNode();
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
|
||||
class SecureStorage extends ChangeNotifier implements BaseStorage {
|
||||
class SecureStorage implements BaseStorage {
|
||||
SecureStorage._();
|
||||
|
||||
static final SecureStorage instance = SecureStorage._();
|
||||
|
@ -22,18 +22,15 @@ class SecureStorage extends ChangeNotifier implements BaseStorage {
|
|||
@override
|
||||
Future<void> set(String key, String value) async {
|
||||
await _secureStorage.write(key: key, value: value);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
await _secureStorage.delete(key: key);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> clearAll() async {
|
||||
await _secureStorage.deleteAll();
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SharedPreferencesStorage extends ChangeNotifier implements BaseStorage {
|
||||
class SharedPreferencesStorage implements BaseStorage {
|
||||
SharedPreferencesStorage._();
|
||||
|
||||
static final SharedPreferencesStorage instance = SharedPreferencesStorage._();
|
||||
|
@ -22,18 +22,15 @@ class SharedPreferencesStorage extends ChangeNotifier implements BaseStorage {
|
|||
@override
|
||||
Future<void> set(String key, String value) async {
|
||||
await _prefs.setString(key, value);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
await _prefs.remove(key);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> clearAll() async {
|
||||
await _prefs.clear();
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:hub/shared/helpers/base_storage.dart';
|
||||
import 'package:sqflite/sqflite.dart';
|
||||
import 'package:sqflite/sqlite_api.dart';
|
||||
import 'package:path/path.dart';
|
||||
|
||||
class SQLiteStorage extends ChangeNotifier implements BaseStorage {
|
||||
class SQLiteStorage implements BaseStorage {
|
||||
SQLiteStorage._();
|
||||
|
||||
final String _dbName = 'database.db';
|
||||
final int _dbVersion = 1;
|
||||
static final String _dbName = 'database.db';
|
||||
static final int _dbVersion = 1;
|
||||
|
||||
static const String tableKeychain = 'keychain';
|
||||
|
||||
static final SQLiteStorage instance = SQLiteStorage._();
|
||||
|
||||
late final _database;
|
||||
|
||||
@override
|
||||
Future<void> init() async {
|
||||
@override Future<void> init() async {
|
||||
_database = await openDatabase(
|
||||
join(await getDatabasesPath(), _dbName),
|
||||
version: _dbVersion,
|
||||
|
@ -23,30 +23,15 @@ class SQLiteStorage extends ChangeNotifier implements BaseStorage {
|
|||
onUpgrade: _onUpdate,
|
||||
onDowngrade: _onDowngrade,
|
||||
);
|
||||
|
||||
await _onInitLocalVariables(_database);
|
||||
// await _onInitLocalVariables(_database);
|
||||
}
|
||||
|
||||
_onCreate(Database database, int version) async {
|
||||
await database.execute(_tableKeychain);
|
||||
}
|
||||
|
||||
_onUpdate(Database database, int oldVersion, int newVersion) async {}
|
||||
|
||||
_onDowngrade(Database database, int oldVersion, int newVersion) async {}
|
||||
|
||||
_onInitLocalVariables(Database database) async {
|
||||
// TODO: Talvez precise colocar um transaction aqui como o
|
||||
// database.batch() para melhorar a performance
|
||||
|
||||
for (var variable in _localVariables) {
|
||||
var isConfig = await database.query('keychain', where: 'key = ?', whereArgs: [variable['key']]);
|
||||
|
||||
if (isConfig.isEmpty) {
|
||||
await database.insert('keychain', variable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String get _tableKeychain => '''
|
||||
CREATE TABLE keychain (
|
||||
|
@ -81,22 +66,18 @@ class SQLiteStorage extends ChangeNotifier implements BaseStorage {
|
|||
{'key': SQLiteStorageKey.petAmount.value, 'value': '', 'type': 'local'},
|
||||
];
|
||||
|
||||
@override
|
||||
Future<String?> get(String key) async {
|
||||
@override Future<String?> get(String key) async {
|
||||
var response = await _database.query('keychain', where: 'key = ?', whereArgs: [key]);
|
||||
|
||||
if (response.isEmpty) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return response.first['value'];
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> set(String key, String value) async {
|
||||
@override Future<void> set(String key, String value) async {
|
||||
var date = DateTime.now().toIso8601String();
|
||||
await _database.insert(
|
||||
'keychain',
|
||||
tableKeychain,
|
||||
{
|
||||
'key': key,
|
||||
'value': value,
|
||||
|
@ -105,24 +86,15 @@ class SQLiteStorage extends ChangeNotifier implements BaseStorage {
|
|||
'resolvedAt': date,
|
||||
'createdAt': date,
|
||||
},
|
||||
conflictAlgorithm: ConflictAlgorithm.replace);
|
||||
notifyListeners();
|
||||
conflictAlgorithm: ConflictAlgorithm.replace
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> delete(String key) async {
|
||||
var isConfig = await _database.query('keychain', where: 'key = ?', whereArgs: [key]);
|
||||
|
||||
if (isConfig.isNotEmpty) {
|
||||
@override Future<void> delete(String key) async {
|
||||
await _database.delete('keychain', where: 'key = ?', whereArgs: [key]);
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> clearAll() async {
|
||||
@override Future<void> clearAll() async {
|
||||
await _database.delete('keychain');
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,8 +6,6 @@ import 'package:hub/shared/helpers/sqlite_storage.dart';
|
|||
|
||||
|
||||
class StorageHelper {
|
||||
|
||||
|
||||
static final StorageHelper _instance = StorageHelper._internal();
|
||||
factory StorageHelper() => _instance;
|
||||
StorageHelper._internal();
|
||||
|
|
|
@ -210,16 +210,18 @@ class LocalizationService {
|
|||
enText: 'Error getting authentication credentials',
|
||||
);
|
||||
await DialogUtil.error(context, errorMsg);
|
||||
return;
|
||||
// await DialogUtil.error(context, errorMsg).whenComplete(() async => await AuthenticationService.signOut(context));
|
||||
}
|
||||
else if (isAuthenticated && !isDevLinked) {
|
||||
if (!isDevLinked) {
|
||||
errorMsg = FFLocalizations.of(context).getVariableText(
|
||||
ptText: 'Não foi possível vincular o dispositivo, tente novamente.',
|
||||
enText: 'Unable to link device, try again',
|
||||
);
|
||||
await DialogUtil.warning(context, errorMsg);
|
||||
return;
|
||||
}
|
||||
else if (isAuthenticated && isDevLinked) await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context));
|
||||
await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context));
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue