android: the downloads say so in the shade
A Save still running with the app in the background now posts a progress notice — how many files, the one it is on, a bar, Stop all and Open — and takes it down when the queue empties. It sits on its own low-importance channel so it can be silenced without silencing the player's card, and rides its own dataSync foreground service rather than the media one: a mediaPlayback service stops itself when the bar empties, a download is not playback, and nothing else was keeping the process alive for a Save with nothing playing — which is how the first real Save died, four tracks in. Stop all goes through the same cancel(id) a row's tap takes, and Transfers grew the matching button beside Clear finished. The walk pushes two rows straight into the transfer store and reads the real notification back out of `dumpsys notification`, without fetching anything.
This commit is contained in:
1 parent
4fc6e9c630
commit
5738c2d7bf
31 files changed
+1358
-6
No files matched your search
@@ -60,6 +60,10 @@ audio-formats = { path = "../crates/audio-formats" }
|
||||
tauri-plugin-media-session = { path = "../crates/tauri-plugin-media-session" }
|
||||
tauri-plugin-storage = { path = "../crates/tauri-plugin-storage" }
|
||||
tauri-plugin-share = { path = "../crates/tauri-plugin-share" }
|
||||
# The phone's downloads notice (a second Kotlin foreground service, dataSync).
|
||||
# Registered everywhere so the permission set resolves on every platform; on
|
||||
# the desktop its commands answer "not here".
|
||||
tauri-plugin-transfer-notice = { path = "../crates/tauri-plugin-transfer-notice" }
|
||||
semver = "1"
|
||||
tauri-plugin-opener = "2.5.5"
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
// tauri-build only rewrites gen/android/tauri.settings.gradle and
|
||||
// app/tauri.build.gradle.kts — the lines that include every plugin's own
|
||||
// Android module — when this build script re-runs, so touch this file
|
||||
// whenever a plugin is added (ANDROID.md). The downloads notice was the
|
||||
// last one.
|
||||
fn main() {
|
||||
tauri_build::build()
|
||||
}
|
||||
@@ -23,6 +23,7 @@
|
||||
"media-session:default",
|
||||
"opener:default",
|
||||
"storage:default",
|
||||
"share:default"
|
||||
"share:default",
|
||||
"transfer-notice:default"
|
||||
]
|
||||
}
|
||||
@@ -85,6 +85,10 @@ pub fn run() {
|
||||
app.handle().plugin(tauri_plugin_storage::init())?;
|
||||
// The share sheet on the phone: a link sent from another app lands in the import.
|
||||
app.handle().plugin(tauri_plugin_share::init())?;
|
||||
// The downloads in the phone's shade: a progress notice on its own
|
||||
// channel and its own dataSync service, so a Save survives the app
|
||||
// going to the background with nothing playing.
|
||||
app.handle().plugin(tauri_plugin_transfer_notice::init())?;
|
||||
#[cfg(desktop)]
|
||||
app.handle().plugin(tauri_plugin_updater::Builder::new().build())?;
|
||||
// Must run before anything touches the app-data dir.
|
||||
|
||||
Reference in new issue
Block a user