feat(app): 完成 P0 钱包解锁、下载落盘与手机号登录
This commit is contained in:
1 parent
de941c841c
commit
136ee74618
47 files changed
+3264
-70
No files matched your search
@@ -13,6 +13,7 @@ import 'core/data/remote/auth_api.dart';
|
||||
import 'core/data/remote/catalog_api.dart';
|
||||
import 'core/data/remote/category_api.dart';
|
||||
import 'core/data/remote/comment_api.dart';
|
||||
import 'core/data/remote/commerce_api.dart';
|
||||
import 'core/data/remote/download_api.dart';
|
||||
import 'core/data/remote/interaction_api.dart';
|
||||
import 'core/data/remote/library_api.dart';
|
||||
@@ -23,6 +24,7 @@ import 'core/data/repositories/catalog_repository.dart';
|
||||
import 'core/data/repositories/account_repository.dart';
|
||||
import 'core/data/repositories/category_repository.dart';
|
||||
import 'core/data/repositories/comment_repository.dart';
|
||||
import 'core/data/repositories/commerce_repository.dart';
|
||||
import 'core/data/repositories/download_repository.dart';
|
||||
import 'core/data/repositories/favorite_repository.dart';
|
||||
import 'core/data/repositories/interaction_repository.dart';
|
||||
@@ -38,6 +40,7 @@ import 'core/data/services/favorite_controller.dart';
|
||||
import 'core/data/services/interaction_controller.dart';
|
||||
import 'core/data/services/playback_session.dart';
|
||||
import 'core/data/services/video_player_port.dart';
|
||||
import 'core/data/services/wallet_controller.dart';
|
||||
import 'core/platform/haptics.dart';
|
||||
import 'core/theme/app_theme.dart';
|
||||
import 'core/theme/app_colors.dart';
|
||||
@@ -58,6 +61,7 @@ class LumaDramaApp extends StatefulWidget {
|
||||
this.interactionRepository,
|
||||
this.noticeRepository,
|
||||
this.accountRepository,
|
||||
this.commerceRepository,
|
||||
this.haptics = const FlutterHaptics(),
|
||||
});
|
||||
|
||||
@@ -74,6 +78,7 @@ class LumaDramaApp extends StatefulWidget {
|
||||
final InteractionRepository? interactionRepository;
|
||||
final NoticeRepository? noticeRepository;
|
||||
final AccountRepository? accountRepository;
|
||||
final CommerceRepository? commerceRepository;
|
||||
final Haptics haptics;
|
||||
|
||||
@override
|
||||
@@ -134,6 +139,13 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
_downloadRepository,
|
||||
);
|
||||
|
||||
late final CommerceRepository _commerceRepository =
|
||||
widget.commerceRepository ?? HttpCommerceRepository(CommerceApi(_apiClient));
|
||||
|
||||
late final WalletController _walletController = WalletController(
|
||||
_commerceRepository,
|
||||
);
|
||||
|
||||
late final CommentRepository _commentRepository =
|
||||
widget.commentRepository ?? HttpCommentRepository(CommentApi(_apiClient));
|
||||
|
||||
@@ -158,6 +170,8 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
// 登录/登出时同步收藏状态:收藏属于账号,不能跨账号串联
|
||||
_auth.addListener(_onAuthChanged);
|
||||
if (_auth.isSignedIn) unawaited(_favoriteController.load());
|
||||
if (_auth.isSignedIn) unawaited(_walletController.load());
|
||||
unawaited(_downloadController.restore());
|
||||
}
|
||||
|
||||
bool _wasSignedIn = false;
|
||||
@@ -168,9 +182,11 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
_interactionController.clear();
|
||||
if (_auth.isSignedIn) {
|
||||
unawaited(_favoriteController.load());
|
||||
unawaited(_walletController.load());
|
||||
} else {
|
||||
_favoriteController.clear();
|
||||
_downloadController.reset();
|
||||
_walletController.reset();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -179,6 +195,7 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
_auth.removeListener(_onAuthChanged);
|
||||
_favoriteController.dispose();
|
||||
_downloadController.dispose();
|
||||
_walletController.dispose();
|
||||
_interactionController.dispose();
|
||||
_apiClient.close();
|
||||
super.dispose();
|
||||
@@ -198,6 +215,7 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
Provider<InteractionRepository>.value(value: _interactionRepository),
|
||||
Provider<NoticeRepository>.value(value: _noticeRepository),
|
||||
Provider<AccountRepository>.value(value: _accountRepository),
|
||||
Provider<CommerceRepository>.value(value: _commerceRepository),
|
||||
Provider<Haptics>.value(value: widget.haptics),
|
||||
ChangeNotifierProvider(
|
||||
create: (_) => CatalogController(_catalogRepository)..load(),
|
||||
@@ -208,6 +226,7 @@ class _LumaDramaAppState extends State<LumaDramaApp> {
|
||||
ChangeNotifierProvider(create: (_) => LocaleController()..load()),
|
||||
ChangeNotifierProvider.value(value: _favoriteController),
|
||||
ChangeNotifierProvider.value(value: _downloadController),
|
||||
ChangeNotifierProvider.value(value: _walletController),
|
||||
ChangeNotifierProvider.value(value: _interactionController),
|
||||
ChangeNotifierProvider.value(value: _auth),
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user