|
@@ -11,89 +11,47 @@ import android.net.Uri;
|
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
|
import android.os.Environment;
|
|
|
+import android.os.Looper;
|
|
|
import android.util.Log;
|
|
|
import android.webkit.CookieManager;
|
|
|
import android.webkit.URLUtil;
|
|
|
+import android.webkit.WebResourceRequest;
|
|
|
import android.webkit.WebSettings;
|
|
|
import android.webkit.WebView;
|
|
|
import android.webkit.WebViewClient;
|
|
|
+import android.webkit.WebViewRenderProcess;
|
|
|
+import android.webkit.WebViewRenderProcessClient;
|
|
|
+import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
+import androidx.annotation.NonNull;
|
|
|
+import androidx.annotation.Nullable;
|
|
|
import androidx.annotation.RequiresApi;
|
|
|
import androidx.core.app.ActivityCompat;
|
|
|
|
|
|
|
|
|
-
|
|
|
public class WebViewActivity extends Activity {
|
|
|
|
|
|
- private final int STORAGE_PERMISSION_CODE = 1;
|
|
|
private WebView mWebView;
|
|
|
- private void requestStoragePermission() {
|
|
|
- if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
|
|
- new AlertDialog.Builder(this)
|
|
|
- .setTitle("Permission needed")
|
|
|
- .setMessage("This permission is needed to download files")
|
|
|
- .setPositiveButton("ok", (dialog, which) -> ActivityCompat.requestPermissions(WebViewActivity.this,
|
|
|
- new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE))
|
|
|
- .setNegativeButton("cancel", (dialog, which) -> dialog.dismiss())
|
|
|
- .create().show();
|
|
|
- } else {
|
|
|
- ActivityCompat.requestPermissions(this,
|
|
|
- new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, STORAGE_PERMISSION_CODE);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- @RequiresApi(api = Build.VERSION_CODES.Q)
|
|
|
+ private TextView userAgentTextView;
|
|
|
+
|
|
|
@Override
|
|
|
- @SuppressLint("SetJavaScriptEnabled")
|
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
|
- requestStoragePermission();
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.activity_webview);
|
|
|
mWebView = findViewById(R.id.webview);
|
|
|
-// mWebView.setWebViewRenderProcessClient();
|
|
|
-// mWebView.getWebViewLooper()
|
|
|
+ userAgentTextView = findViewById(R.id.userAgentTextView);
|
|
|
WebSettings webSettings = mWebView.getSettings();
|
|
|
- String userAgentString = webSettings.getUserAgentString();
|
|
|
- Log.v("webview", "userAgentString" + userAgentString);
|
|
|
+ userAgentTextView.setText(webSettings.getUserAgentString());
|
|
|
webSettings.setJavaScriptEnabled(true);
|
|
|
- mWebView.setWebViewClient(new HelloWebViewClient());
|
|
|
- mWebView.setDownloadListener((url, userAgent, contentDisposition, mimeType, contentLength) -> {
|
|
|
- Uri source = Uri.parse(url);
|
|
|
- DownloadManager.Request request = new DownloadManager.Request(source);
|
|
|
- String cookies = CookieManager.getInstance().getCookie(url);
|
|
|
- request.addRequestHeader("cookie", cookies);
|
|
|
- request.addRequestHeader("User-Agent", userAgent);
|
|
|
- request.setDescription("Downloading File...");
|
|
|
- request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType));
|
|
|
- request.allowScanningByMediaScanner();
|
|
|
- request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
|
|
|
- request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(url, contentDisposition, mimeType));
|
|
|
- DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
|
|
|
- dm.enqueue(request);
|
|
|
- Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show();
|
|
|
+ mWebView.setWebViewClient(new WebViewClient() {
|
|
|
+ @Override
|
|
|
+ public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
});
|
|
|
- mWebView.loadUrl("https://test-videos.co.uk/bigbuckbunny/mp4-h265"); //Replace The Link Here
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- private static class HelloWebViewClient extends WebViewClient {
|
|
|
- @Override
|
|
|
- public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
|
|
|
-// view.loadUrl(url);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
|
|
- super.onPageStarted(view, url, favicon);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onPageFinished(WebView view, String url) {
|
|
|
- super.onPageFinished(view, url);
|
|
|
- }
|
|
|
+ mWebView.loadUrl("https://test-videos.co.uk/bigbuckbunny/mp4-h265");
|
|
|
}
|
|
|
|
|
|
@Override
|