Skip to content

Commit

Permalink
fix zone error and nullpointer in _reloadDataFromDBIfNecessary
Browse files Browse the repository at this point in the history
  • Loading branch information
NeXTormer committed Jul 2, 2023
1 parent 6b1cca2 commit 0e8e367
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 62 deletions.
4 changes: 2 additions & 2 deletions lib/backend/frederic_backend.dart
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ class FredericBackend implements FredericMessageProcessor {
}

void _reloadDataFromDBIfNecessary() {
bool reloadFromDB =
_userManager.state.shouldReloadFromDB || _defaults!.alwaysReloadFromDB;
bool reloadFromDB = _userManager.state.shouldReloadFromDB ||
(_defaults?.alwaysReloadFromDB ?? false);
_userManager.state.shouldReloadFromDB = false;
_userManager.userDataChanged();

Expand Down
121 changes: 61 additions & 60 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -61,68 +61,69 @@ void main() async {
}).sendPort);

// == Record all errors within a Flutter context ==
runZonedGuarded<Future<void>>(() async {
await EasyLocalization.ensureInitialized();
//runZonedGuarded<Future<void>>(() async { //TODO: fix zone error or remove completely
await EasyLocalization.ensureInitialized();

// == Crashlytics & Performance ==
if (kReleaseMode) {
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
}
// == Crashlytics & Performance ==
if (kReleaseMode) {
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
}

// == Crashlytics & Performance == End ==

// == Hive == Register Adapters ==
await Hive.initFlutter();
if (!Hive.isAdapterRegistered(1))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericActivity>(1,
create: (id, data) => FredericActivity.fromMap(id, data)));
if (!Hive.isAdapterRegistered(2))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericWorkout>(2,
create: (id, data) => FredericWorkout.fromMap(id, data)));
if (!Hive.isAdapterRegistered(3))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericSetDocument>(3,
create: (id, data) => FredericSetDocument.fromMap(id, data)));
if (!Hive.isAdapterRegistered(4))
Hive.registerAdapter(FredericUniversalTypeAdapter<TimeSeriesSetData>(4,
create: (id, data) => TimeSeriesSetData.fromMap(id, data)));
if (!Hive.isAdapterRegistered(5))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericGoal>(5,
create: (id, data) => FredericGoal.fromMap(id, data)));
if (!Hive.isAdapterRegistered(6))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericSet>(6,
create: (id, data) => FredericSet.fromMap(data)));
if (!Hive.isAdapterRegistered(100))
Hive.registerAdapter(TimestampTypeAdapter()); // typeId: 100
// == Hive == End ==

//await Hive.deleteBoxFromDisk('SetVolumeDataRepresentation');

// == Load Startup Preferences ==
SharedPreferences preferences = await SharedPreferences.getInstance();
Object? themeID = preferences.get('colortheme');
if (themeID != null && themeID is int) {
_colorTheme = FredericColorTheme.find(themeID);
}
// == Load Startup Preferences == End ==

// == Disable Analytics in debug mode
if (kDebugMode) {
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(false);
await FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(false);
} else {
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
await FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(true);
}
await FirebasePerformance.instance.setPerformanceCollectionEnabled(true);

timeUntilRunApp.stop();
runApp(EasyLocalization(
supportedLocales: [Locale('en'), Locale('de')],
fallbackLocale: Locale('en'),
useOnlyLangCode: true,
path: 'assets/translations',
child: FredericBase()));
}, (error, stack) => FirebaseCrashlytics.instance.recordError(error, stack));
// == Crashlytics & Performance == End ==

// == Hive == Register Adapters ==
await Hive.initFlutter();
if (!Hive.isAdapterRegistered(1))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericActivity>(1,
create: (id, data) => FredericActivity.fromMap(id, data)));
if (!Hive.isAdapterRegistered(2))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericWorkout>(2,
create: (id, data) => FredericWorkout.fromMap(id, data)));
if (!Hive.isAdapterRegistered(3))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericSetDocument>(3,
create: (id, data) => FredericSetDocument.fromMap(id, data)));
if (!Hive.isAdapterRegistered(4))
Hive.registerAdapter(FredericUniversalTypeAdapter<TimeSeriesSetData>(4,
create: (id, data) => TimeSeriesSetData.fromMap(id, data)));
if (!Hive.isAdapterRegistered(5))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericGoal>(5,
create: (id, data) => FredericGoal.fromMap(id, data)));
if (!Hive.isAdapterRegistered(6))
Hive.registerAdapter(FredericUniversalTypeAdapter<FredericSet>(6,
create: (id, data) => FredericSet.fromMap(data)));
if (!Hive.isAdapterRegistered(100))
Hive.registerAdapter(TimestampTypeAdapter()); // typeId: 100
// == Hive == End ==

//await Hive.deleteBoxFromDisk('SetVolumeDataRepresentation');

// == Load Startup Preferences ==
SharedPreferences preferences = await SharedPreferences.getInstance();
Object? themeID = preferences.get('colortheme');
if (themeID != null && themeID is int) {
_colorTheme = FredericColorTheme.find(themeID);
}
// == Load Startup Preferences == End ==

// == Disable Analytics in debug mode
if (kDebugMode) {
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(false);
await FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(false);
} else {
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
await FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(true);
}
await FirebasePerformance.instance.setPerformanceCollectionEnabled(true);

timeUntilRunApp.stop();
runApp(EasyLocalization(
supportedLocales: [Locale('en'), Locale('de')],
fallbackLocale: Locale('en'),
useOnlyLangCode: true,
path: 'assets/translations',
child: FredericBase()));

//}, (error, stack) => FirebaseCrashlytics.instance.recordError(error, stack));
}

class FredericBase extends StatefulWidget {
Expand Down

0 comments on commit 0e8e367

Please sign in to comment.