diff --git a/.gradle/8.2/checksums/checksums.lock b/.gradle/8.2/checksums/checksums.lock
index 284d256..4a246f4 100644
Binary files a/.gradle/8.2/checksums/checksums.lock and b/.gradle/8.2/checksums/checksums.lock differ
diff --git a/.gradle/8.2/checksums/md5-checksums.bin b/.gradle/8.2/checksums/md5-checksums.bin
index 5ca34ee..4c5c8cb 100644
Binary files a/.gradle/8.2/checksums/md5-checksums.bin and b/.gradle/8.2/checksums/md5-checksums.bin differ
diff --git a/.gradle/8.2/checksums/sha1-checksums.bin b/.gradle/8.2/checksums/sha1-checksums.bin
index 2c02e3f..e1f4a78 100644
Binary files a/.gradle/8.2/checksums/sha1-checksums.bin and b/.gradle/8.2/checksums/sha1-checksums.bin differ
diff --git a/.gradle/8.2/executionHistory/executionHistory.bin b/.gradle/8.2/executionHistory/executionHistory.bin
index 19b4cdb..7af2412 100644
Binary files a/.gradle/8.2/executionHistory/executionHistory.bin and b/.gradle/8.2/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.2/executionHistory/executionHistory.lock b/.gradle/8.2/executionHistory/executionHistory.lock
index 456d0ce..bd9fed9 100644
Binary files a/.gradle/8.2/executionHistory/executionHistory.lock and b/.gradle/8.2/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.2/fileHashes/fileHashes.bin b/.gradle/8.2/fileHashes/fileHashes.bin
index 19c7f91..e843cdf 100644
Binary files a/.gradle/8.2/fileHashes/fileHashes.bin and b/.gradle/8.2/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.2/fileHashes/fileHashes.lock b/.gradle/8.2/fileHashes/fileHashes.lock
index da056ff..10336c1 100644
Binary files a/.gradle/8.2/fileHashes/fileHashes.lock and b/.gradle/8.2/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.2/fileHashes/resourceHashesCache.bin b/.gradle/8.2/fileHashes/resourceHashesCache.bin
index fd086b2..ad3c434 100644
Binary files a/.gradle/8.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.2/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index fa1403c..df039ce 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties
index f80f085..931196a 100644
--- a/.gradle/buildOutputCleanup/cache.properties
+++ b/.gradle/buildOutputCleanup/cache.properties
@@ -1,2 +1,2 @@
-#Tue Jan 30 17:45:40 CET 2024
+#Tue Jul 16 14:29:56 CEST 2024
gradle.version=8.2
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index b7e8fde..8bf9b1e 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/config.properties b/.gradle/config.properties
index 107e404..8bdd50e 100644
--- a/.gradle/config.properties
+++ b/.gradle/config.properties
@@ -1,2 +1,2 @@
-#Tue Jan 30 17:44:56 CET 2024
+#Thu Aug 29 09:52:32 CEST 2024
java.home=C\:\\Users\\benek\\Desktop\\Android\\Android Studio\\jbr
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
index b716029..9f7fae1 100644
Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ
diff --git a/app/build.gradle b/app/build.gradle
index 59265a4..85b7588 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -53,6 +53,7 @@ dependencies {
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.7'
implementation 'androidx.lifecycle:lifecycle-process:2.7.0'
+ implementation 'androidx.recyclerview:recyclerview:1.3.2'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
@@ -93,7 +94,7 @@ dependencies {
//it.jsoup
implementation "org.jsoup:jsoup:1.14.3"
- //GPT
- implementation "com.aallam.openai:openai-client:3.7.2"
- implementation "io.ktor:ktor-client-android:2.2.4"
+ //viewpager
+ implementation 'androidx.viewpager2:viewpager2:1.1.0'
+
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 7c0efa5..e269454 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,16 +1,20 @@
+
-
-
-
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/app/src/main/java/com/nlinterface/activities/BarcodeSettingsActivity.kt b/app/src/main/java/com/nlinterface/activities/BarcodeSettingsActivity.kt
index 5e97352..1575e5c 100644
--- a/app/src/main/java/com/nlinterface/activities/BarcodeSettingsActivity.kt
+++ b/app/src/main/java/com/nlinterface/activities/BarcodeSettingsActivity.kt
@@ -3,38 +3,41 @@ package com.nlinterface.activities
import android.content.Context
import android.content.Intent
import android.os.Bundle
-import android.view.View
import android.widget.Button
-import android.widget.ImageButton
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.RecyclerView
+import androidx.viewpager2.widget.ViewPager2
import com.nlinterface.R
+import com.nlinterface.adapters.BarcodeSettingsFragmentAdapter
import com.nlinterface.databinding.ActivityBarcodeSettingsBinding
+import com.nlinterface.fragments.BarcodeScannerScreen
+import com.nlinterface.fragments.BarcodeSettingsScreen1
+import com.nlinterface.fragments.BarcodeSettingsScreen2
+import com.nlinterface.fragments.BarcodeSettingsScreen3
import com.nlinterface.utility.ActivityType
import com.nlinterface.utility.GlobalParameters
-import com.nlinterface.utility.STTInputType
+import com.nlinterface.utility.OnSwipeTouchInterceptor
+import com.nlinterface.utility.SwipeAction
import com.nlinterface.utility.navToActivity
-import com.nlinterface.utility.setViewRelativeSize
import com.nlinterface.viewmodels.BarcodeSettingsViewModel
/**
- * The SettingsActivity handles user interaction in Settings Menu.
+ * The BarcodeSettingsActivity handles user interaction in Barcode Settings Menu.
*
- * The Settings Menu comprises the Voice Activation Buttons and a button for each settings
- * functionality. Each click on a settings button will cycle through the available settings,
- * narrating each action. The settings are applied once the MainActivity is selected. Current
- * setting options are:
+ * The Barcode Settings Menu comprises of several screens of which each displays two
+ * possible settings. Those settings set what information about the scanned product are retrieved
+ * and given to the user.
+ * Scrolling left an right navigates trough the different screens. A swipe up and down
+ * activates/deactivates the specific information retrieval.
*
- * 1- Screen Always On/Dim Screen after some time
- * 2- Device Theme/Dark Theme/Light Theme
- *
- * Possible Voice Commands:
- * - 'Read Screen Settings'
- * - 'Read Theme Settings'
- * - 'Set Screen Settings' --> Always On or Dim? --> X
- * - 'Set Theme Settings' --> Default, Light or Dark? --> X
+ * 1- Name and Volume on/off
+ * 2- Labels on/off
+ * 3- Country of Origin on/off
+ * 4- Ingredients and Allergies on/off
+ * 5- Compromised nutritional values on/off
*
* TODO: Add TTS Speed Settings
*/
@@ -59,16 +62,17 @@ class BarcodeSettingsActivity : AppCompatActivity() {
private lateinit var shortNutritionalValuesOptions: MutableList
private lateinit var shortNutritionalValuesButton: Button
- private lateinit var voiceActivationButton: ImageButton
-
private lateinit var lastCommand: String
private val globalParameters = GlobalParameters.instance!!
+ private lateinit var viewPager: ViewPager2
+ lateinit var fragmentAdapter: BarcodeSettingsFragmentAdapter
+
/**
* The onCreate Function initializes the view by binding the Activity and the Layout,
- * retrieving the ViewModel, loading the options for each preference type, configuring the UI
- * and configuring the TTS/STT systems.
+ * retrieving the ViewModel, loading the options for each preference type, configuring the
+ * viewpager and configuring the TTS/STT systems.
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -103,134 +107,16 @@ class BarcodeSettingsActivity : AppCompatActivity() {
shortNutritionalValuesOptions.add(option)
}
-
- configureUI()
+ viewPagerSetUp()
configureTTS()
configureSTT()
}
/**
- * Sets up all UI elements, i.e. the voiceActivation/theme/keepScreenOn buttons and their
- * respective onClickListeners
- */
- private fun configureUI() {
-
- voiceActivationButton = findViewById(R.id.voice_activation_bt) as ImageButton
- voiceActivationButton.setOnClickListener { onVoiceActivationButtonClick() }
-
- setViewRelativeSize(voiceActivationButton, 1.0, 0.33)
-
- nameAndVolumeButton = findViewById