Skip to content

Commit 0942b83

Browse files
committed
Change the language tile added in settings page
1 parent a8ea9d4 commit 0942b83

File tree

4 files changed

+147
-67
lines changed

4 files changed

+147
-67
lines changed

lib/app/modules/settings/controllers/settings_controller.dart

+11-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import 'package:file_picker/file_picker.dart';
44
import 'package:flutter/material.dart';
55

66
import 'package:get/get.dart';
7+
import 'package:get/get_rx/get_rx.dart';
78
import 'package:google_fonts/google_fonts.dart';
89

910
import 'package:shared_preferences/shared_preferences.dart';
11+
import 'package:taskwarrior/app/utils/constants/supported_language.dart';
1012
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
1113
import 'package:taskwarrior/app/utils/constants/utilites.dart';
1214

13-
14-
1515
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
1616
import 'package:taskwarrior/app/utils/theme/app_settings.dart';
1717
import 'package:path/path.dart' as path;
@@ -21,6 +21,13 @@ import 'package:taskwarrior/app/modules/splash/controllers/splash_controller.dar
2121
class SettingsController extends GetxController {
2222
RxBool isMovingDirectory = false.obs;
2323

24+
Rx<SupportedLanguage> selectedLanguage = AppSettings.selectedLanguage.obs;
25+
26+
void setSelectedLanguage(SupportedLanguage language) async {
27+
await SelectedLanguage.saveSelectedLanguage(language);
28+
selectedLanguage.value = language;
29+
}
30+
2431
Future<String> getBaseDirectory() async {
2532
SplashController profilesWidget = Get.find<SplashController>();
2633
Directory baseDirectory = profilesWidget.baseDirectory();
@@ -158,7 +165,8 @@ class SettingsController extends GetxController {
158165
void onInit() async {
159166
final SharedPreferences prefs = await SharedPreferences.getInstance();
160167
isSyncOnStartActivel.value = prefs.getBool('sync-onStart') ?? false;
161-
isSyncOnTaskCreateActivel.value = prefs.getBool('sync-OnTaskCreate') ?? false;
168+
isSyncOnTaskCreateActivel.value =
169+
prefs.getBool('sync-OnTaskCreate') ?? false;
162170
delaytask.value = prefs.getBool('delaytask') ?? false;
163171
change24hr.value = prefs.getBool('24hourformate') ?? false;
164172
super.onInit();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
// ignore_for_file: use_build_context_synchronously
2+
3+
import 'package:flutter/material.dart';
4+
5+
import 'package:google_fonts/google_fonts.dart';
6+
import 'package:taskwarrior/app/modules/settings/views/settings_page_enable_24hr_format_list_tile_trailing.dart';
7+
import 'package:taskwarrior/app/modules/settings/views/settings_page_highlist_task_list_tile_trailing.dart';
8+
import 'package:taskwarrior/app/modules/settings/views/settings_page_list_tile.dart';
9+
import 'package:taskwarrior/app/modules/settings/views/settings_page_on_task_create_list_tile_trailing.dart';
10+
import 'package:taskwarrior/app/modules/settings/views/settings_page_on_task_start_list_tile_trailing.dart';
11+
import 'package:taskwarrior/app/modules/settings/views/settings_page_select_directory_list_tile.dart';
12+
import 'package:taskwarrior/app/modules/settings/views/settings_page_select_the_language_trailing.dart';
13+
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
14+
15+
import '../controllers/settings_controller.dart';
16+
17+
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
18+
import 'package:taskwarrior/app/utils/theme/app_settings.dart';
19+
20+
class SettingsPageBody extends StatelessWidget {
21+
final SettingsController controller;
22+
const SettingsPageBody({required this.controller, super.key});
23+
24+
@override
25+
Widget build(BuildContext context) {
26+
return (controller.isMovingDirectory.value)
27+
? Center(
28+
child: Column(
29+
mainAxisAlignment: MainAxisAlignment.center,
30+
children: [
31+
const CircularProgressIndicator(),
32+
const SizedBox(
33+
height: 10,
34+
),
35+
Text(
36+
'Moving data to new directory',
37+
style: GoogleFonts.poppins(
38+
fontWeight: FontWeight.bold,
39+
fontSize: TaskWarriorFonts.fontSizeMedium,
40+
color: AppSettings.isDarkMode
41+
? TaskWarriorColors.white
42+
: TaskWarriorColors.black,
43+
),
44+
)
45+
],
46+
))
47+
: ListView(
48+
children: [
49+
SettingsPageListTile(
50+
title: "Sync on Start",
51+
subTitle: "Automatically sync data on app start",
52+
trailing: SettingsPageOnTaskStartListTileTrailing(
53+
controller: controller,
54+
),
55+
),
56+
const Divider(),
57+
SettingsPageListTile(
58+
title: "Sync on Task Create",
59+
subTitle: "Enable automatic syncing when creating a new task",
60+
trailing: SettingsPageOnTaskCreateListTileTrailing(
61+
controller: controller,
62+
),
63+
),
64+
const Divider(),
65+
SettingsPageListTile(
66+
title: "Highlight the task",
67+
subTitle: "Make the border of task if only 1 day left",
68+
trailing: SettingsPageHighlistTaskListTileTrailing(
69+
controller: controller,
70+
),
71+
),
72+
const Divider(),
73+
SettingsPageSelectDirectoryListTile(controller: controller),
74+
const Divider(),
75+
SettingsPageListTile(
76+
title: "Enable 24hr format",
77+
subTitle: "Switch right to enable 24 hr format",
78+
trailing: SettingsPageEnable24hrFormatListTileTrailing(
79+
controller: controller,
80+
),
81+
),
82+
SettingsPageListTile(
83+
title: "Select the langauge",
84+
subTitle: "Toggle between your native langauge",
85+
trailing: SettingsPageSelectTheLanguageTrailing(
86+
controller: controller,
87+
),
88+
),
89+
],
90+
);
91+
}
92+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import 'package:flutter/material.dart';
2+
import 'package:get/get.dart';
3+
import 'package:taskwarrior/app/modules/settings/controllers/settings_controller.dart';
4+
import 'package:taskwarrior/app/utils/constants/supported_language.dart';
5+
6+
class SettingsPageSelectTheLanguageTrailing extends StatelessWidget {
7+
final SettingsController controller;
8+
9+
const SettingsPageSelectTheLanguageTrailing(
10+
{required this.controller, super.key});
11+
12+
@override
13+
Widget build(BuildContext context) {
14+
return Obx(
15+
() => DropdownButton<SupportedLanguage>(
16+
value: controller.selectedLanguage.value,
17+
onChanged: (value) {
18+
controller.setSelectedLanguage(value!);
19+
},
20+
items: SupportedLanguage.values.map((language) {
21+
return DropdownMenuItem<SupportedLanguage>(
22+
value: language,
23+
child: Text(_getLanguageName(language)),
24+
);
25+
}).toList(),
26+
),
27+
);
28+
}
29+
30+
String _getLanguageName(SupportedLanguage language) {
31+
switch (language) {
32+
case SupportedLanguage.english:
33+
return 'English';
34+
case SupportedLanguage.hindi:
35+
return 'Hindi';
36+
case SupportedLanguage.marathi:
37+
return 'Marathi';
38+
default:
39+
return '';
40+
}
41+
}
42+
}

lib/app/modules/settings/views/settings_view.dart

+2-64
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@ import 'package:flutter/material.dart';
44

55
import 'package:get/get.dart';
66
import 'package:google_fonts/google_fonts.dart';
7-
import 'package:taskwarrior/app/modules/settings/views/settings_page_enable_24hr_format_list_tile_trailing.dart';
8-
import 'package:taskwarrior/app/modules/settings/views/settings_page_highlist_task_list_tile_trailing.dart';
9-
import 'package:taskwarrior/app/modules/settings/views/settings_page_list_tile.dart';
10-
import 'package:taskwarrior/app/modules/settings/views/settings_page_on_task_create_list_tile_trailing.dart';
11-
import 'package:taskwarrior/app/modules/settings/views/settings_page_on_task_start_list_tile_trailing.dart';
12-
import 'package:taskwarrior/app/modules/settings/views/settings_page_select_directory_list_tile.dart';
7+
import 'package:taskwarrior/app/modules/settings/views/settings_page_body.dart';
138
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
149

1510
import '../controllers/settings_controller.dart';
@@ -59,64 +54,7 @@ class SettingsView extends GetView<SettingsController> {
5954
backgroundColor: AppSettings.isDarkMode
6055
? TaskWarriorColors.kprimaryBackgroundColor
6156
: TaskWarriorColors.white,
62-
body: (controller.isMovingDirectory.value)
63-
? Center(
64-
child: Column(
65-
mainAxisAlignment: MainAxisAlignment.center,
66-
children: [
67-
const CircularProgressIndicator(),
68-
const SizedBox(
69-
height: 10,
70-
),
71-
Text(
72-
'Moving data to new directory',
73-
style: GoogleFonts.poppins(
74-
fontWeight: FontWeight.bold,
75-
fontSize: TaskWarriorFonts.fontSizeMedium,
76-
color: AppSettings.isDarkMode
77-
? TaskWarriorColors.white
78-
: TaskWarriorColors.black,
79-
),
80-
)
81-
],
82-
))
83-
: ListView(
84-
children: [
85-
SettingsPageListTile(
86-
title: "Sync on Start",
87-
subTitle: "Automatically sync data on app start",
88-
trailing: SettingsPageOnTaskStartListTileTrailing(
89-
controller: controller,
90-
),
91-
),
92-
const Divider(),
93-
SettingsPageListTile(
94-
title: "Sync on Task Create",
95-
subTitle: "Enable automatic syncing when creating a new task",
96-
trailing: SettingsPageOnTaskCreateListTileTrailing(
97-
controller: controller,
98-
),
99-
),
100-
const Divider(),
101-
SettingsPageListTile(
102-
title: "Highlight the task",
103-
subTitle: "Make the border of task if only 1 day left",
104-
trailing: SettingsPageHighlistTaskListTileTrailing(
105-
controller: controller,
106-
),
107-
),
108-
const Divider(),
109-
SettingsPageSelectDirectoryListTile(controller: controller),
110-
const Divider(),
111-
SettingsPageListTile(
112-
title: "Enable 24hr format",
113-
subTitle: "Switch right to enable 24 hr format",
114-
trailing: SettingsPageEnable24hrFormatListTileTrailing(
115-
controller: controller,
116-
),
117-
),
118-
],
119-
),
57+
body: SettingsPageBody(controller: controller),
12058
);
12159
}
12260
}

0 commit comments

Comments
 (0)