Package com.aurelienpierre.sioul


package com.aurelienpierre.sioul
  • Class
    Description
    Other apps' notifications held until their time (docs/android.md, "Notifications from other apps"; crates/sioul-app/src/appnotes.rs, which decides; crates/sioul-core/src/appnotes.rs, how).
    A mail attachment opened in the app you choose, or saved where you choose (docs/client.md, "Antivirus"; crates/sioul-app/src/attachments.rs).
    Android's question "where?" for a file to save: an action, a category, a type, the name offered.
    What another app is handed to open a file: an action, an address, a type, flags.
    "Save…" beside a mail attachment, on a phone (docs/client.md, "Antivirus"; Attachments): Android's own question where to save it (ACTION_CREATE_DOCUMENT: Downloads, a folder, a cloud's app), then the copy there, on a thread of its own, and the copy in Sioul's cache taken out, saved or not.
    Calls screened (docs/android.md, "Calls"; docs/research/call-screening.md, section 8).
    What Sioul answers, and why: for the response, the list of calls held, and the log.
    One stretch of time and who rings in it.
    What the decision asks of the phone beyond the table: Android's emergency list, its contacts.
    A press of Expecting a call (once "Let every call through"): when (ms), on or off, until (ms; 0: until turned off).
    How the table's country writes its numbers (phones.rs's Region).
    The call screening, as a table of version 2 says it (crates/sioul-core/src/screening.rs, `TablePart`): what becomes of a number nobody knows, apart from do-not-disturb and every state.
    The table as Rust wrote it (crates/sioul-core/src/calls.rs, `Table`).
    Android's question about each call, to Sioul as the "Caller ID & spam app" (docs/android.md, "Calls"): answered from the table Rust wrote ahead (Calls.decide(android.content.Context, android.telecom.Call.Details, long)), in a process of its own (":calls") that never loads Sioul's library or Qt, so that Telecom, which holds the ringing until it hears back (five seconds at most), waits milliseconds.
    Android's question "Set Sioul as your default caller ID & spam app?" (docs/android.md, "Calls"), asked from Settings ▸ Calls: Android answers only an activity that asks for a result, so this one, never seen, asks and goes.
    A smart card's messages over USB (CCID, the USB Integrated Circuit(s) Cards Interface Device class, revision 1.1, §6), for your security key plugged into the phone (SecurityKeyLink.java).
    The key's answer that said nothing sensible, or a failure of its own: a code, never its bytes.
    The key's two bulk endpoints.
    Sioul's notification channels, every one made here: without a badge on Sioul's icon, neither the launcher's dot nor a count (docs/design.md: no badges, no counts).
    The end of work's notice and the night's (docs/reviews.md), as on a computer: "Work hours are over" with Close the work day; as the night's wind-down begins, its own notice with Close the whole day while that night's review is to give, and Options….
    A button: its words, and what it opens (ReminderOpener.opens).
    The people who may reach you during do-not-disturb, as this phone's contacts have them (crates/sioul-app/src/everywhere.rs): Android lets only starred contacts through a mode, so Sioul says who on the list is not starred here, and opens their contact for you to star it.
    What a change of the phone's own do-not-disturb means for Sioul's switch (docs/do-not-disturb.md, "Both ways"; DndReceiver), decided in Java so that most changes end without loading Sioul's library.
    Do-not-disturb applied in Sioul's own process (crates/sioul-app/src/ everywhere.rs, `apply`), where Android's modes of Sioul's are kept (PauseMode): asked by the background service when your other devices changed it, at the alarm of its next end (the switch's "until", waking, the night), and after the phone's restart.
    Work that may wait, on a thread of its own, the broadcast held open meanwhile.
    "Do not disturb (Sioul)" among the quick settings: Sioul's switch, on every device (docs/do-not-disturb.md), pressed without opening Sioul.
    Doses reminded while Sioul is not on the screen (docs/android.md, "Doses while Sioul is away").
    The doses' alarms given again from the list kept (DoseAlarms): Android forgets them when it restarts; an update keeps them, given again all the same; allowed "Alarms & reminders" again, they ring on time again.
    A reminder tapped: its dose kept for Sioul (DoseAlarms.takeOpened(android.content.Context), which Rust reads when the window comes up), then Sioul brought up as by its icon.
    A dose's alarm, and the "Taken" of its reminder (DoseAlarms): each asks Rust's side (crates/sioul-app/src/alarms.rs) on a thread of its own, the broadcast held open meanwhile (goAsync).
    One broadcast: answered in time, or let go at the deadline and answered after.
    Reminders before events while Sioul is not on the screen (docs/android.md, "Events"): Android freezes an app it does not show, so Rust hands the coming reminders of events ahead (crates/sioul-app/src/eventalarms.rs: their own alarms, Sioul's before them, the working day before), and each is given to Android's alarm clock, as the doses are (DoseAlarms).
    An alarm to set: its reminder's key, and when (Unix ms).
    The events' reminders (EventAlarms): at a reminder's time, Rust is asked what to say (crates/sioul-app/src/eventalarms.rs) on a thread of its own, the broadcast held open meanwhile (goAsync), as for the doses (DoseReceiver).
    One broadcast: answered in time, or let go at the deadline and answered after.
    Sioul's cards on the home screen (docs/android.md, "The card on the home screen").
    Sioul's agenda card on the home screen: the coming events alone, day by day, as the full card lists them (HomeCardRows).
    Sioul's mail card on the home screen: the Porch's latest messages alone, as the full card lists them (HomeCardRows).
    A line of the home screen's card tapped (HomeCard, HomeCardRows): the Porch or a message on it, Now on its step, the Agenda or an event in it, kept for Rust (HomeCard.opened(android.content.Context, android.content.Intent); homecard.rs takes it when the window comes up), then Sioul brought up as by its icon.
    The rows of a home-screen card's list (HomeCard, through HomeCardService), as a mail card and an agenda card show them, from what Rust wrote (crates/ sioul-app/src/homecard.rs).
    One row: its kind, the message or event it shows, its words, where a tap leads.
    The home-screen cards' lists (HomeCard): Android's widget service binds here for the rows of a card's list, each card its own factory (HomeCardRows), the card's kind in its address.
    Sioul's full card on the home screen (HomeCard draws it; docs/android.md, "The card on the home screen"), from what Rust wrote (crates/sioul-app/src/ homecard.rs).
    A cell of the weather: an hour, a part of the day, a day.
    What fits in the card's height, the most needed first; and what its width allows.
    What the full card says now, and when that changes next: the pure part.
    New mail at the times it may come (docs/porch.md, "Notifications"; Rust decides what and when: crates/sioul-app/src/mailnote.rs): one notification for a batch, "Two letters", the first senders with their subjects below, the next batch in its place.
    Sioul's addresses that can send, published to Android (docs/android.md, "Sharing"): one shortcut each, which the share sheet offers as a direct target from Android 10 (its <share-target> in res/xml/sioul_shortcuts.xml matches their category), and a long press on Sioul's icon as "Write from you@example.org".
    The phone's do-not-disturb during Sioul's pauses and for its own do-not-disturb (crates/sioul-app/src/dnd.rs, docs/android.md "Pauses"): a mode of Sioul's own for each, an AutomaticZenRule named "Pause" / "En pause", "Free time" / "Temps libre" or "Do not disturb (Sioul)", letting through what the matrix of what reaches you lets through then, as far as Android can say it (sioul_core::attention::Silence, docs/attention.md §3.3): calls and messages from nobody, starred contacts, contacts or anyone; a second call within 15 minutes; the conversations marked important in Android (Android 11 and later); alarms; the sound of what the person plays.
    What one of Sioul's modes lets through, as Rust asks it (dnd.rs's Ask, from the matrix: sioul_core::attention::Silence): who may call and who may write ("none", "starred", "contacts", "anyone"), a second call within 15 minutes, the conversations marked important in Android, alarms, the doses' and an event's alarms' channels.
    "Pause" pressed on the quick-settings tile (PauseTile) or the home screen's shortcut (res/xml/sioul_shortcuts.xml): the press kept for Sioul (PauseMode.pressed(android.content.Context), which Rust takes when the window comes up), then Sioul brought up as by its icon, where the pause starts, or shows when it is on already.
    "Pause" among the quick settings: a tap opens Sioul, which starts the pause, or shows it when it is on already; never an end (ending is the pause screen's one button: no exit by accident).
    What the listener says of a notification for your computers, beside what decides its time (AppNotes, describe; crates/sioul-core/src/phonemsgs.rs, `Extra`): whether its app keeps it secret, when it was sent and posted, whether it shows a picture; and of each message, when it was sent and whether it is a picture.
    An event's reminder, new mail's notification, or a button of the end of work's or the night's notice pressed (EventAlarms, MailNotes, DayNotes): what it opens, the event's file, the Porch, a closing sheet or a block's question, kept for Sioul (EventAlarms.takeOpened(android.content.Context), which Rust reads when the window comes up), the day's notice taken away, then Sioul brought up as by its icon.
    A reply from your computers sent through a notification's own Reply, as the phone's shade sends one typed under it (docs/android.md, "Replies from your computers"; Rust's side: crates/sioul-app/src/replies.rs, crates/sioul-core/src/replies.rs).
    One action of a notification as the choice reads it: plain data, made on the phone from a Notification.Action or a car extender's bundle (Replies.found(android.app.Notification)), by hand in android/jvm-checks/RepliesCheck.java.
    What a notification offers (Replies.choose(java.util.List<com.aurelienpierre.sioul.Replies.Act>, boolean, boolean)): its Reply and its Mark as read, each null when none.
    An action found on the phone: what the choice reads, and what sends it.
    Your security key held against the phone or plugged into its USB-C port (crates/sioul-app/src/nfc.rs, crates/sioul-sync/src/securitykey/phone.rs, docs/android.md "Your security key"), for Rust through android/main.cpp.
    What other apps hand Sioul to write (docs/android.md, "Sharing"): files and text shared to it, or to one of your addresses straight from the share sheet (MailShortcuts), and mailto: links.
    A shared file, open, or why not.
    What is chosen as Sioul's process starts, before anything of Qt's (Android makes an app's providers first): Qt's accessibility is kept for screen readers.
    The background service's alarm, and the phone's restart or Sioul's update (StepService, in the same process ":steps"): a step for the service running, else the service started again, if it was on.
    Sioul in the background: it keeps your devices in step while Sioul is closed (crates/sioul-app/src/steps.rs; docs/android.md, "In the background").
    A step asked for later: its reason, and when it comes (elapsed realtime, milliseconds).
    Texts read on the phone for your computers (docs/texts.md; Rust's side: crates/sioul-app/src/texts.rs), without Sioul being the phone's SMS app: the SMS app stays the record.
    A new text, after the phone's SMS app had it (SMS_RECEIVED, sent by the system alone: its permission): a step soon, in which Rust reads it and shares it.
    An inbox's newest id asked in an order (`NEWEST`); a refusal throws.
    A row of a cursor, or of a check's stand-in: its values by column.
    Android's question for the texts' permissions (docs/texts.md), asked from Settings ▸ This phone ▸ Texts: reading the texts (READ_SMS), hearing a new one (RECEIVE_SMS), sending one written on a computer (SEND_SMS), then, apart, the SIMs' names (READ_PHONE_STATE), which Android never keeps behind restricted settings: the first question's answer, timed, says whether Android showed one (`Texts.atOnce`).
    A text written on a computer, sent by this phone (docs/texts.md, "Never twice"; Rust's side: crates/sioul-app/src/texts.rs).
    Android's word on a part, sent or delivered, or on a multimedia message (in the background service's process): written, then a step soon.
    The time running, in Android's notifications while a focus session runs (docs/android.md, "The time running"): its task, a chronometer counting from its start, the time paused left out, and Pause (Go on, while paused) and Stop.
    A button of the time running (TimeNote): Pause, Go on or Stop, done by Rust's side (crates/sioul-app/src/timenote.rs) on a thread of its own, the broadcast held open meanwhile (goAsync), Sioul's window running or not.
    The alarm at waking (docs/android.md, "Waking"): it rings when the night ends, on the mornings ticked with the night in Sioul's Health settings.
    The alarm at waking's moments (WakeAlarms): its ring, which starts the ringer at once and gives the next from the list kept, then asks Rust for the wakings as they are now; its look, a little before each ring and as each night starts, which asks Rust after the sync app had its twenty seconds (Sioul may be frozen while another device changed the night); a try ("Try the alarm"), rung the same way and nothing else; Stop and 10 min later; and the phone's own moments: started (before its first unlock, then after), Sioul updated, the time or the zone changed, "Alarms & reminders" allowed again, each giving the alarms again.
    The alarm at waking, ringing (WakeAlarms): a service in the foreground for as long as it rings, its notification on the "Waking" channel with the screen over the lock screen (WakeScreen), Stop and 10 min later.
    The alarm at waking, over the lock screen (WakeRinger's full-screen notification): the time, Stop, 10 min later (a try's last ring: Stop alone).