use tauri::{command, AppHandle, Runtime}; use crate::models::*; use crate::Result; use crate::WallpaperExt; #[command] pub(crate) async fn get_state(app: AppHandle) -> Result { app.wallpaper().get_state() } #[command] pub(crate) async fn get_gallery( app: AppHandle, offset: usize, limit: usize, ) -> Result { app.wallpaper() .get_gallery(GalleryRequest { offset, limit }) } #[command] pub(crate) async fn select_images(app: AppHandle) -> Result { app.wallpaper().select_images() } #[command] pub(crate) async fn delete_image( app: AppHandle, id: String, ) -> Result { app.wallpaper().delete_image(DeleteImageRequest { id }) } #[command] pub(crate) async fn get_image_ids(app: AppHandle) -> Result> { app.wallpaper().get_image_ids() } #[command] pub(crate) async fn delete_images(app: AppHandle, ids: Vec) -> Result { app.wallpaper().delete_images(DeleteImagesRequest { ids }) } #[command] pub(crate) async fn set_image_crop( app: AppHandle, id: String, mode: String, zoom: f64, position_x: f64, position_y: f64, rotation: i32, ) -> Result { app.wallpaper().set_image_crop(ImageCropRequest { id, mode, zoom, position_x, position_y, rotation, }) } #[command] pub(crate) async fn set_setting( app: AppHandle, name: String, value: bool, ) -> Result { app.wallpaper().set_setting(SettingRequest { name, value }) } #[command] pub(crate) async fn set_interval(app: AppHandle, minutes: usize) -> Result { app.wallpaper().set_interval(IntervalRequest { minutes }) } #[command] pub(crate) async fn next_wallpaper(app: AppHandle) -> Result { app.wallpaper().next_wallpaper() } #[command] pub(crate) async fn apply_wallpaper(app: AppHandle, id: String) -> Result { app.wallpaper().apply_wallpaper(ApplyWallpaperRequest { id }) } #[command] pub(crate) async fn get_immich_connection(app: AppHandle) -> Result { app.wallpaper().get_immich_connection() } #[command] pub(crate) async fn connect_immich( app: AppHandle, server_url: String, api_key: String, ) -> Result { app.wallpaper().connect_immich(ImmichConnectRequest { server_url, api_key }) } #[command] pub(crate) async fn disconnect_immich(app: AppHandle) -> Result { app.wallpaper().disconnect_immich() } #[command] pub(crate) async fn get_immich_albums(app: AppHandle) -> Result { app.wallpaper().get_immich_albums() } #[command] pub(crate) async fn get_immich_assets( app: AppHandle, album_id: Option, page: usize, size: usize, ) -> Result { app.wallpaper().get_immich_assets(ImmichAssetsRequest { album_id, page, size }) } #[command] pub(crate) async fn import_immich_assets( app: AppHandle, ids: Vec, ) -> Result { app.wallpaper().import_immich_assets(ImmichImportRequest { ids }) } #[command] pub(crate) async fn get_immich_import_progress(app: AppHandle) -> Result { app.wallpaper().get_immich_import_progress() }