diff --git a/frontend/src-tauri/capabilities/android.toml b/frontend/src-tauri/capabilities/android.toml new file mode 100644 index 0000000..8c469f6 --- /dev/null +++ b/frontend/src-tauri/capabilities/android.toml @@ -0,0 +1,8 @@ +identifier = "android" +description = "Capabilities for Android platforms" +windows = ["main"] +platforms = ["android"] + +permissions = [ + "sharetarget:default" +] diff --git a/frontend/src-tauri/capabilities/mobile.toml b/frontend/src-tauri/capabilities/mobile.toml index 5851392..41d80a2 100644 --- a/frontend/src-tauri/capabilities/mobile.toml +++ b/frontend/src-tauri/capabilities/mobile.toml @@ -8,7 +8,6 @@ permissions = [ "fs:default", "http:default", "os:default", - "sharetarget:default", { identifier = "http:default", allow = [ { url = "https://haystack.johncosta.tech" }, { url = "http://localhost:3040" }, diff --git a/frontend/src-tauri/src/lib.rs b/frontend/src-tauri/src/lib.rs index f39dce4..853d036 100644 --- a/frontend/src-tauri/src/lib.rs +++ b/frontend/src-tauri/src/lib.rs @@ -49,21 +49,33 @@ pub fn desktop() { } #[cfg_attr(mobile, tauri::mobile_entry_point)] -#[cfg(any(target_os = "ios", target_os = "android"))] -pub fn android() { - let common_builder = tauri::Builder::default() +#[cfg(target_os = "ios")] +pub fn mobile() { + tauri::Builder::default() .plugin(tauri_plugin_os::init()) .plugin(tauri_plugin_fs::init()) .plugin(tauri_plugin_store::Builder::new().build()) .plugin(tauri_plugin_http::init()) - .plugin(tauri_plugin_sharetarget::init()); - - #[cfg(any(target_os = "ios"))] - common_builder.plugin(tauri_plugin_ios_shared_token::init()); - - common_builder + .plugin(tauri_plugin_ios_shared_token::init()) + .setup(|app| { + setup_window(app)?; + + Ok(()) + }) + .run(tauri::generate_context!()) + .expect("error while running ios tauri application"); +} + +#[cfg_attr(mobile, tauri::mobile_entry_point)] +#[cfg(target_os = "android")] +pub fn mobile() { + tauri::Builder::default() + .plugin(tauri_plugin_os::init()) + .plugin(tauri_plugin_fs::init()) + .plugin(tauri_plugin_store::Builder::new().build()) + .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_sharetarget::init()) .setup(|app| { - log::info!("running things!"); setup_window(app)?; Ok(()) diff --git a/frontend/src-tauri/src/main.rs b/frontend/src-tauri/src/main.rs index cc833e9..1e40148 100644 --- a/frontend/src-tauri/src/main.rs +++ b/frontend/src-tauri/src/main.rs @@ -6,5 +6,5 @@ fn main() { haystack_lib::desktop(); #[cfg(any(target_os = "ios", target_os = "android"))] - haystack_lib::android(); + haystack_lib::mobile(); } diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4c9d308..c4c52b2 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -16,6 +16,7 @@ import { import { readFile } from "@tauri-apps/plugin-fs"; const currentPlatform = platform(); +console.log("Current Platform: ", currentPlatform); export const App = () => { createEffect(() => { @@ -35,9 +36,13 @@ export const App = () => { } let listener: PluginListener; + const setupListener = async () => { + console.log("Setting up listener"); + listener = await listenForShareEvents( async (intent: ShareEvent) => { + console.log(intent); const contents = await readFile(intent.stream ?? "").catch( (error: Error) => { console.warn("fetching shared content failed:"); @@ -53,6 +58,7 @@ export const App = () => { }, ); }; + setupListener(); return () => { listener?.unregister();