tauri_plugin_android_fs/
lib.rs

1//! Overview and usage is [here](https://crates.io/crates/tauri-plugin-android-fs)
2
3#![allow(unused_variables)]
4
5mod models;
6mod api;
7mod consts;
8
9pub use models::*;
10pub use api::*;
11pub use consts::*;
12
13#[cfg(target_os = "android")]
14mod utils;
15#[cfg(target_os = "android")]
16pub(crate) use utils::*;
17
18/// Initializes the plugin.
19/// 
20/// # Usage
21/// `src-tauri/src/lib.rs`
22/// ```
23/// #[cfg_attr(mobile, tauri::mobile_entry_point)]
24/// pub fn run() {
25///     tauri::Builder::default()
26///         .plugin(tauri_plugin_android_fs::init())
27///         .run(tauri::generate_context!())
28///         .expect("error while running tauri application");
29/// }
30/// ```
31pub fn init<R: tauri::Runtime>() -> tauri::plugin::TauriPlugin<R> {
32    tauri::plugin::Builder::new("android-fs")
33        .setup(|app, api| {
34            use tauri::Manager as _;
35
36            let afs = AndroidFs::new(app.clone(), api)?;
37
38            #[cfg(target_os = "android")] {
39                // Cleanup temporary files;
40                let _ = afs
41                    .private_storage()
42                    .remove_all_tmp_files();
43            }
44
45            app.manage(afs);
46            Ok(())
47        })
48        .build()
49}
50
51pub trait AndroidFsExt<R: tauri::Runtime> {
52
53    fn android_fs(&self) -> &AndroidFs<R>;
54}
55
56impl<R: tauri::Runtime, T: tauri::Manager<R>> AndroidFsExt<R> for T {
57
58    fn android_fs(&self) -> &AndroidFs<R> {
59        self.try_state::<AndroidFs<R>>()
60            .map(|i| i.inner())
61            .expect("You should register this plugin by tauri_plugin_android_fs::init(). See https://crates.io/crates/tauri-plugin-android-fs")
62    }
63}