diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt
index 2bc8e90..cd971c6 100644
--- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt
@@ -8,6 +8,7 @@ import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
+import androidx.navigation.fragment.navArgs
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentCanBinding
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
@@ -20,6 +21,9 @@ class CanFragment : Fragment() {
private var binding: FragmentCanBinding? = null
+ // Navigation arguments. saving = true means that we are navigating here from the settings menu and must return to the settings
+ private val args: CanFragmentArgs by navArgs()
+
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
@@ -31,7 +35,9 @@ class CanFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
+ if (args.saving) {
+ binding!!.nextButton.text = getString(R.string.save_text)
+ }
binding!!.nextButton.setOnClickListener { goToNextFragment() }
binding!!.cancelButton.setOnClickListener { goToTheStart() }
}
@@ -45,13 +51,21 @@ class CanFragment : Fragment() {
viewModel.setUserCan(
binding!!.canEditText.editText?.text.toString()
)
- findNavController().navigate(R.id.action_canFragment_to_authFragment)
+ if (args.saving) {
+ findNavController().navigate(R.id.action_canFragment_to_settingsFragment)
+ } else {
+ findNavController().navigate(R.id.action_canFragment_to_authFragment)
+ }
}
}
private fun goToTheStart() {
- viewModel.clearUserInfo()
- findNavController().navigate(R.id.action_canFragment_to_homeFragment)
+ if (args.saving) {
+ findNavController().navigate(R.id.action_canFragment_to_settingsFragment)
+ } else {
+ viewModel.clearUserInfo()
+ findNavController().navigate(R.id.action_canFragment_to_homeFragment)
+ }
}
override fun onDestroy() {
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt
index 6b4c940..f1e4353 100644
--- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt
@@ -8,8 +8,10 @@ import android.view.Menu
import android.view.MenuItem
import android.widget.Toast
import androidx.navigation.NavController
+import androidx.navigation.findNavController
import androidx.navigation.fragment.NavHostFragment
import com.tarkvaraprojekt.mobileauthapp.databinding.ActivityMainBinding
+import java.util.*
class MainActivity : AppCompatActivity() {
@@ -32,14 +34,8 @@ class MainActivity : AppCompatActivity() {
}
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
- R.id.menu_language_option -> {
- Toast.makeText(this, getString(R.string.menu_action_unavailable), Toast.LENGTH_SHORT)
- .show()
- true
- }
R.id.menu_settings_option -> {
- Toast.makeText(this, getString(R.string.menu_action_unavailable), Toast.LENGTH_SHORT)
- .show()
+ navigationController.navigate(R.id.action_homeFragment_to_settingsFragment)
true
}
else -> super.onOptionsItemSelected(item)
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/menu/SettingsFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/menu/SettingsFragment.kt
new file mode 100644
index 0000000..88f4642
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/menu/SettingsFragment.kt
@@ -0,0 +1,58 @@
+package com.tarkvaraprojekt.mobileauthapp.menu
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.navigation.fragment.findNavController
+import com.tarkvaraprojekt.mobileauthapp.R
+import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentSettingsBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
+
+
+// Currently CAN is not actually saved, only UI part is implemented
+class SettingsFragment : Fragment() {
+
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
+ private var binding: FragmentSettingsBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentSettingsBinding.inflate(inflater, container, false)
+ return binding!!.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ if (viewModel.userCan.length == 6) {
+ binding!!.canSaved.text = getString(R.string.saved_can, viewModel.userCan)
+ binding!!.canMenuAction.text = getString(R.string.can_delete)
+ } else {
+ binding!!.canSaved.text = getString(R.string.saved_can, "puudub")
+ binding!!.canMenuAction.text = getString(R.string.can_add)
+ }
+ binding!!.canMenuAction.setOnClickListener {
+ if (viewModel.userCan.length != 6) {
+ val action = SettingsFragmentDirections.actionSettingsFragmentToCanFragment(true)
+ findNavController().navigate(action)
+ } else {
+ // If can in ViewModel is 6 we know that we can only delete it.
+ viewModel.setUserCan("")
+ binding!!.canSaved.text = getString(R.string.saved_can, "puudub")
+ binding!!.canMenuAction.text = getString(R.string.can_add)
+ }
+ }
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding = null
+ }
+
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_settings.xml b/MobileAuthApp/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 0000000..b09fee7
--- /dev/null
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,33 @@
+
+