Untitled
unknown
java
a year ago
4.0 kB
1
Indexable
Never
package com.flix.wave; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.app.AlertDialog; import android.app.DownloadManager; import android.content.Context; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.webkit.CookieManager; import android.webkit.URLUtil; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import androidx.annotation.RequiresApi; import androidx.core.app.ActivityCompat; public class MainActivity 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(MainActivity.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) @Override @SuppressLint("SetJavaScriptEnabled") protected void onCreate(Bundle savedInstanceState) { requestStoragePermission(); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mWebView = findViewById(R.id.activity_main_webview); WebSettings webSettings = mWebView.getSettings(); webSettings.setUseWideViewPort(true); webSettings.setSupportZoom(true); 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.loadUrl("https://flixwave.to/home"); //Replace The Link Here } private static class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(final WebView view, final String url) { view.loadUrl(url); return true; } } @Override public void onBackPressed() { if (mWebView.canGoBack()) { mWebView.goBack(); } else { super.onBackPressed(); } } }