Android-App
Eine native App (Kotlin und Jetpack Compose) auf demselben Rust-Kern wie
der Server, sodass Verfügbarkeit, Schnellerfassung, Uhren und
Gewohnheiten auf dem Handy genauso berechnet werden, auch offline. Wie man
sie baut, steht in android/README.md.
Anmelden
Entweder mit Server, Konto, Passwort und einem Gerätenamen oder per
Koppeln: in der Web-Oberfläche das Kontomenü öffnen, „Handy koppeln“,
und den QR-Code mit der App scannen (oder samu pair phone auf der
Kommandozeile). Der Code gilt einmal, für zehn Minuten. Die App behält nur
das Sitzungs-Token.
Offline zuerst
Jede Änderung geht zuerst in den Ausgang und wird mit dem nächsten Sync gesendet: beim Öffnen der App, nach jeder Änderung, bei „Sync“ und alle 15 Minuten, solange es Netz gibt. „Offline · n Änderungen im Ausgang“ über der Liste zeigt, was wartet. Dateien warten auf dem Handy und gehen vor den Änderungen hoch, die auf sie verweisen. Nur Löschen braucht eine Verbindung.
Ansichten
Die untere Leiste hat Inbox, Verfügbar, Forecast, Projekte (ein Baum aus Ordnern und Projekten, die sich anlegen, verschieben und zuklappen lassen) und Suche (jedes Wort in Titel oder Notiz, beim Tippen). Tag-Chips über jeder Liste filtern nach einem Tag und allem darunter.
Mit Aufgaben arbeiten
- Zeilen haben einen runden Haken; nach rechts wischen oder auf den Haken tippen erledigt (oder öffnet wieder). Auf eine Zeile tippen öffnet die Aufgabe.
- Langes Drücken öffnet ein Blatt: bearbeiten, verschieben („Verschieben …“, in die Inbox oder ein Projekt, Kinder gehen mit), markieren, für heute oder morgen planen, verwerfen oder wieder öffnen, löschen (mit der Zahl der Kinder, die mitgehen).
- Viele auswählen: Nach einem langen Drücken nehmen Taps Aufgaben dazu oder heraus. Die Leiste bietet dann erledigen, markieren, verschieben und unter „⋯“ wieder öffnen, verwerfen, planen, Daten, Tags, Zustand und löschen; bei genau einer Aufgabe auch bearbeiten und die Uhr.
- Die Aufgabenseite ist bearbeitbar: Titel, Notiz, Start-, Fälligkeits- und Plandatum, Schätzung, Tags und Zustand als Chips, die Projektzeile verschiebt die Aufgabe, dazu Wiederholung und Erinnerungen.
- Kommentare und Anhänge unten: Text, ein Foto aus der Kamera-App, eine Aufnahme („● Aufnehmen“, fragt beim ersten Mal nach dem Mikrofon) oder eine beliebige Datei. Mit Text wird daraus ein Kommentar mit den Dateien daran; ohne hängen die Dateien an der Aufgabe. Bilder zeigen eine Vorschau, Aufnahmen spielen ab, andere Dateien öffnen in einer anderen App.
- Uhr („Zeit“): Summe gegen die Schätzung, Start/Stopp und die letzten Uhren. Eine laufende Uhr steht als dauerhafte Benachrichtigung mit Zeit und „Stopp“ da.
- Gewohnheiten: siehe Gewohnheiten.
Erfassen und Teilen
- Erfassen öffnet ein Blatt mit der Schnellerfassung; die Vorschau rechnet das Handy, auch offline.
- An samudo teilen aus jeder App, die Text teilt: Betreff oder erste
Zeile werden der Titel (bearbeitbar), darunter ein Feld der
Schnellerfassung für Projekt, Tags und Daten. Der Rest des Textes wird
die Notiz, und jede Adresse mit
https://,mid:odercatastr:ein Link. Ohne Sitzung wartet der geteilte Text, bis man sich anmeldet. samu:<id>-Links in anderen Apps öffnen die Aufgabe.
Widgets
- „Heute“: überfällig, heute, dann markierte verfügbare Aufgaben. Der Haken erledigt über den Ausgang, „+“ öffnet das Erfassen, eine Zeile öffnet die Aufgabe. Neu gezeichnet nach jedem Sync und beim Verlassen der App.
- „Habits“: jede offene Gewohnheit; siehe Gewohnheiten.
Erinnerungen und Kalender
Erinnerungen werden als Wecker auf dem Handy gestellt und erscheinen als Benachrichtigungen, auch ohne Netz. Termine im Forecast öffnen in der Kalender-App des Handys.
Automatisieren mit Tasker
Zwei Broadcasts lassen andere Apps (etwa Tasker) auf die App wirken. Der
Paketname ist zurzeit de.cnova.samu; er ändert sich vor einer
öffentlichen Veröffentlichung.
Scope (dem Kontext folgen: Nicht stören, WLAN, Ort):
| Feld | Wert |
|---|---|
| Aktion | de.cnova.samu.action.SCOPE |
| Paket | de.cnova.samu |
| Extra | scope: Titel oder ID eines Scopes; leer = kein Scope; auto = dem Zeitplan folgen |
In die Inbox erfassen (wie der Ring, auch offline): Aktion
de.cnova.samu.action.RING, Extra text, wahlweise recorded_at in
Unix-Millisekunden. Siehe
Erfassen vom Index-Ring.
Über adb ausprobieren:
adb shell am broadcast -a de.cnova.samu.action.SCOPE -p de.cnova.samu --es scope Work
adb shell am broadcast -a de.cnova.samu.action.RING -p de.cnova.samu --es text "'Milch kaufen'"Zurück zum Anmeldebildschirm: adb shell pm clear de.cnova.samu.