diff --git a/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java b/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java index 50a6acb..59ccc29 100644 --- a/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java +++ b/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java @@ -2,12 +2,16 @@ package com.sultan.plantdatabse; import android.annotation.SuppressLint; import android.content.Intent; +import android.graphics.Bitmap; import android.os.Bundle; import android.os.Vibrator; import android.view.View; +import android.webkit.WebResourceError; +import android.webkit.WebResourceRequest; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; +import android.widget.ProgressBar; import android.widget.Toast; import androidx.annotation.Nullable; @@ -18,6 +22,7 @@ import com.google.zxing.integration.android.IntentResult; public class WebViewActivity extends AppCompatActivity implements View.OnClickListener { + private ProgressBar progressBar; Button scanAgainButton; Button btnHome; @@ -29,6 +34,7 @@ public class WebViewActivity extends AppCompatActivity implements View.OnClickLi scanAgainButton = findViewById(R.id.scanAgain); btnHome = findViewById(R.id.btnHome); + progressBar = findViewById(R.id.progressBar); // Retrieve the URL from the intent String url = getIntent().getStringExtra("url"); @@ -36,7 +42,26 @@ public class WebViewActivity extends AppCompatActivity implements View.OnClickLi // Load the URL in the WebView WebView webView = findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); - webView.setWebViewClient(new WebViewClient()); + webView.setWebViewClient(new WebViewClient() { + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + // Show the progress bar when the page starts loading + progressBar.setVisibility(View.VISIBLE); + } + @Override + public void onPageFinished(WebView view, String url) { + // Hide the progress bar when the page finishes loading + progressBar.setVisibility(View.INVISIBLE); + } + + @Override + public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) { + // Handle page load error + Toast.makeText(WebViewActivity.this, "Failed to load the page", Toast.LENGTH_SHORT).show(); + progressBar.setVisibility(View.INVISIBLE); + } + }); + assert url != null; webView.loadUrl(url); @@ -45,6 +70,16 @@ public class WebViewActivity extends AppCompatActivity implements View.OnClickLi btnHome.setOnClickListener(this); } + @Override + public void onBackPressed() { + WebView webView = findViewById(R.id.webView); + if (webView.canGoBack()) { + webView.goBack(); + } else { + super.onBackPressed(); + } + } + @Override public void onClick(View v) { if (v.getId() == R.id.scanAgain) { diff --git a/app/src/main/res/layout/activity_webview.xml b/app/src/main/res/layout/activity_webview.xml index d176d51..7ab9637 100644 --- a/app/src/main/res/layout/activity_webview.xml +++ b/app/src/main/res/layout/activity_webview.xml @@ -11,6 +11,23 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> + + + +