From 141dfb18dbea35449015602dc3f33f83f6f5f68c Mon Sep 17 00:00:00 2001 From: Henrik Lepson Date: Fri, 15 Oct 2021 18:23:21 +0300 Subject: [PATCH] MOB-38 MOB-39 MOB-40 created UI and changed navigation for CAN saving --- .../mobileauthapp/CanFragment.kt | 22 +++++-- .../mobileauthapp/MainActivity.kt | 10 +--- .../mobileauthapp/menu/SettingsFragment.kt | 58 +++++++++++++++++++ .../src/main/res/layout/fragment_settings.xml | 33 +++++++++++ MobileAuthApp/app/src/main/res/menu/menu.xml | 6 -- .../app/src/main/res/navigation/nav_graph.xml | 19 ++++++ .../app/src/main/res/values-en/strings.xml | 45 ++++++++++++++ .../app/src/main/res/values-et/strings.xml | 44 ++++++++++++++ .../app/src/main/res/values/strings.xml | 4 ++ 9 files changed, 224 insertions(+), 17 deletions(-) create mode 100644 MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/menu/SettingsFragment.kt create mode 100644 MobileAuthApp/app/src/main/res/layout/fragment_settings.xml create mode 100644 MobileAuthApp/app/src/main/res/values-en/strings.xml create mode 100644 MobileAuthApp/app/src/main/res/values-et/strings.xml 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 @@ + + + + + +