Skip to content

Commit c906ecf

Browse files
committed
refactor: Customize GetDelegate and GetNavigate (Router)
1. open android (Android Studio Narwhal 2025.1.3) 2. open ios (XCode 26.x/17A400) 3. flutter (v3.35.4)
1 parent 7f96dcb commit c906ecf

32 files changed

Lines changed: 1074 additions & 939 deletions

lib/main.dart

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,13 @@ import 'package:firebase_core/firebase_core.dart';
1010
import 'package:firebase_auth/firebase_auth.dart';
1111
import 'package:flutter_localizations/flutter_localizations.dart';
1212
import 'package:dompet/configure/get_translate.dart';
13+
import 'package:dompet/routes/navigator.dart';
14+
import 'package:dompet/routes/router.dart';
1315
import 'package:dompet/logger/logger.dart';
1416
import 'package:dompet/service/bind.dart';
15-
import 'package:dompet/routes/pages.dart';
16-
import 'package:dompet/theme/light.dart';
17+
import 'package:dompet/theme/index.dart';
1718

1819
final translations = JsonTranslations();
19-
final navigatorKey = GlobalKey<NavigatorState>();
20-
final routeObserver = RouteObserver<ModalRoute<void>>();
2120
const fallbackLocale = Locale('en', 'US');
2221

