mirror of
https://github.com/tauri-apps/winrt-notification.git
synced 2026-01-31 00:45:19 +01:00
51 lines
1.8 KiB
Rust
51 lines
1.8 KiB
Rust
// Copyright 2017-2022 allenbenz <allenbenz@users.noreply.github.com>
|
|
// Copyright 2022-2022 Tauri Programme within The Commons Conservancy
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
use std::{thread::sleep, time::Duration as StdDuration};
|
|
use tauri_winrt_notification::{Duration, NotificationUpdateResult, Progress, Toast};
|
|
|
|
fn main() {
|
|
let mut progress = Progress {
|
|
tag: "my_tag".to_string(),
|
|
title: "video.mp4".to_string(),
|
|
status: "Transferring files...".to_string(),
|
|
value: 0.0,
|
|
value_string: "0/1000 MB".to_string(),
|
|
};
|
|
|
|
let toast = Toast::new(Toast::POWERSHELL_APP_ID)
|
|
.title("File Transfer from Phone")
|
|
.text1("Transferring files to your computer...")
|
|
.progress(&progress)
|
|
.duration(Duration::Long);
|
|
toast.show().expect("notification failed");
|
|
|
|
for i in 1..=10 {
|
|
sleep(StdDuration::from_secs(1));
|
|
|
|
progress.value = i as f32 / 10.0;
|
|
progress.value_string = format!("{}/1000 MB", i * 100);
|
|
|
|
if i == 10 {
|
|
progress.status = String::from("Completed");
|
|
};
|
|
|
|
if let Ok(update_result) = toast.set_progress(&progress) {
|
|
match update_result {
|
|
NotificationUpdateResult::Succeeded => {
|
|
println!("notification updated successfully.");
|
|
}
|
|
NotificationUpdateResult::Failed => {
|
|
println!("failed to update notification")
|
|
}
|
|
NotificationUpdateResult::NotificationNotFound => {
|
|
println!("notification not found. Please ensure the notification ID and Tag are correct.");
|
|
}
|
|
_ => println!("unknown notification update result"),
|
|
}
|
|
};
|
|
}
|
|
}
|