Kaartic has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/357020 )

Change subject: Changeed the download location of files
......................................................................

Changeed the download location of files

Previously the location of the download
was inside app directory. It was changed
to a public directory to,

 - Allow users to easily access the
   downloaded files

 - Allow other media applications to identify
   the files

Things that this commit introduces,

 - Corrected a variable name

 - Download files into a subdirectory that identifies
   the app

   - This is done to help the users who download multiple photos

   - Prevents the common "Pictures" folder from being cluttered up

Bug: T166434
Change-Id: I6b97b47b9b7dac6e4d3b23a25dda2096b6f55fa3
---
M app/src/main/java/org/wikipedia/gallery/MediaDownloadReceiver.java
1 file changed, 21 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/apps/android/wikipedia 
refs/changes/20/357020/1

diff --git a/app/src/main/java/org/wikipedia/gallery/MediaDownloadReceiver.java 
b/app/src/main/java/org/wikipedia/gallery/MediaDownloadReceiver.java
index f67f5fb..85fa628 100644
--- a/app/src/main/java/org/wikipedia/gallery/MediaDownloadReceiver.java
+++ b/app/src/main/java/org/wikipedia/gallery/MediaDownloadReceiver.java
@@ -18,6 +18,8 @@
 import org.wikipedia.util.FeedbackUtil;
 import org.wikipedia.util.FileUtil;
 
+import java.io.File;
+
 public class MediaDownloadReceiver extends BroadcastReceiver {
     private static final String FILE_NAMESPACE = "File:";
 
@@ -31,30 +33,38 @@
 
     public void download(@NonNull FeaturedImage featuredImage) {
         String filename = FileUtil.sanitizeFileName(featuredImage.title());
-        String targetDirectory = Environment.DIRECTORY_PICTURES;
-        performDownloadRequest(featuredImage.image().source(), 
targetDirectory, filename, null);
+        String targetDirectoryType = Environment.DIRECTORY_PICTURES;
+        performDownloadRequest(featuredImage.image().source(), 
targetDirectoryType, filename, null);
     }
 
     public void download(@NonNull GalleryItem galleryItem) {
         String saveFilename = 
FileUtil.sanitizeFileName(trimFileNamespace(galleryItem.getName()));
-        String targetDirectory;
+        String targetDirectoryType;
         if (FileUtil.isVideo(galleryItem.getMimeType())) {
-            targetDirectory = Environment.DIRECTORY_MOVIES;
+            targetDirectoryType = Environment.DIRECTORY_MOVIES;
         } else if (FileUtil.isAudio(galleryItem.getMimeType())) {
-            targetDirectory = Environment.DIRECTORY_MUSIC;
+            targetDirectoryType = Environment.DIRECTORY_MUSIC;
         } else if (FileUtil.isImage(galleryItem.getMimeType())) {
-            targetDirectory = Environment.DIRECTORY_PICTURES;
+            targetDirectoryType = Environment.DIRECTORY_PICTURES;
         } else {
-            targetDirectory = Environment.DIRECTORY_DOWNLOADS;
+            targetDirectoryType = Environment.DIRECTORY_DOWNLOADS;
         }
-        performDownloadRequest(Uri.parse(galleryItem.getUrl()), 
targetDirectory, saveFilename,
+        performDownloadRequest(Uri.parse(galleryItem.getUrl()), 
targetDirectoryType, saveFilename,
                 galleryItem.getMimeType());
     }
 
-    private void performDownloadRequest(@NonNull Uri uri, @NonNull String 
targetDirectory,
-                                        @NonNull String filename, @Nullable 
String mimeType) {
+    private void performDownloadRequest(@NonNull Uri uri, @NonNull String 
targetDirectoryType,
+                                        @NonNull String fileName, @Nullable 
String mimeType) {
+        final String downloadSubFolderName = "Wikipedia";
+        final File categoryFolder = 
Environment.getExternalStoragePublicDirectory(targetDirectoryType);
+        final File destinationFolder = new File(categoryFolder, 
downloadSubFolderName);
+        final File destinationFile = new File(destinationFolder, fileName);
+
+        // creates a directory if it doesn't exists else it's harmless
+        destinationFolder.mkdir();
+
         DownloadManager.Request request = new DownloadManager.Request(uri);
-        request.setDestinationInExternalFilesDir(activity, targetDirectory, 
filename);
+        request.setDestinationUri(Uri.fromFile(destinationFile));
         
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
         if (mimeType != null) {
             request.setMimeType(mimeType);

-- 
To view, visit https://gerrit.wikimedia.org/r/357020
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I6b97b47b9b7dac6e4d3b23a25dda2096b6f55fa3
Gerrit-PatchSet: 1
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Kaartic <kaarticsivaraam91...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to