2322
void main() async {
@@ -89,6 +88,7 @@ class MyAppState extends State<MyApp> with WidgetsBindingObserver {
8988
late final mediaQueryController = Get.put(MediaQueryController());
9089
late final localeController = Get.put(LocaleController());
9190
late final storeController = Get.put(StoreController());
91+
late final getPages = GetRouter.pages();
9292

9393
@override
9494
void dispose() {
@@ -136,7 +136,7 @@ class MyAppState extends State<MyApp> with WidgetsBindingObserver {
136136
Widget build(BuildContext context) {
137137
mediaQueryController.update(mediaQuery: MediaQuery.of(context));
138138

139-
return GetMaterialApp(
139+
return GetMaterialApp.router(
140140
builder: (context, child) {
141141
return Obx(() {
142142
final mediaQuery = mediaQueryController;
@@ -150,26 +150,28 @@ class MyAppState extends State<MyApp> with WidgetsBindingObserver {
150150
);
151151
});
152152
},
153-
supportedLocales: [Locale('en'), Locale('zh')],
153+
supportedLocales: [
154+
// supports
155+
Locale('en'),
156+
Locale('zh'),
157+
],
154158
localizationsDelegates: [
155159
GlobalWidgetsLocalizations.delegate,
156160
GlobalMaterialLocalizations.delegate,
157161
GlobalCupertinoLocalizations.delegate,
158162
],
159163
debugShowCheckedModeBanner: false,
160-
navigatorObservers: [routeObserver],
164+
logWriterCallback: GetRouter.logWriter,
161165
defaultTransition: Transition.rightToLeft,
162-
logWriterCallback: logWriterCallback,
166+
routerDelegate: AppDelegate(pages: getPages),
163167
fallbackLocale: fallbackLocale,
164-
initialRoute: GetRoutes.login,
165-
navigatorKey: navigatorKey,
166168
translations: translations,
167169
enableLog: kDebugMode,
168-
getPages: GetRoutes.pages(),
170+
getPages: getPages,
169171
locale: locale,
170-
theme: lightTheme,
171-
binds: bindings,
172172
title: 'Dompet',
173+
theme: theme,
174+
binds: binds,
173175
);
174176
}
175177
}

lib/pages/card/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/card/controller.dart';
55
import 'package:dompet/pages/card/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/date.dart';
78
import 'package:dompet/extension/size.dart';
8-
import 'package:dompet/routes/router.dart';
99

1010
class PageCard extends GetView<PageCardController> {
1111
const PageCard({super.key});
@@ -69,7 +69,7 @@ class PageCard extends GetView<PageCardController> {
6969
children: [
7070
GestureDetector(
7171
behavior: HitTestBehavior.opaque,
72-
onTap: () => GetRouter.back(),
72+
onTap: () => GetNavigate.back(),
7373
child: Image(
7474
image: const AssetImage('lib/assets/images/auth/back.png'),
7575
width: 640.wmax * 36.sr,

lib/pages/home/index.dart

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/home/controller.dart';
55
import 'package:dompet/pages/home/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/money.dart';
78
import 'package:dompet/extension/date.dart';
89
import 'package:dompet/extension/bool.dart';
910
import 'package:dompet/extension/size.dart';
10-
import 'package:dompet/routes/router.dart';
1111

1212
class PageHome extends GetView<PageHomeController> {
1313
const PageHome({super.key});
@@ -113,7 +113,7 @@ class PageHome extends GetView<PageHomeController> {
113113
margin: EdgeInsets.only(top: 640.wmax * 42.sr),
114114
child: GestureDetector(
115115
behavior: HitTestBehavior.opaque,
116-
onTap: () => GetRouter.toNamed(GetRoutes.card),
116+
onTap: () => GetNavigate.toNamed(GetRoutes.card),
117117
child: Container(
118118
width: 640.wmax * 310.sr,
119119
height: 640.wmax * 140.sr,
@@ -180,7 +180,7 @@ class PageHome extends GetView<PageHomeController> {
180180
children: [
181181
GestureDetector(
182182
behavior: HitTestBehavior.opaque,
183-
onTap: () => GetRouter.toNamed(
183+
onTap: () => GetNavigate.toNamed(
184184
GetRoutes.operater,
185185
arguments: 'Transfer',
186186
),
@@ -229,7 +229,7 @@ class PageHome extends GetView<PageHomeController> {
229229
),
230230
GestureDetector(
231231
behavior: HitTestBehavior.opaque,
232-
onTap: () => GetRouter.toNamed(
232+
onTap: () => GetNavigate.toNamed(
233233
GetRoutes.operater,
234234
arguments: 'Payment',
235235
),
@@ -278,7 +278,7 @@ class PageHome extends GetView<PageHomeController> {
278278
),
279279
GestureDetector(
280280
behavior: HitTestBehavior.opaque,
281-
onTap: () => GetRouter.toNamed(
281+
onTap: () => GetNavigate.toNamed(
282282
GetRoutes.operater,
283283
arguments: 'Top up',
284284
),
@@ -534,7 +534,7 @@ class PageHome extends GetView<PageHomeController> {
534534
),
535535
GestureDetector(
536536
behavior: HitTestBehavior.opaque,
537-
onTap: () => GetRouter.toNamed(GetRoutes.profile),
537+
onTap: () => GetNavigate.toNamed(GetRoutes.profile),
538538
child: buildHeaderAvatar(context),
539539
),
540540
],
@@ -593,7 +593,7 @@ class PageHome extends GetView<PageHomeController> {
593593
children: [
594594
GestureDetector(
595595
behavior: HitTestBehavior.opaque,
596-
onTap: () => GetRouter.toNamed(
596+
onTap: () => GetNavigate.toNamed(
597597
GetRoutes.operater,
598598
arguments: 'Transfer',
599599
),
@@ -625,8 +625,10 @@ class PageHome extends GetView<PageHomeController> {
625625
),
626626
GestureDetector(
627627
behavior: HitTestBehavior.opaque,
628-
onTap: () =>
629-
GetRouter.toNamed(GetRoutes.operater, arguments: 'Payment'),
628+
onTap: () => GetNavigate.toNamed(
629+
GetRoutes.operater,
630+
arguments: 'Payment',
631+
),
630632
child: Column(
631633
children: [
632634
Container(
@@ -656,7 +658,7 @@ class PageHome extends GetView<PageHomeController> {
656658
GestureDetector(
657659
behavior: HitTestBehavior.opaque,
658660
onTap: () {
659-
GetRouter.toNamed(GetRoutes.operater, arguments: 'Top up');
661+
GetNavigate.toNamed(GetRoutes.operater, arguments: 'Top up');
660662
},
661663
child: Column(
662664
children: [
@@ -760,7 +762,7 @@ class PageHome extends GetView<PageHomeController> {
760762
),
761763
GestureDetector(
762764
behavior: HitTestBehavior.opaque,
763-
onTap: () => GetRouter.toNamed(GetRoutes.stats),
765+
onTap: () => GetNavigate.toNamed(GetRoutes.stats),
764766
child: Image.asset(
765767
'lib/assets/images/tabbar/chart.png',
766768
width: 640.wmax * 28.sr,
@@ -770,7 +772,7 @@ class PageHome extends GetView<PageHomeController> {
770772
),
771773
GestureDetector(
772774
behavior: HitTestBehavior.opaque,
773-
onTap: () => GetRouter.toNamed(GetRoutes.notification),
775+
onTap: () => GetNavigate.toNamed(GetRoutes.notification),
774776
child: Image.asset(
775777
'lib/assets/images/tabbar/notification.png',
776778
width: 640.wmax * 28.sr,
@@ -780,7 +782,7 @@ class PageHome extends GetView<PageHomeController> {
780782
),
781783
GestureDetector(
782784
behavior: HitTestBehavior.opaque,
783-
onTap: () => GetRouter.toNamed(GetRoutes.settings),
785+
onTap: () => GetNavigate.toNamed(GetRoutes.settings),
784786
child: Image.asset(
785787
'lib/assets/images/tabbar/settings.png',
786788
width: 640.wmax * 28.sr,

lib/pages/langs/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/langs/controller.dart';
55
import 'package:dompet/pages/langs/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/bool.dart';
78
import 'package:dompet/extension/size.dart';
8-
import 'package:dompet/routes/router.dart';
99

1010
class PageLangs extends GetView<PageLangsController> {
1111
const PageLangs({super.key});
@@ -133,7 +133,7 @@ class PageLangs extends GetView<PageLangsController> {
133133
children: [
134134
GestureDetector(
135135
behavior: HitTestBehavior.opaque,
136-
onTap: () => GetRouter.back(),
136+
onTap: () => GetNavigate.back(),
137137
child: Image(
138138
image: const AssetImage('lib/assets/images/auth/back.png'),
139139
width: 640.wmax * 36.sr,

lib/pages/logger/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import 'package:flutter/material.dart';
44
import 'package:google_fonts/google_fonts.dart';
55
export 'package:dompet/pages/logger/controller.dart';
66
import 'package:dompet/pages/logger/controller.dart';
7+
import 'package:dompet/routes/navigator.dart';
78
import 'package:dompet/extension/size.dart';
8-
import 'package:dompet/routes/router.dart';
99

1010
class PageLogger extends GetView<PageLoggerController> {
1111
const PageLogger({super.key});
@@ -136,7 +136,7 @@ class PageLogger extends GetView<PageLoggerController> {
136136
children: [
137137
GestureDetector(
138138
behavior: HitTestBehavior.opaque,
139-
onTap: () => GetRouter.back(),
139+
onTap: () => GetNavigate.back(),
140140
child: Image(
141141
image: const AssetImage('lib/assets/images/auth/back.png'),
142142
width: 640.wmax * 36.sr,

lib/pages/login/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import 'package:flutter/material.dart';
33
import 'package:flutter/gestures.dart';
44
export 'package:dompet/pages/login/controller.dart';
55
import 'package:dompet/pages/login/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/size.dart';
7-
import 'package:dompet/routes/router.dart';
88

99
class PageLogin extends GetView<PageLoginController> {
1010
const PageLogin({super.key});
@@ -463,7 +463,7 @@ class PageLogin extends GetView<PageLoginController> {
463463
color: const Color(0xff81c2ff),
464464
),
465465
recognizer: TapGestureRecognizer()
466-
..onTap = () => GetRouter.toNamed(GetRoutes.register),
466+
..onTap = () => GetNavigate.toNamed(GetRoutes.register),
467467
),
468468
],
469469
),

lib/pages/notification/index.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/notification/controller.dart';
55
import 'package:dompet/pages/notification/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/money.dart';
7-
import 'package:dompet/models/message.dart';
88
import 'package:dompet/extension/date.dart';
99
import 'package:dompet/extension/size.dart';
10-
import 'package:dompet/routes/router.dart';
10+
import 'package:dompet/models/message.dart';
1111

1212
class PageNotification extends GetView<PageNotificationController> {
1313
const PageNotification({super.key});
@@ -135,7 +135,7 @@ class PageNotification extends GetView<PageNotificationController> {
135135
children: [
136136
GestureDetector(
137137
behavior: HitTestBehavior.opaque,
138-
onTap: () => GetRouter.back(),
138+
onTap: () => GetNavigate.back(),
139139
child: Image(
140140
image: const AssetImage('lib/assets/images/auth/back.png'),
141141
width: 640.wmax * 36.sr,

lib/pages/operater/controller.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import 'package:get/get.dart';
22
import 'package:intl/intl.dart';
33
import 'package:flutter_ringtone_player/flutter_ringtone_player.dart';
44
import 'package:dompet/configure/fluttertoast.dart';
5+
import 'package:dompet/routes/navigator.dart';
56
import 'package:dompet/extension/money.dart';
67
import 'package:dompet/models/message.dart';
78
import 'package:dompet/models/operate.dart';
8-
import 'package:dompet/routes/router.dart';
99
import 'package:dompet/models/order.dart';
1010
import 'package:dompet/service/bind.dart';
1111

@@ -179,7 +179,7 @@ class PageOperaterController extends GetxController {
179179

180180
Toaster.success(
181181
message: '${desc.tr} (-${money.value.usd})',
182-
onTap: () => GetRouter.toNamed(GetRoutes.notification),
182+
onTap: () => GetNavigate.toNamed(GetRoutes.notification),
183183
);
184184
}
185185

@@ -211,7 +211,7 @@ class PageOperaterController extends GetxController {
211211

212212
Toaster.success(
213213
message: '${desc.tr} (${money.value.usd})',
214-
onTap: () => GetRouter.toNamed(GetRoutes.notification),
214+
onTap: () => GetNavigate.toNamed(GetRoutes.notification),
215215
);
216216
}
217217

@@ -243,7 +243,7 @@ class PageOperaterController extends GetxController {
243243

244244
Toaster.success(
245245
message: '${desc.tr} (-${money.value.usd})',
246-
onTap: () => GetRouter.toNamed(GetRoutes.notification),
246+
onTap: () => GetNavigate.toNamed(GetRoutes.notification),
247247
);
248248
}
249249

@@ -277,7 +277,7 @@ class PageOperaterController extends GetxController {
277277

278278
Toaster.success(
279279
message: '${desc.tr} (${money.value.usd})',
280-
onTap: () => GetRouter.toNamed(GetRoutes.notification),
280+
onTap: () => GetNavigate.toNamed(GetRoutes.notification),
281281
);
282282
}
283283
} catch (e) {

lib/pages/operater/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/operater/controller.dart';
55
import 'package:dompet/pages/operater/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/money.dart';
78
import 'package:dompet/extension/bool.dart';
89
import 'package:dompet/extension/size.dart';
9-
import 'package:dompet/routes/router.dart';
1010

1111
class PageOperater extends GetView<PageOperaterController> {
1212
const PageOperater({super.key});
@@ -71,7 +71,7 @@ class PageOperater extends GetView<PageOperaterController> {
7171
children: [
7272
GestureDetector(
7373
behavior: HitTestBehavior.opaque,
74-
onTap: () => GetRouter.back(),
74+
onTap: () => GetNavigate.back(),
7575
child: Image(
7676
image: const AssetImage('lib/assets/images/auth/back.png'),
7777
width: 640.wmax * 36.sr,

lib/pages/profile/index.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import 'package:get/get.dart';
33
import 'package:flutter/material.dart';
44
export 'package:dompet/pages/profile/controller.dart';
55
import 'package:dompet/pages/profile/controller.dart';
6+
import 'package:dompet/routes/navigator.dart';
67
import 'package:dompet/extension/bool.dart';
78
import 'package:dompet/extension/date.dart';
89
import 'package:dompet/extension/size.dart';
9-
import 'package:dompet/routes/router.dart';
1010

1111
class PageProfile extends GetView<PageProfileController> {
1212
const PageProfile({super.key});
@@ -70,7 +70,7 @@ class PageProfile extends GetView<PageProfileController> {
7070
children: [
7171
GestureDetector(
7272
behavior: HitTestBehavior.opaque,
73-
onTap: () => GetRouter.back(),
73+
onTap: () => GetNavigate.back(),
7474
child: Image(
7575
image: const AssetImage('lib/assets/images/auth/back.png'),
7676
width: 640.wmax * 36.sr,

0 commit comments

Comments
 (0)