mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-30 13:47:41 +00:00
Try not to lose filename extensions.
Android's Storage Access Framework abstraction wants us to use mimetypes instead of file extensions, but for some file types it can't guess a useful mimetype. In those cases, provide the extension as part of the base name. BUG: 376638
This commit is contained in:
@@ -119,11 +119,15 @@ public class SharePlugin extends Plugin {
|
|||||||
final String defaultPath = ShareSettingsActivity.getDefaultDestinationDirectory().getAbsolutePath();
|
final String defaultPath = ShareSettingsActivity.getDefaultDestinationDirectory().getAbsolutePath();
|
||||||
final String filename = customDestination? originalFilename : FilesHelper.findNonExistingNameForNewFile(defaultPath, originalFilename);
|
final String filename = customDestination? originalFilename : FilesHelper.findNonExistingNameForNewFile(defaultPath, originalFilename);
|
||||||
|
|
||||||
final String nameWithoutExtension = FilesHelper.getFileNameWithoutExt(filename);
|
String displayName = FilesHelper.getFileNameWithoutExt(filename);
|
||||||
final String mimeType = FilesHelper.getMimeTypeFromFile(filename);
|
final String mimeType = FilesHelper.getMimeTypeFromFile(filename);
|
||||||
|
|
||||||
|
if ("*/*".equals(mimeType)) {
|
||||||
|
displayName = filename;
|
||||||
|
}
|
||||||
|
|
||||||
final DocumentFile destinationFolderDocument = ShareSettingsActivity.getDestinationDirectory(context);
|
final DocumentFile destinationFolderDocument = ShareSettingsActivity.getDestinationDirectory(context);
|
||||||
final DocumentFile destinationDocument = destinationFolderDocument.createFile(mimeType, nameWithoutExtension);
|
final DocumentFile destinationDocument = destinationFolderDocument.createFile(mimeType, displayName);
|
||||||
final OutputStream destinationOutput = context.getContentResolver().openOutputStream(destinationDocument.getUri());
|
final OutputStream destinationOutput = context.getContentResolver().openOutputStream(destinationDocument.getUri());
|
||||||
final Uri destinationUri = destinationDocument.getUri();
|
final Uri destinationUri = destinationDocument.getUri();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user