summaryrefslogtreecommitdiff
path: root/lib/services/share_service.dart
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-08 00:05:39 +0300
committerPaul Buetow <paul@buetow.org>2026-05-08 00:05:39 +0300
commit3e4bacb7b939b1de98a2fb07115f638750637357 (patch)
tree0897a6854d1c3ca3b1d0252657e992abbba061ba /lib/services/share_service.dart
parent665b150727ee7259e398d38d1f6bc51b4c2d4a1c (diff)
Rewrite as Flutter app and rename to Quicklogmain
Drop the Go/Fyne implementation and replace it with a native Flutter app targeting Android (primary) and Linux desktop (development). Rename quicklogger -> quicklog throughout (project, applicationId, MethodChannel, cache filename, AppBar title, Linux binary). Storage on Android moves to /Android/data/org.buetow.quicklog/files/ so MANAGE_EXTERNAL_STORAGE is no longer required. Share-intent receive is preserved via a Kotlin ShareActivity that writes shared text to the app cache, which Dart reads through a MethodChannel on app resume; MainActivity also accepts SEND directly so launchers that prefer the main target work. New since the Fyne version: an entry browser screen with read-only viewer and long-press delete. Cross-compiling to Android ARM from amd64 Linux no longer needs Docker / fyne-cross / NDK -- flutter build apk emits ARM binaries directly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Diffstat (limited to 'lib/services/share_service.dart')
-rw-r--r--lib/services/share_service.dart25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/services/share_service.dart b/lib/services/share_service.dart
new file mode 100644
index 0000000..36eb7af
--- /dev/null
+++ b/lib/services/share_service.dart
@@ -0,0 +1,25 @@
+import 'dart:io' show Platform;
+
+import 'package:flutter/services.dart';
+
+class ShareService {
+ static const _channel = MethodChannel('org.buetow.quicklog/share');
+
+ static Future<String?> readSharedTextFromCache() async {
+ if (!Platform.isAndroid) return null;
+ try {
+ return await _channel.invokeMethod<String>('readSharedTextFromCache');
+ } on MissingPluginException {
+ return null;
+ }
+ }
+
+ static Future<void> clearSharedTextCache() async {
+ if (!Platform.isAndroid) return;
+ try {
+ await _channel.invokeMethod<void>('clearSharedTextCache');
+ } on MissingPluginException {
+ // No-op: channel not registered (e.g. running on a non-Android target).
+ }
+ }
+}