File tree Expand file tree Collapse file tree 4 files changed +27
-1
lines changed Expand file tree Collapse file tree 4 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,15 @@ class IntegrationController extends MomentumController<IntegrationModel> {
32
32
return _mal! ;
33
33
}
34
34
35
+ void onReady () {
36
+ mal.onLoggedIn ((getToken) async {
37
+ model.update (loading: true );
38
+ await getToken ();
39
+ final profile = await mal.getUserProfile ();
40
+ model.update (loading: false , malUsername: profile.name);
41
+ });
42
+ }
43
+
35
44
Future <String > getLoginUrl () async {
36
45
model.update (loading: true );
37
46
final result = await mal.getLoginUrl ();
Original file line number Diff line number Diff line change @@ -18,16 +18,26 @@ class MalService extends MalInterface {
18
18
String _codeChallenge = '' ;
19
19
String _authCode = '' ;
20
20
21
+ void Function (Future <void > Function () getToken)? loginCallback;
22
+
21
23
MalService () {
22
24
linkStream.listen ((event) {
23
25
_authCode = event ?? '' ;
24
26
if (_authCode.isNotEmpty) {
25
- _getToken ();
27
+ if (loginCallback != null ) {
28
+ loginCallback !(_getToken);
29
+ } else {
30
+ _getToken ();
31
+ }
26
32
}
27
33
});
28
34
_refreshAccessToken ();
29
35
}
30
36
37
+ void onLoggedIn (void Function (Future <void > Function () getToken) callback) {
38
+ loginCallback = callback;
39
+ }
40
+
31
41
Future <void > _saveRefreshToken (String refreshToken) async {
32
42
await sharedPreferences.setString ('MAL_REFRESH_TOKEN' , refreshToken);
33
43
}
Original file line number Diff line number Diff line change @@ -9,6 +9,8 @@ abstract class MalInterface extends MomentumService {
9
9
10
10
Future <String > getLoginUrl ();
11
11
12
+ void onLoggedIn (void Function (Future <void > Function () getToken) callback);
13
+
12
14
Future <MalUserAnimeListResponse > getUserAnimeList ({required String status, required int offset});
13
15
14
16
Future <MalUserProfile > getUserProfile ();
Original file line number Diff line number Diff line change @@ -21,6 +21,11 @@ class MalMockService extends MalInterface {
21
21
return '' ;
22
22
}
23
23
24
+ @override
25
+ void onLoggedIn (void Function (Future <void > Function () getToken) callback) {
26
+ return ;
27
+ }
28
+
24
29
@override
25
30
Future <MalUserAnimeListResponse > getUserAnimeList ({required String status, required int offset}) async {
26
31
const path = 'https://gist.githubusercontent.com/xamantra/2c6b8d8cec2004c5030753b08e65a981/raw/3d39b6e11cc4ce368e8f8ae8166c15207879b33a/mock_mal_user_animelist.json' ;
You can’t perform that action at this time.
0 commit comments