Zum Inhalt springen
Android-App

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: oder catastr: 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):

FeldWert
Aktionde.cnova.samu.action.SCOPE
Paketde.cnova.samu
Extrascope: 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.