From 6ecb9aedddae991dbe4b84ef05f9999114ff9861 Mon Sep 17 00:00:00 2001 From: Sultan Mustafijul Hoque Date: Thu, 7 Dec 2023 01:23:47 +0530 Subject: [PATCH] Initial commit --- .idea/.name | 2 +- .../sultan/plantdatabse/WebViewActivity.java | 100 ++++++++++++++++-- app/src/main/res/drawable/ic_back_24.xml | 5 + app/src/main/res/drawable/ic_home_24.xml | 5 + app/src/main/res/layout/activity_main.xml | 6 +- app/src/main/res/layout/activity_webview.xml | 19 ++++ app/src/main/res/raw/qr_scan_big_2.json | 1 + 7 files changed, 124 insertions(+), 14 deletions(-) create mode 100644 app/src/main/res/drawable/ic_back_24.xml create mode 100644 app/src/main/res/drawable/ic_home_24.xml create mode 100644 app/src/main/res/raw/qr_scan_big_2.json diff --git a/.idea/.name b/.idea/.name index c066d1d..c81526b 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -Plant Databse \ No newline at end of file +Plant Database \ No newline at end of file diff --git a/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java b/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java index 8cf706d..50a6acb 100644 --- a/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java +++ b/app/src/main/java/com/sultan/plantdatabse/WebViewActivity.java @@ -1,17 +1,25 @@ package com.sultan.plantdatabse; import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Bundle; +import android.os.Vibrator; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; +import android.widget.Toast; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.google.zxing.integration.android.IntentIntegrator; +import com.google.zxing.integration.android.IntentResult; -public class WebViewActivity extends AppCompatActivity { +public class WebViewActivity extends AppCompatActivity implements View.OnClickListener { + + Button scanAgainButton; + Button btnHome; @SuppressLint("SetJavaScriptEnabled") @Override @@ -19,6 +27,9 @@ public class WebViewActivity extends AppCompatActivity { super.onCreate(savedInstanceState); setContentView(R.layout.activity_webview); + scanAgainButton = findViewById(R.id.scanAgain); + btnHome = findViewById(R.id.btnHome); + // Retrieve the URL from the intent String url = getIntent().getStringExtra("url"); @@ -29,19 +40,22 @@ public class WebViewActivity extends AppCompatActivity { assert url != null; webView.loadUrl(url); - // Set an OnClickListener for the "Scan QR" button - Button scanAgainButton = findViewById(R.id.scanAgain); - scanAgainButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - // Handle button click, for example, initiate a new scan - initiateScan(); - } - }); + // Set click listeners + scanAgainButton.setOnClickListener(this); + btnHome.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if (v.getId() == R.id.scanAgain) { + initiateScan(); + } else if (v.getId() == R.id.btnHome) { + navigateToMainActivity(); + } + // Add conditions for other buttons if needed } private void initiateScan() { - // Initialize the IntentIntegrator and start the scan IntentIntegrator intentIntegrator = new IntentIntegrator(this); intentIntegrator.setPrompt(getString(R.string.scan_qr)); intentIntegrator.setOrientationLocked(true); @@ -49,4 +63,68 @@ public class WebViewActivity extends AppCompatActivity { intentIntegrator.initiateScan(); } + private void navigateToMainActivity() { + Intent mainActivityIntent = new Intent(this, MainActivity.class); + startActivity(mainActivityIntent); + } + + @SuppressLint("SetTextI18n") + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + IntentResult intentResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); + + // Get the Vibrator service + Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); + + // if the intentResult is null, toast a message as "cancelled" + if (intentResult != null) { + if (intentResult.getContents() == null) { + Toast.makeText(getBaseContext(), "Cancelled", Toast.LENGTH_SHORT).show(); + if (vibrator != null) { + vibrator.vibrate(100); + } + } else { + // if the intentResult is not null, extract the dynamic part from the URL + String scannedContent = intentResult.getContents(); + + // Extract the dynamic part after "&" and display it in messageText + String dynamicPart = extractDynamicPart(scannedContent); + + // Construct the full URL by appending the dynamic part to the base URL + String fullUrl = "https://bhalumni.in/view/plant-database/entry/" + dynamicPart; + + // Open the WebView activity with the constructed URL + openWebViewActivity(fullUrl); + + // Vibrate for 200 milliseconds on successful read + if (vibrator != null) { + vibrator.vibrate(200); + } + } + } else { + super.onActivityResult(requestCode, resultCode, data); + } + } + + // Custom method to extract the dynamic part after "&" in the URL + private String extractDynamicPart(String url) { + int index = url.lastIndexOf("&"); + if (index != -1 && index < url.length() - 1) { + return url.substring(index + 1); + } + return ""; + } + + // Custom method to open WebView activity with the specified URL + private void openWebViewActivity(String url) { + Intent webViewIntent = new Intent(this, WebViewActivity.class); + webViewIntent.putExtra("url", url); + startActivity(webViewIntent); + } + + @Override + public void onPointerCaptureChanged(boolean hasCapture) { + super.onPointerCaptureChanged(hasCapture); + } } \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_back_24.xml b/app/src/main/res/drawable/ic_back_24.xml new file mode 100644 index 0000000..c96701d --- /dev/null +++ b/app/src/main/res/drawable/ic_back_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_home_24.xml b/app/src/main/res/drawable/ic_home_24.xml new file mode 100644 index 0000000..9a5f677 --- /dev/null +++ b/app/src/main/res/drawable/ic_home_24.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2adbfc8..3d0adf2 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -5,6 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" + android:background="@drawable/app_background_14" tools:context=".MainActivity"> + app:lottie_rawRes="@raw/qr_scan_big_2" />