Этот коммит содержится в:
Anton Tananaev
2023-02-02 07:34:07 -08:00
родитель f3d43ffbb0
Коммит 2d443081ae
+17
Просмотреть файл
@@ -19,12 +19,14 @@ package org.traccar.manager
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.app.DownloadManager
import android.content.* import android.content.*
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.net.Uri import android.net.Uri
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.os.Message import android.os.Message
import android.view.View import android.view.View
import android.webkit.* import android.webkit.*
@@ -78,6 +80,7 @@ class MainFragment : WebViewFragment() {
} }
webView.webViewClient = webViewClient webView.webViewClient = webViewClient
webView.webChromeClient = webChromeClient webView.webChromeClient = webChromeClient
webView.setDownloadListener(downloadListener)
webView.addJavascriptInterface(AppInterface(), "appInterface") webView.addJavascriptInterface(AppInterface(), "appInterface")
val webSettings = webView.settings val webSettings = webView.settings
webSettings.javaScriptEnabled = true webSettings.javaScriptEnabled = true
@@ -262,6 +265,20 @@ class MainFragment : WebViewFragment() {
} }
} }
private val downloadListener = DownloadListener { url, userAgent, contentDisposition, mimeType, contentLength ->
val request = DownloadManager.Request(Uri.parse(url))
request.setMimeType(mimeType)
request.addRequestHeader("cookie", CookieManager.getInstance().getCookie(url))
request.allowScanningByMediaScanner()
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS,
URLUtil.guessFileName(url, contentDisposition, mimeType),
)
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadManager.enqueue(request)
}
companion object { companion object {
const val EVENT_LOGIN = "eventLogin" const val EVENT_LOGIN = "eventLogin"
const val EVENT_TOKEN = "eventToken" const val EVENT_TOKEN = "eventToken"