Skip to content

Commit

Permalink
feat: Add Fitbit credential deletion on study removal
Browse files Browse the repository at this point in the history
  • Loading branch information
ibrahimozkn committed Jan 24, 2025
1 parent 2374eef commit 99134a7
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 0 deletions.
3 changes: 3 additions & 0 deletions app/lib/screens/app_onboarding/preview.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:studyu_app/models/app_state.dart';
import 'package:studyu_app/routes.dart';
import 'package:studyu_app/util/fitbit_handler.dart';
import 'package:studyu_core/core.dart';
import 'package:studyu_flutter_common/studyu_flutter_common.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
Expand All @@ -13,6 +14,7 @@ class Preview {
final AppLanguage appLanguage;
String? selectedRoute;
String? extra;

bool hasRoute() => selectedRoute != null && selectedRoute!.isNotEmpty;
Study? study;
String? selectedStudyObjectId;
Expand Down Expand Up @@ -75,6 +77,7 @@ class Preview {
],
);
subject.delete();
FitbitHandler.deleteFitbitCredentials(subject.studyId);
deleteActiveStudyReference();
selectedStudyObjectId = '';
}
Expand Down
4 changes: 4 additions & 0 deletions app/lib/screens/study/dashboard/settings.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import 'package:provider/provider.dart';
import 'package:studyu_app/models/app_state.dart';
import 'package:studyu_app/routes.dart';
import 'package:studyu_app/util/app_analytics.dart';
import 'package:studyu_app/util/fitbit_handler.dart';
import 'package:studyu_app/util/localization.dart';
import 'package:studyu_app/util/schedule_notifications.dart';
import 'package:studyu_core/core.dart';
Expand Down Expand Up @@ -188,6 +189,7 @@ class OptOutAlertDialog extends StatelessWidget {
onPressed: () async {
await subject!.softDelete();
await deleteActiveStudyReference();
await FitbitHandler.deleteFitbitCredentials(subject!.studyId);
if (context.mounted) await cancelNotifications(context);
if (context.mounted) {
Navigator.pushNamedAndRemoveUntil(
Expand Down Expand Up @@ -223,6 +225,8 @@ class DeleteAlertDialog extends StatelessWidget {
try {
await subject!.delete(); // hard-delete
await deleteLocalData();
await FitbitHandler.deleteFitbitCredentials(subject!.studyId);

if (context.mounted) await cancelNotifications(context);
if (context.mounted) {
Navigator.pushNamedAndRemoveUntil(
Expand Down
6 changes: 6 additions & 0 deletions app/lib/util/fitbit_handler.dart
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ class FitbitHandler {
);
}

static Future<void> deleteFitbitCredentials(String studyKey) async {
if (await SecureStorage.containsKey('$_fitbitCredentialsPrefix$studyKey')) {
await SecureStorage.delete('$_fitbitCredentialsPrefix$studyKey');
}
}

static Future<void> _storeCredentials(
fitbitter.FitbitCredentials? credentials,
String studyKey,
Expand Down

0 comments on commit 99134a7

Please sign in to comment.