fix(receiver): add filepath for download on android.

This commit is contained in:
PatrykHegenberg 2024-05-17 10:25:48 +02:00 committed by GitHub
parent 9db004472a
commit 25422ed089
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -22,6 +22,9 @@ use tracing::error;
const DESTINATION: u8 = 0; const DESTINATION: u8 = 0;
const NONCE_SIZE: usize = 12; const NONCE_SIZE: usize = 12;
#[cfg(target_os = "android")]
const FILE_PATH_PREFIX: &str = "/storage/emulated/0/Download";
struct File { struct File {
name: String, name: String,
size: u64, size: u64,
@ -73,11 +76,29 @@ fn on_list(context: &mut Context, list: ListPacket) -> Status {
for entry in list.entries { for entry in list.entries {
let path = sanitize_filename::sanitize(entry.name.clone()); let path = sanitize_filename::sanitize(entry.name.clone());
#[cfg(target_os = "android")]
let file_path = format!("{}/{}", FILE_PATH_PREFIX, path);
#[cfg(target_os = "android")]
if Path::new(&file_path).exists() {
return Status::Err(format!("The file '{}' already exists.", path));
}
#[cfg(target_os = "android")]
let handle = match fs::File::create(&file_path) {
Ok(handle) => handle,
Err(error) => {
return Status::Err(format!(
"Error: Failed to create file '{}': {}",
file_path, error
));
}
};
#[cfg(not(target_os = "android"))]
if Path::new(&path).exists() { if Path::new(&path).exists() {
return Status::Err(format!("The file '{}' already exists.", path)); return Status::Err(format!("The file '{}' already exists.", path));
} }
#[cfg(not(target_os = "android"))]
let handle = match fs::File::create(&path) { let handle = match fs::File::create(&path) {
Ok(handle) => handle, Ok(handle) => handle,
Err(error) => { Err(error) => {