Skip to main content

Module appnotes

Module appnotes 

Source
Expand description

Other apps’ notifications on a phone (docs/android.md, “Notifications from other apps”). Android’s listener (AppNotes.java, in a process of its own, “:listener”) asks here, for each notification of another app, whether it comes now or how long it waits (sioul_appnotes_decide), and, when something moved the times (a pause ended, the hours or the choices changed), how long what it holds waits now (sioul_appnotes_review). The rules are sioul_core::appnotes; what reaches you when, sioul_core::attention, with today’s slots of time for you from their file (hours::slots): Time for you holds in this process too.

Also here, for the window: Settings ▸ Other apps (setup, change), and the Porch’s line on what waits and what came back (porch_line). On a computer, nothing of it runs: the listener is the phone’s.

Functions§

access_here 🔒
Whether Android lets Sioul hold other apps’ notifications here (notification access): on a phone, as Java says now; None elsewhere, or when Java cannot say (its library not loaded in this process).
area_of 🔒
What a notification’s source is for: the app’s, as you set it; else, for mail, the address it came to, when it is one of your accounts’ (unsaid: work).
by_time 🔒
The table of other apps by time (What reaches you ▸ Exceptions): each app seen lately a row of the matrix, by name, and the apps’ rows set that this device has not seen (a computer’s, set on the phone: by the name written with them); then the conversations chosen for (a row or a way through) and the ten seen last (“Title · App”), never a wall of them. Whether some were left out. AttentionGrid.qml draws it.
change 🔒
A choice of the tab, or one of Android’s pages (AppNotesSetup.act): the tab again, as JSON. “set” {key, value}: “hold”, app.<package>.kind, app.<package>.area, conversation.<key>, site.<host>; “open-access”, “open-info”, “open-app” {package}, “open-channel” {package, channel}; “contacts”.
changed 🔒
When a file last changed; none when it is not there.
decide 🔒
One notification decided (AppNotes.decide): {“hold”: milliseconds (0: it comes now), “why”}. What it says is read here and dropped; the ledger keeps its key hashed, its app’s and conversation’s names, and its time. Only for the apps you send to your computers, while that part of the sharing is on, its messages also go, sealed (phonemsgs::note; “shared”: a line was written, Java asks for a step soon).
gate 🔒
Do-not-disturb’s switch or a focus session, holding now: when it ends, when that is known (a layer of the matrix).
java 🔒
Java’s answer to verb (AppNotes.call); null elsewhere, or without one.
live 🔒
The clock as it stands, kept a minute in the listener’s process: read again sooner when the pause or free time, Health, the hours or the settings change. Asked at every notification.
porch_line 🔒
The Porch’s line on other apps (appnotes::porch_line); “” when nothing waits nor came back lately, and on a computer (no listener there).
review 🔒
What Android holds for Sioul now, worked out again (AppNotes.review): {“snooze”: [{“key”, “ms”}]}, those whose time moved by more than a minute (1 s: it may come now). Marks of notifications Android no longer holds (their app took them away, or they came back unseen) are let go.
row 🔒
A row of the tab, as SettingRow.qml shows it: {key, kind, label, help, value, choices}.
set 🔒
One choice written: the app’s kind or area, a conversation’s way through, a site at once. What says “as usual” is taken out.
setup 🔒
Settings ▸ Other apps, as JSON (AppNotesSetup.qml): whether this is a phone, the access and its steps, the switch, the times, what rang while held, then a row for each app, conversation and site seen.
sioul_appnotes_decide⚠
decide, for Java (android/main.cpp); a panic answers “null”, and the notification comes as it was sent. Given back to sioul_string_free.
sioul_appnotes_review⚠
review, for Java; “null” when it fails, and what is held keeps its time.
times_in_words 🔒
“09:00, 13:00 and 18:00”.
who_of 🔒
Who wrote, as your address books and lists say (porch::Senders): none when nobody knows a name; and whether the Always through list holds them (by a number or an address, never a name, which anyone can take).
with_line 🔒
The Porch’s JSON with its line on other apps (apps_line), when there is one.