mirror of
https://github.com/schlagmichdoch/PairDrop.git
synced 2025-04-25 17:26:18 -04:00
Fix wrong file name with navigator.share
This commit is contained in:
parent
1d5f2e8023
commit
490bad5734
2 changed files with 15 additions and 11 deletions
|
@ -723,7 +723,7 @@ class Peer {
|
||||||
|
|
||||||
for (let i = 0; i < files.length; i++) {
|
for (let i = 0; i < files.length; i++) {
|
||||||
header.push({
|
header.push({
|
||||||
displayName: files[i].name,
|
name: files[i].name,
|
||||||
mime: files[i].type,
|
mime: files[i].type,
|
||||||
size: files[i].size
|
size: files[i].size
|
||||||
});
|
});
|
||||||
|
@ -806,7 +806,7 @@ class Peer {
|
||||||
this._sendMessage({
|
this._sendMessage({
|
||||||
type: 'transfer-header',
|
type: 'transfer-header',
|
||||||
size: file.size,
|
size: file.size,
|
||||||
displayName: file.name,
|
name: file.name,
|
||||||
mime: file.type
|
mime: file.type
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -970,7 +970,7 @@ class Peer {
|
||||||
? new FileDigesterViaWorker(
|
? new FileDigesterViaWorker(
|
||||||
{
|
{
|
||||||
size: header.size,
|
size: header.size,
|
||||||
name: header.displayName,
|
name: header.name,
|
||||||
mime: header.mime
|
mime: header.mime
|
||||||
},
|
},
|
||||||
file => this._fileReceived(file),
|
file => this._fileReceived(file),
|
||||||
|
@ -979,7 +979,7 @@ class Peer {
|
||||||
: new FileDigesterViaBuffer(
|
: new FileDigesterViaBuffer(
|
||||||
{
|
{
|
||||||
size: header.size,
|
size: header.size,
|
||||||
name: header.displayName,
|
name: header.name,
|
||||||
mime: header.mime
|
mime: header.mime
|
||||||
},
|
},
|
||||||
file => this._fileReceived(file),
|
file => this._fileReceived(file),
|
||||||
|
@ -1054,7 +1054,7 @@ class Peer {
|
||||||
|
|
||||||
const sameSize = header.size === acceptedHeader.size;
|
const sameSize = header.size === acceptedHeader.size;
|
||||||
const sameType = header.mime === acceptedHeader.mime;
|
const sameType = header.mime === acceptedHeader.mime;
|
||||||
const sameName = header.displayName === acceptedHeader.displayName;
|
const sameName = header.name === acceptedHeader.name;
|
||||||
|
|
||||||
return sameSize && sameType && sameName;
|
return sameSize && sameType && sameName;
|
||||||
}
|
}
|
||||||
|
@ -1074,7 +1074,7 @@ class Peer {
|
||||||
Logger.log(`File received.\n\nSize: ${size} MB\tDuration: ${duration} s\tSpeed: ${speed} MB/s`);
|
Logger.log(`File received.\n\nSize: ${size} MB\tDuration: ${duration} s\tSpeed: ${speed} MB/s`);
|
||||||
|
|
||||||
// include for compatibility with 'Snapdrop & PairDrop for Android' app
|
// include for compatibility with 'Snapdrop & PairDrop for Android' app
|
||||||
Events.fire('file-received', {name: file.displayName, size: file.size});
|
Events.fire('file-received', {name: file.originalName, size: file.size});
|
||||||
|
|
||||||
this._filesReceived.push(file);
|
this._filesReceived.push(file);
|
||||||
|
|
||||||
|
@ -2090,7 +2090,6 @@ class FileDigesterViaBuffer extends FileDigester {
|
||||||
lastModified: new Date().getTime()
|
lastModified: new Date().getTime()
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
file.displayName = this._name
|
|
||||||
|
|
||||||
this._fileCompleteCallback(file);
|
this._fileCompleteCallback(file);
|
||||||
}
|
}
|
||||||
|
@ -2129,7 +2128,7 @@ class FileDigesterViaWorker extends FileDigester {
|
||||||
.then(file => {
|
.then(file => {
|
||||||
// Save id and displayName to file to be able to truncate file later
|
// Save id and displayName to file to be able to truncate file later
|
||||||
file.id = file.name;
|
file.id = file.name;
|
||||||
file.displayName = this._name;
|
file.originalName = this._name;
|
||||||
|
|
||||||
this._fileCompleteCallback(file);
|
this._fileCompleteCallback(file);
|
||||||
})
|
})
|
||||||
|
|
|
@ -1060,7 +1060,7 @@ class ReceiveDialog extends Dialog {
|
||||||
: Localization.getTranslation("dialogs.file-other-description-file-plural", null, {count: files.length - 1});
|
: Localization.getTranslation("dialogs.file-other-description-file-plural", null, {count: files.length - 1});
|
||||||
}
|
}
|
||||||
|
|
||||||
const fileName = files[0].displayName;
|
const fileName = files[0].originalName ?? files[0].name;
|
||||||
const fileNameSplit = fileName.split('.');
|
const fileNameSplit = fileName.split('.');
|
||||||
const fileExtension = '.' + fileNameSplit[fileNameSplit.length - 1];
|
const fileExtension = '.' + fileNameSplit[fileNameSplit.length - 1];
|
||||||
const fileStem = fileName.substring(0, fileName.length - fileExtension.length);
|
const fileStem = fileName.substring(0, fileName.length - fileExtension.length);
|
||||||
|
@ -1236,8 +1236,13 @@ class ReceiveFileDialog extends ReceiveDialog {
|
||||||
}
|
}
|
||||||
|
|
||||||
async _setShareButton() {
|
async _setShareButton() {
|
||||||
|
// Add original file names
|
||||||
|
let filesWithOriginalNames = []
|
||||||
|
for (const file of this._data.files) {
|
||||||
|
filesWithOriginalNames.push(new File([file], file.originalName, {type: file.type}))
|
||||||
|
}
|
||||||
this.$shareBtn.onclick = _ => {
|
this.$shareBtn.onclick = _ => {
|
||||||
navigator.share({files: this._data.files})
|
navigator.share({files: filesWithOriginalNames})
|
||||||
.catch(async err => {
|
.catch(async err => {
|
||||||
Logger.error(err);
|
Logger.error(err);
|
||||||
|
|
||||||
|
@ -1355,7 +1360,7 @@ class ReceiveFileDialog extends ReceiveDialog {
|
||||||
_downloadFiles(files) {
|
_downloadFiles(files) {
|
||||||
let tmpBtn = document.createElement("a");
|
let tmpBtn = document.createElement("a");
|
||||||
for (let i = 0; i < files.length; i++) {
|
for (let i = 0; i < files.length; i++) {
|
||||||
tmpBtn.download = files[i].displayName;
|
tmpBtn.download = files[i].originalName;
|
||||||
tmpBtn.href = URL.createObjectURL(files[i]);
|
tmpBtn.href = URL.createObjectURL(files[i]);
|
||||||
tmpBtn.click();
|
tmpBtn.click();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue