Skip to content

Commit

Permalink
added webview download listener
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeff committed Sep 8, 2022
1 parent 8a97136 commit 938df7b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 8 deletions.
19 changes: 15 additions & 4 deletions app/src/main/java/site/leos/setter/ReverseImageSearchFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,8 @@ class ReverseImageSearchFragment : Fragment() {
}
}

webView.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength -> downloadFile(url, mimetype) }

if (savedInstanceState != null) {
resultLoaded = savedInstanceState.getBoolean(RESULT_LOADED)
webView.restoreState(savedInstanceState)
Expand Down Expand Up @@ -565,16 +567,25 @@ class ReverseImageSearchFragment : Fragment() {
return inSampleSize
}

private fun downloadFile(url: String) {
val name = URLUtil.guessFileName(url, null, "image/*")
private fun downloadFile(url: String, mime: String? = null) {
val mimeType = mime ?: "image/*"
val name = URLUtil.guessFileName(url, null, mimeType)
try {
(requireActivity().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).enqueue(
DownloadManager.Request(Uri.parse((url)))
.setMimeType("image/*")
.setMimeType(mimeType)
.setTitle(name)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI and DownloadManager.Request.NETWORK_MOBILE)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, "/setter/$name")
.setDestinationInExternalPublicDir(
when {
mimeType.startsWith("image") -> Environment.DIRECTORY_PICTURES
mimeType.startsWith("video") -> Environment.DIRECTORY_MOVIES
mimeType.startsWith("audio") -> Environment.DIRECTORY_MUSIC
else -> Environment.DIRECTORY_DOWNLOADS
},
"/setter/$name"
)
)
} catch (_: Exception) {}
}
Expand Down
19 changes: 15 additions & 4 deletions app/src/main/java/site/leos/setter/TextSearchFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ class TextSearchFragment : Fragment(){
}
*/

webView.setDownloadListener { url, userAgent, contentDisposition, mimetype, contentLength -> downloadFile(url, mimetype) }

if (savedInstanceState != null) {
resultLoaded = savedInstanceState.getBoolean(RESULT_LOADED)
webView.restoreState(savedInstanceState)
Expand Down Expand Up @@ -366,16 +368,25 @@ class TextSearchFragment : Fragment(){
return webView.url
}

private fun downloadFile(url: String) {
val name = URLUtil.guessFileName(url, null, "image/*")
private fun downloadFile(url: String, mime: String? = null) {
val mimeType = mime ?: "image/*"
val name = URLUtil.guessFileName(url, null, mimeType)
try {
(requireActivity().getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager).enqueue(
DownloadManager.Request(Uri.parse((url)))
.setMimeType("image/*")
.setMimeType(mimeType)
.setTitle(name)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI and DownloadManager.Request.NETWORK_MOBILE)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, "/setter/$name")
.setDestinationInExternalPublicDir(
when {
mimeType.startsWith("image") -> Environment.DIRECTORY_PICTURES
mimeType.startsWith("video") -> Environment.DIRECTORY_MOVIES
mimeType.startsWith("audio") -> Environment.DIRECTORY_MUSIC
else -> Environment.DIRECTORY_DOWNLOADS
},
"/setter/$name"
)
)
} catch (_: Exception) {}
}
Expand Down

0 comments on commit 938df7b

Please sign in to comment.