diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 2568df0..c904fdf 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -66,6 +66,8 @@ dependencies {
implementation("org.nanohttpd:nanohttpd:2.3.1")
implementation("com.google.code.gson:gson:2.10.1")
implementation("com.squareup.okhttp3:okhttp-android:5.0.0-alpha.14")
+ implementation("com.journeyapps:zxing-android-embedded:4.3.0")
+ implementation("com.google.zxing:core:3.5.3")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 051a946..e983a70 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -10,7 +10,7 @@
-
+
@@ -26,6 +26,10 @@
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
+
+
+
+
@@ -47,9 +51,12 @@
android:theme="@style/Theme.Tasksvalider">
-
+
+
+
+
diff --git a/app/src/main/java/com/faraphel/tasks_valider/MainActivity.kt b/app/src/main/java/com/faraphel/tasks_valider/MainActivity.kt
index b35c547..69e4231 100644
--- a/app/src/main/java/com/faraphel/tasks_valider/MainActivity.kt
+++ b/app/src/main/java/com/faraphel/tasks_valider/MainActivity.kt
@@ -6,9 +6,14 @@ import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.annotation.RequiresApi
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
import com.faraphel.tasks_valider.connectivity.bwf.BwfManager
import com.faraphel.tasks_valider.database.TaskDatabase
-import com.faraphel.tasks_valider.ui.screen.communication.CommunicationScreen
+import com.faraphel.tasks_valider.ui.screen.scan.qr.ScanBarcodeScreen
+import com.journeyapps.barcodescanner.BarcodeResult
class MainActivity : ComponentActivity() {
@@ -22,9 +27,22 @@ class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ this.setContent {
+ @Composable
+ fun example() {
+ val barcode = remember { mutableStateOf(null) }
+ if (barcode.value == null) ScanBarcodeScreen(this, barcode)
+ else Text("code: ${barcode.value!!.text}")
+ }
+
+ example()
+ }
+
+ /*
this.setContent {
CommunicationScreen(this)
}
+ */
}
@SuppressLint("UnspecifiedRegisterReceiverFlag")
diff --git a/app/src/main/java/com/faraphel/tasks_valider/database/dao/SubjectDao.kt b/app/src/main/java/com/faraphel/tasks_valider/database/dao/SubjectDao.kt
index 8dc676a..1b0616f 100644
--- a/app/src/main/java/com/faraphel/tasks_valider/database/dao/SubjectDao.kt
+++ b/app/src/main/java/com/faraphel/tasks_valider/database/dao/SubjectDao.kt
@@ -3,7 +3,6 @@ package com.faraphel.tasks_valider.database.dao
import androidx.room.Dao
import androidx.room.Query
import com.faraphel.tasks_valider.database.dao.base.BaseDao
-import com.faraphel.tasks_valider.database.entities.SessionEntity
import com.faraphel.tasks_valider.database.entities.SubjectEntity
import com.faraphel.tasks_valider.database.entities.TaskEntity
@@ -23,5 +22,5 @@ interface SubjectDao : BaseDao {
* @param id the id of the subject
*/
@Query("SELECT * FROM ${TaskEntity.TABLE_NAME} WHERE subject_id = :id")
- fun getSessions(id: Long): List
+ fun getTasks(id: Long): List
}
diff --git a/app/src/main/java/com/faraphel/tasks_valider/ui/screen/scan/qr/screen.kt b/app/src/main/java/com/faraphel/tasks_valider/ui/screen/scan/qr/screen.kt
new file mode 100644
index 0000000..362699e
--- /dev/null
+++ b/app/src/main/java/com/faraphel/tasks_valider/ui/screen/scan/qr/screen.kt
@@ -0,0 +1,30 @@
+package com.faraphel.tasks_valider.ui.screen.scan.qr
+
+import android.app.Activity
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.runtime.*
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.viewinterop.AndroidView
+import com.google.zxing.BarcodeFormat
+import com.journeyapps.barcodescanner.BarcodeResult
+import com.journeyapps.barcodescanner.DecoratedBarcodeView
+import com.journeyapps.barcodescanner.DefaultDecoderFactory
+
+/**
+ * Screen to scan a Barcode / QR Code
+ */
+@Composable
+fun ScanBarcodeScreen(activity: Activity, barcode: MutableState) {
+ Box(modifier = Modifier.fillMaxSize()) {
+ // AndroidView is used because "DecoratedBarcodeView" only support the legacy view system
+ AndroidView(factory = {
+ DecoratedBarcodeView(activity).apply {
+ this.decoderFactory = DefaultDecoderFactory(listOf(BarcodeFormat.QR_CODE))
+ this.initializeFromIntent(activity.intent)
+ this.decodeContinuous { result -> barcode.value = result }
+ this.resume()
+ }
+ })
+ }
+}