Skip to content

Commit 85a5503

Browse files
authored
added add_bottom_sheet, ccsync creds, debug logs option to i18n (#502)
1 parent debe187 commit 85a5503

File tree

12 files changed

+416
-30
lines changed

12 files changed

+416
-30
lines changed

lib/app/modules/home/views/add_task_bottom_sheet_new.dart

Lines changed: 38 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ class AddTaskBottomSheet extends StatelessWidget {
4545
onPressed: () {
4646
Get.back();
4747
},
48-
child: const Text("Cancel"),
48+
child: Text(SentenceManager(
49+
currentLanguage:
50+
homeController.selectedLanguage.value)
51+
.sentences
52+
.cancel),
4953
),
5054
Text(
5155
SentenceManager(
@@ -66,7 +70,11 @@ class AddTaskBottomSheet extends StatelessWidget {
6670
onSaveButtonClicked(context);
6771
}
6872
},
69-
child: const Text("Save"),
73+
child: Text(SentenceManager(
74+
currentLanguage:
75+
homeController.selectedLanguage.value)
76+
.sentences
77+
.save),
7078
),
7179
],
7280
),
@@ -80,10 +88,18 @@ class AddTaskBottomSheet extends StatelessWidget {
8088
child: TextFormField(
8189
controller: homeController.namecontroller,
8290
validator: (value) => value!.isEmpty
83-
? "Description cannot be empty"
91+
? SentenceManager(
92+
currentLanguage:
93+
homeController.selectedLanguage.value)
94+
.sentences
95+
.descriprtionCannotBeEmpty
8496
: null,
85-
decoration: const InputDecoration(
86-
labelText: 'Enter Task Description',
97+
decoration: InputDecoration(
98+
labelText: SentenceManager(
99+
currentLanguage:
100+
homeController.selectedLanguage.value)
101+
.sentences
102+
.enterTaskDescription,
87103
border: OutlineInputBorder(),
88104
),
89105
),
@@ -168,15 +184,21 @@ class AddTaskBottomSheet extends StatelessWidget {
168184
(context, textEditingController, focusNode, onFieldSubmitted) =>
169185
TextFormField(
170186
controller: textEditingController,
171-
decoration: const InputDecoration(
172-
labelText: 'Project',
187+
decoration: InputDecoration(
188+
labelText: SentenceManager(
189+
currentLanguage: homeController.selectedLanguage.value)
190+
.sentences
191+
.enterProject,
173192
border: OutlineInputBorder(),
174193
),
175194
onChanged: (value) => homeController.projectcontroller.text = value,
176195
focusNode: focusNode,
177196
validator: (value) {
178197
if (value != null && value.contains(" ")) {
179-
return "Can not have Whitespace";
198+
return SentenceManager(
199+
currentLanguage: homeController.selectedLanguage.value)
200+
.sentences
201+
.canNotHaveWhiteSpace;
180202
}
181203
return null;
182204
},
@@ -208,7 +230,10 @@ class AddTaskBottomSheet extends StatelessWidget {
208230
.priority.value), // Display the selected priority
209231
),
210232
decoration: InputDecoration(
211-
labelText: 'Priority',
233+
labelText: SentenceManager(
234+
currentLanguage: homeController.selectedLanguage.value)
235+
.sentences
236+
.priority,
212237
border: const OutlineInputBorder(),
213238
suffixIcon: Padding(
214239
padding: const EdgeInsets.only(right: 8.0),
@@ -304,7 +329,10 @@ class AddTaskBottomSheet extends StatelessWidget {
304329
homeController.projectcontroller.text = '';
305330
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
306331
content: Text(
307-
'Task Added Successfully!',
332+
SentenceManager(
333+
currentLanguage: homeController.selectedLanguage.value)
334+
.sentences
335+
.addTaskTaskAddedSuccessfully,
308336
style: TextStyle(
309337
color: AppSettings.isDarkMode
310338
? TaskWarriorColors.kprimaryTextColor

lib/app/modules/manage_task_champion_creds/views/manage_task_champion_creds_view.dart

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import 'package:flutter/material.dart';
22
import 'package:get/get.dart';
33
import 'package:google_fonts/google_fonts.dart';
4+
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
45
import 'package:taskwarrior/app/utils/constants/constants.dart';
6+
import 'package:taskwarrior/app/utils/language/sentence_manager.dart';
57
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
68
import 'package:url_launcher/url_launcher.dart';
79
import '../controllers/manage_task_champion_creds_controller.dart';
@@ -24,7 +26,9 @@ class ManageTaskChampionCredsView
2426
crossAxisAlignment: CrossAxisAlignment.start,
2527
children: [
2628
Text(
27-
"Configure TaskChampion",
29+
SentenceManager(currentLanguage: AppSettings.selectedLanguage)
30+
.sentences
31+
.configureTaskchampion,
2832
style: GoogleFonts.poppins(
2933
color: TaskWarriorColors.white,
3034
fontSize: TaskWarriorFonts.fontSizeLarge,
@@ -65,7 +69,10 @@ class ManageTaskChampionCredsView
6569
style: TextStyle(color: tColors.primaryTextColor),
6670
controller: controller.encryptionSecretController,
6771
decoration: InputDecoration(
68-
labelText: 'Encryption Secret',
72+
labelText: SentenceManager(
73+
currentLanguage: AppSettings.selectedLanguage)
74+
.sentences
75+
.encryptionSecret,
6976
labelStyle: TextStyle(color: tColors.primaryTextColor),
7077
border: const OutlineInputBorder(),
7178
),
@@ -75,7 +82,10 @@ class ManageTaskChampionCredsView
7582
style: TextStyle(color: tColors.primaryTextColor),
7683
controller: controller.clientIdController,
7784
decoration: InputDecoration(
78-
labelText: 'Client ID',
85+
labelText: SentenceManager(
86+
currentLanguage: AppSettings.selectedLanguage)
87+
.sentences
88+
.ccsyncClientId,
7989
labelStyle: TextStyle(color: tColors.primaryTextColor),
8090
border: const OutlineInputBorder(),
8191
),
@@ -85,7 +95,10 @@ class ManageTaskChampionCredsView
8595
style: TextStyle(color: tColors.primaryTextColor),
8696
controller: controller.ccsyncBackendUrlController,
8797
decoration: InputDecoration(
88-
labelText: 'CCSync Backend URL',
98+
labelText: SentenceManager(
99+
currentLanguage: AppSettings.selectedLanguage)
100+
.sentences
101+
.ccsyncBackendUrl,
89102
labelStyle: TextStyle(color: tColors.primaryTextColor),
90103
border: const OutlineInputBorder(),
91104
),
@@ -95,8 +108,14 @@ class ManageTaskChampionCredsView
95108
onPressed: () async {
96109
await controller.saveCredentials();
97110
Get.snackbar(
98-
'Success',
99-
'Credentials saved successfully',
111+
SentenceManager(
112+
currentLanguage: AppSettings.selectedLanguage)
113+
.sentences
114+
.success,
115+
SentenceManager(
116+
currentLanguage: AppSettings.selectedLanguage)
117+
.sentences
118+
.credentialsSavedSuccessfully,
100119
snackPosition: SnackPosition.BOTTOM,
101120
duration: Duration(seconds: 2),
102121
);
@@ -105,7 +124,10 @@ class ManageTaskChampionCredsView
105124
),
106125
const SizedBox(height: 10),
107126
Text(
108-
'Tip: Click on the info icon in the top right corner to get your credentials',
127+
SentenceManager(
128+
currentLanguage: AppSettings.selectedLanguage)
129+
.sentences
130+
.tip,
109131
style: TextStyle(
110132
fontSize: 15,
111133
color: tColors.primaryTextColor,

lib/app/utils/add_task_dialogue/date_picker_input.dart

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import 'package:flutter/material.dart';
2+
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
3+
import 'package:taskwarrior/app/utils/language/sentence_manager.dart';
24
import 'package:taskwarrior/app/utils/taskfunctions/add_task_dialog_utils.dart';
35
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
46

@@ -51,12 +53,12 @@ class _AddTaskDatePickerInputState extends State<AddTaskDatePickerInput> {
5153
bool isNextDateSelected = _selectedDates[getNextIndex()] != null;
5254
bool isPreviousDateSelected = _selectedDates[getPreviousIndex()] != null;
5355
String nextDateText = isNextDateSelected
54-
? "Change ${dateLabels[getNextIndex()]} Date"
55-
: "Add ${dateLabels[getNextIndex()]} Date";
56+
? "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.change} ${dateLabels[getNextIndex()]} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.date}"
57+
: "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.add} ${dateLabels[getNextIndex()]} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.date}";
5658

5759
String prevDateText = isPreviousDateSelected
58-
? "Change ${dateLabels[getPreviousIndex()]} Date"
59-
: "Add ${dateLabels[getPreviousIndex()]} Date";
60+
? "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.change} ${dateLabels[getPreviousIndex()]} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.date}"
61+
: "${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.add} ${dateLabels[getPreviousIndex()]} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.date}";
6062
return Column(
6163
mainAxisSize: MainAxisSize.min,
6264
children: [
@@ -127,8 +129,10 @@ class _AddTaskDatePickerInputState extends State<AddTaskDatePickerInput> {
127129
return TextFormField(
128130
controller: _controllers[forIndex],
129131
decoration: InputDecoration(
130-
labelText: '${dateLabels[forIndex]} Date',
131-
hintText: 'Select a ${dateLabels[forIndex]}',
132+
labelText:
133+
'${dateLabels[forIndex]} ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.date}',
134+
hintText:
135+
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.select} ${dateLabels[forIndex]}',
132136
suffixIcon: const Icon(Icons.calendar_today),
133137
border: const OutlineInputBorder(),
134138
),
@@ -165,7 +169,7 @@ class _AddTaskDatePickerInputState extends State<AddTaskDatePickerInput> {
165169
DateTime? dt = _selectedDates[i];
166170
String? label = dateLabels[i];
167171
if (dt != null && dt.isBefore(DateTime.now())) {
168-
return "$label date cannot be in the past";
172+
return "$label ${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.dateCanNotBeInPast}";
169173
}
170174
}
171175
return null;

lib/app/utils/add_task_dialogue/tags_input.dart

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import 'package:flutter/material.dart';
2+
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
3+
import 'package:taskwarrior/app/utils/language/sentence_manager.dart';
24
import 'package:textfield_tags/textfield_tags.dart';
35

46
class AddTaskTagsInput extends StatefulWidget {
@@ -80,10 +82,22 @@ class _AddTaskTagsInputState extends State<AddTaskTagsInput> {
8082
if (tags.contains(tag)) {
8183
stringTagController.onTagRemoved(tag);
8284
stringTagController.onTagSubmitted(tag);
83-
return "Tag already exists";
85+
return SentenceManager(
86+
currentLanguage: SentenceManager(
87+
currentLanguage: AppSettings.selectedLanguage)
88+
.currentLanguage)
89+
.sentences
90+
.tagAlreadyExists;
8491
}
8592
for (String tag in tags) {
86-
if (tag.contains(" ")) return "Tag should not contain spaces";
93+
if (tag.contains(" ")) {
94+
return SentenceManager(
95+
currentLanguage: SentenceManager(
96+
currentLanguage: AppSettings.selectedLanguage)
97+
.currentLanguage)
98+
.sentences
99+
.tagShouldNotContainSpaces;
100+
}
87101
}
88102
return null;
89103
},
@@ -92,7 +106,12 @@ class _AddTaskTagsInputState extends State<AddTaskTagsInput> {
92106
controller: inputFieldValues.textEditingController,
93107
focusNode: inputFieldValues.focusNode,
94108
decoration: InputDecoration(
95-
labelText: "Enter tags",
109+
labelText: SentenceManager(
110+
currentLanguage: SentenceManager(
111+
currentLanguage: AppSettings.selectedLanguage)
112+
.currentLanguage)
113+
.sentences
114+
.addTaskAddTags,
96115
border: const OutlineInputBorder(),
97116
prefixIconConstraints: BoxConstraints(
98117
maxWidth:

lib/app/utils/language/bengali_sentences.dart

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,4 +606,49 @@ class BengaliSentences extends Sentences {
606606

607607
@override
608608
String get tourTaskServerTaskRC => "আপনার TaskRC ফাইল সেট করুন";
609+
@override
610+
String get descriprtionCannotBeEmpty => "বর্ণনা খালি হতে পারে না";
611+
@override
612+
String get enterTaskDescription => "টাস্কের বর্ণনা লিখুন";
613+
@override
614+
String get canNotHaveWhiteSpace => "সাদা স্থান থাকতে পারে না";
615+
@override
616+
String get high => "উচ্চ";
617+
@override
618+
String get medium => "মধ্যম";
619+
@override
620+
String get low => "নিম্ন";
621+
@override
622+
String get priority => "অগ্রাধিকার";
623+
@override
624+
String get tagAlreadyExists => "ট্যাগ ইতিমধ্যে বিদ্যমান";
625+
@override
626+
String get tagShouldNotContainSpaces => "ট্যাগে স্পেস থাকা উচিত নয়";
627+
@override
628+
String get date => "তারিখ";
629+
@override
630+
String get add => "যোগ করুন";
631+
@override
632+
String get change => "পরিবর্তন করুন";
633+
@override
634+
String get dateCanNotBeInPast => "তারিখ অতীতে থাকতে পারে না";
635+
@override
636+
String get configureTaskchampion => 'Taskchampion সিঙ্ক কনফিগার করুন';
637+
@override
638+
String get encryptionSecret => 'এনক্রিপশন সিক্রেট';
639+
@override
640+
String get ccsyncBackendUrl => 'CCSync ব্যাকএন্ড URL';
641+
@override
642+
String get ccsyncClientId => 'ক্লায়েন্ট আইডি';
643+
@override
644+
String get success => 'সফল হয়েছে';
645+
@override
646+
String get credentialsSavedSuccessfully => 'শংসাপত্র সফলভাবে সংরক্ষিত হয়েছে';
647+
@override
648+
String get tip =>
649+
"টিপ: আপনার শংসাপত্র পেতে উপরের ডানদিকে তথ্য আইকনে ক্লিক করুন";
650+
@override
651+
String get logs => 'লগস';
652+
@override
653+
String get checkAllDebugLogsHere => 'এখানে সমস্ত ডিবাগ লগ পরীক্ষা করুন';
609654
}

lib/app/utils/language/english_sentences.dart

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -594,4 +594,50 @@ class EnglishSentences extends Sentences {
594594
@override
595595
String get tourDetailsPriority =>
596596
"This is the priority of the Tasks \n L -> Low \n M -> Medium \n H -> Hard";
597+
// Dialogue for adding new task
598+
@override
599+
String get descriprtionCannotBeEmpty => "Description cannot be empty";
600+
@override
601+
String get enterTaskDescription => "Enter Task Description";
602+
@override
603+
String get canNotHaveWhiteSpace => "Can not have white space";
604+
@override
605+
String get high => "High";
606+
@override
607+
String get medium => "Medium";
608+
@override
609+
String get low => "Low";
610+
@override
611+
String get priority => "Priority";
612+
@override
613+
String get tagAlreadyExists => "Tag already exists";
614+
@override
615+
String get tagShouldNotContainSpaces => "Tag should not contain spaces";
616+
@override
617+
String get date => "Date";
618+
@override
619+
String get add => "Add";
620+
@override
621+
String get change => "Change";
622+
@override
623+
String get dateCanNotBeInPast => "Date can not be in past";
624+
@override
625+
String get configureTaskchampion => 'Configure Taskchampion';
626+
@override
627+
String get encryptionSecret => 'Encryption Secret';
628+
@override
629+
String get ccsyncBackendUrl => 'CCSync Backend URL';
630+
@override
631+
String get ccsyncClientId => 'Client ID';
632+
@override
633+
String get success => 'Success';
634+
@override
635+
String get credentialsSavedSuccessfully => 'Credentials saved successfully';
636+
@override
637+
String get tip =>
638+
"Tip: Click on the info icon in the top right corner to get your credentials";
639+
@override
640+
String get logs => 'Logs';
641+
@override
642+
String get checkAllDebugLogsHere => 'Check all debug logs here';
597643
}

0 commit comments

Comments
 (0)