Skip to content

Commit

Permalink
fix: improve offline mode, check earlier if device is offline
Browse files Browse the repository at this point in the history
  • Loading branch information
johannesvedder committed May 13, 2023
1 parent 25e6c5e commit c7a143f
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 15 deletions.
34 changes: 21 additions & 13 deletions app/lib/screens/app_onboarding/loading_screen.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';
import 'package:provider/provider.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:studyu_app/screens/app_onboarding/iframe_helper.dart';
import 'package:studyu_app/screens/study/onboarding/eligibility_screen.dart';
import 'package:studyu_app/screens/study/tasks/task_screen.dart';
import 'package:studyu_app/util/cache.dart';
import 'package:studyu_core/core.dart';
import 'package:studyu_core/env.dart';
import 'package:studyu_flutter_common/studyu_flutter_common.dart';
import 'package:studyu_app/models/app_state.dart';
import 'package:studyu_app/routes.dart';
Expand Down Expand Up @@ -176,20 +178,26 @@ class _LoadingScreenState extends State<LoadingScreen> {
}
StudySubject? subject;
try {
subject = await SupabaseQuery.getById<StudySubject>(
selectedStudyObjectId,
selectedColumns: [
'*',
'study!study_subject_studyId_fkey(*)',
'subject_progress(*)',
],
);
try {
InternetAddress.lookup(Uri.parse(supabaseUrl).host);
} on SocketException catch (_) {
Analytics.logger.warning('Could not connect to supabase url. Fallback to offline mode');
subject = await Cache.loadSubject();
}
subject ??= await SupabaseQuery.getById<StudySubject>(
selectedStudyObjectId,
selectedColumns: [
'*',
'study!study_subject_studyId_fkey(*)',
'subject_progress(*)',
],
);
} catch (exception, stackTrace) {
Analytics.logger.warning("Could not retrieve subject, maybe JWT is expired, try logging in");
await Analytics.captureEvent(
/*await Analytics.captureEvent(
SentryEvent(throwable: exception),
stackTrace: stackTrace,
);
);*/
bool signInRes = false;
try {
// Try signing in again. Needed if JWT is expired
Expand All @@ -207,10 +215,10 @@ class _LoadingScreenState extends State<LoadingScreen> {
} catch (exception, stackTrace) {
try {
Analytics.logger.warning('Could not login and retrieve the study subject. Fallback to offline mode');
await Analytics.captureEvent(
/*await Analytics.captureEvent(
SentryEvent(throwable: exception),
stackTrace: stackTrace,
);
);*/
subject = await Cache.loadSubject();
} catch (exception, stackTrace) {
Analytics.logger.severe('Error when initializing offline mode');
Expand Down
4 changes: 2 additions & 2 deletions flutter_common/lib/src/utils/env_loader.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ Future<void> loadEnv() async {
await Supabase.initialize(
url: supabaseUrl,
anonKey: supabaseAnonKey,
// todo adapt for v2
authCallbackUrlHostname: kIsWeb ? null : 'designer.studyu.health', // optional
debug: true, // optional
debug: true,
// optional
);
env.setEnv(
dotenv.env['STUDYU_SUPABASE_URL']!,
Expand Down

0 comments on commit c7a143f

Please sign in to comment.