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.qmldraws 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.qmlshows 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 tosioul_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.