diff --git a/MobileAuthApp/.idea/misc.xml b/MobileAuthApp/.idea/misc.xml
index 0ca1c4d..0921839 100644
--- a/MobileAuthApp/.idea/misc.xml
+++ b/MobileAuthApp/.idea/misc.xml
@@ -4,7 +4,11 @@
diff --git a/MobileAuthApp/app/build.gradle b/MobileAuthApp/app/build.gradle
index 0f082ba..6584417 100644
--- a/MobileAuthApp/app/build.gradle
+++ b/MobileAuthApp/app/build.gradle
@@ -36,7 +36,7 @@ android {
}
dependencies {
-
+ def lifecycle_version = "2.3.1"
implementation 'androidx.core:core-ktx:1.6.0'
implementation 'androidx.appcompat:appcompat:1.3.1'
implementation 'com.google.android.material:material:1.4.0'
@@ -46,7 +46,13 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
+ //To use activityViewModels
+ implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
+
//For navigation component
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
+
+ //ViewModel
+ implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt
new file mode 100644
index 0000000..5a46fe2
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/AuthFragment.kt
@@ -0,0 +1,57 @@
+package com.tarkvaraprojekt.mobileauthapp
+
+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.databinding.FragmentAuthBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
+
+/**
+ * Fragment that asks the user to detect the ID card with mobile NFC chip.
+ * Currently contains a next button that won't be needed later on.
+ * This button is just needed to test navigation between fragments so that every step exists.
+ */
+class AuthFragment : Fragment() {
+
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
+ private var binding: FragmentAuthBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentAuthBinding.inflate(inflater, container, false)
+ return binding!!.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding!!.nextButton.setOnClickListener { goToNextFragment() }
+ binding!!.cancelButton.setOnClickListener { goToTheStart() }
+ }
+
+ private fun goToNextFragment() {
+ //Dummy data for now
+ viewModel.setUserFirstName("John")
+ viewModel.setUserLastName("Doe")
+ viewModel.setUserIdentificationNumber("012345678910")
+ findNavController().navigate(R.id.action_authFragment_to_userFragment)
+ }
+
+ private fun goToTheStart() {
+ viewModel.clearUserInfo()
+ findNavController().navigate(R.id.action_authFragment_to_homeFragment)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding = null
+ }
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt
new file mode 100644
index 0000000..046112f
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/CanFragment.kt
@@ -0,0 +1,54 @@
+package com.tarkvaraprojekt.mobileauthapp
+
+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.databinding.FragmentCanBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
+
+/**
+ * Fragment that deals with asking the user for six digit CAN
+ */
+class CanFragment : Fragment() {
+
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
+ private var binding: FragmentCanBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentCanBinding.inflate(inflater, container, false)
+ return binding!!.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding!!.nextButton.setOnClickListener { goToNextFragment() }
+ binding!!.cancelButton.setOnClickListener { goToTheStart() }
+ }
+
+ private fun goToNextFragment() {
+ viewModel.setUserCan(
+ binding!!.canEditText.text.toString()
+ )
+ findNavController().navigate(R.id.action_canFragment_to_authFragment)
+ }
+
+ private fun goToTheStart() {
+ viewModel.clearUserInfo()
+ findNavController().navigate(R.id.action_canFragment_to_homeFragment)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding = null
+ }
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt
index b6a46bd..bdfaa69 100644
--- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/HomeFragment.kt
@@ -5,10 +5,15 @@ 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.databinding.FragmentHomeBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
class HomeFragment : Fragment() {
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
private var binding: FragmentHomeBinding? = null
override fun onCreateView(
@@ -20,6 +25,16 @@ class HomeFragment : Fragment() {
return binding!!.root
}
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding!!.beginButton.setOnClickListener { goToNextFragment() }
+ }
+
+ private fun goToNextFragment() {
+ findNavController().navigate(R.id.action_homeFragment_to_pinFragment)
+ }
+
override fun onDestroyView() {
super.onDestroyView()
binding = null
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 151c9bc..bb85fbc 100644
--- a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/MainActivity.kt
@@ -18,4 +18,5 @@ class MainActivity : AppCompatActivity() {
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
navigationController = navHostFragment.navController
}
+
}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt
new file mode 100644
index 0000000..99c9e21
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/PinFragment.kt
@@ -0,0 +1,54 @@
+package com.tarkvaraprojekt.mobileauthapp
+
+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.databinding.FragmentPinBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
+
+/**
+ * Fragment that deals with asking the user for PIN1
+ */
+class PinFragment : Fragment() {
+
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
+ private var binding: FragmentPinBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentPinBinding.inflate(inflater, container, false)
+ return binding!!.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding!!.nextButton.setOnClickListener { goToNextFragment() }
+ binding!!.cancelButton.setOnClickListener { goToTheStart() }
+ }
+
+ private fun goToNextFragment() {
+ viewModel.setUserPin(
+ binding!!.pinEditText.text.toString()
+ )
+ findNavController().navigate(R.id.action_pinFragment_to_canFragment)
+ }
+
+ private fun goToTheStart() {
+ viewModel.clearUserInfo()
+ findNavController().navigate(R.id.action_pinFragment_to_homeFragment)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding = null
+ }
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/UserFragment.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/UserFragment.kt
new file mode 100644
index 0000000..554bbc1
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/UserFragment.kt
@@ -0,0 +1,55 @@
+package com.tarkvaraprojekt.mobileauthapp
+
+import android.os.Bundle
+import android.util.Log
+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.databinding.FragmentUserBinding
+import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
+
+/**
+ * Fragment that is used to display the persons name and national identification number.
+ * Currently needed in order to test that the app is working because the results at the moment
+ * are not sent to some other website or app.
+ */
+class UserFragment : Fragment() {
+
+ private val TAG = UserFragment::class.java.name
+
+ private val viewModel: SmartCardViewModel by activityViewModels()
+
+ private var binding: FragmentUserBinding? = null
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ binding = FragmentUserBinding.inflate(inflater, container, false)
+ return binding!!.root
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ binding!!.firstName.text = getString(R.string.info_text, "First name", viewModel.userFirstName)
+ binding!!.lastName.text = getString(R.string.info_text, "Last name", viewModel.userLastName)
+ binding!!.identificationNumber.text = getString(R.string.info_text, "Idenfitication number", viewModel.userIdentificationNumber)
+ binding!!.clearButton.setOnClickListener { goToTheStart() }
+ }
+
+ private fun goToTheStart() {
+ viewModel.clearUserInfo()
+ Log.i(TAG, "First name value after clearUserInfo ${viewModel.userFirstName}")
+ findNavController().navigate(R.id.action_userFragment_to_homeFragment)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ binding = null
+ }
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/model/SmartCardViewModel.kt b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/model/SmartCardViewModel.kt
new file mode 100644
index 0000000..4674831
--- /dev/null
+++ b/MobileAuthApp/app/src/main/java/com/tarkvaraprojekt/mobileauthapp/model/SmartCardViewModel.kt
@@ -0,0 +1,50 @@
+package com.tarkvaraprojekt.mobileauthapp.model
+
+import androidx.lifecycle.ViewModel
+
+class SmartCardViewModel: ViewModel() {
+
+ private var _userPin: String = ""
+ val userPin get() = _userPin
+
+ private var _userCan: String = ""
+ val userCan get() = _userCan
+
+ private var _userFirstName: String = ""
+ val userFirstName get() = _userFirstName
+
+ private var _userLastName: String = ""
+ val userLastName get() = _userLastName
+
+ private var _userIdentificationNumber: String = ""
+ val userIdentificationNumber get() = _userIdentificationNumber
+
+ fun clearUserInfo() {
+ _userPin = ""
+ _userCan = ""
+ _userFirstName = ""
+ _userLastName = ""
+ _userIdentificationNumber = ""
+ }
+
+ fun setUserPin(newUserPin: String) {
+ _userPin = newUserPin
+ }
+
+ fun setUserCan(newUserCan: String) {
+ _userCan = newUserCan
+ }
+
+ fun setUserFirstName(newUserFirstName: String) {
+ _userFirstName = newUserFirstName
+ }
+
+ fun setUserLastName(newUserLastName: String) {
+ _userLastName = newUserLastName
+ }
+
+ fun setUserIdentificationNumber(newUserIdentificationNumber: String) {
+ _userIdentificationNumber = newUserIdentificationNumber
+ }
+
+}
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_auth.xml b/MobileAuthApp/app/src/main/res/layout/fragment_auth.xml
new file mode 100644
index 0000000..915b201
--- /dev/null
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_auth.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_can.xml b/MobileAuthApp/app/src/main/res/layout/fragment_can.xml
new file mode 100644
index 0000000..481d5d8
--- /dev/null
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_can.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_home.xml b/MobileAuthApp/app/src/main/res/layout/fragment_home.xml
index 71a9a06..dc30b64 100644
--- a/MobileAuthApp/app/src/main/res/layout/fragment_home.xml
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_home.xml
@@ -1,13 +1,30 @@
-
+ android:id="@+id/home_fragment_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/home_fragment"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintEnd_toEndOf="parent" />
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_pin.xml b/MobileAuthApp/app/src/main/res/layout/fragment_pin.xml
new file mode 100644
index 0000000..b8019fe
--- /dev/null
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_pin.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/layout/fragment_user.xml b/MobileAuthApp/app/src/main/res/layout/fragment_user.xml
new file mode 100644
index 0000000..cc6c542
--- /dev/null
+++ b/MobileAuthApp/app/src/main/res/layout/fragment_user.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml b/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml
index f8a9ba3..b8bc704 100644
--- a/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml
+++ b/MobileAuthApp/app/src/main/res/navigation/nav_graph.xml
@@ -9,5 +9,66 @@
android:id="@+id/homeFragment"
android:name="com.tarkvaraprojekt.mobileauthapp.HomeFragment"
android:label="fragment_home"
- tools:layout="@layout/fragment_home" />
+ tools:layout="@layout/fragment_home" >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MobileAuthApp/app/src/main/res/values-night/themes.xml b/MobileAuthApp/app/src/main/res/values-night/themes.xml
index 2c4280e..14618cc 100644
--- a/MobileAuthApp/app/src/main/res/values-night/themes.xml
+++ b/MobileAuthApp/app/src/main/res/values-night/themes.xml
@@ -2,12 +2,12 @@