Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
shunchaki
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shohboz Qoraboev
shunchaki
Commits
cd5e730d
Commit
cd5e730d
authored
Dec 03, 2021
by
shohboz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[REF]
MUS-125
Feature, refactoring authorization screens names
parent
a714b180
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
638 additions
and
359 deletions
+638
-359
CheckPhoneFragment.kt
...src/main/java/uz/ssd/mobiuz/ui/auth/CheckPhoneFragment.kt
+103
-0
ConfirmPinFragment.kt
...src/main/java/uz/ssd/mobiuz/ui/auth/ConfirmPinFragment.kt
+11
-12
LoginFragment.kt
app/src/main/java/uz/ssd/mobiuz/ui/auth/LoginFragment.kt
+40
-19
PasswordFragment.kt
app/src/main/java/uz/ssd/mobiuz/ui/auth/PasswordFragment.kt
+0
-123
RegisterFragment.kt
app/src/main/java/uz/ssd/mobiuz/ui/auth/RegisterFragment.kt
+124
-0
ForgetPasswordFragment.kt
...in/java/uz/ssd/mobiuz/ui/forget/ForgetPasswordFragment.kt
+5
-6
ForgetVerificationFragment.kt
...ava/uz/ssd/mobiuz/ui/forget/ForgetVerificationFragment.kt
+9
-0
fragment_check_phone.xml
app/src/main/res/layout/fragment_check_phone.xml
+84
-0
fragment_login.xml
app/src/main/res/layout/fragment_login.xml
+100
-49
fragment_password.xml
app/src/main/res/layout/fragment_password.xml
+0
-135
fragment_register.xml
app/src/main/res/layout/fragment_register.xml
+151
-0
nav_graph_auth.xml
app/src/main/res/navigation/nav_graph_auth.xml
+11
-15
No files found.
app/src/main/java/uz/ssd/mobiuz/ui/
forget/ForgetLogin
Fragment.kt
→
app/src/main/java/uz/ssd/mobiuz/ui/
auth/CheckPhone
Fragment.kt
View file @
cd5e730d
package
uz.ssd.mobiuz.ui.
forget
package
uz.ssd.mobiuz.ui.
auth
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
android.view.animation.AnimationUtils
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
androidx.fragment.app.viewModels
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
...
@@ -10,10 +11,9 @@ import androidx.navigation.fragment.NavHostFragment
...
@@ -10,10 +11,9 @@ import androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.databinding.Fragment
Login
Binding
import
uz.ssd.mobiuz.databinding.Fragment
CheckPhone
Binding
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.ui.auth.AuthViewModel
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.ButtonClick
...
@@ -23,9 +23,9 @@ import uz.ssd.mobiuz.utils.extensions.customLog
...
@@ -23,9 +23,9 @@ import uz.ssd.mobiuz.utils.extensions.customLog
import
uz.ssd.mobiuz.utils.extensions.showMessage
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
@AndroidEntryPoint
class
ForgetLoginFragment
:
BaseFragment
(
R
.
layout
.
fragment_login
)
{
class
CheckPhoneFragment
:
BaseFragment
(
R
.
layout
.
fragment_check_phone
)
{
private
var
_bn
:
Fragment
Login
Binding
?
=
null
private
var
_bn
:
Fragment
CheckPhone
Binding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
var
phone
=
""
var
phone
=
""
...
@@ -34,7 +34,7 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -34,7 +34,7 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
private
val
viewModel
:
AuthViewModel
by
viewModels
()
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
Fragment
Login
Binding
.
bind
(
view
)
_bn
=
Fragment
CheckPhone
Binding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
...
@@ -44,8 +44,7 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -44,8 +44,7 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
// txtEnterPhone.text = "Забыли пароль?"
inputPhone
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
inputPhone
.
addTextChangedListener
(
object
:
TextWatcherWrapper
(){
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
customLog
(
"s=${s?.toString()?.length}"
)
customLog
(
"s=${s?.toString()?.length}"
)
...
@@ -57,11 +56,17 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -57,11 +56,17 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
phone
=
"+998"
+
inputPhone
.
unmaskedText
.
toString
().
trim
()
phone
=
"+998"
+
inputPhone
.
unmaskedText
.
toString
().
trim
()
phoneRaw
=
inputPhone
.
text
.
toString
().
trim
()
phoneRaw
=
inputPhone
.
text
.
toString
().
trim
()
viewModel
.
login
(
UserAuth
(
phone
,
"password"
))
when
{
phone
.
length
<
13
->
{
inputPhone
.
startAnimation
(
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
))
}
else
->
viewModel
.
login
(
UserAuth
(
phone
,
null
))
}
}
}
})
})
toolbar
.
setNavigationOnClickListener
{
toolbar
.
setNavigationOnClickListener
{
navController
.
navigateUp
()
requireActivity
().
finish
()
}
}
}
}
}
}
...
@@ -72,7 +77,11 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -72,7 +77,11 @@ class ForgetLoginFragment : BaseFragment(R.layout.fragment_login) {
when
(
it
)
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
forgetVerificationFragment
,
null
,
Utils
.
navOptions
())
if
(
it
.
data
.
action
==
"login"
)
{
navController
.
navigate
(
R
.
id
.
loginFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phoneRaw
),
Utils
.
navOptions
())
}
else
if
(
it
.
data
.
action
==
"register"
)
{
navController
.
navigate
(
R
.
id
.
registerFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
}
}
}
is
UiStateObject
.
ERROR
->
{
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
...
...
app/src/main/java/uz/ssd/mobiuz/ui/auth/ConfirmPinFragment.kt
View file @
cd5e730d
...
@@ -20,7 +20,6 @@ import uz.ssd.mobiuz.model.PinData
...
@@ -20,7 +20,6 @@ import uz.ssd.mobiuz.model.PinData
import
uz.ssd.mobiuz.model.SharedPref
import
uz.ssd.mobiuz.model.SharedPref
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.showMessage
import
javax.inject.Inject
import
javax.inject.Inject
@AndroidEntryPoint
@AndroidEntryPoint
...
@@ -40,7 +39,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
...
@@ -40,7 +39,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
arguments
?.
let
{
pinCode
=
it
.
getString
(
"pinCode"
,
""
)
?:
""
pinCode
=
it
.
getString
(
"pinCode"
,
""
)
?:
""
}
}
}
}
...
@@ -98,10 +97,10 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
...
@@ -98,10 +97,10 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
val
manager
=
FingerprintManagerCompat
.
from
(
requireContext
())
val
manager
=
FingerprintManagerCompat
.
from
(
requireContext
())
val
isEnabled
=
manager
.
isHardwareDetected
&&
manager
.
hasEnrolledFingerprints
()
val
isEnabled
=
manager
.
isHardwareDetected
&&
manager
.
hasEnrolledFingerprints
()
if
(
isEnabled
)
{
if
(
isEnabled
)
{
navController
.
navigate
(
R
.
id
.
biometricFragment
,
null
,
Utils
.
navOptions
())
navController
.
navigate
(
R
.
id
.
biometricFragment
,
null
,
Utils
.
navOptions
())
}
else
{
}
else
{
startActivity
(
Intent
(
requireContext
(),
MainActivity
::
class
.
java
))
startActivity
(
Intent
(
requireContext
(),
MainActivity
::
class
.
java
))
requireActivity
().
finish
()
requireActivity
().
finish
()
}
}
}
}
...
...
app/src/main/java/uz/ssd/mobiuz/ui/auth/LoginFragment.kt
View file @
cd5e730d
...
@@ -2,7 +2,6 @@ package uz.ssd.mobiuz.ui.auth
...
@@ -2,7 +2,6 @@ package uz.ssd.mobiuz.ui.auth
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
android.view.animation.AnimationUtils
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
androidx.fragment.app.viewModels
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
...
@@ -19,7 +18,6 @@ import uz.ssd.mobiuz.ui.global.TextWatcherWrapper
...
@@ -19,7 +18,6 @@ import uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.CONSTANTS
import
uz.ssd.mobiuz.utils.CONSTANTS
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.customLog
import
uz.ssd.mobiuz.utils.extensions.showMessage
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
@AndroidEntryPoint
...
@@ -28,45 +26,66 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -28,45 +26,66 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
private
var
_bn
:
FragmentLoginBinding
?
=
null
private
var
_bn
:
FragmentLoginBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
var
phone
=
""
private
var
phone
=
""
var
phoneRaw
=
""
private
val
viewModel
:
AuthViewModel
by
viewModels
()
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
phone
=
it
.
getString
(
CONSTANTS
.
PHONE
,
""
)
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentLoginBinding
.
bind
(
view
)
_bn
=
FragmentLoginBinding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
}
}
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
inputPhone
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
inputPhone
.
setText
(
phone
)
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
navigate
(
R
.
id
.
forgetVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
}
})
inputPassword
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
customLog
(
"s=${s?.toString()?.length}"
)
btnLogin
.
isEnabled
=
(
s
.
toString
().
length
>
5
)
btnLogin
.
isEnabled
=
inputPhone
.
text
.
toString
().
trim
().
length
==
17
}
}
})
})
btnLogin
.
setOnClickListener
(
object
:
ButtonClick
()
{
btnLogin
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
phone
=
"+998"
+
inputPhone
.
unmaskedText
.
toString
().
trim
()
val
password
=
inputPassword
.
text
.
toString
().
trim
()
phoneRaw
=
inputPhone
.
text
.
toString
().
trim
()
when
{
when
{
phone
.
length
<
13
->
{
password
.
length
<
6
->
{
inputPhone
.
startAnimation
(
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
))
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
}
else
->
{
viewModel
.
login
(
UserAuth
(
phone
.
replace
(
" "
,
""
),
password
))
}
}
else
->
viewModel
.
login
(
UserAuth
(
phone
,
null
))
}
}
}
}
})
})
toolbar
.
setNavigationOnClickListener
{
toolbar
.
setNavigationOnClickListener
{
requireActivity
().
finish
()
navController
.
navigateUp
()
}
}
}
}
}
}
...
@@ -77,14 +96,16 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
...
@@ -77,14 +96,16 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
when
(
it
)
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
if
(
it
.
data
.
action
==
"login"
)
{
navController
.
navigate
(
R
.
id
.
verificationFragment
,
null
,
Utils
.
navOptions
())
navController
.
navigate
(
R
.
id
.
passwordFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phoneRaw
),
Utils
.
navOptions
())
}
else
if
(
it
.
data
.
action
==
"register"
){
navController
.
navigate
(
R
.
id
.
enterPasswordFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
}
}
}
is
UiStateObject
.
ERROR
->
{
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
bn
.
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
showMessage
(
it
.
message
)
showMessage
(
it
.
message
)
}
}
is
UiStateObject
.
LOADING
->
{
is
UiStateObject
.
LOADING
->
{
...
...
app/src/main/java/uz/ssd/mobiuz/ui/auth/PasswordFragment.kt
deleted
100644 → 0
View file @
a714b180
package
uz.ssd.mobiuz.ui.auth
import
android.os.Bundle
import
android.view.View
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.databinding.FragmentPasswordBinding
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.CONSTANTS
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
class
PasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_password
)
{
private
var
_bn
:
FragmentPasswordBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
var
phone
=
""
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
phone
=
it
.
getString
(
CONSTANTS
.
PHONE
,
""
)
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentPasswordBinding
.
bind
(
view
)
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
inputPhone
.
setText
(
phone
)
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
navigate
(
R
.
id
.
forgetLoginFragment
,
null
,
Utils
.
navOptions
())
}
})
inputPassword
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
btnLogin
.
isEnabled
=
(
s
.
toString
().
length
>
5
)
}
})
btnLogin
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
val
password
=
inputPassword
.
text
.
toString
().
trim
()
when
{
password
.
length
<
6
->
{
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
}
else
->{
viewModel
.
login
(
UserAuth
(
phone
.
replace
(
" "
,
""
),
password
))
}
}
}
})
toolbar
.
setNavigationOnClickListener
{
navController
.
navigateUp
()
}
}
}
override
fun
collects
()
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
loginUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
verificationFragment
,
null
,
Utils
.
navOptions
())
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
bn
.
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
showMessage
(
it
.
message
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
}
override
fun
onDestroy
()
{
_bn
=
null
super
.
onDestroy
()
}
}
\ No newline at end of file
app/src/main/java/uz/ssd/mobiuz/ui/auth/
EnterPassword
Fragment.kt
→
app/src/main/java/uz/ssd/mobiuz/ui/auth/
Register
Fragment.kt
View file @
cd5e730d
...
@@ -11,7 +11,7 @@ import androidx.navigation.fragment.NavHostFragment
...
@@ -11,7 +11,7 @@ import androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.databinding.Fragment
EnterPassword
Binding
import
uz.ssd.mobiuz.databinding.Fragment
Register
Binding
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.base.BaseFragment
...
@@ -22,9 +22,9 @@ import uz.ssd.mobiuz.utils.Utils
...
@@ -22,9 +22,9 @@ import uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.showMessage
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
@AndroidEntryPoint
class
EnterPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_enter_password
)
{
class
RegisterFragment
:
BaseFragment
(
R
.
layout
.
fragment_register
)
{
private
var
_bn
:
Fragment
EnterPassword
Binding
?
=
null
private
var
_bn
:
Fragment
Register
Binding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
...
@@ -39,7 +39,7 @@ class EnterPasswordFragment : BaseFragment(R.layout.fragment_enter_password) {
...
@@ -39,7 +39,7 @@ class EnterPasswordFragment : BaseFragment(R.layout.fragment_enter_password) {
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
Fragment
EnterPassword
Binding
.
bind
(
view
)
_bn
=
Fragment
Register
Binding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
...
@@ -78,12 +78,12 @@ class EnterPasswordFragment : BaseFragment(R.layout.fragment_enter_password) {
...
@@ -78,12 +78,12 @@ class EnterPasswordFragment : BaseFragment(R.layout.fragment_enter_password) {
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
val
password
=
inputPassword
.
text
.
toString
().
trim
()
val
password
=
inputPassword
.
text
.
toString
().
trim
()
val
confirm
=
inputConfirm
.
text
.
toString
().
trim
()
val
confirm
=
inputConfirm
.
text
.
toString
().
trim
()
when
{
when
{
password
.
length
<
5
||
password
!=
confirm
->{
password
.
length
<
5
||
password
!=
confirm
->
{
}
}
else
->{
else
->
{
viewModel
.
register
(
UserAuth
(
phone
.
replace
(
" "
,
""
),
password
))
viewModel
.
register
(
UserAuth
(
phone
.
replace
(
" "
,
""
),
password
))
}
}
}
}
...
...
app/src/main/java/uz/ssd/mobiuz/ui/forget/ForgetPasswordFragment.kt
View file @
cd5e730d
package
uz.ssd.mobiuz.ui.forget
package
uz.ssd.mobiuz.ui.forget
import
uz.ssd.mobiuz.ui.auth.AuthViewModel
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
...
@@ -12,9 +10,10 @@ import androidx.navigation.fragment.NavHostFragment
...
@@ -12,9 +10,10 @@ import androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.R
import
uz.ssd.mobiuz.databinding.Fragment
EnterPassword
Binding
import
uz.ssd.mobiuz.databinding.Fragment
Register
Binding
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.ui.auth.AuthViewModel
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.ButtonClick
...
@@ -22,16 +21,16 @@ import uz.ssd.mobiuz.utils.Utils
...
@@ -22,16 +21,16 @@ import uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.showMessage
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
@AndroidEntryPoint
class
ForgetPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_
enter_password
)
{
class
ForgetPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_
register
)
{
private
var
_bn
:
Fragment
EnterPassword
Binding
?
=
null
private
var
_bn
:
Fragment
Register
Binding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
viewModel
:
AuthViewModel
by
viewModels
()
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
Fragment
EnterPassword
Binding
.
bind
(
view
)
_bn
=
Fragment
Register
Binding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
...
...
app/src/main/java/uz/ssd/mobiuz/ui/forget/ForgetVerificationFragment.kt
View file @
cd5e730d
...
@@ -20,6 +20,7 @@ import uz.ssd.mobiuz.ui.auth.AuthViewModel
...
@@ -20,6 +20,7 @@ import uz.ssd.mobiuz.ui.auth.AuthViewModel
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.CONSTANTS
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.hideKeyboard
import
uz.ssd.mobiuz.utils.extensions.hideKeyboard
import
uz.ssd.mobiuz.utils.extensions.showKeyboard
import
uz.ssd.mobiuz.utils.extensions.showKeyboard
...
@@ -34,6 +35,14 @@ class ForgetVerificationFragment : BaseFragment(R.layout.fragment_verification)
...
@@ -34,6 +35,14 @@ class ForgetVerificationFragment : BaseFragment(R.layout.fragment_verification)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
var
code
=
""
var
code
=
""
private
var
phone
=
""
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
phone
=
it
.
getString
(
CONSTANTS
.
PHONE
)
?:
""
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentVerificationBinding
.
bind
(
view
)
_bn
=
FragmentVerificationBinding
.
bind
(
view
)
...
...
app/src/main/res/layout/fragment_check_phone.xml
0 → 100644
View file @
cd5e730d
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
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:navigationIcon=
"@drawable/ic_baseline_arrow_back"
/>
<TextView
android:id=
"@+id/txt_enter_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter_number"
android:textSize=
"@dimen/_18sdp"
android:textStyle=
"bold"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
<TextView
android:id=
"@+id/hint_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/phone"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_gravity=
"start"
android:textColor=
"@color/light"
android:textStyle=
"bold"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/layout_input"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginEnd=
"@dimen/_12sdp"
>
<com.github.pinball83.maskededittext.MaskedEditText
android:layout_width=
"match_parent"
android:id=
"@+id/input_phone"
android:inputType=
"phone"
android:imeOptions=
"actionDone"
app:mask=
"+998 ** *** ** **"
app:notMaskedSymbol=
"*"
android:textSize=
"@dimen/_12sdp"
android:padding=
"@dimen/_14sdp"
android:background=
"@drawable/edit_text_bgn"
android:layout_height=
"match_parent"
/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"1.5"
>
<Button
android:id=
"@+id/btn_login"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:enabled=
"false"
android:textSize=
"@dimen/_12sdp"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_24sdp"
android:text=
"@string/continuoue"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_login.xml
View file @
cd5e730d
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
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"
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:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
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"
app:layout_constraintTop_toTopOf=
"parent"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
/>
/>
...
@@ -20,65 +21,115 @@
...
@@ -20,65 +21,115 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter
_number
"
android:text=
"@string/enter"
android:textSize=
"@dimen/_18sdp"
android:textSize=
"@dimen/_18sdp"
android:textStyle=
"bold"
/>
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_password"
app:layout_constraintTop_toBottomOf=
"@id/toolbar"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
<TextView
<TextView
android:id=
"@+id/hint_phone
"
android:id=
"@+id/txt_hint_password
"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/phone"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_gravity=
"start"
android:layout_marginTop=
"@dimen/_14sdp"
android:textColor=
"@color/light"
android:layout_marginBottom=
"@dimen/_4sdp"
android:text=
"@string/phone"
android:textColor=
"@color/black"
android:textStyle=
"bold"
android:textStyle=
"bold"
/>
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/layout_input_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_enter_phone"
/>
<com.google.android.material.textfield.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/layout_input
"
android:id=
"@+id/layout_input_password
"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginEnd=
"@dimen/_12sdp"
>
android:layout_marginEnd=
"@dimen/_12sdp"
android:layout_marginBottom=
"@dimen/_140sdp"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_hint_password"
>
<com.github.pinball83.maskededittext.MaskedEditText
<com.google.android.material.textfield.TextInputEditText
android:layout_width=
"match_parent"
android:id=
"@+id/input_phone"
android:id=
"@+id/input_phone"
android:inputType=
"phone
"
android:layout_width=
"match_parent
"
android:imeOptions=
"actionDone
"
android:layout_height=
"match_parent
"
app:mask=
"+998 ** *** ** **
"
android:clickable=
"false
"
app:notMaskedSymbol=
"*
"
android:focusable=
"false
"
android:textSize=
"@dimen/_12sdp"
android:textSize=
"@dimen/_12sdp"
android:padding=
"@dimen/_14sdp"
android:background=
"@drawable/edit_text_bgn"
android:background=
"@drawable/edit_text_bgn"
android:layout_height=
"match_parent"
/>
android:imeOptions=
"actionNext"
android:inputType=
"phone"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
/>
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<LinearLayout
<TextView
android:id=
"@+id/txt_hint_confirm"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/_34sdp"
android:layout_marginBottom=
"@dimen/_4sdp"
android:text=
"@string/password"
android:textColor=
"@color/black"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@id/layout_input_confirm"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/layout_input_confirm"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1.5"
>
android:layout_gravity=
"center"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginEnd=
"@dimen/_12sdp"
app:endIconMode=
"password_toggle"
app:layout_constraintTop_toBottomOf=
"@id/txt_hint_confirm"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/input_password"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@drawable/edit_text_bgn"
android:imeOptions=
"actionDone"
android:inputType=
"number"
android:maxLength=
"7"
android:textSize=
"@dimen/_12sdp"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
tools:ignore=
"RtlSymmetry"
/>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id=
"@+id/txt_forget_password"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/_6sdp"
android:text=
"@string/forget_password"
android:background=
"?android:selectableItemBackground"
android:textColor=
"@color/light_dark"
android:textStyle=
"bold"
android:layout_marginTop=
"@dimen/_10sdp"
android:layout_marginEnd=
"@dimen/_10sdp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_confirm"
/>
<Button
<Button
android:id=
"@+id/btn_login"
android:id=
"@+id/btn_login"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:enabled=
"false"
android:enabled=
"false"
android:textSize=
"@dimen/_12sdp"
android:textSize=
"@dimen/_12sdp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_24sdp"
android:layout_marginTop=
"@dimen/_34sdp"
android:text=
"@string/continuoue"
/>
android:text=
"@string/enter"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_confirm"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
\ No newline at end of file
app/src/main/res/layout/fragment_password.xml
deleted
100644 → 0
View file @
a714b180
<?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: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
android:id=
"@+id/txt_enter_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter"
android:textSize=
"@dimen/_18sdp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_password"
app:layout_constraintTop_toBottomOf=
"@id/toolbar"
/>
<TextView
android:id=
"@+id/txt_hint_password"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:layout_marginBottom=
"@dimen/_4sdp"
android:text=
"@string/phone"
android:textColor=
"@color/black"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/layout_input_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_enter_phone"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/layout_input_password"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginEnd=
"@dimen/_12sdp"
android:layout_marginBottom=
"@dimen/_140sdp"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_hint_password"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/input_phone"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:clickable=
"false"
android:focusable=
"false"
android:textSize=
"@dimen/_12sdp"
android:background=
"@drawable/edit_text_bgn"
android:imeOptions=
"actionNext"
android:inputType=
"phone"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
/>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id=
"@+id/txt_hint_confirm"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/_34sdp"
android:layout_marginBottom=
"@dimen/_4sdp"
android:text=
"@string/password"
android:textColor=
"@color/black"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"@id/layout_input_confirm"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
<com.google.android.material.textfield.TextInputLayout
android:id=
"@+id/layout_input_confirm"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginEnd=
"@dimen/_12sdp"
app:endIconMode=
"password_toggle"
app:layout_constraintTop_toBottomOf=
"@id/txt_hint_confirm"
>
<com.google.android.material.textfield.TextInputEditText
android:id=
"@+id/input_password"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@drawable/edit_text_bgn"
android:imeOptions=
"actionDone"
android:inputType=
"number"
android:maxLength=
"7"
android:textSize=
"@dimen/_12sdp"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
tools:ignore=
"RtlSymmetry"
/>
</com.google.android.material.textfield.TextInputLayout>
<TextView
android:id=
"@+id/txt_forget_password"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:padding=
"@dimen/_6sdp"
android:text=
"@string/forget_password"
android:background=
"?android:selectableItemBackground"
android:textColor=
"@color/light_dark"
android:textStyle=
"bold"
android:layout_marginTop=
"@dimen/_10sdp"
android:layout_marginEnd=
"@dimen/_10sdp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_confirm"
/>
<Button
android:id=
"@+id/btn_login"
android:layout_width=
"match_parent"
android:enabled=
"false"
android:textSize=
"@dimen/_12sdp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_34sdp"
android:text=
"@string/enter"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_confirm"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_
enter_password
.xml
→
app/src/main/res/layout/fragment_
register
.xml
View file @
cd5e730d
File moved
app/src/main/res/navigation/nav_graph_auth.xml
View file @
cd5e730d
...
@@ -3,13 +3,13 @@
...
@@ -3,13 +3,13 @@
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_auth"
android:id=
"@+id/nav_graph_auth"
app:startDestination=
"@id/
login
Fragment"
>
app:startDestination=
"@id/
checkPhone
Fragment"
>
<fragment
<fragment
android:id=
"@+id/
login
Fragment"
android:id=
"@+id/
checkPhone
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
Login
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
CheckPhone
Fragment"
android:label=
"fragment_login"
android:label=
"fragment_login"
tools:layout=
"@layout/fragment_
login
"
/>
tools:layout=
"@layout/fragment_
check_phone
"
/>
<fragment
<fragment
android:id=
"@+id/verificationFragment"
android:id=
"@+id/verificationFragment"
...
@@ -17,15 +17,15 @@
...
@@ -17,15 +17,15 @@
android:label=
"fragment_verification"
android:label=
"fragment_verification"
tools:layout=
"@layout/fragment_verification"
/>
tools:layout=
"@layout/fragment_verification"
/>
<fragment
<fragment
android:id=
"@+id/
enterPassword
Fragment"
android:id=
"@+id/
register
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
EnterPassword
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
Register
Fragment"
android:label=
"EnterPasswordFragment"
android:label=
"EnterPasswordFragment"
tools:layout=
"@layout/fragment_
enter_password
"
/>
tools:layout=
"@layout/fragment_
register
"
/>
<fragment
<fragment
android:id=
"@+id/
password
Fragment"
android:id=
"@+id/
login
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
Password
Fragment"
android:name=
"uz.ssd.mobiuz.ui.auth.
Login
Fragment"
android:label=
"fragment_password"
android:label=
"fragment_password"
tools:layout=
"@layout/fragment_
password
"
/>
tools:layout=
"@layout/fragment_
login
"
/>
<fragment
<fragment
android:id=
"@+id/forgetPasswordFragment"
android:id=
"@+id/forgetPasswordFragment"
android:name=
"uz.ssd.mobiuz.ui.forget.ForgetPasswordFragment"
android:name=
"uz.ssd.mobiuz.ui.forget.ForgetPasswordFragment"
...
@@ -41,11 +41,7 @@
...
@@ -41,11 +41,7 @@
android:name=
"uz.ssd.mobiuz.ui.auth.BiometricFragment"
android:name=
"uz.ssd.mobiuz.ui.auth.BiometricFragment"
android:label=
"fragment_biometric"
android:label=
"fragment_biometric"
tools:layout=
"@layout/fragment_biometric"
/>
tools:layout=
"@layout/fragment_biometric"
/>
<fragment
android:id=
"@+id/forgetLoginFragment"
android:name=
"uz.ssd.mobiuz.ui.forget.ForgetLoginFragment"
android:label=
"ForgetLoginFragment"
tools:layout=
"@layout/fragment_login"
/>
<fragment
<fragment
android:id=
"@+id/forgetVerificationFragment"
android:id=
"@+id/forgetVerificationFragment"
android:name=
"uz.ssd.mobiuz.ui.forget.ForgetVerificationFragment"
android:name=
"uz.ssd.mobiuz.ui.forget.ForgetVerificationFragment"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment