| 1 | use tauri::{ |
| 2 | plugin::{Builder, TauriPlugin}, |
| 3 | Manager, Runtime, |
| 4 | }; |
| 5 | |
| 6 | pub use models::*; |
| 7 | |
| 8 | #[cfg(desktop)] |
| 9 | mod desktop; |
| 10 | #[cfg(mobile)] |
| 11 | mod mobile; |
| 12 | |
| 13 | mod commands; |
| 14 | mod error; |
| 15 | mod models; |
| 16 | |
| 17 | pub use error::{Error, Result}; |
| 18 | |
| 19 | #[cfg(desktop)] |
| 20 | use desktop::AndroidTvCheck; |
| 21 | #[cfg(mobile)] |
| 22 | use mobile::AndroidTvCheck; |
| 23 | |
| 24 | /// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the android-tv-check APIs. |
| 25 | pub trait AndroidTvCheckExt<R: Runtime> { |
| 26 | fn android_tv_check(&self) -> &AndroidTvCheck<R>; |
| 27 | } |
| 28 | |
| 29 | impl<R: Runtime, T: Manager<R>> crate::AndroidTvCheckExt<R> for T { |
| 30 | fn android_tv_check(&self) -> &AndroidTvCheck<R> { |
| 31 | self.state::<AndroidTvCheck<R>>().inner() |
| 32 | } |
| 33 | } |
| 34 | |
| 35 | /// Initializes the plugin. |
| 36 | pub fn init<R: Runtime>() -> TauriPlugin<R> { |
| 37 | Builder::new("android-tv-check") |
| 38 | .invoke_handler(tauri::generate_handler![commands::check]) |
| 39 | .setup(|app, api| { |
| 40 | #[cfg(mobile)] |
| 41 | let android_tv_check = mobile::init(app, api)?; |
| 42 | #[cfg(desktop)] |
| 43 | let android_tv_check = desktop::init(app, api)?; |
| 44 | app.manage(android_tv_check); |
| 45 | Ok(()) |
| 46 | }) |
| 47 | .build() |
| 48 | } |