mirror of
https://github.com/TanelOrumaa/Estonian-ID-card-mobile-authenticator-POC.git
synced 2024-12-22 12:30:16 +02:00
MOB-13 pin2 fragment created
This commit is contained in:
parent
a9336b790f
commit
ebc541af08
@ -40,7 +40,7 @@ class HomeFragment : Fragment() {
|
|||||||
initialChecks()
|
initialChecks()
|
||||||
// TODO: If app launched with intent then go to the CanFragment immediately.
|
// TODO: If app launched with intent then go to the CanFragment immediately.
|
||||||
val auth = requireActivity().intent.getBooleanExtra("auth", false)
|
val auth = requireActivity().intent.getBooleanExtra("auth", false)
|
||||||
if (auth){ // Currently true for testing purposes
|
if (auth){
|
||||||
goToTheNextFragment(true)
|
goToTheNextFragment(true)
|
||||||
}
|
}
|
||||||
binding!!.beginButton.setOnClickListener { goToTheNextFragment() }
|
binding!!.beginButton.setOnClickListener { goToTheNextFragment() }
|
||||||
|
@ -0,0 +1,72 @@
|
|||||||
|
package com.tarkvaraprojekt.mobileauthapp
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import android.widget.Toast
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.fragment.app.activityViewModels
|
||||||
|
import com.tarkvaraprojekt.mobileauthapp.databinding.FragmentPin2Binding
|
||||||
|
import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fragment that deals with asking PIN 2 from the user. Basically the same as PIN 1 fragment.
|
||||||
|
*/
|
||||||
|
class Pin2Fragment : Fragment() {
|
||||||
|
|
||||||
|
private val viewModel: SmartCardViewModel by activityViewModels()
|
||||||
|
|
||||||
|
private var binding: FragmentPin2Binding? = null
|
||||||
|
|
||||||
|
override fun onCreateView(
|
||||||
|
inflater: LayoutInflater,
|
||||||
|
container: ViewGroup?,
|
||||||
|
savedInstanceState: Bundle?
|
||||||
|
): View? {
|
||||||
|
binding = FragmentPin2Binding.inflate(inflater, container, false)
|
||||||
|
return binding!!.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
binding!!.nextButton.setOnClickListener {
|
||||||
|
checkPin2Length()
|
||||||
|
}
|
||||||
|
binding!!.cancelButton.setOnClickListener {
|
||||||
|
cancel()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if the length of the entered PIN 2 is in range 5..12 and if it is
|
||||||
|
* then it is saved to the viewModel.
|
||||||
|
*/
|
||||||
|
private fun checkPin2Length() {
|
||||||
|
val enteredPin2 = binding!!.pin2EditText.editText?.text.toString()
|
||||||
|
if (enteredPin2.length in 5..12) {
|
||||||
|
viewModel.setUserPin2(enteredPin2)
|
||||||
|
} else {
|
||||||
|
Toast.makeText(requireContext(), getString(R.string.length_pin2), Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Authentication process is cancelled when cancel button is clicked and the application
|
||||||
|
* will be closed.
|
||||||
|
*/
|
||||||
|
private fun cancel() {
|
||||||
|
val resultIntent = Intent()
|
||||||
|
requireActivity().setResult(AppCompatActivity.RESULT_CANCELED, resultIntent)
|
||||||
|
requireActivity().finish()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
binding = null
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -13,7 +13,8 @@ import com.tarkvaraprojekt.mobileauthapp.model.SmartCardViewModel
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* ResultFragment is used to create a JWT and to send response to the website/application
|
* ResultFragment is used to create a JWT and to send response to the website/application
|
||||||
* that launched the MobileAuthApp.
|
* that launched the MobileAuthApp. If the mobile auth app was started by a website
|
||||||
|
* the result is sent to a server with a POST request.
|
||||||
*/
|
*/
|
||||||
class ResultFragment : Fragment() {
|
class ResultFragment : Fragment() {
|
||||||
|
|
||||||
|
@ -11,6 +11,9 @@ class SmartCardViewModel: ViewModel() {
|
|||||||
private var _userPin: String = ""
|
private var _userPin: String = ""
|
||||||
val userPin get() = _userPin
|
val userPin get() = _userPin
|
||||||
|
|
||||||
|
private var _userPin2: String = ""
|
||||||
|
val userPin2 get() = _userPin2
|
||||||
|
|
||||||
private var _userCan: String = ""
|
private var _userCan: String = ""
|
||||||
val userCan get() = _userCan
|
val userCan get() = _userCan
|
||||||
|
|
||||||
@ -34,6 +37,7 @@ class SmartCardViewModel: ViewModel() {
|
|||||||
|
|
||||||
fun clearUserInfo() {
|
fun clearUserInfo() {
|
||||||
_userPin = ""
|
_userPin = ""
|
||||||
|
_userPin2 = ""
|
||||||
_userCan = ""
|
_userCan = ""
|
||||||
_userFirstName = ""
|
_userFirstName = ""
|
||||||
_userLastName = ""
|
_userLastName = ""
|
||||||
@ -47,6 +51,10 @@ class SmartCardViewModel: ViewModel() {
|
|||||||
_userPin = newUserPin
|
_userPin = newUserPin
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setUserPin2(newUserPin2: String) {
|
||||||
|
_userPin2 = newUserPin2
|
||||||
|
}
|
||||||
|
|
||||||
fun setUserCan(newUserCan: String) {
|
fun setUserCan(newUserCan: String) {
|
||||||
_userCan = newUserCan
|
_userCan = newUserCan
|
||||||
}
|
}
|
||||||
|
84
MobileAuthApp/app/src/main/res/layout/fragment_pin2.xml
Normal file
84
MobileAuthApp/app/src/main/res/layout/fragment_pin2.xml
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
<?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"
|
||||||
|
android:padding="24dp"
|
||||||
|
tools:context=".Pin2Fragment">
|
||||||
|
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
android:id="@+id/card_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="8dp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:strokeWidth="1dp"
|
||||||
|
app:strokeColor="@color/stroke_color"
|
||||||
|
app:cardElevation="0dp">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="20dp">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/pin2_fragment_text"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="6dp"
|
||||||
|
android:text="@string/pin2_fragment" />
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/pin2_edit_text"
|
||||||
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="6dp"
|
||||||
|
android:hint="@string/enter_pin2"
|
||||||
|
app:counterEnabled="true"
|
||||||
|
app:counterMaxLength="12"
|
||||||
|
app:endIconMode="password_toggle"
|
||||||
|
app:errorEnabled="true"
|
||||||
|
app:helperText="@string/example_pin2"
|
||||||
|
app:helperTextEnabled="true"
|
||||||
|
app:startIconDrawable="@drawable/can_logo">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="numberPassword"
|
||||||
|
android:textSize="14sp" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/next_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="@string/next_text"
|
||||||
|
android:textSize="15sp"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/cancel_button"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/card_view" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/cancel_button"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="24dp"
|
||||||
|
android:text="@string/cancel_text"
|
||||||
|
android:textSize="15sp"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/next_button"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/card_view" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -25,6 +25,12 @@
|
|||||||
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
||||||
<string name="save_pin_title">Salvesta PIN 1</string>
|
<string name="save_pin_title">Salvesta PIN 1</string>
|
||||||
|
|
||||||
|
<!-- string resources for Pin2Fragment -->
|
||||||
|
<string name="pin2_fragment">Palun sisesta PIN 2</string>
|
||||||
|
<string name="enter_pin2">PIN 2</string>
|
||||||
|
<string name="example_pin2">Näide. 123456</string>
|
||||||
|
<string name="length_pin2">PIN 2 lubatud pikkus on 5..12</string>
|
||||||
|
|
||||||
<!-- string resources for CanFragment -->
|
<!-- string resources for CanFragment -->
|
||||||
<string name="example_can">Näide. 123456</string>
|
<string name="example_can">Näide. 123456</string>
|
||||||
<string name="text_can">CAN</string>
|
<string name="text_can">CAN</string>
|
||||||
|
@ -24,6 +24,12 @@
|
|||||||
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
||||||
<string name="save_pin_title">Salvesta PIN 1</string>
|
<string name="save_pin_title">Salvesta PIN 1</string>
|
||||||
|
|
||||||
|
<!-- string resources for Pin2Fragment -->
|
||||||
|
<string name="pin2_fragment">Palun sisesta PIN 2</string>
|
||||||
|
<string name="enter_pin2">PIN 2</string>
|
||||||
|
<string name="example_pin2">Näide. 123456</string>
|
||||||
|
<string name="length_pin2">PIN 2 lubatud pikkus on 5..12</string>
|
||||||
|
|
||||||
<!-- string resources for CanFragment -->
|
<!-- string resources for CanFragment -->
|
||||||
<string name="example_can">Näide. 123456</string>
|
<string name="example_can">Näide. 123456</string>
|
||||||
<string name="text_can">CAN</string>
|
<string name="text_can">CAN</string>
|
||||||
|
@ -23,6 +23,12 @@
|
|||||||
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
<string name="pin_save_request">Praegu ei ole rakenduses PIN 1 salvestatud. Kas sa soovid sisestatud PIN 1-te salvestada? Sellisel juhul sisestatakse see järgmisel korral automaatselt. Salvestatud PIN 1-te saab alati menüüs muuta ja kustutada.</string>
|
||||||
<string name="save_pin_title">Salvesta PIN 1</string>
|
<string name="save_pin_title">Salvesta PIN 1</string>
|
||||||
|
|
||||||
|
<!-- string resources for Pin2Fragment -->
|
||||||
|
<string name="pin2_fragment">Palun sisesta PIN 2</string>
|
||||||
|
<string name="enter_pin2">PIN 2</string>
|
||||||
|
<string name="example_pin2">Näide. 123456</string>
|
||||||
|
<string name="length_pin2">PIN 2 lubatud pikkus on 5..12</string>
|
||||||
|
|
||||||
<!-- string resources for CanFragment -->
|
<!-- string resources for CanFragment -->
|
||||||
<string name="example_can">Näide. 123456</string>
|
<string name="example_can">Näide. 123456</string>
|
||||||
<string name="text_can">CAN</string>
|
<string name="text_can">CAN</string>
|
||||||
@ -67,6 +73,4 @@
|
|||||||
<string name="hide">PEIDA</string>
|
<string name="hide">PEIDA</string>
|
||||||
<string name="hidden_pin">****</string>
|
<string name="hidden_pin">****</string>
|
||||||
<string name="unavailable">Seaded pole hetkel saadaval</string>
|
<string name="unavailable">Seaded pole hetkel saadaval</string>
|
||||||
<!-- TODO: Remove or change this placeholder text -->
|
|
||||||
<string name="hello_blank_fragment">Hello blank fragment</string>
|
|
||||||
</resources>
|
</resources>
|
Loading…
Reference in New Issue
Block a user