Skip to content
Snippets Groups Projects
Commit 1dcf37c3 authored by shidqizh's avatar shidqizh
Browse files
parents f08a275a c2e24bce
No related merge requests found
Pipeline #61460 canceled with stages
...@@ -3,20 +3,7 @@ ...@@ -3,20 +3,7 @@
<component name="deploymentTargetDropDown"> <component name="deploymentTargetDropDown">
<value> <value>
<entry key="app"> <entry key="app">
<State> <State />
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="VIRTUAL_DEVICE_PATH" />
<value value="C:\Users\Shidq\.android\avd\Medium_Phone_API_33.avd" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-03-30T06:44:39.973184600Z" />
</State>
</entry> </entry>
</value> </value>
</component> </component>
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
<component name="ProjectType"> <component name="ProjectType">
......
...@@ -62,6 +62,9 @@ dependencies { ...@@ -62,6 +62,9 @@ dependencies {
implementation("org.apache.poi:poi:5.2.2") implementation("org.apache.poi:poi:5.2.2")
implementation("org.apache.poi:poi-ooxml:5.2.2") implementation("org.apache.poi:poi-ooxml:5.2.2")
//QR COde
implementation ("com.github.yuriy-budiyev:code-scanner:2.3.0")
......
...@@ -15,6 +15,11 @@ ...@@ -15,6 +15,11 @@
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature
android:name="android.hardware.camera"
android:required="false"/>
<application <application
......
package com.atm.bondowowo.ui.scan package com.atm.bondowowo.ui.scan
import android.Manifest
import android.content.pm.PackageManager
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.atm.bondowowo.R
import com.budiyev.android.codescanner.CodeScanner
import com.budiyev.android.codescanner.CodeScannerView
import com.budiyev.android.codescanner.DecodeCallback
class ScanFragment : Fragment() {
private val CAMERA_PERMISSION_REQUEST_CODE = 100
private lateinit var codeScanner: CodeScanner
class ScanFragment : Fragment() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_scan, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val scannerView = view.findViewById<CodeScannerView>(R.id.scanner)
// Check camera permission
if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(requireActivity(), arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_REQUEST_CODE)
} else {
initializeCodeScanner(scannerView)
}
}
private fun initializeCodeScanner(scannerView: CodeScannerView) {
codeScanner = CodeScanner(requireActivity(), scannerView)
codeScanner.decodeCallback = DecodeCallback {
requireActivity().runOnUiThread {
Toast.makeText(requireContext(), "Scanned: ${it.text}", Toast.LENGTH_LONG).show()
}
}
scannerView.setOnClickListener {
codeScanner.startPreview()
}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
val scannerView = requireView().findViewById<CodeScannerView>(R.id.scanner)
initializeCodeScanner(scannerView)
} else {
Toast.makeText(requireContext(), "Camera permission denied", Toast.LENGTH_SHORT).show()
}
}
}
}
...@@ -24,28 +24,34 @@ ...@@ -24,28 +24,34 @@
android:textStyle="bold" /> android:textStyle="bold" />
</com.google.android.material.appbar.AppBarLayout> </com.google.android.material.appbar.AppBarLayout>
<TextureView <LinearLayout
android:id="@+id/camera_preview" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="400dp" xmlns:tools="http://schemas.android.com/tools"
android:background="@color/black" android:layout_width="match_parent"
app:layout_constraintBottom_toTopOf="@id/capture_button" android:layout_marginTop="40dp"
app:layout_constraintEnd_toEndOf="parent" android:layout_height="match_parent"
app:layout_constraintHorizontal_bias="0.495" android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent" tools:contex="com.atm.bondowowo.ui.scan.ScanFragment">
app:layout_constraintTop_toBottomOf="@id/header"
app:layout_constraintVertical_bias="0.508" /> <com.budiyev.android.codescanner.CodeScannerView
android:id="@+id/scanner"
<Button android:layout_width="match_parent"
android:id="@+id/capture_button" android:layout_height="600dp"
android:layout_width="wrap_content" app:autoFocusButtonVisible="true"/>
android:layout_height="wrap_content"
android:layout_marginBottom="124dp" <TextView
android:text="@string/capture" android:id="@+id/tv_output"
app:cornerRadius="999dp" android:layout_width="match_parent"
app:layout_constraintBottom_toBottomOf="parent" android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="20dp"
app:layout_constraintHorizontal_bias="0.498" android:text="The result is here"
app:layout_constraintStart_toStartOf="parent" /> android:textAlignment="center"
android:textSize="20sp"
android:textColor="#A92B"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
...@@ -10,6 +10,9 @@ dependencyResolutionManagement { ...@@ -10,6 +10,9 @@ dependencyResolutionManagement {
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
maven {
url = uri("https://jitpack.io")
}
} }
} }
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment