chore: integrate Hive for local storage management
- Added `hive_ce` and `hive_ce_flutter` dependencies for enhanced local storage capabilities. - Refactored the main application to initialize Hive and migrate existing data. - Updated storage service implementations to utilize Hive for managing application settings and task queues. - Removed the deprecated `StorageService` class to streamline the codebase and improve maintainability.
This commit is contained in:
@@ -5,9 +5,11 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'core/widgets/error_boundary.dart';
|
||||
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'core/providers/app_providers.dart';
|
||||
import 'core/persistence/hive_bootstrap.dart';
|
||||
import 'core/persistence/persistence_migrator.dart';
|
||||
import 'core/persistence/persistence_providers.dart';
|
||||
import 'core/router/app_router.dart';
|
||||
import 'shared/theme/app_theme.dart';
|
||||
import 'shared/widgets/offline_indicator.dart';
|
||||
@@ -62,8 +64,6 @@ void main() {
|
||||
_startupTimeline?.instant('edge_to_edge_enabled');
|
||||
});
|
||||
|
||||
final sharedPrefs = await SharedPreferences.getInstance();
|
||||
_startupTimeline!.instant('shared_prefs_ready');
|
||||
const secureStorage = FlutterSecureStorage(
|
||||
aOptions: AndroidOptions(
|
||||
encryptedSharedPreferences: true,
|
||||
@@ -78,6 +78,13 @@ void main() {
|
||||
);
|
||||
_startupTimeline!.instant('secure_storage_ready');
|
||||
|
||||
final hiveBoxes = await HiveBootstrap.instance.ensureInitialized();
|
||||
_startupTimeline!.instant('hive_ready');
|
||||
|
||||
final migrator = PersistenceMigrator(hiveBoxes: hiveBoxes);
|
||||
await migrator.migrateIfNeeded();
|
||||
_startupTimeline!.instant('migration_complete');
|
||||
|
||||
// Finish timeline after first frame paints
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
_startupTimeline?.instant('first_frame_rendered');
|
||||
@@ -88,8 +95,8 @@ void main() {
|
||||
runApp(
|
||||
ProviderScope(
|
||||
overrides: [
|
||||
sharedPreferencesProvider.overrideWithValue(sharedPrefs),
|
||||
secureStorageProvider.overrideWithValue(secureStorage),
|
||||
hiveBoxesProvider.overrideWithValue(hiveBoxes),
|
||||
],
|
||||
child: const ConduitApp(),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user