Support report downloads (fix #67)
Этот коммит содержится в:
@@ -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"
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user