Skip to content

Commit dcb28f1

Browse files
committed
better signout/login
1 parent 9aee801 commit dcb28f1

File tree

6 files changed

+26
-6
lines changed

6 files changed

+26
-6
lines changed

lib/app.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class _AbsAppState extends ConsumerState<AbsApp> with WidgetsBindingObserver {
6161
final settings = ref.watch(specificKeysSettingsProvider(
6262
[Constants.DARK_MODE, Constants.LANGUAGE, Constants.AMOLED_MODE]));
6363
final userIndex = ref.watch(selectedUserProvider);
64+
print('User Index: $userIndex');
6465
//TODO: Two calls. Unify me api calls
6566
if (userIndex >= 0) {
6667
final progressProv = ref.read(progressProvider);

lib/features/auth/server_selection.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,12 @@ class _LoginForm extends StatelessWidget {
179179
padding: EdgeInsets.only(top: 16),
180180
child: CircularProgressIndicator(),
181181
),
182+
const Padding(
183+
padding: EdgeInsets.only(top: 8),
184+
child: Text(
185+
'After login, please restart the app once',
186+
),
187+
),
182188
if (state.errorMessage != null)
183189
Padding(
184190
padding: const EdgeInsets.only(top: 8),

lib/features/settings/platform_settings.dart

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -270,8 +270,17 @@ class PlatformSettings extends ConsumerWidget {
270270
),
271271
..._getOtherUsers(ref, context),
272272
NavigationTile(
273-
(BuildContext context) =>
274-
ref.watch(currentUserProvider.notifier).removeUser(context),
273+
(BuildContext context) {
274+
ref.watch(currentUserProvider.notifier).removeUser(context);
275+
final allUsers = ref.read(usersProvider);
276+
if (allUsers.isNotEmpty) {
277+
if (context.mounted) context.go("/");
278+
ref.read(selectedUserProvider.notifier).state = 0;
279+
} else {
280+
if (context.mounted) context.go("/init");
281+
ref.read(selectedUserProvider.notifier).state = -1;
282+
}
283+
},
275284
leading: Icon(PlatformIcons(context).exitToApp),
276285
title: S.of(context).signOut,
277286
),

lib/provider/bookmark_provider.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class BookmarkProvider extends ChangeNotifier {
3636
List<Bookmark> newBookmarks = [];
3737

3838
try {
39+
api = ref.read(apiProviderNew);
40+
if (api == null) return;
3941
final response = await api!.getMeApi().getUser();
4042
User user = response.data!;
4143

lib/provider/progress_provider.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ class ProgressProvider extends ChangeNotifier {
2424
}
2525

2626
Future<void> getAllProgress() async {
27+
api = ref.read(apiProvider);
28+
print('api: $api');
2729
if (api == null) return;
2830
if (lastUpdated != null &&
2931
DateTime.now().difference(lastUpdated!).inSeconds < 1) {
@@ -68,6 +70,8 @@ class ProgressProvider extends ChangeNotifier {
6870

6971
Future<void> getProgressWithLibraryItem(String id,
7072
{String? episodeId}) async {
73+
api = ref.read(apiProvider);
74+
print('api: $api');
7175
if (api == null) return;
7276

7377
final Completer<void> progressChanged = Completer<void>();

lib/provider/user_provider.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import 'package:dio/dio.dart';
1717
import 'package:flutter/cupertino.dart';
1818
import 'package:flutter/foundation.dart';
1919
import 'package:flutter_riverpod/flutter_riverpod.dart';
20-
import 'package:go_router/go_router.dart';
2120

2221
// StateNotifier to manage the users list and selected user
2322
class UserNotifier extends StateNotifier<List<User>> {
@@ -165,7 +164,6 @@ class CurrentUserNotifier extends StateNotifier<User?> {
165164
if (allUsers == null || allUsers.mounted == false) return;
166165

167166
allUsers.removeUser(state!);
168-
context.go("/");
169167
}
170168
}
171169

@@ -179,7 +177,7 @@ final basePathOverrideProvider = StateProvider<String?>((ref) => null);
179177

180178
// Provider to manage the API client
181179
final apiProvider = Provider<abs_api.AbsApi?>((ref) {
182-
final users = ref.read(usersProvider);
180+
final users = ref.watch(usersProvider);
183181
final index = ref.watch(selectedUserProvider);
184182
final basePathOverride = ref.watch(basePathOverrideProvider);
185183

@@ -225,7 +223,7 @@ final apiProvider = Provider<abs_api.AbsApi?>((ref) {
225223
});
226224

227225
final apiProviderNew = Provider<ABSApi?>((ref) {
228-
final users = ref.read(usersProvider);
226+
final users = ref.watch(usersProvider);
229227
final index = ref.watch(selectedUserProvider);
230228
final basePathOverride = ref.watch(basePathOverrideProvider);
231229

0 commit comments

Comments
 (0)