Skip to content

Commit d32b3c3

Browse files
author
ligansheng
committed
适配flutter最新sdk
bug较多
1 parent 2ffd639 commit d32b3c3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3764
-3677
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,6 @@ app.*.map.json
4545
/android/app/debug
4646
/android/app/profile
4747
/android/app/release
48+
49+
# FVM Version Cache
50+
.fvm/

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ apply plugin: 'kotlin-android'
3333
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
3434

3535
android {
36-
compileSdkVersion 33
36+
compileSdkVersion 34
3737
// ndkVersion flutter.ndkVersion
3838

3939
compileOptions {
@@ -55,7 +55,7 @@ android {
5555
// You can update the following values to match your application needs.
5656
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
5757
// minSdkVersion flutter.minSdkVersion
58-
minSdkVersion 19
58+
minSdkVersion flutter.minSdkVersion
5959
targetSdkVersion 33
6060
versionCode flutterVersionCode.toInteger()
6161
versionName flutterVersionName

lib/common/constants/colors.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class AppTheme {
3434
headlineMedium:TextStyle(color: Color(0xFF4D4D4D)) ,
3535
headlineSmall:TextStyle(color: Color(0xFF4D4D4D)) ,
3636
),
37-
bottomAppBarColor: onPrimaryDark,
37+
// bottomAppBarColor: onPrimaryDark,
3838
scaffoldBackgroundColor: const Color(0xFFF5F3F3),
3939
appBarTheme: const AppBarTheme(backgroundColor: Color(0xFFF5F3F3), foregroundColor: primaryDark, elevation: 0));
4040

@@ -55,7 +55,7 @@ class AppTheme {
5555
}),
5656
cardColor: const Color(0xFFECEBEB),
5757
primaryColor: const Color(0xffe56260),
58-
bottomAppBarColor: onSurfaceDark,
58+
// bottomAppBarColor: onSurfaceDark,
5959
scaffoldBackgroundColor: const Color(0xff121212),
6060
appBarTheme: const AppBarTheme(
6161
systemOverlayStyle: SystemUiOverlayStyle(statusBarBrightness: Brightness.light, statusBarIconBrightness: Brightness.light),

lib/common/netease_api/src/encrypt_ext.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class RSAExt extends AbstractRSAExt implements Algorithm {
9292
: super(publicKey: publicKey, privateKey: privateKey);
9393

9494
@override
95-
Encrypted encrypt(Uint8List bytes, {IV? iv}) {
95+
Encrypted encrypt(Uint8List bytes, {IV? iv, Uint8List? associatedData}) {
9696
if (publicKey == null) {
9797
throw StateError('Can\'t encrypt without a public key, null given.');
9898
}
@@ -105,7 +105,7 @@ class RSAExt extends AbstractRSAExt implements Algorithm {
105105
}
106106

107107
@override
108-
Uint8List decrypt(Encrypted encrypted, {IV? iv}) {
108+
Uint8List decrypt(Encrypted encrypted, {IV? iv, Uint8List? associatedData}) {
109109
if (privateKey == null) {
110110
throw StateError('Can\'t decrypt without a private key, null given.');
111111
}

lib/main.dart

Lines changed: 115 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
import 'package:audio_service/audio_service.dart';
2+
import 'package:auto_route/auto_route.dart';
23

34
import 'package:bujuan/common/bujuan_audio_handler.dart';
45
import 'package:bujuan/common/constants/other.dart';
56
import 'package:bujuan/common/constants/platform_utils.dart';
67
import 'package:bujuan/common/netease_api/netease_music_api.dart';
7-
import 'package:bujuan/pages/a_rebuild/home/home.dart';
8-
import 'package:bujuan/pages/a_rebuild/outside/outside.dart';
9-
import 'package:bujuan/pages/a_rebuild/playlist/playlist.dart';
10-
import 'package:bujuan/pages/a_rebuild/user/user.dart';
11-
import 'package:bujuan/pages/login/login.dart';
8+
import 'package:bujuan/pages/album/controller.dart';
9+
import 'package:bujuan/pages/home/home_binding.dart';
10+
import 'package:bujuan/pages/index/cound_controller.dart';
11+
import 'package:bujuan/pages/index/index_controller.dart';
12+
import 'package:bujuan/pages/play_list/playlist_controller.dart';
13+
import 'package:bujuan/pages/playlist_manager/playlist_manager_controller.dart';
14+
import 'package:bujuan/pages/user/user_controller.dart';
15+
import 'package:bujuan/routes/router.gr.dart';
1216
import 'package:flutter/material.dart';
1317
import 'package:flutter/services.dart';
1418
import 'package:flutter_displaymode/flutter_displaymode.dart';
1519
import 'package:flutter_riverpod/flutter_riverpod.dart';
1620
import 'package:flutter_screenutil/flutter_screenutil.dart';
21+
import 'package:flutter_zoom_drawer/flutter_zoom_drawer.dart';
22+
import 'package:get/get.dart';
1723
import 'package:get_it/get_it.dart';
1824
import 'package:go_router/go_router.dart';
1925
import 'package:hive_flutter/hive_flutter.dart';
@@ -27,6 +33,7 @@ main() async {
2733
bool land = PlatformUtils.isMacOS || PlatformUtils.isWindows || OtherUtils.isPad();
2834
final getIt = GetIt.instance;
2935
await _initAudioServer(getIt);
36+
final rootRouter = getIt<RootRouter>();
3037
if (PlatformUtils.isAndroid) {
3138
// await FlutterDisplayMode.setHighRefreshRate();
3239
// SystemChrome.setEnabledSystemUIMode(
@@ -44,118 +51,114 @@ main() async {
4451
SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight]);
4552
}
4653
//外部
47-
final rootNavigatorKey = GlobalKey<NavigatorState>();
48-
final shellNavigatorKey = GlobalKey<NavigatorState>();
49-
final router = GoRouter(
50-
navigatorKey: rootNavigatorKey,
51-
routes: [
52-
ShellRoute(navigatorKey: shellNavigatorKey, builder: (BuildContext context, GoRouterState state, Widget child) => Outside(child: child), routes: [
53-
GoRoute(path: '/', builder: (c, s) => const HomePage(), routes: [
54-
GoRoute(path: 'playlist', builder: (c, s) => PlayList(s.extra! as Play)),
55-
]),
56-
GoRoute(path: '/user', builder: (c, s) => const User()),
57-
GoRoute(path: '/login', builder: (c, s) => const LoginViewPage()),
58-
])
59-
],
60-
);
61-
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge).then((value) => runApp(ProviderScope(
62-
child: ScreenUtilInit(
63-
designSize: const Size(750, 1334),
64-
minTextAdapt: true,
65-
splitScreenMode: true,
66-
builder: (context, child) {
67-
return MaterialApp.router(
68-
// showPerformanceOverlay: true,
69-
theme: AppTheme.light,
70-
routerConfig: router,
71-
);
72-
}))));
73-
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge).then((value) => runApp(ScreenUtilInit(
74-
// designSize: !land ? const Size(750, 1334) : const Size(2339, 1080),
75-
// minTextAdapt: true,
76-
// splitScreenMode: true,
77-
// builder: (BuildContext context, Widget? child) {
78-
// HomeBinding().dependencies();
79-
// return GetMaterialApp.router(
80-
// title: "Bujuan",
81-
// theme: AppTheme.light,
82-
// darkTheme: AppTheme.dark,
83-
// // showPerformanceOverlay: true,
84-
// // checkerboardOffscreenLayers: true,
85-
// // checkerboardRasterCacheImages: true,
86-
// themeMode: ThemeMode.system,
87-
// routerDelegate: rootRouter.delegate(navigatorObservers: () => [MyObserver()]),
88-
// routeInformationParser: rootRouter.defaultRouteParser(),
89-
// debugShowCheckedModeBanner: false,
90-
// builder: (_, router) => MediaQuery(data: MediaQuery.of(_).copyWith(textScaleFactor: 1.0), child: router!),
91-
// );
92-
// },
93-
// )));
54+
// final rootNavigatorKey = GlobalKey<NavigatorState>();
55+
// final shellNavigatorKey = GlobalKey<NavigatorState>();
56+
// final router = GoRouter(
57+
// navigatorKey: rootNavigatorKey,
58+
// routes: [
59+
// ShellRoute(navigatorKey: shellNavigatorKey, builder: (BuildContext context, GoRouterState state, Widget child) => Outside(child: child), routes: [
60+
// GoRoute(path: '/', builder: (c, s) => const HomePage(), routes: [
61+
// GoRoute(path: 'playlist', builder: (c, s) => PlayList(s.extra! as Play)),
62+
// ]),
63+
// GoRoute(path: '/user', builder: (c, s) => const User()),
64+
// GoRoute(path: '/login', builder: (c, s) => const LoginViewPage()),
65+
// ])
66+
// ],
67+
// );
68+
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge).then((value) => runApp(ProviderScope(
69+
// child: ScreenUtilInit(
70+
// designSize: const Size(750, 1334),
71+
// minTextAdapt: true,
72+
// splitScreenMode: true,
73+
// builder: (context, child) {
74+
// return MaterialApp.router(
75+
// // showPerformanceOverlay: true,
76+
// theme: AppTheme.light,
77+
// routerConfig: router,
78+
// );
79+
// }))));
80+
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge).then((value) => runApp(ScreenUtilInit(
81+
designSize: !land ? const Size(750, 1334) : const Size(2339, 1080),
82+
minTextAdapt: true,
83+
splitScreenMode: true,
84+
builder: (BuildContext context, Widget? child) {
85+
HomeBinding().dependencies();
86+
return GetMaterialApp.router(
87+
title: "Bujuan",
88+
theme: AppTheme.light,
89+
darkTheme: AppTheme.dark,
90+
// showPerformanceOverlay: true,
91+
// checkerboardOffscreenLayers: true,
92+
// checkerboardRasterCacheImages: true,
93+
themeMode: ThemeMode.system,
94+
routerDelegate: rootRouter.delegate(navigatorObservers: () => [MyObserver()]),
95+
routeInformationParser: rootRouter.defaultRouteParser(),
96+
debugShowCheckedModeBanner: false,
97+
builder: (_, router) => MediaQuery(data: MediaQuery.of(_).copyWith(textScaleFactor: 1.0), child: router!),
98+
);
99+
},
100+
)));
94101
}
95102

96-
// class MyObserver extends AutoRouterObserver {
97-
// _clearOrPutController(String name, {bool del = false}) {
98-
// if (name.isEmpty) return;
99-
// switch (name) {
100-
// case 'AlbumView':
101-
// del ? Get.delete<CloudController>() : Get.lazyPut<CloudController>(() => CloudController());
102-
// break;
103-
// case 'MainView':
104-
// del ? Get.delete<IndexController>() : Get.lazyPut<IndexController>(() => IndexController());
105-
// break;
106-
// case 'UserView':
107-
// del ? Get.delete<UserController>() : Get.lazyPut<UserController>(() => UserController());
108-
// break;
109-
// case 'PlayListView':
110-
// del ? Get.delete<PlayListController>() : Get.lazyPut<PlayListController>(() => PlayListController());
111-
// break;
112-
// case 'AlbumDetails':
113-
// del ? Get.delete<AlbumController>() : Get.lazyPut<AlbumController>(() => AlbumController());
114-
// break;
115-
// case 'PlaylistManagerView':
116-
// del ? Get.delete<PlaylistManager>() : Get.lazyPut<PlaylistManager>(() => PlaylistManager());
117-
// break;
118-
// }
119-
// }
120-
//
121-
// @override
122-
// void didPush(Route route, Route? previousRoute) {
123-
// super.didPush(route, previousRoute);
124-
// _clearOrPutController(route.settings.name ?? '');
125-
// print('New route pushed: ${route.settings.name}');
126-
// }
127-
//
128-
// @override
129-
// void didRemove(Route route, Route? previousRoute) {
130-
// // TODO: implement didRemove
131-
// super.didRemove(route, previousRoute);
132-
// _clearOrPutController(route.settings.name ?? '', del: true);
133-
// }
134-
//
135-
// @override
136-
// void didPop(Route route, Route? previousRoute) {
137-
// // TODO: implement didPop
138-
// super.didPop(route, previousRoute);
139-
// _clearOrPutController(route.settings.name ?? '', del: true);
140-
// }
141-
//
142-
// @override
143-
// void didReplace({Route? newRoute, Route? oldRoute}) {
144-
// super.didReplace(newRoute: newRoute, oldRoute: oldRoute);
145-
// }
146-
//
147-
// // only override to observer tab routes
148-
// @override
149-
// void didInitTabRoute(TabPageRoute route, TabPageRoute? previousRoute) {}
150-
//
151-
// @override
152-
// void didChangeTabRoute(TabPageRoute route, TabPageRoute previousRoute) {}
153-
// }
103+
class MyObserver extends AutoRouterObserver {
104+
_clearOrPutController(String name, {bool del = false}) {
105+
if (name.isEmpty) return;
106+
switch (name) {
107+
case 'AlbumView':
108+
del ? Get.delete<CloudController>() : Get.lazyPut<CloudController>(() => CloudController());
109+
break;
110+
case 'MainView':
111+
del ? Get.delete<IndexController>() : Get.lazyPut<IndexController>(() => IndexController());
112+
break;
113+
case 'UserView':
114+
del ? Get.delete<UserController>() : Get.lazyPut<UserController>(() => UserController());
115+
break;
116+
case 'PlayListView':
117+
del ? Get.delete<PlayListController>() : Get.lazyPut<PlayListController>(() => PlayListController());
118+
break;
119+
case 'AlbumDetails':
120+
del ? Get.delete<AlbumController>() : Get.lazyPut<AlbumController>(() => AlbumController());
121+
break;
122+
case 'PlaylistManagerView':
123+
del ? Get.delete<PlaylistManager>() : Get.lazyPut<PlaylistManager>(() => PlaylistManager());
124+
break;
125+
}
126+
}
127+
128+
@override
129+
void didPush(Route route, Route? previousRoute) {
130+
super.didPush(route, previousRoute);
131+
_clearOrPutController(route.settings.name ?? '');
132+
print('New route pushed: ${route.settings.name}');
133+
}
134+
135+
@override
136+
void didRemove(Route route, Route? previousRoute) {
137+
// TODO: implement didRemove
138+
super.didRemove(route, previousRoute);
139+
_clearOrPutController(route.settings.name ?? '', del: true);
140+
}
141+
142+
@override
143+
void didPop(Route route, Route? previousRoute) {
144+
// TODO: implement didPop
145+
super.didPop(route, previousRoute);
146+
_clearOrPutController(route.settings.name ?? '', del: true);
147+
}
148+
149+
150+
// only override to observer tab routes
151+
@override
152+
void didInitTabRoute(TabPageRoute route, TabPageRoute? previousRoute) {}
153+
154+
@override
155+
void didChangeTabRoute(TabPageRoute route, TabPageRoute previousRoute) {}
156+
}
154157

155158
Future<void> _initAudioServer(getIt) async {
156-
// getIt.registerSingleton<RootRouter>(RootRouter());
159+
getIt.registerSingleton<RootRouter>(RootRouter());
157160
getIt.registerSingleton<AudioPlayer>(AudioPlayer());
158-
// getIt.registerSingleton<ZoomDrawerController>(ZoomDrawerController());
161+
getIt.registerSingleton<ZoomDrawerController>(ZoomDrawerController());
159162
await Hive.initFlutter('BuJuan');
160163
getIt.registerSingleton<Box>(await Hive.openBox('cache'));
161164
await NeteaseMusicApi.init(debug: false);

0 commit comments

Comments
 (0)