mirror of
https://github.com/TanelOrumaa/Estonian-ID-card-mobile-authenticator-POC.git
synced 2024-12-22 12:30:16 +02:00
MOB-38 MOB-39 MOB-40 created UI and changed navigation for CAN saving
This commit is contained in:
parent
48817f9057
commit
141dfb18db
@ -8,6 +8,7 @@ import android.widget.Toast
|
|||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
|
import androidx.navigation.fragment.navArgs
|
||||||
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentCanBinding
|
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentCanBinding
|
||||||
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
||||||
|
|
||||||
@ -20,6 +21,9 @@ class CanFragment : Fragment() {
|
|||||||
|
|
||||||
private var binding: FragmentCanBinding? = null
|
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(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
container: ViewGroup?,
|
container: ViewGroup?,
|
||||||
@ -31,7 +35,9 @@ class CanFragment : Fragment() {
|
|||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
if (args.saving) {
|
||||||
|
binding!!.nextButton.text = getString(R.string.save_text)
|
||||||
|
}
|
||||||
binding!!.nextButton.setOnClickListener { goToNextFragment() }
|
binding!!.nextButton.setOnClickListener { goToNextFragment() }
|
||||||
binding!!.cancelButton.setOnClickListener { goToTheStart() }
|
binding!!.cancelButton.setOnClickListener { goToTheStart() }
|
||||||
}
|
}
|
||||||
@ -45,13 +51,21 @@ class CanFragment : Fragment() {
|
|||||||
viewModel.setUserCan(
|
viewModel.setUserCan(
|
||||||
binding!!.canEditText.editText?.text.toString()
|
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() {
|
private fun goToTheStart() {
|
||||||
viewModel.clearUserInfo()
|
if (args.saving) {
|
||||||
findNavController().navigate(R.id.action_canFragment_to_homeFragment)
|
findNavController().navigate(R.id.action_canFragment_to_settingsFragment)
|
||||||
|
} else {
|
||||||
|
viewModel.clearUserInfo()
|
||||||
|
findNavController().navigate(R.id.action_canFragment_to_homeFragment)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
|
@ -8,8 +8,10 @@ import android.view.Menu
|
|||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.fragment.NavHostFragment
|
import androidx.navigation.fragment.NavHostFragment
|
||||||
import com.tarkvaraprojekt.mobileauthapp.databinding.ActivityMainBinding
|
import com.tarkvaraprojekt.mobileauthapp.databinding.ActivityMainBinding
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
@ -32,14 +34,8 @@ class MainActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
|
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 -> {
|
R.id.menu_settings_option -> {
|
||||||
Toast.makeText(this, getString(R.string.menu_action_unavailable), Toast.LENGTH_SHORT)
|
navigationController.navigate(R.id.action_homeFragment_to_settingsFragment)
|
||||||
.show()
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
|
@ -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
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
33
MobileAuthApp/app/src/main/res/layout/fragment_settings.xml
Normal file
33
MobileAuthApp/app/src/main/res/layout/fragment_settings.xml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".menu.SettingsFragment">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/can_settings"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="12dp"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent">
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/can_saved"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textSize="20sp"
|
||||||
|
android:padding="12dp"
|
||||||
|
android:text="@string/saved_can" />
|
||||||
|
<Button
|
||||||
|
android:id="@+id/can_menu_action"
|
||||||
|
android:layout_margin="12dp"
|
||||||
|
android:text="Lisa CAN"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -2,12 +2,6 @@
|
|||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||||
|
|
||||||
<item
|
|
||||||
android:id="@+id/menu_language_option"
|
|
||||||
android:title="@string/menu_language_title"
|
|
||||||
android:icon="@drawable/ic_baseline_language_24"
|
|
||||||
app:showAsAction="always"/>
|
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/menu_settings_option"
|
android:id="@+id/menu_settings_option"
|
||||||
android:title="@string/menu_settings_title"
|
android:title="@string/menu_settings_title"
|
||||||
|
@ -14,6 +14,9 @@
|
|||||||
android:id="@+id/action_homeFragment_to_pinFragment"
|
android:id="@+id/action_homeFragment_to_pinFragment"
|
||||||
app:destination="@id/pinFragment"
|
app:destination="@id/pinFragment"
|
||||||
/>
|
/>
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_homeFragment_to_settingsFragment"
|
||||||
|
app:destination="@id/settingsFragment" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/pinFragment"
|
android:id="@+id/pinFragment"
|
||||||
@ -44,6 +47,13 @@
|
|||||||
app:destination="@id/homeFragment"
|
app:destination="@id/homeFragment"
|
||||||
app:popUpTo="@id/homeFragment"
|
app:popUpTo="@id/homeFragment"
|
||||||
app:popUpToInclusive="true" />
|
app:popUpToInclusive="true" />
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_canFragment_to_settingsFragment"
|
||||||
|
app:destination="@id/settingsFragment" />
|
||||||
|
<argument
|
||||||
|
android:name="saving"
|
||||||
|
app:argType="boolean"
|
||||||
|
android:defaultValue="false" />
|
||||||
</fragment>
|
</fragment>
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/authFragment"
|
android:id="@+id/authFragment"
|
||||||
@ -71,4 +81,13 @@
|
|||||||
app:popUpTo="@id/homeFragment"
|
app:popUpTo="@id/homeFragment"
|
||||||
app:popUpToInclusive="true"/>
|
app:popUpToInclusive="true"/>
|
||||||
</fragment>
|
</fragment>
|
||||||
|
<fragment
|
||||||
|
android:id="@+id/settingsFragment"
|
||||||
|
android:name="com.tarkvaraprojekt.mobileauthapp.menu.SettingsFragment"
|
||||||
|
android:label="fragment_settings"
|
||||||
|
tools:layout="@layout/fragment_settings" >
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_settingsFragment_to_canFragment"
|
||||||
|
app:destination="@id/canFragment" />
|
||||||
|
</fragment>
|
||||||
</navigation>
|
</navigation>
|
45
MobileAuthApp/app/src/main/res/values-en/strings.xml
Normal file
45
MobileAuthApp/app/src/main/res/values-en/strings.xml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Must translate to English, but should work now -->
|
||||||
|
<string name="app_name">NFC authentication</string>
|
||||||
|
<string name="home_fragment">Work in progress</string>
|
||||||
|
|
||||||
|
<string name="begin_text">ALUSTA</string>
|
||||||
|
<string name="next_text">EDASI</string>
|
||||||
|
<string name="cancel_text">KATKESTA</string>
|
||||||
|
<string name="save_text">SALVESTA</string>
|
||||||
|
|
||||||
|
<!-- string resources for PinFragment -->
|
||||||
|
<string name="pin_fragment">Palun sisesta PIN 1</string>
|
||||||
|
<string name="enter_pin">PIN 1</string>
|
||||||
|
<string name="example_pin">Näide. 1234</string>
|
||||||
|
<string name="length_pin">PIN 1 lubatud pikkus on 4..12</string>
|
||||||
|
|
||||||
|
<!-- string resources for CanFragment -->
|
||||||
|
<string name="example_can">Näide. 123456</string>
|
||||||
|
<string name="text_can">CAN</string>
|
||||||
|
<string name="enter_can">Sisesta ID kaardi CAN (Card Access Number)</string>
|
||||||
|
<string name="length_can">CANi pikkus on vale</string>
|
||||||
|
<string name="card_detected">Kaart on tuvastatud. Hoia kaarti vastu telefoni.</string>
|
||||||
|
<string name="data_read">Andmed loetud. Võid edasi minna.</string>
|
||||||
|
|
||||||
|
<!-- string resources for AuthFragment layout -->
|
||||||
|
<string name="auth_instruction_text">ID kaardiga ühenduse loomiseks pane kaart vastu telefoni</string>
|
||||||
|
<string name="time_left">Aega on jäänud %d sek</string>
|
||||||
|
<string name="no_time">Aeg on otsas</string>
|
||||||
|
<string name="no_success">Vale CAN</string>
|
||||||
|
|
||||||
|
<!-- string resources for UserFragment layout -->
|
||||||
|
<string name="user_name_label">NIMI</string>
|
||||||
|
<string name="user_name">%1$s %2$s</string>
|
||||||
|
<string name="identification_number_label">ISIKUKOOD</string>
|
||||||
|
<string name="clear_button">UNUSTA</string>
|
||||||
|
|
||||||
|
<!-- menu -->
|
||||||
|
<string name="menu_settings_title">Seaded</string>
|
||||||
|
<string name="menu_language_title">Keel</string>
|
||||||
|
<string name="menu_action_unavailable">Toiming pole hetkel saadaval</string>
|
||||||
|
<string name="saved_can">CAN: %s</string>
|
||||||
|
<string name="can_add">Lisa CAN</string>
|
||||||
|
<string name="can_delete">Kustuta CAN</string>
|
||||||
|
</resources>
|
44
MobileAuthApp/app/src/main/res/values-et/strings.xml
Normal file
44
MobileAuthApp/app/src/main/res/values-et/strings.xml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string name="app_name">NFC authentication</string>
|
||||||
|
<string name="home_fragment">Work in progress</string>
|
||||||
|
|
||||||
|
<string name="begin_text">ALUSTA</string>
|
||||||
|
<string name="next_text">EDASI</string>
|
||||||
|
<string name="cancel_text">KATKESTA</string>
|
||||||
|
<string name="save_text">SALVESTA</string>
|
||||||
|
|
||||||
|
<!-- string resources for PinFragment -->
|
||||||
|
<string name="pin_fragment">Palun sisesta PIN 1</string>
|
||||||
|
<string name="enter_pin">PIN 1</string>
|
||||||
|
<string name="example_pin">Näide. 1234</string>
|
||||||
|
<string name="length_pin">PIN 1 lubatud pikkus on 4..12</string>
|
||||||
|
|
||||||
|
<!-- string resources for CanFragment -->
|
||||||
|
<string name="example_can">Näide. 123456</string>
|
||||||
|
<string name="text_can">CAN</string>
|
||||||
|
<string name="enter_can">Sisesta ID kaardi CAN (Card Access Number)</string>
|
||||||
|
<string name="length_can">CANi pikkus on vale</string>
|
||||||
|
<string name="card_detected">Kaart on tuvastatud. Hoia kaarti vastu telefoni.</string>
|
||||||
|
<string name="data_read">Andmed loetud. Võid edasi minna.</string>
|
||||||
|
|
||||||
|
<!-- string resources for AuthFragment layout -->
|
||||||
|
<string name="auth_instruction_text">ID kaardiga ühenduse loomiseks pane kaart vastu telefoni</string>
|
||||||
|
<string name="time_left">Aega on jäänud %d sek</string>
|
||||||
|
<string name="no_time">Aeg on otsas</string>
|
||||||
|
<string name="no_success">Vale CAN</string>
|
||||||
|
|
||||||
|
<!-- string resources for UserFragment layout -->
|
||||||
|
<string name="user_name_label">NIMI</string>
|
||||||
|
<string name="user_name">%1$s %2$s</string>
|
||||||
|
<string name="identification_number_label">ISIKUKOOD</string>
|
||||||
|
<string name="clear_button">UNUSTA</string>
|
||||||
|
|
||||||
|
<!-- menu -->
|
||||||
|
<string name="menu_settings_title">Seaded</string>
|
||||||
|
<string name="menu_language_title">Keel</string>
|
||||||
|
<string name="menu_action_unavailable">Toiming pole hetkel saadaval</string>
|
||||||
|
<string name="saved_can">CAN: %s</string>
|
||||||
|
<string name="can_add">Lisa CAN</string>
|
||||||
|
<string name="can_delete">Kustuta CAN</string>
|
||||||
|
</resources>
|
@ -5,6 +5,7 @@
|
|||||||
<string name="begin_text">ALUSTA</string>
|
<string name="begin_text">ALUSTA</string>
|
||||||
<string name="next_text">EDASI</string>
|
<string name="next_text">EDASI</string>
|
||||||
<string name="cancel_text">KATKESTA</string>
|
<string name="cancel_text">KATKESTA</string>
|
||||||
|
<string name="save_text">SALVESTA</string>
|
||||||
|
|
||||||
<!-- string resources for PinFragment -->
|
<!-- string resources for PinFragment -->
|
||||||
<string name="pin_fragment">Palun sisesta PIN 1</string>
|
<string name="pin_fragment">Palun sisesta PIN 1</string>
|
||||||
@ -36,4 +37,7 @@
|
|||||||
<string name="menu_settings_title">Seaded</string>
|
<string name="menu_settings_title">Seaded</string>
|
||||||
<string name="menu_language_title">Keel</string>
|
<string name="menu_language_title">Keel</string>
|
||||||
<string name="menu_action_unavailable">Toiming pole hetkel saadaval</string>
|
<string name="menu_action_unavailable">Toiming pole hetkel saadaval</string>
|
||||||
|
<string name="saved_can">CAN: %s</string>
|
||||||
|
<string name="can_add">Lisa CAN</string>
|
||||||
|
<string name="can_delete">Kustuta CAN</string>
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user