init method
Initialize storage — open SQLite, migrate legacy SharedPreferences data.
Implementation
Future<void> init() async {
_dbAvailable = await _sqliteStorage.open();
_syncStorageState();
_loadPersistedPendingSqliteDeleteIds();
if (_dbAvailable) {
_recordDbOpenSuccess();
if (_pendingSqliteDeleteIds.isNotEmpty) {
await _retryPendingSqliteDeletesLocked();
}
} else {
_recordDbOpenFailure();
}
if (_dbAvailable) {
await _migrateLegacyEvents();
_syncStorageState();
// Drain any memory queue events that accumulated
if (_dbAvailable && _memoryQueue.isNotEmpty) {
await _memoryQueue.drainToDb(_sqliteStorage);
_syncStorageState();
}
}
}