Skip to content

Commit 2dea6f0

Browse files
fixed: dynamic assignment of app theme colors.
1 parent 4e0ea5e commit 2dea6f0

File tree

7 files changed

+55
-75
lines changed

7 files changed

+55
-75
lines changed

lib/app/app.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import 'package:flutter/material.dart';
33
import 'package:get/get.dart';
44

55
import '../routes/routes.dart';
6+
import '../theme.dart';
67
import '../vaahextendflutter/tag/tag_panel.dart';
78
import '../view/pages/home/home.dart';
8-
import '../theme.dart';
99

1010
final _navigatorKey = GlobalKey<NavigatorState>();
1111

@@ -17,7 +17,7 @@ class TeamApp extends StatelessWidget {
1717
return GetMaterialApp(
1818
title: 'WebReinvent Team',
1919
theme: ThemeData(
20-
primarySwatch: AppTheme.primaryColor,
20+
primarySwatch: AppTheme.colors['primary'],
2121
),
2222
onGenerateInitialRoutes: (String initialRoute) {
2323
return [TeamHomePage.route()];

lib/controllers/base_controller.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:get/get.dart';
22

33
import '../env.dart';
4+
import '../theme.dart';
45
import '../vaahextendflutter/helpers/console_log_helper.dart';
56
import '../vaahextendflutter/services/api.dart';
67

@@ -18,5 +19,6 @@ class BaseController extends GetxController {
1819
'Version: ${envController.config.version}+${envController.config.build}',
1920
);
2021
await Api.initApi();
22+
AppTheme.init();
2123
}
2224
}

lib/env.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import 'vaahextendflutter/helpers/console_log_helper.dart';
1212
const String version = '1.0.0'; // version format 1.0.0 (major.minor.patch)
1313
const String build = '2022100901'; // build no format 'YYYYMMDDNUMBER'
1414

15-
EnvironmentConfig defaultConfig = EnvironmentConfig(
15+
final EnvironmentConfig defaultConfig = EnvironmentConfig(
1616
envType: 'default',
1717
version: version,
1818
build: build,
@@ -24,7 +24,7 @@ EnvironmentConfig defaultConfig = EnvironmentConfig(
2424
enableLocalLogs: true,
2525
enableApiLogs: true,
2626
showEnvAndVersionTag: true,
27-
envAndVersionTagColor: AppTheme.blackColor.withOpacity(0.7),
27+
envAndVersionTagColor: AppTheme.colors['black']!.withOpacity(0.7),
2828
);
2929

3030
// To add new configuration add new key, value pair in envConfigs

lib/theme.dart

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,26 @@ import 'package:flutter/material.dart';
33
import 'vaahextendflutter/base/base_theme.dart';
44

55
class AppTheme {
6-
static const MaterialColor primaryColor = BaseTheme.primaryColor;
7-
static const MaterialColor infoColor = BaseTheme.infoColor;
8-
static const MaterialColor successColor = BaseTheme.successColor;
9-
static const MaterialColor warningColor = BaseTheme.warningColor;
10-
static const MaterialColor dangerColor = BaseTheme.dangerColor;
11-
static const MaterialColor whiteColor = BaseTheme.whiteColor;
12-
static const MaterialColor blackColor = BaseTheme.blackColor;
13-
}
14-
15-
// extends, implements, with
6+
static final Map<String, MaterialColor> colors = Map.of(BaseTheme.colors);
167

17-
// class AppThemeNew {
18-
// static Map<String, MaterialColor>? colors;
19-
20-
// static init() {
21-
// Map<String, MaterialColor> tempColors = BaseThemeNew.colors;
22-
// if (tempColors.containsKey('newPrimaryColor')) {
23-
// tempColors.update('newPrimaryColor', (value) => newPrimaryColor);
24-
// } else {
25-
// Map<String, MaterialColor> color = {'newPrimaryColor': newPrimaryColor};
26-
// tempColors.addAll(color);
27-
// }
28-
// colors = tempColors;
29-
// }
30-
// }
8+
static void init() {
9+
colors['primary'] = newPrimaryColor;
10+
colors['secondary'] = newPrimaryColor;
11+
}
12+
}
3113

32-
// const MaterialColor newPrimaryColor = MaterialColor(
33-
// 0xFF4FB52D,
34-
// <int, Color>{
35-
// 50: Color(0xFFE9FBD5),
36-
// 100: Color(0xFFE9FBD5),
37-
// 200: Color(0xFFCFF7AD),
38-
// 300: Color(0xFFA8E87F),
39-
// 400: Color(0xFF81D25B),
40-
// 500: Color(0xFF4FB52D),
41-
// 600: Color(0xFF369B20),
42-
// 700: Color(0xFF228216),
43-
// 800: Color(0xFF11680E),
44-
// 900: Color(0xFF08560B),
45-
// },
46-
// );
14+
const MaterialColor newPrimaryColor = MaterialColor(
15+
0xFFFF1F6A,
16+
<int, Color>{
17+
50: Color(0xFFFFD4D2),
18+
100: Color(0xFFFFD4D2),
19+
200: Color(0xFFFFA5A8),
20+
300: Color(0xFFFF788B),
21+
400: Color(0xFFFF577E),
22+
500: Color(0xFFFF1F6A),
23+
600: Color(0xFFDB166B),
24+
700: Color(0xFFB70F68),
25+
800: Color(0xFF930960),
26+
900: Color(0xFF7A055A),
27+
},
28+
);

lib/vaahextendflutter/base/base_theme.dart

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,18 @@
11
import 'package:flutter/material.dart';
22

3-
class BaseThemeNew {
3+
class BaseTheme {
44
static const Map<String, MaterialColor> colors = {
5-
'primaryColor': _primaryColor,
6-
'infoColor': _infoColor,
5+
'primary': _primary,
6+
'info': _info,
7+
'success': _success,
8+
'warning': _warning,
9+
'danger': _danger,
10+
'white': _white,
11+
'black': _black,
712
};
813
}
914

10-
class BaseTheme {
11-
static const MaterialColor primaryColor = _primaryColor;
12-
static const MaterialColor infoColor = _infoColor;
13-
static const MaterialColor successColor = _successColor;
14-
static const MaterialColor warningColor = _warningColor;
15-
static const MaterialColor dangerColor = _dangerColor;
16-
static const MaterialColor whiteColor = _whiteColor;
17-
static const MaterialColor blackColor = _blackColor;
18-
}
19-
20-
const MaterialColor _primaryColor = MaterialColor(
15+
const MaterialColor _primary = MaterialColor(
2116
0xFF3366FF,
2217
<int, Color>{
2318
50: Color(0xFFD6E4FF),
@@ -33,7 +28,7 @@ const MaterialColor _primaryColor = MaterialColor(
3328
},
3429
);
3530

36-
const MaterialColor _successColor = MaterialColor(
31+
const MaterialColor _success = MaterialColor(
3732
0xFF4FB52D,
3833
<int, Color>{
3934
50: Color(0xFFE9FBD5),
@@ -49,7 +44,7 @@ const MaterialColor _successColor = MaterialColor(
4944
},
5045
);
5146

52-
const MaterialColor _infoColor = MaterialColor(
47+
const MaterialColor _info = MaterialColor(
5348
0xFF4CA8FF,
5449
<int, Color>{
5550
50: Color(0xFFDBF4FF),
@@ -65,7 +60,7 @@ const MaterialColor _infoColor = MaterialColor(
6560
},
6661
);
6762

68-
const MaterialColor _warningColor = MaterialColor(
63+
const MaterialColor _warning = MaterialColor(
6964
0xFFFFBF00,
7065
<int, Color>{
7166
50: Color(0xFFFFF7CC),
@@ -81,7 +76,7 @@ const MaterialColor _warningColor = MaterialColor(
8176
},
8277
);
8378

84-
const MaterialColor _dangerColor = MaterialColor(
79+
const MaterialColor _danger = MaterialColor(
8580
0xFFFF382D,
8681
<int, Color>{
8782
50: Color(0xFFFFE5D5),
@@ -97,7 +92,7 @@ const MaterialColor _dangerColor = MaterialColor(
9792
},
9893
);
9994

100-
const MaterialColor _whiteColor = MaterialColor(
95+
const MaterialColor _white = MaterialColor(
10196
0xFFFFFFFF,
10297
<int, Color>{
10398
50: Color(0xFFFFFFFF),
@@ -113,7 +108,7 @@ const MaterialColor _whiteColor = MaterialColor(
113108
},
114109
);
115110

116-
const MaterialColor _blackColor = MaterialColor(
111+
const MaterialColor _black = MaterialColor(
117112
0xFF000000,
118113
<int, Color>{
119114
50: Color(0xFFF2F2F2),

lib/vaahextendflutter/helpers/helpers.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ class Helpers {
1616
msg: content,
1717
toastLength: Toast.LENGTH_SHORT,
1818
gravity: ToastGravity.BOTTOM,
19-
backgroundColor: AppTheme.whiteColor,
20-
textColor: AppTheme.blackColor,
19+
backgroundColor: AppTheme.colors['white'],
20+
textColor: AppTheme.colors['black'],
2121
fontSize: 16.0,
2222
);
2323
}
@@ -28,7 +28,7 @@ class Helpers {
2828
List<String>? content,
2929
String? hint,
3030
List<Widget>? actions,
31-
Color color = AppTheme.whiteColor,
31+
Color color = Colors.white,
3232
}) {
3333
return Get.dialog(
3434
AlertDialog(
@@ -79,7 +79,7 @@ class Helpers {
7979
child: Text(
8080
'Ok',
8181
style: TextStyle(
82-
color: color == AppTheme.whiteColor ? AppTheme.blackColor : AppTheme.whiteColor,
82+
color: color == AppTheme.colors['white'] ? AppTheme.colors['black'] : AppTheme.colors['white'],
8383
),
8484
),
8585
onPressed: () {
@@ -114,7 +114,7 @@ class Helpers {
114114
content: content,
115115
hint: hint,
116116
actions: actions,
117-
color: AppTheme.dangerColor,
117+
color: AppTheme.colors['danger']!,
118118
);
119119
}
120120

@@ -129,7 +129,7 @@ class Helpers {
129129
content: content,
130130
hint: hint,
131131
actions: actions,
132-
color: AppTheme.successColor,
132+
color: AppTheme.colors['success']!,
133133
);
134134
}
135135
}

lib/vaahextendflutter/services/api.dart

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'dart:async';
22

33
import 'package:dio/dio.dart';
44
import 'package:flutter/cupertino.dart';
5+
import 'package:flutter/material.dart';
56
import 'package:fluttertoast/fluttertoast.dart';
67
import 'package:get/get.dart' as getx;
78

@@ -258,7 +259,7 @@ class Api {
258259
await Helpers.showErrorToast(content: 'Invalid request type!');
259260
break;
260261
}
261-
_showToast(content: 'ERR: Invalid request type!', color: AppTheme.dangerColor);
262+
_showToast(content: 'ERR: Invalid request type!', color: AppTheme.colors['danger']!,);
262263
break;
263264
}
264265
}
@@ -316,7 +317,7 @@ class Api {
316317
} else {
317318
_showToast(
318319
content: responseMessages?.join('\n') ?? 'Successful',
319-
color: AppTheme.successColor,
320+
color: AppTheme.colors['success']!,
320321
);
321322
}
322323
}
@@ -359,7 +360,7 @@ class Api {
359360
}
360361
_showToast(
361362
content: 'ERR: Check your internet connection!',
362-
color: AppTheme.successColor,
363+
color: AppTheme.colors['success']!,
363364
);
364365
}
365366
}
@@ -462,7 +463,7 @@ class Api {
462463
}
463464
_showToast(
464465
content: errors.isEmpty ? 'Error' : 'ERR: ${errors.join('\n')}',
465-
color: AppTheme.successColor,
466+
color: AppTheme.colors['success']!,
466467
);
467468
}
468469
}
@@ -476,14 +477,14 @@ class Api {
476477

477478
static void _showToast({
478479
required String content,
479-
Color color = AppTheme.whiteColor,
480+
Color color = Colors.white,
480481
}) {
481482
Fluttertoast.showToast(
482483
msg: content,
483484
toastLength: Toast.LENGTH_SHORT,
484485
gravity: ToastGravity.BOTTOM,
485486
backgroundColor: color.withOpacity(0.5),
486-
textColor: color == AppTheme.whiteColor ? AppTheme.blackColor : AppTheme.whiteColor,
487+
textColor: color == AppTheme.colors['white'] ? AppTheme.colors['black'] : AppTheme.colors['whiteColor'],
487488
fontSize: 16.0,
488489
);
489490
}

0 commit comments

Comments
 (0)