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