| 
				
			 | 
			
			
				@@ -558,6 +558,8 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable { 
			 | 
		
	
		
			
			| 
				558
			 | 
			
				558
			 | 
			
			
				                 DownloadManager dm = (DownloadManager) appCtx.getSystemService(Context.DOWNLOAD_SERVICE); 
			 | 
		
	
		
			
			| 
				559
			 | 
			
				559
			 | 
			
			
				                 dm.query(query); 
			 | 
		
	
		
			
			| 
				560
			 | 
			
				560
			 | 
			
			
				                 Cursor c = dm.query(query); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				561
			 | 
			
			
				+                String filePath = null; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				562
			 | 
			
			
				+                // the file exists in media content database 
			 | 
		
	
		
			
			| 
				561
			 | 
			
				563
			 | 
			
			
				                 if (c.moveToFirst()) { 
			 | 
		
	
		
			
			| 
				562
			 | 
			
				564
			 | 
			
			
				                     String contentUri = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); 
			 | 
		
	
		
			
			| 
				563
			 | 
			
				565
			 | 
			
			
				                     Uri uri = Uri.parse(contentUri); 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -565,26 +567,29 @@ public class RNFetchBlobReq extends BroadcastReceiver implements Runnable { 
			 | 
		
	
		
			
			| 
				565
			 | 
			
				567
			 | 
			
			
				                     // use default destination of DownloadManager 
			 | 
		
	
		
			
			| 
				566
			 | 
			
				568
			 | 
			
			
				                     if (cursor != null) { 
			 | 
		
	
		
			
			| 
				567
			 | 
			
				569
			 | 
			
			
				                         cursor.moveToFirst(); 
			 | 
		
	
		
			
			| 
				568
			 | 
			
				
			 | 
			
			
				-                        String filePath = cursor.getString(0); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				570
			 | 
			
			
				+                        filePath = cursor.getString(0); 
			 | 
		
	
		
			
			| 
				569
			 | 
			
				571
			 | 
			
			
				                         cursor.close(); 
			 | 
		
	
		
			
			| 
				570
			 | 
			
				
			 | 
			
			
				-                        this.callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, filePath); 
			 | 
		
	
		
			
			| 
				571
			 | 
			
				
			 | 
			
			
				-                    } 
			 | 
		
	
		
			
			| 
				572
			 | 
			
				
			 | 
			
			
				-                    // custom destination 
			 | 
		
	
		
			
			| 
				573
			 | 
			
				
			 | 
			
			
				-                    else { 
			 | 
		
	
		
			
			| 
				574
			 | 
			
				
			 | 
			
			
				-                        if(options.addAndroidDownloads.hasKey("path")) { 
			 | 
		
	
		
			
			| 
				575
			 | 
			
				
			 | 
			
			
				-                            try { 
			 | 
		
	
		
			
			| 
				576
			 | 
			
				
			 | 
			
			
				-                                String customDest = options.addAndroidDownloads.getString("path"); 
			 | 
		
	
		
			
			| 
				577
			 | 
			
				
			 | 
			
			
				-                                boolean exists = new File(customDest).exists(); 
			 | 
		
	
		
			
			| 
				578
			 | 
			
				
			 | 
			
			
				-                                if(!exists) 
			 | 
		
	
		
			
			| 
				579
			 | 
			
				
			 | 
			
			
				-                                    throw new Exception("Download manager download failed, the file does not downloaded to destination."); 
			 | 
		
	
		
			
			| 
				580
			 | 
			
				
			 | 
			
			
				-                                callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, customDest); 
			 | 
		
	
		
			
			| 
				581
			 | 
			
				
			 | 
			
			
				- 
			 | 
		
	
		
			
			| 
				582
			 | 
			
				
			 | 
			
			
				-                            } catch(Exception ex) { 
			 | 
		
	
		
			
			| 
				583
			 | 
			
				
			 | 
			
			
				-                                this.callback.invoke(ex.getLocalizedMessage(), null, null); 
			 | 
		
	
		
			
			| 
				584
			 | 
			
				
			 | 
			
			
				-                            } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				572
			 | 
			
			
				+                        if(filePath != null) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				573
			 | 
			
			
				+                            this.callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, filePath); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				574
			 | 
			
			
				+                            return; 
			 | 
		
	
		
			
			| 
				585
			 | 
			
				575
			 | 
			
			
				                         } 
			 | 
		
	
		
			
			| 
				586
			 | 
			
				576
			 | 
			
			
				                     } 
			 | 
		
	
		
			
			| 
				587
			 | 
			
				577
			 | 
			
			
				                 } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				578
			 | 
			
			
				+                // When the file is not found in media content database, check if custom path exists 
			 | 
		
	
		
			
			| 
				
			 | 
			
				579
			 | 
			
			
				+                if (options.addAndroidDownloads.hasKey("path")) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				580
			 | 
			
			
				+                    try { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				581
			 | 
			
			
				+                        String customDest = options.addAndroidDownloads.getString("path"); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				582
			 | 
			
			
				+                        boolean exists = new File(customDest).exists(); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				583
			 | 
			
			
				+                        if(!exists) 
			 | 
		
	
		
			
			| 
				
			 | 
			
				584
			 | 
			
			
				+                            throw new Exception("Download manager download failed, the file does not downloaded to destination."); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				585
			 | 
			
			
				+                        callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, customDest); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				586
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				587
			 | 
			
			
				+                    } catch(Exception ex) { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				588
			 | 
			
			
				+                        this.callback.invoke(ex.getLocalizedMessage(), null, null); 
			 | 
		
	
		
			
			| 
				
			 | 
			
				589
			 | 
			
			
				+                    } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				590
			 | 
			
			
				+                } 
			 | 
		
	
		
			
			| 
				
			 | 
			
				591
			 | 
			
			
				+                else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				592
			 | 
			
			
				+                    this.callback.invoke(null, RNFetchBlobConst.RNFB_RESPONSE_PATH, filePath); 
			 | 
		
	
		
			
			| 
				588
			 | 
			
				593
			 | 
			
			
				             } 
			 | 
		
	
		
			
			| 
				589
			 | 
			
				594
			 | 
			
			
				         } 
			 | 
		
	
		
			
			| 
				590
			 | 
			
				595
			 | 
			
			
				     } 
			 |