1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
mod oauth;
use oauth::{OAuthController, SigninResult};
mod persistence;
use persistence::{Account, PersistenceController};
pub mod commands;
use tauri_plugin_deep_link::DeepLinkExt;
use tauri::{Manager, State, AppHandle};
pub const OAUTH_CLIENT_NAME: &'static str = "foxfleet_test";
struct AppState {
oauth_controller: OAuthController,
persistence_controller: PersistenceController,
}
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_single_instance::init(|app, argv, cwd| {
println!("{}, {argv:?}, {cwd}", app.package_info().name);
}))
.plugin(tauri_plugin_deep_link::init())
.plugin(tauri_plugin_opener::init())
.setup(|app| {
let persistence_controller = PersistenceController::new(tauri::async_runtime::handle());
let oauth_controller = OAuthController::new(tauri::async_runtime::handle(), persistence_controller.clone());
app.manage(AppState {
oauth_controller: oauth_controller.clone(),
persistence_controller,
});
#[cfg(any(target_os = "linux", all(debug_assertions, windows)))]
app.deep_link().register_all()?;
app.deep_link().on_open_url(move |event| {
if oauth_controller.handle_deeplink(&event.urls()).is_some() {
return
}
});
Ok(())
})
.invoke_handler(tauri::generate_handler![commands::accounts::start_account_auth, commands::accounts::get_self, commands::accounts::get_all_accounts])
.run(tauri::generate_context!())
.expect("Error starting")
}
|