Skip to content

modularize_v3: modularized CCSync related files #494

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
583 changes: 0 additions & 583 deletions lib/api_service.dart

This file was deleted.

14 changes: 9 additions & 5 deletions lib/app/modules/home/controllers/home_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import 'package:get/get.dart';
import 'package:home_widget/home_widget.dart';
import 'package:loggy/loggy.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:taskwarrior/api_service.dart';
import 'package:taskwarrior/app/models/filters.dart';

import 'package:taskwarrior/app/models/json/task.dart';
Expand All @@ -32,6 +31,10 @@ import 'package:taskwarrior/app/utils/taskfunctions/projects.dart';
import 'package:taskwarrior/app/utils/taskfunctions/query.dart';
import 'package:taskwarrior/app/utils/taskfunctions/tags.dart';
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
import 'package:taskwarrior/app/v3/db/task_database.dart';
import 'package:taskwarrior/app/v3/db/update.dart';
import 'package:taskwarrior/app/v3/models/task.dart';
import 'package:taskwarrior/app/v3/net/fetch.dart';
import 'package:textfield_tags/textfield_tags.dart';
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
Expand Down Expand Up @@ -59,7 +62,7 @@ class HomeController extends GetxController {
final ScrollController scrollController = ScrollController();
final RxBool showbtn = false.obs;
late TaskDatabase taskdb;
var tasks = <Tasks>[].obs;
var tasks = <TaskForC>[].obs;
final RxBool isRefreshing = false.obs;

@override
Expand Down Expand Up @@ -116,16 +119,17 @@ class HomeController extends GetxController {
Future<void> refreshTasks(String clientId, String encryptionSecret) async {
TaskDatabase taskDatabase = TaskDatabase();
await taskDatabase.open();
List<Tasks> tasksFromServer = await fetchTasks(clientId, encryptionSecret);
List<TaskForC> tasksFromServer =
await fetchTasks(clientId, encryptionSecret);
await updateTasksInDatabase(tasksFromServer);
List<Tasks> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
List<TaskForC> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
tasks.value = fetchedTasks;
}

Future<void> fetchTasksFromDB() async {
TaskDatabase taskDatabase = TaskDatabase();
await taskDatabase.open();
List<Tasks> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
List<TaskForC> fetchedTasks = await taskDatabase.fetchTasksFromDatabase();
tasks.value = fetchedTasks;
}

Expand Down
4 changes: 2 additions & 2 deletions lib/app/modules/home/views/add_task_bottom_sheet_new.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:taskwarrior/api_service.dart';
import 'package:taskwarrior/app/models/json/task.dart';
import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart';
import 'package:taskwarrior/app/modules/home/controllers/widget.controller.dart';
Expand All @@ -17,6 +16,7 @@ import 'package:taskwarrior/app/utils/taskfunctions/add_task_dialog_utils.dart';
import 'package:taskwarrior/app/utils/taskfunctions/tags.dart';
import 'package:taskwarrior/app/utils/taskfunctions/taskparser.dart';
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
import 'package:taskwarrior/app/v3/models/task.dart';

class AddTaskBottomSheet extends StatelessWidget {
final HomeController homeController;
Expand Down Expand Up @@ -282,7 +282,7 @@ class AddTaskBottomSheet extends StatelessWidget {
void onSaveButtonClickedTaskC(BuildContext context) async {
if (homeController.formKey.currentState!.validate()) {
debugPrint("tags ${homeController.tags}");
var task = Tasks(
var task = TaskForC(
description: homeController.namecontroller.text,
status: 'pending',
priority: homeController.priority.value,
Expand Down
74 changes: 35 additions & 39 deletions lib/app/modules/home/views/show_details.dart
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// ignore_for_file: deprecated_member_use, use_build_context_synchronously

import 'package:date_format/date_format.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:intl/intl.dart';
import 'package:taskwarrior/api_service.dart';
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
import 'package:taskwarrior/app/utils/constants/utilites.dart';
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
import 'package:taskwarrior/app/utils/language/sentence_manager.dart';
import 'package:taskwarrior/app/v3/db/task_database.dart';
import 'package:taskwarrior/app/v3/models/task.dart';
import 'package:taskwarrior/app/v3/net/modify.dart';

class TaskDetails extends StatefulWidget {
final Tasks task;
final TaskForC task;
const TaskDetails({super.key, required this.task});

@override
Expand Down Expand Up @@ -53,7 +53,8 @@ class _TaskDetailsState extends State<TaskDetails> {

@override
Widget build(BuildContext context) {
TaskwarriorColorTheme tColors = Theme.of(context).extension<TaskwarriorColorTheme>()!;
TaskwarriorColorTheme tColors =
Theme.of(context).extension<TaskwarriorColorTheme>()!;
return WillPopScope(
onWillPop: () async {
if (hasChanges) {
Expand Down Expand Up @@ -123,10 +124,18 @@ class _TaskDetailsState extends State<TaskDetails> {
});
}),
_buildDetail('UUID:', widget.task.uuid!),
_buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageUrgency}:', widget.task.urgency.toString()),
_buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEnd}:', _buildDate(widget.task.end)),
_buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEntry}:', _buildDate(widget.task.entry)),
_buildDetail('${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageModified}:', _buildDate(widget.task.modified)),
_buildDetail(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageUrgency}:',
widget.task.urgency.toString()),
_buildDetail(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEnd}:',
_buildDate(widget.task.end)),
_buildDetail(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageEntry}:',
_buildDate(widget.task.entry)),
_buildDetail(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.detailPageModified}:',
_buildDate(widget.task.modified)),
],
),
),
Expand Down Expand Up @@ -206,7 +215,8 @@ class _TaskDetailsState extends State<TaskDetails> {
}

Widget _buildDetail(String label, String value) {
TaskwarriorColorTheme tColors = Theme.of(context).extension<TaskwarriorColorTheme>()!;
TaskwarriorColorTheme tColors =
Theme.of(context).extension<TaskwarriorColorTheme>()!;
return Container(
width: double.infinity,
decoration: BoxDecoration(
Expand Down Expand Up @@ -251,7 +261,8 @@ class _TaskDetailsState extends State<TaskDetails> {

Future<String?> _showEditDialog(
BuildContext context, String label, String initialValue) async {
TaskwarriorColorTheme tColors = Theme.of(context).extension<TaskwarriorColorTheme>()!;
TaskwarriorColorTheme tColors =
Theme.of(context).extension<TaskwarriorColorTheme>()!;
final TextEditingController controller =
TextEditingController(text: initialValue);
return await showDialog<String>(
Expand All @@ -260,21 +271,15 @@ class _TaskDetailsState extends State<TaskDetails> {
return Utils.showAlertDialog(
title: Text(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.edit} $label',
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
content: TextField(
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
controller: controller,
decoration: InputDecoration(
hintText:
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.enterNew} $label',
hintStyle: TextStyle(
color: tColors.primaryTextColor
),
hintStyle: TextStyle(color: tColors.primaryTextColor),
),
),
actions: [
Expand All @@ -286,9 +291,7 @@ class _TaskDetailsState extends State<TaskDetails> {
SentenceManager(currentLanguage: AppSettings.selectedLanguage)
.sentences
.cancel,
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
),
TextButton(
Expand All @@ -299,9 +302,7 @@ class _TaskDetailsState extends State<TaskDetails> {
SentenceManager(currentLanguage: AppSettings.selectedLanguage)
.sentences
.save,
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
),
],
Expand All @@ -312,26 +313,23 @@ class _TaskDetailsState extends State<TaskDetails> {

Future<String?> _showSelectDialog(BuildContext context, String label,
String initialValue, List<String> options) async {
TaskwarriorColorTheme tColors = Theme.of(context).extension<TaskwarriorColorTheme>()!;
TaskwarriorColorTheme tColors =
Theme.of(context).extension<TaskwarriorColorTheme>()!;
return await showDialog<String>(
context: context,
builder: (context) {
return Utils.showAlertDialog(
title: Text(
'${SentenceManager(currentLanguage: AppSettings.selectedLanguage).sentences.select} $label',
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
content: Column(
mainAxisSize: MainAxisSize.min,
children: options.map((option) {
return RadioListTile<String>(
title: Text(
option,
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
value: option,
groupValue: initialValue,
Expand Down Expand Up @@ -362,7 +360,8 @@ class _TaskDetailsState extends State<TaskDetails> {

Future<UnsavedChangesAction?> _showUnsavedChangesDialog(
BuildContext context) async {
TaskwarriorColorTheme tColors = Theme.of(context).extension<TaskwarriorColorTheme>()!;
TaskwarriorColorTheme tColors =
Theme.of(context).extension<TaskwarriorColorTheme>()!;
return showDialog<UnsavedChangesAction>(
context: context,
barrierDismissible: false,
Expand All @@ -372,16 +371,13 @@ class _TaskDetailsState extends State<TaskDetails> {
SentenceManager(currentLanguage: AppSettings.selectedLanguage)
.sentences
.unsavedChanges,
style: TextStyle(
color: tColors.primaryTextColor),
style: TextStyle(color: tColors.primaryTextColor),
),
content: Text(
SentenceManager(currentLanguage: AppSettings.selectedLanguage)
.sentences
.unsavedChangesWarning,
style: TextStyle(
color: tColors.primaryTextColor
),
style: TextStyle(color: tColors.primaryTextColor),
),
actions: <Widget>[
TextButton(
Expand Down
17 changes: 10 additions & 7 deletions lib/app/modules/home/views/show_tasks.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@ import 'package:flutter/material.dart';
import 'package:flutter_slidable/flutter_slidable.dart';
import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:taskwarrior/api_service.dart';
import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart';
import 'package:taskwarrior/app/modules/home/views/show_details.dart';
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
import 'package:taskwarrior/app/utils/constants/taskwarrior_colors.dart';
import 'package:taskwarrior/app/utils/constants/taskwarrior_fonts.dart';
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
import 'package:taskwarrior/app/utils/language/sentence_manager.dart';
import 'package:taskwarrior/app/v3/db/task_database.dart';
import 'package:taskwarrior/app/v3/models/task.dart';
import 'package:taskwarrior/app/v3/net/complete.dart';
import 'package:taskwarrior/app/v3/net/delete.dart';

class TaskViewBuilder extends StatelessWidget {
const TaskViewBuilder({
Expand All @@ -30,12 +33,12 @@ class TaskViewBuilder extends StatelessWidget {
Theme.of(context).extension<TaskwarriorColorTheme>()!;

return Obx(() {
List<Tasks> tasks = List<Tasks>.from(taskController.tasks);
List<TaskForC> tasks = List<TaskForC>.from(taskController.tasks);
// Filter tasks based on the selected project
if (project != 'All Projects') {
tasks = tasks.where((task) => task.project == project).toList();
} else {
tasks = List<Tasks>.from(tasks);
tasks = List<TaskForC>.from(tasks);
}

// Apply other filters and sorting
Expand Down Expand Up @@ -109,7 +112,7 @@ class TaskViewBuilder extends StatelessWidget {
),
itemCount: tasks.length,
itemBuilder: (context, index) {
Tasks task = tasks[index];
TaskForC task = tasks[index];
return Slidable(
startActionPane: ActionPane(
motion: const BehindMotion(),
Expand All @@ -133,8 +136,8 @@ class TaskViewBuilder extends StatelessWidget {
);
},
icon: Icons.done,
label: SentenceManager(currentLanguage:
AppSettings.selectedLanguage)
label: SentenceManager(
currentLanguage: AppSettings.selectedLanguage)
.sentences
.complete,
backgroundColor: TaskWarriorColors.green,
Expand Down Expand Up @@ -164,7 +167,7 @@ class TaskViewBuilder extends StatelessWidget {
},
icon: Icons.delete,
label: SentenceManager(
currentLanguage: AppSettings.selectedLanguage)
currentLanguage: AppSettings.selectedLanguage)
.sentences
.delete,
backgroundColor: TaskWarriorColors.red,
Expand Down
6 changes: 3 additions & 3 deletions lib/app/modules/reports/controllers/reports_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@ import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:get/get.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:syncfusion_flutter_charts/charts.dart';
import 'package:taskwarrior/api_service.dart';
import 'package:taskwarrior/app/models/json/task.dart';
import 'package:taskwarrior/app/models/storage.dart';
import 'package:taskwarrior/app/modules/home/controllers/home_controller.dart';
Expand All @@ -19,6 +17,8 @@ import 'package:taskwarrior/app/utils/gen/fonts.gen.dart';
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
import 'package:path_provider/path_provider.dart';
import 'package:flutter/services.dart';
import 'package:taskwarrior/app/v3/db/task_database.dart';
import 'package:taskwarrior/app/v3/models/task.dart';
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';

class ReportsController extends GetxController
Expand Down Expand Up @@ -410,7 +410,7 @@ class ReportsController extends GetxController
});
}

Future<List<Tasks>> fetchTasks() async {
Future<List<TaskForC>> fetchTasks() async {
await taskDatabase.open();
return await taskDatabase.fetchTasksFromDatabase();
}
Expand Down
Loading