Skip to content

Commit 431bc41

Browse files
committed
added rustLib for taskchampion client
1 parent e86de57 commit 431bc41

File tree

16 files changed

+6226
-17
lines changed

16 files changed

+6226
-17
lines changed
479 KB
Binary file not shown.
27.8 MB
Binary file not shown.

lib/app/modules/home/controllers/home_controller.dart

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:flutter/material.dart';
88
import 'package:get/get.dart';
99
import 'package:home_widget/home_widget.dart';
1010
import 'package:loggy/loggy.dart';
11+
import 'package:path_provider/path_provider.dart';
1112
import 'package:shared_preferences/shared_preferences.dart';
1213
import 'package:taskwarrior/app/models/filters.dart';
1314

@@ -35,6 +36,7 @@ import 'package:taskwarrior/app/v3/db/task_database.dart';
3536
import 'package:taskwarrior/app/v3/db/update.dart';
3637
import 'package:taskwarrior/app/v3/models/task.dart';
3738
import 'package:taskwarrior/app/v3/net/fetch.dart';
39+
import 'package:taskwarrior/rust_bridge/api.dart';
3840
import 'package:textfield_tags/textfield_tags.dart';
3941
import 'package:taskwarrior/app/utils/themes/theme_extension.dart';
4042
import 'package:tutorial_coach_mark/tutorial_coach_mark.dart';
@@ -112,6 +114,19 @@ class HomeController extends GetxController {
112114
widgetController.updateWidget();
113115
}
114116
});
117+
tryRust();
118+
}
119+
120+
Future<void> tryRust() async {
121+
Directory? someDir = await getDownloadsDirectory();
122+
123+
addTask(taskdbDirPath: someDir != null ? someDir.path : "", map: {
124+
'description': "some task from bridge 2",
125+
"uuid": "270750a0-1801-4a24-8b29-a7aaf62fc74d"
126+
});
127+
128+
debugPrint(await getAllTasksJson(
129+
taskdbDirPath: someDir != null ? someDir.path : ""));
115130
}
116131

117132
Future<List<String>> getUniqueProjects() async {

lib/main.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1+
import 'dart:ffi';
2+
13
import 'package:flutter/foundation.dart';
24
import 'package:flutter/material.dart';
35
import 'package:get/get.dart';
46
import 'package:taskwarrior/app/utils/app_settings/app_settings.dart';
57
import 'package:taskwarrior/app/utils/debug_logger/log_databse_helper.dart';
68
import 'package:taskwarrior/app/utils/themes/dark_theme.dart';
79
import 'package:taskwarrior/app/utils/themes/light_theme.dart';
10+
import 'package:taskwarrior/rust_bridge/frb_generated.dart';
811
import 'app/routes/app_pages.dart';
912

1013
LogDatabaseHelper _logDatabaseHelper = LogDatabaseHelper();
1114

15+
const buildOfTcHelperForAndroid = "libtc_helper.so";
16+
final dyLibOfTcHelperForAndroid =
17+
DynamicLibrary.open(buildOfTcHelperForAndroid);
18+
1219
void main() async {
1320
debugPrint = (String? message, {int? wrapWidth}) {
1421
if (message != null) {
@@ -17,6 +24,8 @@ void main() async {
1724
}
1825
};
1926

27+
await RustLib.init();
28+
2029
WidgetsFlutterBinding.ensureInitialized();
2130
await AppSettings.init();
2231

lib/rust_bridge/api.dart

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// This file is automatically generated, so please do not edit it.
2+
// @generated by `flutter_rust_bridge`@ 2.11.1.
3+
4+
// ignore_for_file: invalid_use_of_internal_member, unused_import, unnecessary_import
5+
6+
import 'frb_generated.dart';
7+
import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart';
8+
9+
// These functions are ignored because they are not marked as `pub`: `get_all_tasks`, `parse_datetime`
10+
11+
Future<String> getAllTasksJson({required String taskdbDirPath}) =>
12+
RustLib.instance.api.crateApiGetAllTasksJson(taskdbDirPath: taskdbDirPath);
13+
14+
Future<int> deleteTask(
15+
{required String uuidSt, required String taskdbDirPath}) =>
16+
RustLib.instance.api
17+
.crateApiDeleteTask(uuidSt: uuidSt, taskdbDirPath: taskdbDirPath);
18+
19+
Future<int> updateTask(
20+
{required String uuidSt,
21+
required String taskdbDirPath,
22+
required Map<String, String> map}) =>
23+
RustLib.instance.api.crateApiUpdateTask(
24+
uuidSt: uuidSt, taskdbDirPath: taskdbDirPath, map: map);
25+
26+
Future<int> addTask(
27+
{required String taskdbDirPath, required Map<String, String> map}) =>
28+
RustLib.instance.api
29+
.crateApiAddTask(taskdbDirPath: taskdbDirPath, map: map);
30+
31+
Future<int> sync_(
32+
{required String taskdbDirPath,
33+
required String url,
34+
required String clientId,
35+
required String encryptionSecret}) =>
36+
RustLib.instance.api.crateApiSync(
37+
taskdbDirPath: taskdbDirPath,
38+
url: url,
39+
clientId: clientId,
40+
encryptionSecret: encryptionSecret);

0 commit comments

Comments
 (0)