Skip to content

Commit d5a4c57

Browse files
Merge branch 'main' into TaskServer-is-not-configured
2 parents b91ed32 + f058b4a commit d5a4c57

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+2455
-368
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@
2828
android:name="io.flutter.embedding.android.NormalTheme"
2929
android:resource="@style/NormalTheme"
3030
/>
31+
<meta-data
32+
android:name="flutter_deeplinking_enabled"
33+
android:value="false"
34+
/>
3135

3236
<intent-filter>
3337
<action android:name="android.intent.action.MAIN"/>
352 Bytes
Binary file not shown.
132 Bytes
Binary file not shown.

android/app/src/main/kotlin/com/ccextractor/taskwarriorflutter/TaskWarriorWidgetProvider.kt

Lines changed: 198 additions & 200 deletions
Large diffs are not rendered by default.

docs/Architecture.md

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
The architecture used in this project is [GetX Architecture](https://pub.dev/packages/get), which organizes the codebase into three core layers:
2+
3+
# How GetX Architecture Works
4+
5+
Each module in the project follows a consistent three-layer structure:
6+
7+
**Bindings** — Handles dependency injection. Each screen has a binding class that registers its controller before the view is loaded, ensuring everything is available when needed.
8+
9+
**Controllers** — The brain of each screen. Controllers manage state, business logic, and interactions with services. They extend `GetxController` and expose reactive variables that the view observes.
10+
11+
**Views** — Pure UI. Views observe the controller's state and rebuild only when relevant data changes. They contain no business logic.
12+
13+
Every module under `lib/app/modules/` follows this pattern:
14+
```
15+
module_name/
16+
├── bindings/ # Dependency injection
17+
├── controllers/ # State & business logic
18+
└── views/ # UI widgets
19+
```
20+
21+
## Key Rules
22+
23+
- Views should **never** directly call services — always go through the controller.
24+
- Views should contain **zero business logic** — only render what the controller exposes.
25+
- Controllers should **not** depend on other controllers.
26+
- Controllers **may be reused** across views if they share the same functionality.
27+
- Services are **globally accessible** and shared across all controllers.
28+
29+
## Architecture Diagram
30+
31+
![GetX Architecture](https://user-images.githubusercontent.com/81030284/191010071-7c71c4a9-5515-43c0-b3c9-0eabf9cf2544.png)
32+
33+
Since services are global, a multi-screen app shares them while each screen gets its own controller and view:
34+
35+
![Multi-screen structure](https://user-images.githubusercontent.com/81030284/191010185-83bad438-4852-449d-b8f8-b8ec18d3d193.png)
36+
37+
# Project Structure
38+
```
39+
lib/
40+
├── app/
41+
│ ├── models/
42+
│ ├── modules/
43+
│ │ ├── about/
44+
│ │ ├── detailRoute/
45+
│ │ ├── home/
46+
│ │ ├── logs/
47+
│ │ ├── manageTaskServer/
48+
│ │ ├── manage_task_champion_creds/
49+
│ │ ├── onboarding/
50+
│ │ ├── permission/
51+
│ │ ├── profile/
52+
│ │ ├── reports/
53+
│ │ ├── settings/
54+
│ │ ├── splash/
55+
│ │ └── taskc_details/
56+
│ ├── routes/
57+
│ ├── services/
58+
│ ├── tour/
59+
│ ├── utils/
60+
│ │ ├── add_task_dialogue/
61+
│ │ ├── app_settings/
62+
│ │ ├── constants/
63+
│ │ ├── debug_logger/
64+
│ │ ├── gen/
65+
│ │ ├── home_path/
66+
│ │ ├── language/
67+
│ │ ├── permissions/
68+
│ │ ├── taskc/
69+
│ │ ├── taskchampion/
70+
│ │ ├── taskfunctions/
71+
│ │ ├── taskserver/
72+
│ │ └── themes/
73+
│ └── v3/
74+
│ ├── champion/
75+
│ ├── db/
76+
│ ├── models/
77+
│ └── net/
78+
├── rust_bridge/
79+
└── main.dart
80+
```
81+
82+
# Resources
83+
84+
- [GetX Package](https://pub.dev/packages/get)
85+
- [GetX Documentation](https://github.com/jonataslaw/getx)
86+
- [GetX State Management Guide](https://github.com/jonataslaw/getx/blob/master/documentation/en_US/state_management.md)
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Contribution Guidelines
2+
3+
You can contribute to **Taskwarrior-Flutter** by:
4+
5+
- Reporting issues or bugs you find.
6+
- Proposing improvements to the project.
7+
- Forking the repository, modifying the code, and creating a Pull Request (PR).
8+
9+
Check [CONTRIBUTING.md](https://github.com/CCExtractor/taskwarrior-flutter/blob/main/CONTRIBUTING.md) for more details.
10+
11+
---
12+
13+
## Commit conventions
14+
15+
When opening PRs, **please specify the commit type** using the following conventions:
16+
17+
| Type | Description |
18+
|------|-------------|
19+
| `feat` | A new feature you're proposing |
20+
| `fix` | A bug fix in the project |
21+
| `style` | UI/UX improvements or styling updates |
22+
| `test` | Testing-related updates |
23+
| `docs` | Documentation updates |
24+
| `refactor` | Code refactoring and maintenance |
25+
26+
---
27+
28+
## Development Practices
29+
30+
**Flutter Version**
31+
32+
Use **Flutter 3.29.2** or later for development (documentation updated 23 Feb 2026):
33+
```text
34+
Flutter 3.29.2 • channel stable
35+
Framework • revision 90673a4eef • 2026-02-18 (framework revision date)
36+
Dart 3.7.2 • DevTools 2.42.3 • released 2025-03-12
37+
```
38+
39+
**File Naming Convention**
40+
41+
The project follows [snake_case](https://en.wikipedia.org/wiki/Snake_case) naming — this must be followed without fail.
42+
43+
**Examples** :
44+
* File names : services_info.dart, dev_api_service.dart, home_view.dart
45+
* Folder names : api, disk_explorer, smart_widgets
46+
47+
**UI/UX Constants**
48+
49+
Colors, dimensions, and any UI constants must be defined in the respective theme file:
50+
`/lib/app/utils/themes/themes.dart`
51+
52+
**Documentation**
53+
54+
Document all functions, classes, and logic you implement. Follow the [Effective Dart Documentation](https://dart.dev/guides/language/effective-dart/documentation) guidelines without fail.
55+
56+
---
57+
58+
## Community
59+
60+
Join the CCExtractor community on **Zulip** to propose improvements and connect with other contributors.
61+
62+
- 💬 [Join CCExtractor on Zulip](https://ccextractor.org/public/general/support)

docs/Home.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
![TaskWarrior (1)](https://user-images.githubusercontent.com/81030284/190668984-88c00c21-e2ad-4361-ba67-8a4a8fb349ca.png)
3+
4+
## Welcome to the TaskWarrior-Flutter wiki!
5+
6+
### About TaskWarrior-Flutter
7+
* **TaskWarrior-Flutter** is a powerful, open-source mobile application built with **Flutter**. It brings the capabilities of the TaskWarrior Linux CLI to your mobile devices with synchronization across all your platforms.
8+
9+
10+
### Core Features
11+
12+
- **TaskServer Integration**: Connect and sync your tasks directly from your CLI to your smartphone
13+
14+
- **Multi-Profile Support**: Maintain separate task profiles for different projects and purposes
15+
16+
- **Cross-Platform**: Available on iOS, Android, and Desktop platforms
17+
18+
- **Advanced Filtering**: Powerful filtering options to organize and find tasks quickly
19+
20+
- **Smart Sorting**: Multiple sorting options to prioritize and manage your tasks
21+
22+
- **Show Reports**: Track your progress through daily, weekly, or monthly reports.
23+
24+
- **Offline-First**: Work with your tasks even without internet connectivity
25+
26+

docs/Requirements-&-Usage.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
As of now, there are 2 possible ways to use the app respective to the requirements -
2+
3+
# Using Flutter Dev Environment
4+
5+
First set up flutter on your device and can try the app using the flutter run in a dev environment which you can check out in [Getting Started](https://github.com/CCExtractor/taskwarrior-flutter/wiki/Setup-&-Configuration)
6+
7+
# Using APK
8+
9+
You can check the release of Taskwarrior app for it

docs/Setup-&-Configuration.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Getting Started
2+
1. Clone the repository from GitHub:
3+
```
4+
git clone https://github.com/CCExtractor/taskwarrior-flutter
5+
```
6+
2. Navigate to the project's root directory:
7+
```
8+
cd taskwarrior-flutter
9+
```
10+
3. Install dependencies:
11+
```
12+
flutter pub get
13+
```
14+
4. Check for Flutter setup and connected devices:
15+
```
16+
flutter doctor
17+
```
18+
5. Run the app:
19+
```
20+
flutter run
21+
```

0 commit comments

Comments
 (0)