Commit 5affa44d authored by shohboz's avatar shohboz

[UPD] MUS-261 Feature, updated pin screen to fragment

parent f36c04c8
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
<entry key="app/src/main/res/drawable/ic_safety.xml" value="0.2590277777777778" /> <entry key="app/src/main/res/drawable/ic_safety.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_vector_error.xml" value="0.20694444444444443" /> <entry key="app/src/main/res/drawable/ic_vector_error.xml" value="0.20694444444444443" />
<entry key="app/src/main/res/drawable/radius_top.xml" value="0.25416666666666665" /> <entry key="app/src/main/res/drawable/radius_top.xml" value="0.25416666666666665" />
<entry key="app/src/main/res/drawable/tab_indicator.xml" value="0.2756756756756757" />
<entry key="app/src/main/res/drawable/text_handle.xml" value="1.4214285714285715" /> <entry key="app/src/main/res/drawable/text_handle.xml" value="1.4214285714285715" />
<entry key="app/src/main/res/layout/activity_auth.xml" value="0.15853658536585366" /> <entry key="app/src/main/res/layout/activity_auth.xml" value="0.15853658536585366" />
<entry key="app/src/main/res/layout/activity_language.xml" value="0.25" /> <entry key="app/src/main/res/layout/activity_language.xml" value="0.25" />
......
...@@ -73,7 +73,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -73,7 +73,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
txtForgetPassword.setOnClickListener(object : ButtonClick() { txtForgetPassword.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
viewModel.forgetPassword(UserAuth(phone.replace(" ", "").replace("+", ""))) viewModel.forgetPassword(UserAuth(phone.filter { it.isDigit() }))
} }
}) })
......
...@@ -23,10 +23,7 @@ import com.mobiuz.app.dev.ui.auth.AuthActivity ...@@ -23,10 +23,7 @@ import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.customLog import com.mobiuz.app.dev.utils.extensions.*
import com.mobiuz.app.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.extensions.vibrate
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import javax.inject.Inject import javax.inject.Inject
...@@ -99,50 +96,51 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -99,50 +96,51 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
txtNotPin.isVisible = false txtNotPin.isVisible = false
pinAdapter.setOnDoneListener { pinAdapter.setOnDoneListener {
lifecycleScope.launchWhenCreated { when (type) {
customLog("done type: $type") CONSTANTS.NEW_PIN -> {
delay(50) navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_NEW_PIN, CONSTANTS.PIN_CODE to it),
when (type) { Utils.navOptions())
CONSTANTS.NEW_PIN -> { }
navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_NEW_PIN, CONSTANTS.PIN_CODE to it), CONSTANTS.CONFIRM_NEW_PIN -> {
Utils if(pinCode == it){
.navOptions()) pref.pinCode = pinCode
} navigate()
CONSTANTS.CONFIRM_NEW_PIN -> { }else{
if(pinCode == it){ vibrate(requireContext())
pref.pinCode = pinCode cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
navigate() txtNotPin.isVisible = true
}else{
vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
txtNotPin.isVisible = true
}
} }
CONSTANTS.CURRENT_PIN -> { }
if(pref.pinCode == it){ CONSTANTS.CURRENT_PIN -> {
navController.navigate(R.id.pinFragment, bundleOf( CONSTANTS.TYPE_PIN to CONSTANTS.CHANGE_NEW_PIN), Utils.navOptions()) if(pref.pinCode == it){
}else{ navController.navigate(R.id.pinFragment, bundleOf( CONSTANTS.TYPE_PIN to CONSTANTS.CHANGE_NEW_PIN), Utils.navOptions())
loadError() }else{
} loadError()
} }
CONSTANTS.CHANGE_NEW_PIN -> { }
CONSTANTS.CHANGE_NEW_PIN -> {
if(pref.pinCode == it){
showMessage(getString(R.string.cannot_change_pin))
}else{
navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_CHANGE_NEW_PIN, CONSTANTS.PIN_CODE to it), Utils.navOptions()) navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_CHANGE_NEW_PIN, CONSTANTS.PIN_CODE to it), Utils.navOptions())
} }
CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> { }
if(pinCode == it){ CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> {
pref.pinCode = pinCode if(pinCode == it){
showMessage(getString(R.string.pin_code_updated)) pref.pinCode = pinCode
showCustomDialog(getString(R.string.pin_code_updated),true){
navController.popBackStack(R.id.safetyFragment, false) navController.popBackStack(R.id.safetyFragment, false)
}else{
vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
txtNotPin.isVisible = true
} }
}
else -> {
}else{
vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
txtNotPin.isVisible = true
} }
} }
else -> {
}
} }
} }
...@@ -180,7 +178,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -180,7 +178,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
pref.clearUserData() pref.clearUserData()
val intent = Intent(requireContext(), AuthActivity::class.java) val intent = Intent(requireContext(), AuthActivity::class.java)
intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN) intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN)
intent.putExtra(CONSTANTS.PHONE, pref.userPhone)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent) startActivity(intent)
requireActivity().finish() requireActivity().finish()
......
...@@ -5,7 +5,6 @@ import android.net.Uri ...@@ -5,7 +5,6 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.text.isDigitsOnly
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
...@@ -22,6 +21,7 @@ import com.mobiuz.app.dev.ui.global.CONSTANTS ...@@ -22,6 +21,7 @@ import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.makeLinks import com.mobiuz.app.dev.utils.extensions.makeLinks
import com.mobiuz.app.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.hideKeyboard import com.mobiuz.app.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
...@@ -57,7 +57,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -57,7 +57,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
viewGroup.setOnClickListener(object : ButtonClick(){ viewGroup.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
bn.viewGroup.hideKeyboard() bn.viewGroup.hideKeyboard()
} }
...@@ -65,11 +65,12 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -65,11 +65,12 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
txtHelperMobiuz.makeLinks( txtHelperMobiuz.makeLinks(
Pair("www.mobi.uz", View.OnClickListener { Pair("www.mobi.uz", View.OnClickListener {
val uri = Uri.parse(CONSTANTS.HTTP_MOBI_UZ) val uri = Uri.parse(CONSTANTS.HTTP_MOBI_UZ)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
})) })
)
txtAgree.makeLinks( txtAgree.makeLinks(
Pair("Terms of Use", View.OnClickListener { Pair("Terms of Use", View.OnClickListener {
...@@ -167,7 +168,11 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -167,7 +168,11 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
navController.navigate(R.id.myVerificationFragment, bundleOf(CONSTANTS.PHONE to phone,CONSTANTS.PIN_CODE to it.data), Utils.navOptions()) navController.navigate(
R.id.myVerificationFragment,
bundleOf(CONSTANTS.PHONE to phone, CONSTANTS.PIN_CODE to it.data),
Utils.navOptions()
)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
code = "" code = ""
...@@ -187,10 +192,10 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -187,10 +192,10 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
showToastMessage(getString(R.string.password_successfully_updated)) showCustomDialog(getString(R.string.password_successfully_updated),true){
navController.popBackStack(R.id.loginFragment,false) navController.popBackStack(R.id.loginFragment, false)
navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.NEW_PIN), Utils.navOptions()) navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.NEW_PIN), Utils.navOptions())
}
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
showProgressDialog(false) showProgressDialog(false)
......
package com.mobiuz.app.dev.ui.auth.verification
import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import android.view.animation.AnimationUtils
import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.google.android.material.textfield.TextInputEditText
import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentMyVerificationBinding
import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.clearText
import com.mobiuz.app.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.isEmpty
import com.mobiuz.app.dev.utils.extensions.isNotEmpty
import com.mobiuz.app.dev.utils.hideKeyboard
import com.mobiuz.app.dev.utils.showKeyboard
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect
import javax.inject.Inject
@AndroidEntryPoint
class MyVerificationFragment : BaseFragment(R.layout.fragment_my_verification) {
@Inject
lateinit var pref: SharedPref
private var _bn: FragmentMyVerificationBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val viewModel: AuthViewModel by viewModels()
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private var code = ""
private var verification_code = ""
private var phone = ""
private var type = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
phone = it.getString(CONSTANTS.PHONE) ?: ""
type = it.getString(CONSTANTS.TYPE_VERIFICATION) ?: ""
verification_code = it.getString(CONSTANTS.PIN_CODE) ?: ""
}
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentMyVerificationBinding.bind(view)
setUpUI()
count(true)
collects()
}
override fun setUpUI() {
bn.apply {
toolbar.setNavigationOnClickListener {
navController.navigateUp()
}
loadEdited()
viewGroup.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
v?.hideKeyboard()
}
})
frame.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
checkFocus().showKeyboard()
setColorPins(getColorCompat(R.color.black100))
}
})
btnLogin.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
getLinePinCodes()
val auth = UserAuth(phone.replace("+", "").replace(" ", ""), null, code)
if (type == CONSTANTS.TYPE_FORGET) {
viewModel.checkResetCode(auth)
} else {
viewModel.verification(auth)
}
}
})
sentCodeAgain.setOnClickListener {
viewModel.resetSmsCode(UserAuth(phone.replace("+", "").replace(" ", "")))
}
coutdownView.setOnCountdownEndListener {
count(false)
}
setVerificationCode()
}
}
private fun setVerificationCode() {
if(verification_code.length == 6){
bn.apply {
pin1.setText(verification_code[0].toString())
pin2.setText(verification_code[1].toString())
pin3.setText(verification_code[2].toString())
pin4.setText(verification_code[3].toString())
pin5.setText(verification_code[4].toString())
pin6.setText(verification_code[5].toString())
pin6.requestFocus()
btnLogin.isEnabled = true
}
}
}
private fun getLinePinCodes() {
bn.apply {
code = ""
code += pin1.text.toString()
code += pin2.text.toString()
code += pin3.text.toString()
code += pin4.text.toString()
code += pin5.text.toString()
code += pin6.text.toString()
}
}
private fun setColorPins(color: Int) {
bn.apply {
pin1.setTextColor(color)
pin2.setTextColor(color)
pin3.setTextColor(color)
pin4.setTextColor(color)
pin5.setTextColor(color)
pin6.setTextColor(color)
}
}
private fun checkFocus(): View {
bn.apply {
return when {
pin1.isEmpty() -> pin1
pin2.isEmpty() -> pin2
pin3.isEmpty() -> pin3
pin4.isEmpty() -> pin4
pin5.isEmpty() -> pin5
else -> pin6
}
}
}
private fun clearLatest(): View {
bn.apply {
return when {
pin6.isNotEmpty() -> pin6.clearText()
pin5.isNotEmpty() -> pin5.clearText()
pin4.isNotEmpty() -> pin4.clearText()
pin3.isNotEmpty() -> pin3.clearText()
pin2.isNotEmpty() -> pin2.clearText()
else -> pin1.clearText()
}
}
}
private fun loadEdited() {
bn.apply {
for (i in 0 until pinView.childCount) {
(pinView.getChildAt(i) as TextInputEditText).apply {
this.addTextChangedListener(object : TextWatcherWrapper() {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
super.onTextChanged(s, start, before, count)
bn.txtErrorCode.isVisible = false
if (s.toString().isNotEmpty()) {
if (i == pinView.childCount - 1) {
pin6.hideKeyboard()
btnLogin.isEnabled = true
} else pinView.getChildAt(i + 1).requestFocus()
this@apply.setBackgroundResource(R.drawable.bgn_ver_checked)
} else {
if (i == pinView.childCount - 1) {
btnLogin.isEnabled = false
}
this@apply.setBackgroundResource(R.drawable.bgn_ver_unchecked)
}
}
})
}
}
for (i in 0 until pinView.childCount) {
pinView.getChildAt(i).setOnKeyListener { _, keyCode, event ->
if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL) {
clearLatest().requestFocus()
return@setOnKeyListener false
}
false
}
}
}
}
override fun collects() {
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
viewModel.verificationUiState.collect {
when (it) {
is UiStateObject.SUCCESS -> {
showProgressDialog(false)
pref.userPhone = phone
navController.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.NEW_PIN), Utils.navOptions())
}
is UiStateObject.ERROR -> {
showProgressDialog(false)
setColorPins(getColorCompat(R.color.primary100))
bn.txtErrorCode.isVisible = true
bn.pinView.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
showToastMessage(it.message)
}
is UiStateObject.LOADING -> {
showProgressDialog(true)
}
else -> Unit
}
}
}
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
viewModel.resetSmsCodeUiState.collect {
when (it) {
is UiStateObject.SUCCESS -> {
showToastMessage(it.data)
verification_code = it.data
setVerificationCode()
count(true)
showProgressDialog(false)
}
is UiStateObject.ERROR -> {
showProgressDialog(false)
showToastMessage(it.message)
}
is UiStateObject.LOADING -> {
showProgressDialog(true)
}
else -> Unit
}
}
}
viewLifecycleOwner.lifecycleScope.launchWhenStarted {
viewModel.checkResetCodeUiState.collect {
when (it) {
is UiStateObject.SUCCESS -> {
showProgressDialog(false)
pref.userPhone = phone
navController.navigate(
R.id.registerFragment,
bundleOf(
CONSTANTS.PHONE to phone,
CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET,
CONSTANTS.PIN_CODE to code,
),
Utils.navOptions()
)
}
is UiStateObject.ERROR -> {
showProgressDialog(false)
setColorPins(getColorCompat(R.color.primary100))
bn.pinView.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
showToastMessage(it.message)
}
is UiStateObject.LOADING -> {
showProgressDialog(true)
}
else -> Unit
}
}
}
}
private fun count(status: Boolean) {
bn.apply {
sentCodeAgain.isVisible = !status
coutdownViewHelperText.isVisible = !status
coutdownView.isVisible = status
if (status) coutdownView.start(CONSTANTS.RESEND_CODE_TIME)
}
}
override fun onDestroy() {
_bn = null
super.onDestroy()
}
}
...@@ -50,7 +50,7 @@ class ActionFragment : BaseFragment(R.layout.fragment_action) { ...@@ -50,7 +50,7 @@ class ActionFragment : BaseFragment(R.layout.fragment_action) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
OverScrollDecoratorHelper.setUpStaticOverScroll(bn.rvUssdCommand, OverScrollDecoratorHelper.ORIENTATION_VERTICAL) // OverScrollDecoratorHelper.setUpStaticOverScroll(bn.rvUssdCommand, OverScrollDecoratorHelper.ORIENTATION_VERTICAL)
rvUssdCommand.adapter = adapter rvUssdCommand.adapter = adapter
adapter.setOnClickListener { adapter.setOnClickListener {
......
...@@ -2,6 +2,7 @@ package com.mobiuz.app.dev.ui.settings.safety ...@@ -2,6 +2,7 @@ package com.mobiuz.app.dev.ui.settings.safety
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible import androidx.core.view.isVisible
...@@ -22,6 +23,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick ...@@ -22,6 +23,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.getColorCompat import com.mobiuz.app.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.showCustomDialog import com.mobiuz.app.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
...@@ -112,7 +114,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -112,7 +114,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
imageCheck.isVisible = true imageCheck.isVisible = true
txtCheckConfirm.isVisible = true txtCheckConfirm.isVisible = true
}else{ }else{
loadError()
btnLogin.isEnabled = s.toString().length > 3 btnLogin.isEnabled = s.toString().length > 3
imageCheck.isVisible = false imageCheck.isVisible = false
txtCheckConfirm.isVisible = false txtCheckConfirm.isVisible = false
...@@ -144,16 +145,20 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -144,16 +145,20 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
} }
CONSTANTS.NEW_PASSWORD -> { CONSTANTS.NEW_PASSWORD -> {
if(oldPassword == password){
showMessage(getString(R.string.cannot_change_password))
}else{
navController.navigate(
R.id.changePasswordFragment,
bundleOf(
CONSTANTS.TYPE_PASSWORD to CONSTANTS.CONFIRM_NEW_PASSWORD,
CONSTANTS.OLD_PASSWORD to oldPassword,
CONSTANTS.LATEST_PASSWORD to password,
), Utils.navOptions()
)
}
navController.navigate(
R.id.changePasswordFragment,
bundleOf(
CONSTANTS.TYPE_PASSWORD to CONSTANTS.CONFIRM_NEW_PASSWORD,
CONSTANTS.OLD_PASSWORD to oldPassword,
CONSTANTS.LATEST_PASSWORD to password,
), Utils.navOptions()
)
} }
CONSTANTS.CONFIRM_NEW_PASSWORD -> { CONSTANTS.CONFIRM_NEW_PASSWORD -> {
...@@ -208,7 +213,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -208,7 +213,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
pref.clearUserData() pref.clearUserData()
val intent = Intent(requireContext(), AuthActivity::class.java) val intent = Intent(requireContext(), AuthActivity::class.java)
intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN) intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN)
intent.putExtra(CONSTANTS.PHONE, pref.userPhone)
startActivity(intent) startActivity(intent)
requireActivity().finish() requireActivity().finish()
} }
......
...@@ -52,6 +52,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) { ...@@ -52,6 +52,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
} }
btn1.setOnClickListener(object : ButtonClick(){ btn1.setOnClickListener(object : ButtonClick(){
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
switchBiometria.isChecked = !switchBiometria.isChecked
} }
}) })
btnChangePin.setOnClickListener(object : ButtonClick(){ btnChangePin.setOnClickListener(object : ButtonClick(){
...@@ -68,9 +69,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) { ...@@ -68,9 +69,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
} }
override fun collects() { override fun collects() {}
}
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
......
package com.mobiuz.app.utils package com.mobiuz.app.dev.utils.extensions
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
......
...@@ -14,18 +14,22 @@ ...@@ -14,18 +14,22 @@
<TextView <TextView
style="@style/ServicesTextStyle" style="@style/ServicesTextStyle"
android:id="@+id/txt_title" android:id="@+id/txt_title"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="20dp" android:layout_marginTop="20dp"
android:layout_marginHorizontal="@dimen/_20sdp"
android:text="USSD ЗАПРОС" android:text="USSD ЗАПРОС"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/txt_description" android:id="@+id/txt_description"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_marginHorizontal="@dimen/_20sdp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:textAllCaps="true" android:textAllCaps="true"
......
<?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"
android:id="@+id/view_group"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone"
android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_verification"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<TextView
android:id="@+id/txt_error_code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="32dp"
android:visibility="gone"
android:text="@string/error_code"
android:textSize="17sp"
android:textColor="@color/primary100"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/txt_enter_phone" />
<FrameLayout
android:id="@+id/pin_view_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_12sdp"
android:layout_marginTop="@dimen/_80sdp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/txt_enter_phone">
<LinearLayout
android:id="@+id/pin_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_1"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_2"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_3"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_4"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_5"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_6"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked"
android:imeOptions="actionDone" />
</LinearLayout>
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="28dp"
android:layout_marginTop="@dimen/_34sdp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/pin_view_group">
<TextView
android:id="@+id/countWaitText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="@string/sent_code_again"
android:textColor="@color/grey110"
android:textSize="16sp" />
<cn.iwgang.countdownview.CountdownView
android:id="@+id/coutdown_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/_4sdp"
android:layout_marginTop="2dp"
app:isHideTimeBackground="false"
app:isShowDay="false"
app:isShowHour="false"
app:isShowMillisecond="false"
app:isShowMinute="true"
app:isShowSecond="true"
app:isShowTimeBgBorder="false"
app:isShowTimeBgDivisionLine="false"
app:suffixDay="days"
app:suffixGravity="center"
app:suffixHour=":"
app:suffixMillisecond="ss"
app:suffixMinute=":"
app:suffixSecond=""
app:suffixTextColor="@color/grey100"
app:suffixTextSize="14sp"
app:timeBgColor="@color/white100"
app:timeBgRadius="3dp"
app:timeBgSize="14dp"
app:timeTextSize="14sp" />
<TextView
android:id="@+id/coutdown_view_helper_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="@dimen/_4sdp"
android:text="00:00"
android:textColor="@color/primary100"
android:textSize="16sp"
android:visibility="gone" />
</LinearLayout>
<TextView
android:id="@+id/sent_code_again"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginHorizontal="@dimen/_16sdp"
android:background="?selectableItemBackground"
android:padding="@dimen/_10sdp"
android:text="@string/sent_code_again"
android:textColor="@color/primary100"
android:textSize="16sp"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_login" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginHorizontal="@dimen/_16sdp"
android:layout_marginTop="@dimen/_24sdp"
android:enabled="false"
android:text="@string/continuoue"
android:textSize="@dimen/_12sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/pin_view_group" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -4,21 +4,21 @@ ...@@ -4,21 +4,21 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="false"
android:background="@color/white" android:background="@color/white"
android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_marginTop="24dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="24dp"
app:navigationIcon="@drawable/ic_baseline_arrow_back" /> app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_pin" android:id="@+id/txt_enter_pin"
style="@style/TitleTextStyle"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/install_pin" /> android:text="@string/install_pin" />
...@@ -42,19 +42,19 @@ ...@@ -42,19 +42,19 @@
<LinearLayout <LinearLayout
android:layout_width="@dimen/_100sdp" android:layout_width="@dimen/_100sdp"
android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:orientation="vertical"
android:gravity="center" android:gravity="center"
android:layout_height="wrap_content"> android:orientation="vertical">
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:id="@+id/card_pin" android:id="@+id/card_pin"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardCornerRadius="0dp" android:layout_gravity="center"
android:minWidth="@dimen/_100sdp" android:minWidth="@dimen/_100sdp"
android:minHeight="@dimen/_32sdp"> android:minHeight="@dimen/_32sdp"
app:cardCornerRadius="0dp">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_pin" android:id="@+id/rv_pin"
...@@ -66,10 +66,11 @@ ...@@ -66,10 +66,11 @@
tools:itemCount="4" tools:itemCount="4"
tools:listitem="@layout/item_pin" /> tools:listitem="@layout/item_pin" />
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<View <View
android:layout_width="@dimen/_120sdp" android:layout_width="@dimen/_120sdp"
android:background="@color/grey30" android:layout_height="2dp"
android:layout_height="2dp"/> android:background="@color/grey30" />
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>
...@@ -78,15 +79,14 @@ ...@@ -78,15 +79,14 @@
android:id="@+id/btn_view_group" android:id="@+id/btn_view_group"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="3" android:layout_weight="2.5">
android:paddingStart="@dimen/_44sdp"
android:paddingEnd="@dimen/_44sdp">
<TextView <TextView
android:id="@+id/btn_1" android:id="@+id/btn_1"
style="@style/BtnStyle" style="@style/BtnStyle"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_1" android:text="@string/_1"
app:layout_constraintEnd_toStartOf="@id/btn_2"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
...@@ -105,6 +105,7 @@ ...@@ -105,6 +105,7 @@
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_3" android:text="@string/_3"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_2"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
...@@ -113,6 +114,7 @@ ...@@ -113,6 +114,7 @@
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_4" android:text="@string/_4"
app:layout_constraintEnd_toStartOf="@id/btn_5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_1" /> app:layout_constraintTop_toBottomOf="@id/btn_1" />
...@@ -121,8 +123,8 @@ ...@@ -121,8 +123,8 @@
style="@style/BtnStyle" style="@style/BtnStyle"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_5" android:text="@string/_5"
app:layout_constraintEnd_toStartOf="@id/btn_6" app:layout_constraintEnd_toStartOf="@id/btn_3"
app:layout_constraintStart_toEndOf="@id/btn_4" app:layout_constraintStart_toEndOf="@id/btn_1"
app:layout_constraintTop_toTopOf="@id/btn_4" /> app:layout_constraintTop_toTopOf="@id/btn_4" />
<TextView <TextView
...@@ -131,6 +133,7 @@ ...@@ -131,6 +133,7 @@
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_6" android:text="@string/_6"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_5"
app:layout_constraintTop_toTopOf="@id/btn_4" /> app:layout_constraintTop_toTopOf="@id/btn_4" />
<TextView <TextView
...@@ -139,6 +142,7 @@ ...@@ -139,6 +142,7 @@
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_7" android:text="@string/_7"
app:layout_constraintEnd_toStartOf="@id/btn_8"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_4" /> app:layout_constraintTop_toBottomOf="@id/btn_4" />
...@@ -147,8 +151,8 @@ ...@@ -147,8 +151,8 @@
style="@style/BtnStyle" style="@style/BtnStyle"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_8" android:text="@string/_8"
app:layout_constraintEnd_toStartOf="@id/btn_9" app:layout_constraintEnd_toStartOf="@id/btn_3"
app:layout_constraintStart_toEndOf="@id/btn_7" app:layout_constraintStart_toEndOf="@id/btn_1"
app:layout_constraintTop_toTopOf="@id/btn_7" /> app:layout_constraintTop_toTopOf="@id/btn_7" />
<TextView <TextView
...@@ -157,6 +161,7 @@ ...@@ -157,6 +161,7 @@
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_9" android:text="@string/_9"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_8"
app:layout_constraintTop_toTopOf="@id/btn_7" /> app:layout_constraintTop_toTopOf="@id/btn_7" />
...@@ -166,9 +171,8 @@ ...@@ -166,9 +171,8 @@
android:layout_marginTop="@dimen/_16sdp" android:layout_marginTop="@dimen/_16sdp"
android:background="@drawable/bgn_pin_btn" android:background="@drawable/bgn_pin_btn"
android:text="@string/_0" android:text="@string/_0"
app:layout_constraintEnd_toEndOf="@id/btn_8"
app:layout_constraintStart_toStartOf="@id/btn_8" app:layout_constraintStart_toStartOf="@id/btn_8"
app:layout_constraintTop_toBottomOf="@id/btn_7" /> app:layout_constraintTop_toBottomOf="@id/btn_8" />
<ImageView <ImageView
...@@ -180,8 +184,8 @@ ...@@ -180,8 +184,8 @@
android:padding="@dimen/_4sdp" android:padding="@dimen/_4sdp"
android:src="@drawable/ic_vector_remove" android:src="@drawable/ic_vector_remove"
app:layout_constraintBottom_toBottomOf="@id/btn_0" app:layout_constraintBottom_toBottomOf="@id/btn_0"
app:layout_constraintEnd_toEndOf="@id/btn_9" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/btn_9" app:layout_constraintStart_toEndOf="@id/btn_0"
app:layout_constraintTop_toTopOf="@id/btn_0" /> app:layout_constraintTop_toTopOf="@id/btn_0" />
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<TextView <TextView
style="@style/TitleTextStyle" style="@style/TitleTextStyle"
android:id="@+id/txt_enter_pin" android:id="@+id/txt_enter_pin"
android:layout_marginTop="@dimen/_34sdp" android:layout_marginTop="@dimen/_54sdp"
android:text="@string/enter_pin_code" /> android:text="@string/enter_pin_code" />
<FrameLayout <FrameLayout
...@@ -66,167 +66,154 @@ ...@@ -66,167 +66,154 @@
</FrameLayout> </FrameLayout>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/btn_view_group"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:gravity="center"
android:layout_weight="2.5"> android:layout_weight="2.5">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/btn_view_group"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView <TextView
android:id="@+id/btn_1" android:id="@+id/btn_1"
style="@style/BtnStyle" style="@style/BtnStyle"
android:layout_width="@dimen/_48sdp" android:background="@drawable/bgn_pin_btn"
android:layout_height="@dimen/_44sdp" android:text="@string/_1"
android:background="@drawable/bgn_pin_btn" app:layout_constraintEnd_toStartOf="@id/btn_2"
android:text="@string/_1" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/btn_2" app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> <TextView
android:id="@+id/btn_2"
<TextView style="@style/BtnStyle"
android:id="@+id/btn_2" android:background="@drawable/bgn_pin_btn"
style="@style/BtnStyle" android:text="@string/_2"
android:layout_width="@dimen/_48sdp" app:layout_constraintEnd_toStartOf="@id/btn_3"
android:layout_height="@dimen/_44sdp" app:layout_constraintStart_toEndOf="@id/btn_1"
android:background="@drawable/bgn_pin_btn" app:layout_constraintTop_toTopOf="parent" />
android:text="@string/_2"
app:layout_constraintEnd_toStartOf="@id/btn_3" <TextView
app:layout_constraintStart_toEndOf="@id/btn_1" android:id="@+id/btn_3"
app:layout_constraintTop_toTopOf="parent" /> style="@style/BtnStyle"
android:background="@drawable/bgn_pin_btn"
<TextView android:text="@string/_3"
android:id="@+id/btn_3" app:layout_constraintEnd_toEndOf="parent"
style="@style/BtnStyle" app:layout_constraintStart_toEndOf="@id/btn_2"
android:layout_width="@dimen/_48sdp" app:layout_constraintTop_toTopOf="parent" />
android:layout_height="@dimen/_44sdp"
android:background="@drawable/bgn_pin_btn" <TextView
android:text="@string/_3" android:id="@+id/btn_4"
app:layout_constraintEnd_toEndOf="parent" style="@style/BtnStyle"
app:layout_constraintStart_toEndOf="@id/btn_2" android:layout_marginTop="@dimen/_16sdp"
app:layout_constraintTop_toTopOf="parent" /> android:background="@drawable/bgn_pin_btn"
android:text="@string/_4"
<TextView app:layout_constraintEnd_toStartOf="@id/btn_5"
android:id="@+id/btn_4" app:layout_constraintStart_toStartOf="parent"
style="@style/BtnStyle" app:layout_constraintTop_toBottomOf="@id/btn_1" />
android:layout_width="@dimen/_48sdp"
android:layout_height="@dimen/_44sdp" <TextView
android:layout_marginTop="@dimen/_16sdp" android:id="@+id/btn_5"
android:background="@drawable/bgn_pin_btn" style="@style/BtnStyle"
android:text="@string/_4" android:background="@drawable/bgn_pin_btn"
app:layout_constraintEnd_toStartOf="@id/btn_5" android:text="@string/_5"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/btn_3"
app:layout_constraintTop_toBottomOf="@id/btn_1" /> app:layout_constraintStart_toEndOf="@id/btn_1"
app:layout_constraintTop_toTopOf="@id/btn_4" />
<TextView
android:id="@+id/btn_5" <TextView
style="@style/BtnStyle" android:id="@+id/btn_6"
android:layout_width="@dimen/_48sdp" style="@style/BtnStyle"
android:layout_height="@dimen/_44sdp" android:background="@drawable/bgn_pin_btn"
android:background="@drawable/bgn_pin_btn" android:text="@string/_6"
android:text="@string/_5" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintEnd_toStartOf="@id/btn_3" app:layout_constraintStart_toEndOf="@id/btn_5"
app:layout_constraintStart_toEndOf="@id/btn_1" app:layout_constraintTop_toTopOf="@id/btn_4" />
app:layout_constraintTop_toTopOf="@id/btn_4" />
<TextView
<TextView android:id="@+id/btn_7"
android:id="@+id/btn_6" style="@style/BtnStyle"
style="@style/BtnStyle" android:layout_marginTop="@dimen/_16sdp"
android:layout_width="@dimen/_48sdp" android:background="@drawable/bgn_pin_btn"
android:layout_height="@dimen/_44sdp" android:text="@string/_7"
android:background="@drawable/bgn_pin_btn" app:layout_constraintEnd_toStartOf="@id/btn_8"
android:text="@string/_6" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/btn_4" />
app:layout_constraintStart_toEndOf="@id/btn_5"
app:layout_constraintTop_toTopOf="@id/btn_4" /> <TextView
android:id="@+id/btn_8"
<TextView style="@style/BtnStyle"
android:id="@+id/btn_7" android:background="@drawable/bgn_pin_btn"
style="@style/BtnStyle" android:text="@string/_8"
android:layout_width="@dimen/_48sdp" app:layout_constraintEnd_toStartOf="@id/btn_3"
android:layout_height="@dimen/_44sdp" app:layout_constraintStart_toEndOf="@id/btn_1"
android:layout_marginTop="@dimen/_16sdp" app:layout_constraintTop_toTopOf="@id/btn_7" />
android:background="@drawable/bgn_pin_btn"
android:text="@string/_7" <TextView
app:layout_constraintEnd_toStartOf="@id/btn_8" android:id="@+id/btn_9"
app:layout_constraintStart_toStartOf="parent" style="@style/BtnStyle"
app:layout_constraintTop_toBottomOf="@id/btn_4" /> android:background="@drawable/bgn_pin_btn"
android:text="@string/_9"
<TextView app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/btn_8" app:layout_constraintStart_toEndOf="@id/btn_8"
style="@style/BtnStyle" app:layout_constraintTop_toTopOf="@id/btn_7" />
android:layout_width="@dimen/_48sdp"
android:layout_height="@dimen/_44sdp" <ImageView
android:background="@drawable/bgn_pin_btn" android:id="@+id/btn_finger_print"
android:text="@string/_8" android:layout_width="@dimen/_52sdp"
app:layout_constraintEnd_toStartOf="@id/btn_3" android:layout_height="@dimen/_52sdp"
app:layout_constraintStart_toEndOf="@id/btn_1" android:background="?selectableItemBackgroundBorderless"
app:layout_constraintTop_toTopOf="@id/btn_7" /> android:contentDescription="@string/remove"
android:src="@drawable/ic_finger_print"
<TextView app:layout_constraintBottom_toBottomOf="@id/btn_0"
android:id="@+id/btn_9" app:layout_constraintStart_toStartOf="@id/btn_7"
style="@style/BtnStyle" app:layout_constraintTop_toTopOf="@id/btn_0" />
android:layout_width="@dimen/_48sdp"
android:layout_height="@dimen/_44sdp"
android:background="@drawable/bgn_pin_btn" <TextView
android:text="@string/_9" android:id="@+id/btn_0"
app:layout_constraintEnd_toEndOf="parent" style="@style/BtnStyle"
app:layout_constraintStart_toEndOf="@id/btn_8" android:layout_marginTop="@dimen/_16sdp"
app:layout_constraintTop_toTopOf="@id/btn_7" /> android:background="@drawable/bgn_pin_btn"
android:text="@string/_0"
<ImageView app:layout_constraintStart_toStartOf="@id/btn_8"
android:id="@+id/btn_finger_print" app:layout_constraintTop_toBottomOf="@id/btn_8" />
android:layout_width="@dimen/_52sdp"
android:layout_height="@dimen/_52sdp"
android:background="?selectableItemBackgroundBorderless" <ImageView
android:contentDescription="@string/remove" android:id="@+id/btn_remove"
android:src="@drawable/ic_finger_print" android:layout_width="wrap_content"
app:layout_constraintBottom_toBottomOf="@id/btn_0" android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@id/btn_7" android:background="?selectableItemBackgroundBorderless"
app:layout_constraintTop_toTopOf="@id/btn_0" /> android:contentDescription="@string/remove"
android:padding="@dimen/_12sdp"
android:src="@drawable/ic_vector_remove"
app:layout_constraintBottom_toBottomOf="@id/btn_0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_0"
app:layout_constraintTop_toTopOf="@id/btn_0" />
<TextView
android:id="@+id/with_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="@dimen/_30sdp"
android:background="?android:selectableItemBackground"
android:text="@string/open_with_password"
android:textColor="@color/primary100"
android:textSize="14sp"
android:textStyle="bold"
android:paddingHorizontal="@dimen/_20sdp"
android:paddingVertical="@dimen/_12sdp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_0" />
<TextView </androidx.constraintlayout.widget.ConstraintLayout>
android:id="@+id/btn_0" </LinearLayout>
style="@style/BtnStyle"
android:layout_width="@dimen/_48sdp"
android:layout_height="@dimen/_44sdp"
android:layout_marginTop="@dimen/_16sdp"
android:background="@drawable/bgn_pin_btn"
android:text="@string/_0"
app:layout_constraintStart_toStartOf="@id/btn_8"
app:layout_constraintTop_toBottomOf="@id/btn_8" />
<ImageView
android:id="@+id/btn_remove"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/remove"
android:padding="@dimen/_12sdp"
android:src="@drawable/ic_vector_remove"
app:layout_constraintBottom_toBottomOf="@id/btn_0"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/btn_0"
app:layout_constraintTop_toTopOf="@id/btn_0" />
<TextView
android:id="@+id/with_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_30sdp"
android:background="?android:selectableItemBackground"
android:text="Войти по паролю"
android:textColor="@color/primary100"
android:textSize="14sp"
android:textStyle="bold"
android:paddingHorizontal="@dimen/_20sdp"
android:paddingVertical="@dimen/_10sdp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_0" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -108,6 +108,7 @@ ...@@ -108,6 +108,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="31.12.1999" android:text="31.12.1999"
android:id="@+id/txt_birthday"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="15sp" android:textSize="15sp"
android:layout_marginTop="4dp" android:layout_marginTop="4dp"
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/_30sdp"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
...@@ -21,7 +22,7 @@ ...@@ -21,7 +22,7 @@
android:layout_marginVertical="@dimen/_20sdp" android:layout_marginVertical="@dimen/_20sdp"
android:background="@color/grey10" android:background="@color/grey10"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="@dimen/_22sdp" android:paddingTop="@dimen/_12sdp"
android:visibility="gone"> android:visibility="gone">
<ImageView <ImageView
...@@ -65,7 +66,6 @@ ...@@ -65,7 +66,6 @@
android:id="@+id/toolbar" android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_24sdp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:visibility="visible" android:visibility="visible"
app:navigationIcon="@drawable/ic_menu_red" /> app:navigationIcon="@drawable/ic_menu_red" />
......
...@@ -14,40 +14,87 @@ ...@@ -14,40 +14,87 @@
app:navigationIcon="@drawable/ic_baseline_arrow_back" /> app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_verification"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<TextView
android:id="@+id/txt_error_code"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp" android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="32dp"
android:text="@string/enter_verification" android:visibility="gone"
android:textSize="29sp" android:text="@string/error_code"
android:textSize="17sp"
android:textColor="@color/primary100"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" /> app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/txt_enter_phone" />
<com.poovam.pinedittextfield.SquarePinField <FrameLayout
android:id="@+id/line_field" android:id="@+id/pin_view_group"
android:layout_width="@dimen/_220sdp" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="64dp" android:layout_marginHorizontal="@dimen/_12sdp"
android:hint="******" android:layout_marginTop="@dimen/_80sdp"
android:imeOptions="actionDone" android:orientation="horizontal"
android:inputType="number"
android:paddingHorizontal="@dimen/_14sdp"
android:textColorHint="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:cornerRadius="@dimen/_6sdp"
app:fieldColor="@color/grey80"
app:highlightType="allFields"
app:isCursorEnabled="true"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/txt_enter_phone" app:layout_constraintTop_toBottomOf="@id/txt_enter_phone">
app:lineThickness="1dp"
app:noOfFields="6" />
<LinearLayout
android:id="@+id/pin_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_1"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_2"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_3"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_4"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_5"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin_6"
style="@style/PinStyle"
android:background="@drawable/bgn_ver_unchecked"
android:imeOptions="actionDone" />
</LinearLayout>
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible" />
</FrameLayout>
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -56,7 +103,7 @@ ...@@ -56,7 +103,7 @@
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/line_field"> app:layout_constraintTop_toBottomOf="@+id/pin_view_group">
<TextView <TextView
android:id="@+id/countWaitText" android:id="@+id/countWaitText"
...@@ -88,9 +135,9 @@ ...@@ -88,9 +135,9 @@
app:suffixMillisecond="ss" app:suffixMillisecond="ss"
app:suffixMinute=":" app:suffixMinute=":"
app:suffixSecond="" app:suffixSecond=""
app:suffixTextColor="#97ADB6" app:suffixTextColor="@color/grey100"
app:suffixTextSize="14sp" app:suffixTextSize="14sp"
app:timeBgColor="#00FF5000" app:timeBgColor="@color/white100"
app:timeBgRadius="3dp" app:timeBgRadius="3dp"
app:timeBgSize="14dp" app:timeBgSize="14dp"
app:timeTextSize="14sp" /> app:timeTextSize="14sp" />
...@@ -110,10 +157,11 @@ ...@@ -110,10 +157,11 @@
<TextView <TextView
android:id="@+id/sent_code_again" android:id="@+id/sent_code_again"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerHorizontal="true" android:gravity="center"
android:layout_marginTop="@dimen/_10sdp" android:layout_marginTop="@dimen/_10sdp"
android:layout_marginHorizontal="@dimen/_16sdp"
android:background="?selectableItemBackground" android:background="?selectableItemBackground"
android:padding="@dimen/_10sdp" android:padding="@dimen/_10sdp"
android:text="@string/sent_code_again" android:text="@string/sent_code_again"
...@@ -127,6 +175,7 @@ ...@@ -127,6 +175,7 @@
app:layout_constraintTop_toBottomOf="@+id/btn_login" /> app:layout_constraintTop_toBottomOf="@+id/btn_login" />
<Button <Button
android:id="@+id/btn_login" android:id="@+id/btn_login"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -138,7 +187,7 @@ ...@@ -138,7 +187,7 @@
android:text="@string/continuoue" android:text="@string/continuoue"
android:textSize="@dimen/_12sdp" android:textSize="@dimen/_12sdp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/line_field" /> app:layout_constraintTop_toBottomOf="@id/pin_view_group" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
android:layout_marginHorizontal="22dp" android:layout_marginHorizontal="22dp"
android:gravity="center" android:gravity="center"
android:text="@string/exit" android:text="@string/exit"
android:textSize="16sp" /> android:textSize="20sp" />
<TextView <TextView
android:id="@+id/text_subtitle" android:id="@+id/text_subtitle"
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
android:layout_marginHorizontal="22dp" android:layout_marginHorizontal="22dp"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:text="@string/are_you_sure" android:text="@string/are_you_sure"
android:textSize="16sp" /> android:textSize="18sp" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_marginTop="32dp" android:layout_marginTop="32dp"
...@@ -52,9 +52,10 @@ ...@@ -52,9 +52,10 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:gravity="center"
android:textSize="16sp"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:textStyle="bold" android:textStyle="bold"
android:paddingVertical="14dp" android:paddingVertical="16dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/no" android:text="@string/no"
android:textAllCaps="false" android:textAllCaps="false"
...@@ -69,8 +70,9 @@ ...@@ -69,8 +70,9 @@
android:id="@+id/btn_done" android:id="@+id/btn_done"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_weight="1"
android:paddingVertical="14dp" android:paddingVertical="16dp"
android:gravity="center" android:gravity="center"
android:textSize="16sp"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:textStyle="bold" android:textStyle="bold"
android:layout_gravity="center" android:layout_gravity="center"
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph_settings" android:id="@+id/nav_graph_settings"
app:startDestination="@id/serviceFragment"> app:startDestination="@id/fullScreenFragment">
<fragment <fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_service" tools:layout="@layout/fragment_service"
...@@ -14,4 +14,10 @@ ...@@ -14,4 +14,10 @@
android:name="com.mobiuz.app.dev.ui.service.UssdFragment" android:name="com.mobiuz.app.dev.ui.service.UssdFragment"
android:label="ServicesFragmentActivity" /> android:label="ServicesFragmentActivity" />
<fragment
android:id="@+id/fullScreenFragment"
tools:layout="@layout/fragment_pin_dialog"
android:name="com.mobiuz.app.dev.ui.global.FullScreenFragment"
android:label="FullScreenFragment" />
</navigation> </navigation>
\ No newline at end of file
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
android:id="@+id/nav_graph_profile"> android:id="@+id/nav_graph_profile">
<fragment <fragment
android:id="@+id/fullScreenFragment"
tools:layout="@layout/fragment_pin_dialog"
android:name="com.mobiuz.app.dev.ui.global.FullScreenFragment"
android:label="FullScreenFragment" />
<fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_service" tools:layout="@layout/fragment_service"
android:name="com.mobiuz.app.dev.ui.service.ServiceFragment" android:name="com.mobiuz.app.dev.ui.service.ServiceFragment"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment