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
b0fbe4c3
Commit
b0fbe4c3
authored
Dec 16, 2021
by
shohboz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[UPD]
MUS-195
Feature, updated safety screens change pin, password and others
parent
a90983ff
Changes
32
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
1649 additions
and
786 deletions
+1649
-786
deploymentTargetDropDown.xml
.idea/deploymentTargetDropDown.xml
+0
-17
ApiService.kt
...rc/main/java/com/mobiuz/app/dev/network/api/ApiService.kt
+24
-0
ChangePassword.kt
...n/java/com/mobiuz/app/dev/network/model/ChangePassword.kt
+6
-0
CheckPhoneFragment.kt
...va/com/mobiuz/app/dev/ui/auth/check/CheckPhoneFragment.kt
+7
-0
ConfirmPinFragment.kt
...java/com/mobiuz/app/dev/ui/auth/pin/ConfirmPinFragment.kt
+2
-2
CONSTANTS.kt
app/src/main/java/com/mobiuz/app/dev/ui/global/CONSTANTS.kt
+16
-1
FragmentPagerAdapter.kt
...ava/com/mobiuz/app/dev/ui/service/FragmentPagerAdapter.kt
+10
-3
UssdData.kt
app/src/main/java/com/mobiuz/app/dev/ui/service/UssdData.kt
+0
-8
PacketsFragment.kt
.../com/mobiuz/app/dev/ui/service/packets/PacketsFragment.kt
+0
-66
TariffsFragment.kt
.../com/mobiuz/app/dev/ui/service/tarifes/TariffsFragment.kt
+0
-61
SettingsActivity.kt
...n/java/com/mobiuz/app/dev/ui/settings/SettingsActivity.kt
+39
-6
SafetyFragment.kt
...a/com/mobiuz/app/dev/ui/settings/safety/SafetyFragment.kt
+9
-3
ChangePasswordFragment.kt
...dev/ui/settings/safety/password/ChangePasswordFragment.kt
+297
-0
CurrentPasswordFragment.kt
...ev/ui/settings/safety/password/CurrentPasswordFragment.kt
+0
-145
NewPasswordFragment.kt
...pp/dev/ui/settings/safety/password/NewPasswordFragment.kt
+0
-150
ConfirmNewPinFragment.kt
...z/app/dev/ui/settings/safety/pin/ConfirmNewPinFragment.kt
+131
-0
bgn_avatar.xml
app/src/main/res/drawable/bgn_avatar.xml
+4
-0
bgn_user_phone.xml
app/src/main/res/drawable/bgn_user_phone.xml
+5
-0
icon_famale.png
app/src/main/res/drawable/icon_famale.png
+0
-0
activity_settings.xml
app/src/main/res/layout/activity_settings.xml
+1
-1
fragment_action.xml
app/src/main/res/layout/fragment_action.xml
+7
-6
fragment_change_password.xml
app/src/main/res/layout/fragment_change_password.xml
+161
-0
fragment_check_phone.xml
app/src/main/res/layout/fragment_check_phone.xml
+1
-0
fragment_current_password.xml
app/src/main/res/layout/fragment_current_password.xml
+0
-94
fragment_main.xml
app/src/main/res/layout/fragment_main.xml
+276
-0
fragment_my_verification.xml
app/src/main/res/layout/fragment_my_verification.xml
+3
-2
fragment_new_pin.xml
app/src/main/res/layout/fragment_new_pin.xml
+207
-0
fragment_old_pin.xml
app/src/main/res/layout/fragment_old_pin.xml
+235
-0
fragment_pin.xml
app/src/main/res/layout/fragment_pin.xml
+1
-1
fragment_safety.xml
app/src/main/res/layout/fragment_safety.xml
+7
-3
fragment_support.xml
app/src/main/res/layout/fragment_support.xml
+200
-179
fragment_tarifs.xml
app/src/main/res/layout/fragment_tarifs.xml
+0
-38
No files found.
.idea/deploymentTargetDropDown.xml
deleted
100644 → 0
View file @
a90983ff
<?xml version="1.0" encoding="UTF-8"?>
<project
version=
"4"
>
<component
name=
"deploymentTargetDropDown"
>
<targetSelectedWithDropDown>
<Target>
<type
value=
"QUICK_BOOT_TARGET"
/>
<deviceKey>
<Key>
<type
value=
"VIRTUAL_DEVICE_PATH"
/>
<value
value=
"$USER_HOME$/.android/avd/Pixel_3_API_30.avd"
/>
</Key>
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown
value=
"2021-12-06T08:51:27.847367Z"
/>
</component>
</project>
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/network/api/ApiService.kt
View file @
b0fbe4c3
package
com.mobiuz.app.dev.network.api
package
com.mobiuz.app.dev.network.api
import
com.mobiuz.app.dev.model.ServiceData
import
com.mobiuz.app.dev.model.UserAuth
import
com.mobiuz.app.dev.model.UserAuth
import
com.mobiuz.app.dev.network.model.*
import
com.mobiuz.app.dev.network.model.*
import
retrofit2.http.Body
import
retrofit2.http.Body
...
@@ -45,4 +46,27 @@ interface ApiService {
...
@@ -45,4 +46,27 @@ interface ApiService {
suspend
fun
resetPassword
(
suspend
fun
resetPassword
(
@Body
req
:
UserAuth
@Body
req
:
UserAuth
):
ResponseObject
<
GenerateToken
>
):
ResponseObject
<
GenerateToken
>
@POST
(
"customer/log-out"
)
suspend
fun
logOut
():
ResponseList
<
Any
>
@POST
(
"customer/send-sms-code"
)
suspend
fun
reSendSms
(
@Body
req
:
UserAuth
):
ResponseObject
<
Any
>
@POST
(
"customer/check-password"
)
suspend
fun
checkPassword
(
@Body
req
:
UserAuth
):
ResponseObject
<
Any
>
@POST
(
"customer/change-password"
)
suspend
fun
installPassword
(
@Body
req
:
ChangePassword
):
ResponseObject
<
Any
>
@POST
(
"service/index"
)
suspend
fun
getServices
():
ResponseList
<
ServiceData
>
}
}
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/network/model/ChangePassword.kt
0 → 100644
View file @
b0fbe4c3
package
com.mobiuz.app.dev.network.model
data class
ChangePassword
(
val
old_password
:
String
,
val
password
:
String
)
app/src/main/java/com/mobiuz/app/dev/ui/auth/check/CheckPhoneFragment.kt
View file @
b0fbe4c3
...
@@ -21,6 +21,7 @@ import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
...
@@ -21,6 +21,7 @@ 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.customLog
import
com.mobiuz.app.dev.utils.extensions.showCustomDialog
import
com.mobiuz.app.dev.utils.extensions.showCustomDialog
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
...
@@ -46,6 +47,12 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
...
@@ -46,6 +47,12 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
viewGroup
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
bn
.
viewGroup
.
hideKeyboard
()
}
})
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
)
...
...
app/src/main/java/com/mobiuz/app/dev/ui/auth/pin/ConfirmPinFragment.kt
View file @
b0fbe4c3
...
@@ -64,7 +64,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
...
@@ -64,7 +64,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
lifecycleScope
.
launchWhenCreated
{
lifecycleScope
.
launchWhenCreated
{
delay
(
50
)
delay
(
50
)
if
(
pinCode
==
it
)
{
if
(
pinCode
==
it
)
{
pref
.
pin
_c
ode
=
pinCode
pref
.
pin
C
ode
=
pinCode
txtNotPin
.
isVisible
=
false
txtNotPin
.
isVisible
=
false
navigate
()
navigate
()
}
else
{
}
else
{
...
@@ -94,7 +94,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
...
@@ -94,7 +94,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
}
}
private
fun
navigate
()
{
private
fun
navigate
()
{
pref
.
pin
_c
ode
=
pinCode
pref
.
pin
C
ode
=
pinCode
val
manager
=
FingerprintManagerCompat
.
from
(
requireContext
())
val
manager
=
FingerprintManagerCompat
.
from
(
requireContext
())
val
isEnabled
=
manager
.
isHardwareDetected
&&
manager
.
hasEnrolledFingerprints
()
val
isEnabled
=
manager
.
isHardwareDetected
&&
manager
.
hasEnrolledFingerprints
()
...
...
app/src/main/java/com/mobiuz/app/dev/ui/global/CONSTANTS.kt
View file @
b0fbe4c3
package
com.mobiuz.app.dev.ui.global
package
com.mobiuz.app.dev.ui.global
object
CONSTANTS
{
object
CONSTANTS
{
const
val
LOGIN
=
"login"
const
val
BASE_URL
=
"http://10.160.45.60/api/v1/"
const
val
BASE_URL
=
"http://10.160.45.60/api/v1/"
const
val
ROOM
=
"room"
const
val
ROOM
=
"room"
const
val
RU
=
"ru"
const
val
RU
=
"ru"
...
@@ -17,10 +18,24 @@ object CONSTANTS {
...
@@ -17,10 +18,24 @@ object CONSTANTS {
const
val
TARIFFS
=
"tariffs"
const
val
TARIFFS
=
"tariffs"
const
val
PACKETS
=
"packets"
const
val
PACKETS
=
"packets"
const
val
PASSWORD
=
"password"
const
val
PASSWORD
=
"password"
const
val
OLD_PASSWORD
=
"old_password"
const
val
LATEST_PASSWORD
=
"latest_password"
const
val
MINUTES
=
"minutes"
const
val
MINUTES
=
"minutes"
const
val
TYPE_VERIFICATION
=
"type_verification"
const
val
TYPE_VERIFICATION
=
"type_verification"
const
val
TYPE_FORGET
=
"type_forget"
const
val
TYPE_FORGET
=
"type_forget"
const
val
FIRST
=
"first"
const
val
FIRST
=
"first"
const
val
HELP_BOT
=
"@MobiuzHelpBot"
const
val
FEEDBACK
=
"https://company.mobi.uz/ru/feedback/"
const
val
EMAIL
=
"info@mobi.uz"
const
val
PHONE1
=
"0890"
const
val
PHONE2
=
"+998 97 130 09 09"
const
val
PHONE3
=
"+998 97 203 10 10"
const
val
SERVICE
=
"service"
const
val
TYPE_PASSWORD
=
"TYPE_PASSWORD"
const
val
CURRENT_PASSWORD
=
"CURRENT_PASSWORD"
const
val
NEW_PASSWORD
=
"NEW_PASSWORD"
const
val
CONFIRM_NEW_PASSWORD
=
"CONFIRM_NEW_PASSWORD"
const
val
DEFAULT_PHONE
=
"+998 97 999-99-99"
const
val
LONGITUDE
=
69.2602108116081
const
val
LONGITUDE
=
69.2602108116081
const
val
LATITUDE
=
41.34823322480444
const
val
LATITUDE
=
41.34823322480444
...
...
app/src/main/java/com/mobiuz/app/dev/ui/service/FragmentPagerAdapter.kt
View file @
b0fbe4c3
package
com.mobiuz.app.dev.ui.service
package
com.mobiuz.app.dev.ui.service
import
androidx.core.os.bundleOf
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.FragmentActivity
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
androidx.viewpager2.adapter.FragmentStateAdapter
import
com.google.gson.Gson
import
com.mobiuz.app.dev.model.ServiceData
import
com.mobiuz.app.dev.ui.global.CONSTANTS
class
FragmentPagerAdapter
(
fragment
:
Fragment
,
private
val
list
:
List
<
String
>
):
FragmentStateAdapter
(
fragment
)
{
class
FragmentPagerAdapter
(
fragment
:
Fragment
,
private
val
service
:
ServiceData
):
FragmentStateAdapter
(
fragment
)
{
override
fun
getItemCount
()
=
list
.
size
override
fun
getItemCount
()
=
service
.
data
.
size
override
fun
createFragment
(
position
:
Int
):
Fragment
{
override
fun
createFragment
(
position
:
Int
):
Fragment
{
return
ActionFragment
()
return
ActionFragment
().
apply
{
this
.
arguments
=
bundleOf
(
CONSTANTS
.
SERVICE
to
Gson
().
toJson
(
service
.
data
[
position
]))
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/ui/service/UssdData.kt
deleted
100644 → 0
View file @
a90983ff
package
com.mobiuz.app.dev.ui.service
data class
UssdData
(
val
title
:
String
,
val
tariff
:
String
,
val
code
:
String
,
val
text_button
:
String
,
)
app/src/main/java/com/mobiuz/app/dev/ui/service/packets/PacketsFragment.kt
deleted
100644 → 0
View file @
a90983ff
package
com.mobiuz.app.dev.ui.service.packets
import
android.os.Bundle
import
android.view.View
import
androidx.lifecycle.ViewModelProvider
import
com.google.android.material.tabs.TabLayoutMediator
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentPaketsBinding
import
com.mobiuz.app.dev.MainViewModel
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.service.FragmentPagerAdapter
import
dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class
PacketsFragment
:
BaseFragment
(
R
.
layout
.
fragment_pakets
)
{
private
lateinit
var
mainViewModel
:
MainViewModel
private
var
_bn
:
FragmentPaketsBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
lateinit
var
adapter
:
FragmentPagerAdapter
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
mainViewModel
=
ViewModelProvider
(
requireActivity
())[
MainViewModel
::
class
.
java
]
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentPaketsBinding
.
bind
(
view
)
adapter
=
FragmentPagerAdapter
(
this
,
arrayListOf
(
""
,
""
,
""
,
""
,
""
))
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
viewPager
.
adapter
=
adapter
toolbar
.
setNavigationOnClickListener
{
requireActivity
().
finish
()
}
TabLayoutMediator
(
bn
.
tabLayout
,
bn
.
viewPager
){
tab
,
pos
->
when
(
pos
){
0
->
tab
.
text
=
"Месячные "
1
->
tab
.
text
=
"Суточные "
2
->
tab
.
text
=
"Ночные "
3
->
tab
.
text
=
"Ночной Драйв "
else
->
tab
.
text
=
"OnNet "
}
}.
attach
()
}
}
override
fun
collects
()
{
}
override
fun
onDestroy
()
{
_bn
=
null
super
.
onDestroy
()
}
}
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/ui/service/tarifes/TariffsFragment.kt
deleted
100644 → 0
View file @
a90983ff
package
com.mobiuz.app.dev.ui.service.tarifes
import
android.os.Bundle
import
android.view.View
import
androidx.lifecycle.ViewModelProvider
import
com.google.android.material.tabs.TabLayoutMediator
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentTarifsBinding
import
com.mobiuz.app.dev.MainViewModel
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.service.FragmentPagerAdapter
import
dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class
TariffsFragment
:
BaseFragment
(
R
.
layout
.
fragment_tarifs
)
{
private
lateinit
var
mainViewModel
:
MainViewModel
private
var
_bn
:
FragmentTarifsBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
lateinit
var
adapter
:
FragmentPagerAdapter
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
mainViewModel
=
ViewModelProvider
(
requireActivity
())[
MainViewModel
::
class
.
java
]
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentTarifsBinding
.
bind
(
view
)
adapter
=
FragmentPagerAdapter
(
this
,
arrayListOf
(
""
,
""
))
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
viewPager
.
adapter
=
adapter
toolbar
.
setNavigationOnClickListener
{
requireActivity
().
finish
()
}
TabLayoutMediator
(
bn
.
tabLayout
,
bn
.
viewPager
){
tab
,
pos
->
if
(
pos
==
0
){
tab
.
text
=
"Активные"
}
else
{
tab
.
text
=
"Годовые"
}
}.
attach
()
}
}
override
fun
collects
()
{
}
override
fun
onDestroy
()
{
_bn
=
null
super
.
onDestroy
()
}
}
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/ui/settings/SettingsActivity.kt
View file @
b0fbe4c3
package
com.mobiuz.app.dev.ui.settings
package
com.mobiuz.app.dev.ui.settings
import
android.content.Intent
import
android.graphics.Color
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
...
@@ -8,9 +10,10 @@ import androidx.navigation.fragment.NavHostFragment
...
@@ -8,9 +10,10 @@ import androidx.navigation.fragment.NavHostFragment
import
com.mobiuz.app.R
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.ActivitySettingsBinding
import
com.mobiuz.app.databinding.ActivitySettingsBinding
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.ui.auth.AuthActivity
import
com.mobiuz.app.dev.ui.global.CONSTANTS
import
com.mobiuz.app.dev.ui.global.CONSTANTS
import
com.mobiuz.app.dev.ui.global.FullScreenDialog
import
com.mobiuz.app.dev.utils.LocaleHelper
import
com.mobiuz.app.dev.utils.LocaleHelper
import
com.mobiuz.app.dev.utils.Utils
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -30,28 +33,28 @@ class SettingsActivity : AppCompatActivity() {
...
@@ -30,28 +33,28 @@ class SettingsActivity : AppCompatActivity() {
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
_bn
=
ActivitySettingsBinding
.
inflate
(
layoutInflater
)
_bn
=
ActivitySettingsBinding
.
inflate
(
layoutInflater
)
setContentView
(
bn
.
root
)
setContentView
(
bn
.
root
)
window
.
statusBarColor
=
Color
.
WHITE
val
window
=
window
.
decorView
val
window
=
window
.
decorView
window
.
systemUiVisibility
=
window
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window
.
systemUiVisibility
=
window
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
val
fragment
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
settings_container
)
as
NavHostFragment
val
fragment
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
settings_container
)
as
NavHostFragment
navController
=
NavHostFragment
.
findNavController
(
fragment
)
navController
=
NavHostFragment
.
findNavController
(
fragment
)
intent
?.
let
{
intent
?.
let
{
val
type
=
it
.
getStringExtra
(
CONSTANTS
.
TYPE_SETTINGS
)
when
(
it
.
getStringExtra
(
CONSTANTS
.
TYPE_SETTINGS
))
{
when
(
type
)
{
CONSTANTS
.
PROFILE
->
{
CONSTANTS
.
PROFILE
->
{
navController
.
popBackStack
()
navController
.
popBackStack
()
navController
.
navigate
(
R
.
id
.
profileFragment
,
null
,
Utils
.
navOptions
()
)
navController
.
navigate
(
R
.
id
.
profileFragment
)
}
}
CONSTANTS
.
SUPPORT
->
{
CONSTANTS
.
SUPPORT
->
{
navController
.
popBackStack
()
navController
.
popBackStack
()
navController
.
navigate
(
R
.
id
.
supportFragment
,
null
,
Utils
.
navOptions
()
)
navController
.
navigate
(
R
.
id
.
supportFragment
)
}
}
CONSTANTS
.
SAFETY
->
{
CONSTANTS
.
SAFETY
->
{
navController
.
popBackStack
()
navController
.
popBackStack
()
navController
.
navigate
(
R
.
id
.
safetyFragment
,
null
,
Utils
.
navOptions
()
)
navController
.
navigate
(
R
.
id
.
safetyFragment
)
}
}
else
->
Unit
else
->
Unit
...
@@ -59,8 +62,38 @@ class SettingsActivity : AppCompatActivity() {
...
@@ -59,8 +62,38 @@ class SettingsActivity : AppCompatActivity() {
}
}
}
}
override
fun
onResume
()
{
super
.
onResume
()
if
(
pref
.
isShowPin
){
showPinCode
()
}
else
{
pref
.
isShowPin
=
true
}
}
private
fun
showPinCode
()
{
intent
?.
let
{
val
arg
=
it
.
getStringExtra
(
CONSTANTS
.
FIRST
)
?:
""
if
(
arg
.
isEmpty
())
{
val
dialog
=
FullScreenDialog
()
dialog
.
setOnPinDoneListener
{
finish
()
pref
.
clearUserData
()
val
intent
=
Intent
(
this
,
AuthActivity
::
class
.
java
)
intent
.
flags
=
Intent
.
FLAG_ACTIVITY_NEW_TASK
or
Intent
.
FLAG_ACTIVITY_TASK_ON_HOME
startActivity
(
intent
)
dialog
.
dismiss
()
}
dialog
.
show
(
supportFragmentManager
,
"tag"
)
}
it
.
removeExtra
(
CONSTANTS
.
FIRST
)
}
}
override
fun
onDestroy
()
{
override
fun
onDestroy
()
{
pref
.
isShowPin
=
false
_bn
=
null
_bn
=
null
super
.
onDestroy
()
super
.
onDestroy
()
}
}
}
}
\ No newline at end of file
app/src/main/java/com/mobiuz/app/dev/ui/settings/safety/SafetyFragment.kt
View file @
b0fbe4c3
...
@@ -3,14 +3,16 @@ package com.mobiuz.app.dev.ui.settings.safety
...
@@ -3,14 +3,16 @@ package com.mobiuz.app.dev.ui.settings.safety
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
android.widget.SeekBar
import
android.widget.SeekBar
import
androidx.core.os.bundleOf
import
androidx.navigation.NavController
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.fragment.NavHostFragment
import
com.airbnb.lottie.utils.Utils
import
com.mobiuz.app.R
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentSafetyBinding
import
com.mobiuz.app.databinding.FragmentSafetyBinding
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.global.ButtonClick
import
com.mobiuz.app.dev.ui.global.ButtonClick
import
com.mobiuz.app.dev.ui.global.CONSTANTS
import
com.mobiuz.app.dev.utils.Utils
import
com.mobiuz.app.dev.utils.extensions.showMessage
import
com.mobiuz.app.dev.utils.extensions.showMessage
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -36,8 +38,11 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
...
@@ -36,8 +38,11 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
toolbar
.
setNavigationOnClickListener
{
toolbar
.
setNavigationOnClickListener
{
requireActivity
().
finish
()
navController
.
navigateUp
()
}
}
val
text
=
getString
(
R
.
string
.
settings_safety
)
val
myText
=
text
.
replace
(
CONSTANTS
.
DEFAULT_PHONE
,
pref
.
userPhone
)
txtPhoneSafety
.
text
=
myText
switchBiometria
.
isChecked
=
pref
.
isUseFingerPrint
switchBiometria
.
isChecked
=
pref
.
isUseFingerPrint
switchBiometria
.
setOnCheckedChangeListener
{
_
,
isChecked
->
switchBiometria
.
setOnCheckedChangeListener
{
_
,
isChecked
->
val
message
=
if
(
isChecked
)
"Biometric enabled"
else
"Biometric disabled"
val
message
=
if
(
isChecked
)
"Biometric enabled"
else
"Biometric disabled"
...
@@ -50,11 +55,12 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
...
@@ -50,11 +55,12 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
})
})
btnChangePin
.
setOnClickListener
(
object
:
ButtonClick
(){
btnChangePin
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
navigate
(
R
.
id
.
oldPinFragment
,
null
,
Utils
.
navOptions
())
}
}
})
})
btnChangePassword
.
setOnClickListener
(
object
:
ButtonClick
(){
btnChangePassword
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
navigate
(
R
.
id
.
currentPasswordFragment
,
null
,
com
.
mobiuz
.
app
.
dev
.
utils
.
Utils
.
navOptions
())
navController
.
navigate
(
R
.
id
.
currentPasswordFragment
,
bundleOf
(
CONSTANTS
.
TYPE_PASSWORD
to
CONSTANTS
.
CURRENT_PASSWORD
),
Utils
.
navOptions
())
}
}
})
})
btn4
.
setOnClickListener
(
object
:
ButtonClick
(){
btn4
.
setOnClickListener
(
object
:
ButtonClick
(){
...
...
app/src/main/java/com/mobiuz/app/dev/ui/settings/safety/password/C
onfirm
PasswordFragment.kt
→
app/src/main/java/com/mobiuz/app/dev/ui/settings/safety/password/C
hange
PasswordFragment.kt
View file @
b0fbe4c3
package
com.mobiuz.app.dev.ui.settings.safety.password
package
com.mobiuz.app.dev.ui.settings.safety.password
import
android.content.Intent
import
android.graphics.Color
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.view.isVisible
import
androidx.fragment.app.viewModels
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
androidx.navigation.NavController
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.fragment.NavHostFragment
import
com.mobiuz.app.R
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentConfirmPasswordBinding
import
com.mobiuz.app.databinding.FragmentChangePasswordBinding
import
com.mobiuz.app.dev.MainViewModel
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.model.UserAuth
import
com.mobiuz.app.dev.network.model.ChangePassword
import
com.mobiuz.app.dev.network.model.UiStateObject
import
com.mobiuz.app.dev.network.model.UiStateObject
import
com.mobiuz.app.dev.ui.auth.AuthActivity
import
com.mobiuz.app.dev.ui.auth.AuthViewModel
import
com.mobiuz.app.dev.ui.auth.AuthViewModel
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.ui.global.ButtonClick
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.showMessage
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.delay
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
javax.inject.Inject
@AndroidEntryPoint
@AndroidEntryPoint
class
C
onfirmPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_confirm
_password
)
{
class
C
hangePasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_change
_password
)
{
private
var
_bn
:
FragmentConfirmPasswordBinding
?
=
null
@Inject
lateinit
var
pref
:
SharedPref
private
var
_bn
:
FragmentChangePasswordBinding
?
=
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
var
password
=
""
private
var
type
=
""
private
var
phone
=
""
private
var
count
=
3
private
lateinit
var
decorView
:
View
private
var
oldPassword
=
""
private
var
newPassword
=
""
private
val
viewModel
:
AuthViewModel
by
viewModels
()
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
arguments
?.
let
{
password
=
it
.
getString
(
CONSTANTS
.
PASSWORD
,
""
)
oldPassword
=
it
.
getString
(
CONSTANTS
.
OLD_PASSWORD
,
""
)
?:
""
newPassword
=
it
.
getString
(
CONSTANTS
.
LATEST_PASSWORD
,
""
)
?:
""
type
=
it
.
getString
(
CONSTANTS
.
TYPE_PASSWORD
,
""
)
?:
""
}
}
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentC
onfirm
PasswordBinding
.
bind
(
view
)
_bn
=
FragmentC
hange
PasswordBinding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
...
@@ -49,16 +69,41 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
...
@@ -49,16 +69,41 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
val
text
=
when
(
type
)
{
CONSTANTS
.
CURRENT_PASSWORD
->{
txtForgetPassword
.
isVisible
=
true
getString
(
R
.
string
.
enter_current_password
)
}
CONSTANTS
.
NEW_PASSWORD
->
{
getString
(
R
.
string
.
enter_new_password
)
}
else
->
{
getString
(
R
.
string
.
enter_confirm_new_password
)
}
}
txtPassword
.
text
=
text
viewGroup
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
bn
.
viewGroup
.
hideKeyboard
()
}
})
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
// viewModel.forgetPassword(UserAuth(phone.replace(" ", "").replace("+", "")))
if
(
type
==
CONSTANTS
.
CURRENT_PASSWORD
){
viewModel
.
forgetPassword
(
UserAuth
(
pref
.
userPhone
.
replace
(
" "
,
""
).
replace
(
"+"
,
""
)))
}
}
}
})
})
inputPassword
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
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
)
if
(
s
.
toString
()
==
password
)
{
if
(
type
==
CONSTANTS
.
CONFIRM_NEW_PASSWORD
){
if
(
s
.
toString
()
==
newPassword
)
{
imageCheck
.
setImageResource
(
R
.
drawable
.
ic_baseline_check_circle
)
imageCheck
.
setImageResource
(
R
.
drawable
.
ic_baseline_check_circle
)
txtCheckConfirm
.
text
=
getString
(
R
.
string
.
password_same
)
txtCheckConfirm
.
text
=
getString
(
R
.
string
.
password_same
)
txtCheckConfirm
.
setTextColor
(
getColorCompat
(
R
.
color
.
green100
))
txtCheckConfirm
.
setTextColor
(
getColorCompat
(
R
.
color
.
green100
))
...
@@ -69,6 +114,15 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
...
@@ -69,6 +114,15 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
btnLogin
.
isEnabled
=
false
btnLogin
.
isEnabled
=
false
txtCheckConfirm
.
setTextColor
(
getColorCompat
(
R
.
color
.
primary100
))
txtCheckConfirm
.
setTextColor
(
getColorCompat
(
R
.
color
.
primary100
))
}
}
imageCheck
.
isVisible
=
true
txtCheckConfirm
.
isVisible
=
true
}
else
{
loadError
(
false
)
btnLogin
.
isEnabled
=
s
.
toString
().
length
>
3
imageCheck
.
isVisible
=
false
txtCheckConfirm
.
isVisible
=
false
}
}
}
})
})
...
@@ -88,9 +142,31 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
...
@@ -88,9 +142,31 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
}
}
else
->
{
else
->
{
bn
.
btnLogin
.
hideKeyboard
()
bn
.
btnLogin
.
hideKeyboard
()
showToastMessage
(
getString
(
R
.
string
.
password_changed
))
when
(
type
)
{
navController
.
popBackStack
(
R
.
id
.
safetyFragment
,
false
)
CONSTANTS
.
CURRENT_PASSWORD
->
{
// viewModel.login(UserAuth(phone.replace(" ", "").replace("+", ""), password))
oldPassword
=
password
viewModel
.
checkPassword
(
UserAuth
(
password
=
oldPassword
))
}
CONSTANTS
.
NEW_PASSWORD
->
{
navController
.
navigate
(
R
.
id
.
currentPasswordFragment
,
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
->
{
if
(
newPassword
==
password
)
{
viewModel
.
changePassword
(
ChangePassword
(
oldPassword
,
newPassword
))
}
}
}
}
}
}
}
...
@@ -103,13 +179,78 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
...
@@ -103,13 +179,78 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
}
}
}
}
private
fun
loadError
(
status
:
Boolean
){
bn
.
apply
{
if
(
count
==
0
){
errorTitle
.
text
=
getString
(
R
.
string
.
impossible_change_password
)
errorText
.
text
=
getString
(
R
.
string
.
popitok_error_password
)
}
else
{
errorText
.
text
=
getString
(
R
.
string
.
popitok
,
count
.
toString
())
}
errorLayout
.
isVisible
=
status
div
.
setBackgroundColor
(
if
(
status
)
getColorCompat
(
R
.
color
.
primary100
)
else
Color
.
TRANSPARENT
)
decorView
=
requireActivity
().
window
.
decorView
decorView
.
systemUiVisibility
=
if
(
status
)
View
.
VISIBLE
else
{
decorView
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}
}
}
override
fun
collects
()
{
override
fun
collects
()
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
loginUiState
.
collect
{
viewModel
.
checkPasswordUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
navController
.
navigate
(
R
.
id
.
currentPasswordFragment
,
bundleOf
(
CONSTANTS
.
OLD_PASSWORD
to
oldPassword
,
CONSTANTS
.
TYPE_PASSWORD
to
CONSTANTS
.
NEW_PASSWORD
),
Utils
.
navOptions
()
)
showProgressDialog
(
false
)
}
is
UiStateObject
.
ERROR
->
{
if
(
it
.
message
==
"Invalid password"
){
count
--
if
(
count
==
0
){
loadError
(
true
)
showCustomDialog
(
getString
(
R
.
string
.
impossible_change_password
),
false
){
pref
.
clearUserData
()
val
intent
=
Intent
(
requireContext
(),
AuthActivity
::
class
.
java
)
intent
.
putExtra
(
CONSTANTS
.
TYPE_AUTH
,
CONSTANTS
.
LOGIN
)
intent
.
putExtra
(
CONSTANTS
.
PHONE
,
pref
.
userPhone
)
startActivity
(
intent
)
requireActivity
().
finish
()
}
}
else
{
loadError
(
true
)
}
}
else
{
showToastMessage
(
it
.
message
)
}
showProgressDialog
(
false
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
changePasswordUiState
.
collect
{
when
(
it
)
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
showCustomDialog
(
getString
(
R
.
string
.
password_updated
),
true
){
navController
.
popBackStack
(
R
.
id
.
safetyFragment
,
false
)
}
}
}
is
UiStateObject
.
ERROR
->
{
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
...
@@ -127,15 +268,13 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
...
@@ -127,15 +268,13 @@ class ConfirmPasswordFragment : BaseFragment(R.layout.fragment_confirm_password)
viewModel
.
forgetPasswordUiState
.
collect
{
viewModel
.
forgetPasswordUiState
.
collect
{
when
(
it
)
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
is
UiStateObject
.
SUCCESS
->
{
requireActivity
().
finish
()
pref
.
clearUserData
()
val
intent
=
Intent
(
requireContext
(),
AuthActivity
::
class
.
java
)
intent
.
putExtra
(
CONSTANTS
.
TYPE_AUTH
,
CONSTANTS
.
TYPE_VERIFICATION
)
intent
.
putExtra
(
CONSTANTS
.
PHONE
,
pref
.
userPhone
)
startActivity
(
intent
)
showProgressDialog
(
false
)
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
,
CONSTANTS
.
TYPE_VERIFICATION
to
CONSTANTS
.
TYPE_FORGET
),
Utils
.
navOptions
()
)
}
}
is
UiStateObject
.
ERROR
->
{
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showProgressDialog
(
false
)
...
...
app/src/main/java/com/mobiuz/app/dev/ui/settings/safety/password/CurrentPasswordFragment.kt
deleted
100644 → 0
View file @
a90983ff
package
com.mobiuz.app.dev.ui.settings.safety.password
import
android.os.Bundle
import
android.view.View
import
androidx.core.os.bundleOf
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentCurrentPasswordBinding
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.hideKeyboard
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
@AndroidEntryPoint
class
CurrentPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_current_password
)
{
private
var
_bn
:
FragmentCurrentPasswordBinding
?
=
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
=
FragmentCurrentPasswordBinding
.
bind
(
view
)
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
// viewModel.forgetPassword(UserAuth(phone.replace(" ", "").replace("+", "")))
}
})
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
>
3
)
}
})
btnLogin
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
val
password
=
inputPassword
.
text
.
toString
().
trim
()
when
{
password
.
length
<
4
->
{
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
}
else
->
{
bn
.
btnLogin
.
hideKeyboard
()
navController
.
navigate
(
R
.
id
.
newPasswordFragment
,
null
,
com
.
mobiuz
.
app
.
dev
.
utils
.
Utils
.
navOptions
())
// viewModel.login(UserAuth(phone.replace(" ", "").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
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showToastMessage
(
it
.
message
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
forgetPasswordUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
,
CONSTANTS
.
TYPE_VERIFICATION
to
CONSTANTS
.
TYPE_FORGET
),
Utils
.
navOptions
()
)
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showToastMessage
(
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/com/mobiuz/app/dev/ui/settings/safety/password/NewPasswordFragment.kt
deleted
100644 → 0
View file @
a90983ff
package
com.mobiuz.app.dev.ui.settings.safety.password
import
android.os.Bundle
import
android.view.View
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.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentNewPasswordBinding
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.hideKeyboard
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
@AndroidEntryPoint
class
NewPasswordFragment
:
BaseFragment
(
R
.
layout
.
fragment_new_password
)
{
private
var
_bn
:
FragmentNewPasswordBinding
?
=
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
=
FragmentNewPasswordBinding
.
bind
(
view
)
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
txtForgetPassword
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
// viewModel.forgetPassword(UserAuth(phone.replace(" ", "").replace("+", "")))
}
})
inputPassword
.
addTextChangedListener
(
object
:
TextWatcherWrapper
()
{
override
fun
onTextChanged
(
s
:
CharSequence
?,
start
:
Int
,
before
:
Int
,
count
:
Int
)
{
super
.
onTextChanged
(
s
,
start
,
before
,
count
)
bn
.
helperPassword
.
isVisible
=
false
btnLogin
.
isEnabled
=
(
s
.
toString
().
length
>
3
)
}
})
btnLogin
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
val
password
=
inputPassword
.
text
.
toString
().
trim
()
when
{
password
.
length
<
4
->
{
inputPassword
.
startAnimation
(
android
.
view
.
animation
.
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
)
)
}
else
->
{
bn
.
btnLogin
.
hideKeyboard
()
navController
.
navigate
(
R
.
id
.
confirmPasswordFragment
,
bundleOf
(
CONSTANTS
.
PASSWORD
to
password
),
Utils
.
navOptions
())
// viewModel.login(UserAuth(phone.replace(" ", "").replace("+", ""), password))
}
}
}
})
toolbar
.
setNavigationOnClickListener
{
navController
.
navigateUp
()
}
}
}
override
fun
collects
()
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
loginUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
bn
.
helperPassword
.
isVisible
=
false
navController
.
navigate
(
R
.
id
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
),
Utils
.
navOptions
())
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showToastMessage
(
it
.
message
)
bn
.
helperPassword
.
isVisible
=
false
}
is
UiStateObject
.
LOADING
->
{
bn
.
helperPassword
.
isVisible
=
false
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
forgetPasswordUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
navController
.
navigate
(
R
.
id
.
myVerificationFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
,
CONSTANTS
.
TYPE_VERIFICATION
to
CONSTANTS
.
TYPE_FORGET
),
Utils
.
navOptions
()
)
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showToastMessage
(
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/com/mobiuz/app/dev/ui/settings/safety/pin/ConfirmNewPinFragment.kt
0 → 100644
View file @
b0fbe4c3
package
com.mobiuz.app.dev.ui.settings.safety.pin
import
android.graphics.Color
import
android.os.Bundle
import
android.view.View
import
android.view.animation.AnimationUtils
import
android.widget.TextView
import
androidx.core.view.isVisible
import
androidx.lifecycle.lifecycleScope
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.mobiuz.app.R
import
com.mobiuz.app.databinding.FragmentConfirmNewPinBinding
import
com.mobiuz.app.dev.model.PinData
import
com.mobiuz.app.dev.model.SharedPref
import
com.mobiuz.app.dev.ui.auth.pin.PinAdapter
import
com.mobiuz.app.dev.ui.base.BaseFragment
import
com.mobiuz.app.dev.utils.extensions.getColorCompat
import
com.mobiuz.app.dev.utils.extensions.showMessage
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.delay
import
javax.inject.Inject
@AndroidEntryPoint
class
ConfirmNewPinFragment
:
BaseFragment
(
R
.
layout
.
fragment_confirm_new_pin
)
{
@Inject
lateinit
var
pref
:
SharedPref
private
var
_bn
:
FragmentConfirmNewPinBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
var
pinCode
=
""
private
val
data
=
ArrayList
<
PinData
>()
private
val
pinAdapter
=
PinAdapter
()
private
lateinit
var
decorView
:
View
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
arguments
?.
let
{
pinCode
=
it
.
getString
(
"pinCode"
,
""
)
?:
""
}
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentConfirmNewPinBinding
.
bind
(
view
)
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
loadData
()
rvPin
.
layoutManager
=
LinearLayoutManager
(
requireContext
(),
LinearLayoutManager
.
HORIZONTAL
,
false
)
rvPin
.
setHasFixedSize
(
true
)
rvPin
.
adapter
=
pinAdapter
pinAdapter
.
setOnDoneListener
{
lifecycleScope
.
launchWhenCreated
{
delay
(
50
)
if
(
pinCode
==
it
)
{
navigate
()
}
else
{
cardPin
.
startAnimation
(
AnimationUtils
.
loadAnimation
(
requireContext
(),
R
.
anim
.
shake
))
loadError
(
true
)
}
}
}
toolbar
.
setNavigationOnClickListener
{
navController
.
navigateUp
()
}
for
(
i
in
0
until
btnViewGroup
.
childCount
)
{
btnViewGroup
.
getChildAt
(
i
).
setOnClickListener
{
when
(
it
.
id
)
{
R
.
id
.
btn_remove
->
{
loadError
(
false
)
pinAdapter
.
removeItem
()
}
R
.
id
.
btn_forget_pin
->
{
}
else
->
{
loadError
(
false
)
val
text
=
it
as
TextView
pinAdapter
.
addItem
(
text
.
text
.
toString
().
toInt
())
}
}
}
}
}
}
private
fun
loadError
(
status
:
Boolean
)
{
bn
.
apply
{
errorLayout
.
isVisible
=
status
div
.
setBackgroundColor
(
if
(
status
)
getColorCompat
(
R
.
color
.
primary100
)
else
Color
.
TRANSPARENT
)
decorView
=
requireActivity
().
window
.
decorView
decorView
.
systemUiVisibility
=
if
(
status
)
View
.
VISIBLE
else
{
decorView
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
}
}
}
private
fun
navigate
()
{
showMessage
(
getString
(
R
.
string
.
pin_code_updated
))
navController
.
popBackStack
(
R
.
id
.
safetyFragment
,
false
)
}
private
fun
loadData
()
{
data
.
clear
()
for
(
i
in
0
..
3
)
{
data
.
add
(
PinData
(-
1
))
}
pinAdapter
.
submitList
(
data
)
}
override
fun
collects
()
{
}
override
fun
onDestroy
()
{
_bn
=
null
super
.
onDestroy
()
}
}
\ No newline at end of file
app/src/main/res/drawable/bgn_avatar.xml
0 → 100644
View file @
b0fbe4c3
<?xml version="1.0" encoding="utf-8"?>
<shape
android:shape=
"oval"
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<solid
android:color=
"@color/grey20"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/bgn_user_phone.xml
0 → 100644
View file @
b0fbe4c3
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:radius=
"6dp"
/>
<solid
android:color=
"@color/primary100"
/>
</shape>
\ No newline at end of file
app/src/main/res/drawable/icon_famale.png
0 → 100644
View file @
b0fbe4c3
60.7 KB
app/src/main/res/layout/activity_settings.xml
View file @
b0fbe4c3
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows=
"
tru
e"
>
android:fitsSystemWindows=
"
fals
e"
>
<androidx.fragment.app.FragmentContainerView
<androidx.fragment.app.FragmentContainerView
android:id=
"@+id/settings_container"
android:id=
"@+id/settings_container"
...
...
app/src/main/res/layout/fragment_action.xml
View file @
b0fbe4c3
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<LinearLayout
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"
xmlns:tools=
"http://schemas.android.com/tools"
android:fitsSystemWindows=
"true"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
android:layout_width=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
android:id=
"@+id/rv_ussd_command"
android:id=
"@+id/rv_ussd_command"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:overScrollMode=
"never"
android:layout_marginHorizontal=
"12dp"
android:layout_marginHorizontal=
"12dp"
tools:listitem=
"@layout/item_ussd"
android:layoutAnimation=
"@anim/layout_animation"
android:layout_height=
"match_parent"
/>
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_ussd"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_c
onfirm
_password.xml
→
app/src/main/res/layout/fragment_c
hange
_password.xml
View file @
b0fbe4c3
...
@@ -3,28 +3,70 @@
...
@@ -3,28 +3,70 @@
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:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:id=
"@+id/view_group"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:fitsSystemWindows=
"false"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<View
android:layout_width=
"match_parent"
android:id=
"@+id/div"
app:layout_constraintTop_toTopOf=
"parent"
android:background=
"@android:color/transparent"
android:layout_height=
"24dp"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:id=
"@+id/frame"
app:layout_constraintTop_toBottomOf=
"@id/div"
android:layout_height=
"wrap_content"
>
<com.google.android.material.appbar.MaterialToolbar
<com.google.android.material.appbar.MaterialToolbar
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"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:gravity=
"center"
android:visibility=
"invisible"
android:id=
"@+id/error_layout"
android:orientation=
"vertical"
android:background=
"@color/primary100"
android:layout_height=
"match_parent"
>
<TextView
android:layout_width=
"wrap_content"
android:textColor=
"@color/white100"
android:id=
"@+id/error_title"
android:layout_height=
"wrap_content"
android:text=
"@string/wrong_password"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<TextView
android:layout_width=
"wrap_content"
android:textColor=
"@color/white100"
android:id=
"@+id/error_text"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"@dimen/_14sdp"
android:text=
"@string/popitok"
android:textSize=
"14sp"
/>
</LinearLayout>
</FrameLayout>
<TextView
<TextView
style=
"@style/TitleTextStyle"
android:id=
"@+id/txt_password"
android:id=
"@+id/txt_password"
android:layout_marginHorizontal=
"@dimen/_12sdp"
style=
"@style/TitleTextStyle"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter_confirm_new_password"
android:text=
"@string/enter_current_password"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_confirm"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_confirm"
app:layout_constraint
Top_toBottomOf=
"@id/toolbar"
/>
app:layout_constraint
Start_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/frame"
/>
<TextView
<TextView
...
@@ -33,8 +75,8 @@
...
@@ -33,8 +75,8 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"60dp"
android:layout_marginTop=
"60dp"
android:text=
"@string/enter_password"
android:text=
"@string/enter_password"
android:textSize=
"15sp"
android:textColor=
"@color/black75"
android:textColor=
"@color/black75"
android:textSize=
"15sp"
app:layout_constraintStart_toStartOf=
"@id/layout_input_password"
app:layout_constraintStart_toStartOf=
"@id/layout_input_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_password"
/>
app:layout_constraintTop_toBottomOf=
"@id/txt_password"
/>
...
@@ -56,9 +98,9 @@
...
@@ -56,9 +98,9 @@
android:imeOptions=
"actionDone"
android:imeOptions=
"actionDone"
android:inputType=
"numberPassword"
android:inputType=
"numberPassword"
android:maxLength=
"7"
android:maxLength=
"7"
android:textSize=
"@dimen/_12sdp"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingVertical=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
android:paddingStart=
"@dimen/_12sdp"
android:textSize=
"@dimen/_12sdp"
tools:ignore=
"RtlSymmetry"
/>
tools:ignore=
"RtlSymmetry"
/>
</com.google.android.material.textfield.TextInputLayout>
</com.google.android.material.textfield.TextInputLayout>
...
@@ -86,19 +128,19 @@
...
@@ -86,19 +128,19 @@
app:layout_constraintStart_toEndOf=
"@id/image_check"
app:layout_constraintStart_toEndOf=
"@id/image_check"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
<TextView
<TextView
android:id=
"@+id/txt_forget_password"
android:id=
"@+id/txt_forget_password"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/_10sdp"
android:layout_marginEnd=
"@dimen/_10sdp"
android:background=
"?android:selectableItemBackground"
android:padding=
"@dimen/_6sdp"
android:padding=
"@dimen/_6sdp"
android:textSize=
"16sp"
android:text=
"@string/forget_password"
android:text=
"@string/forget_password"
android:background=
"?android:selectableItemBackground"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:textSize=
"16sp"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:layout_marginTop=
"@dimen/_16sdp"
android:visibility=
"invisible"
android:layout_marginEnd=
"@dimen/_10sdp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
...
@@ -106,14 +148,14 @@
...
@@ -106,14 +148,14 @@
<Button
<Button
android:id=
"@+id/btn_login"
android:id=
"@+id/btn_login"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:enabled=
"false"
android:textSize=
"@dimen/_12sdp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_gravity=
"bottom"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_34sdp"
android:layout_marginTop=
"@dimen/_34sdp"
android:enabled=
"false"
android:text=
"@string/enter"
android:text=
"@string/enter"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
android:textSize=
"@dimen/_12sdp"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/layout_input_password"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_check_phone.xml
View file @
b0fbe4c3
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:id=
"@+id/view_group"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
<com.google.android.material.appbar.MaterialToolbar
<com.google.android.material.appbar.MaterialToolbar
...
...
app/src/main/res/layout/fragment_current_password.xml
deleted
100644 → 0
View file @
a90983ff
<?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
style=
"@style/TitleTextStyle"
android:id=
"@+id/txt_password"
android:layout_marginStart=
"@dimen/_12sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter_current_password"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintBottom_toTopOf=
"@id/txt_hint_confirm"
app:layout_constraintTop_toBottomOf=
"@id/toolbar"
/>
<TextView
android:id=
"@+id/txt_hint_confirm"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"60dp"
android:text=
"@string/enter_password"
android:textSize=
"15sp"
android:textColor=
"@color/black75"
app:layout_constraintStart_toStartOf=
"@id/layout_input_password"
app:layout_constraintTop_toBottomOf=
"@id/txt_password"
/>
<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"
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_unchecked"
android:imeOptions=
"actionDone"
android:inputType=
"numberPassword"
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:textSize=
"16sp"
android:text=
"@string/forget_password"
android:background=
"?android:selectableItemBackground"
android:textColor=
"@color/grey110"
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_password"
/>
<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_password"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_main.xml
0 → 100644
View file @
b0fbe4c3
<androidx.drawerlayout.widget.DrawerLayout
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:id=
"@+id/drawerLayout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:fitsSystemWindows=
"false"
tools:openDrawer=
"start"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<androidx.fragment.app.FragmentContainerView
android:id=
"@+id/nav_host_fragment"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"1"
/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id=
"@+id/bottom_nav_view"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
app:elevation=
"4dp"
app:itemIconSize=
"24dp"
app:itemIconTint=
"@color/nav_item_tint"
app:itemTextColor=
"@color/nav_item_tint"
app:labelVisibilityMode=
"labeled"
app:menu=
"@menu/bottom_nav_menu"
/>
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"start"
android:background=
"@color/white100"
android:fitsSystemWindows=
"false"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<include
android:id=
"@+id/header"
layout=
"@layout/layout_home_header"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:layout_marginTop=
"@dimen/_14sdp"
android:background=
"@color/grey20"
/>
<androidx.core.widget.NestedScrollView
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<LinearLayout
android:id=
"@+id/btn_safety"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/_24sdp"
android:background=
"?android:selectableItemBackground"
android:orientation=
"horizontal"
android:paddingVertical=
"18dp"
android:paddingStart=
"30dp"
android:paddingEnd=
"13dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_safety"
/>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_weight=
"1"
android:text=
"@string/bezopasnost"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_baseline_keyboard_arrow_right"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/btn_language"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/_10sdp"
android:background=
"?android:selectableItemBackground"
android:orientation=
"horizontal"
android:paddingVertical=
"10dp"
android:paddingStart=
"30dp"
android:paddingEnd=
"13dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_image_language"
/>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_weight=
"1"
android:orientation=
"vertical"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:text=
"@string/language_app"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/txt_language"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:text=
"Русский"
android:textColor=
"@color/grey80"
android:textSize=
"12sp"
/>
</LinearLayout>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_baseline_keyboard_arrow_right"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/btn_support"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/_10sdp"
android:background=
"?android:selectableItemBackground"
android:orientation=
"horizontal"
android:paddingVertical=
"18dp"
android:paddingStart=
"30dp"
android:paddingEnd=
"10dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_image_support"
/>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_weight=
"1"
android:text=
"@string/support"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_baseline_keyboard_arrow_right"
/>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"1dp"
android:layout_marginTop=
"@dimen/_14sdp"
android:background=
"@color/grey20"
/>
<TextView
android:id=
"@+id/txt_redact_data"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"30dp"
android:background=
"?android:selectableItemBackground"
android:ellipsize=
"end"
android:maxLines=
"1"
android:text=
"@string/redact_data"
android:textColor=
"@color/link"
android:textSize=
"14sp"
/>
<TextView
android:id=
"@+id/txt_public_oferta"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"12dp"
android:background=
"?android:selectableItemBackground"
android:ellipsize=
"end"
android:maxLines=
"1"
android:text=
"@string/public_oferta"
android:textColor=
"@color/link"
android:textSize=
"14sp"
/>
<TextView
android:id=
"@+id/txt_confidensialnost"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"32dp"
android:layout_marginTop=
"12dp"
android:layout_marginBottom=
"20dp"
android:background=
"?android:selectableItemBackground"
android:ellipsize=
"end"
android:maxLines=
"1"
android:text=
"@string/txt_confidensialnost"
android:textColor=
"@color/link"
android:textSize=
"14sp"
/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
android:id=
"@+id/btn_exit"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"16dp"
android:background=
"?android:selectableItemBackground"
android:orientation=
"horizontal"
android:paddingVertical=
"16dp"
android:paddingStart=
"30dp"
android:paddingEnd=
"10dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_log_out"
/>
<TextView
android:id=
"@+id/txt_user_name"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginStart=
"12dp"
android:layout_weight=
"1"
android:text=
"@string/exit"
android:textSize=
"20sp"
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/txt_user_phone"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:text=
"v 0.01.1"
android:textColor=
"@color/grey80"
android:textSize=
"14sp"
/>
</LinearLayout>
</LinearLayout>
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_my_verification.xml
View file @
b0fbe4c3
...
@@ -161,10 +161,11 @@
...
@@ -161,10 +161,11 @@
<TextView
<TextView
android:id=
"@+id/sent_code_again"
android:id=
"@+id/sent_code_again"
android:layout_width=
"
wrap_cont
ent"
android:layout_width=
"
match_par
ent"
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"
...
...
app/src/main/res/layout/fragment_new_pin.xml
0 → 100644
View file @
b0fbe4c3
<?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"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:fitsSystemWindows=
"false"
android:background=
"@color/white"
android:orientation=
"vertical"
>
<com.google.android.material.appbar.MaterialToolbar
android:id=
"@+id/toolbar"
android:layout_marginTop=
"24dp"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
/>
<TextView
android:id=
"@+id/txt_enter_pin"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"@dimen/_14sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter_new_pin"
android:textSize=
"29sp"
android:textStyle=
"bold"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"0.8"
>
<TextView
android:id=
"@+id/txt_not_pin"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"top|center"
android:layout_marginTop=
"@dimen/_10sdp"
android:layout_marginBottom=
"@dimen/_30sdp"
android:text=
"@string/pin_not_same"
android:textColor=
"@color/primary100"
android:textSize=
"16sp"
android:textStyle=
"bold"
android:visibility=
"gone"
/>
<LinearLayout
android:layout_width=
"@dimen/_100sdp"
android:layout_gravity=
"center"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_height=
"wrap_content"
>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/card_pin"
android:layout_width=
"wrap_content"
android:layout_gravity=
"center"
android:layout_height=
"wrap_content"
app:cardCornerRadius=
"0dp"
android:minWidth=
"@dimen/_100sdp"
android:minHeight=
"@dimen/_32sdp"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_pin"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:orientation=
"horizontal"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount=
"4"
tools:listitem=
"@layout/item_pin"
/>
</com.google.android.material.card.MaterialCardView>
<View
android:layout_width=
"@dimen/_120sdp"
android:background=
"@color/grey30"
android:layout_height=
"2dp"
/>
</LinearLayout>
</FrameLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/btn_view_group"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"3"
android:paddingStart=
"@dimen/_44sdp"
android:paddingEnd=
"@dimen/_44sdp"
>
<TextView
android:id=
"@+id/btn_1"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_1"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_2"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_2"
app:layout_constraintEnd_toStartOf=
"@id/btn_3"
app:layout_constraintStart_toEndOf=
"@id/btn_1"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_3"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_3"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_4"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_4"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_1"
/>
<TextView
android:id=
"@+id/btn_5"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_5"
app:layout_constraintEnd_toStartOf=
"@id/btn_6"
app:layout_constraintStart_toEndOf=
"@id/btn_4"
app:layout_constraintTop_toTopOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_6"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_6"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_7"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_7"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_8"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_8"
app:layout_constraintEnd_toStartOf=
"@id/btn_9"
app:layout_constraintStart_toEndOf=
"@id/btn_7"
app:layout_constraintTop_toTopOf=
"@id/btn_7"
/>
<TextView
android:id=
"@+id/btn_9"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_9"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/btn_7"
/>
<TextView
android:id=
"@+id/btn_0"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_0"
app:layout_constraintEnd_toEndOf=
"@id/btn_8"
app:layout_constraintStart_toStartOf=
"@id/btn_8"
app:layout_constraintTop_toBottomOf=
"@id/btn_7"
/>
<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/_4sdp"
android:src=
"@drawable/ic_vector_remove"
app:layout_constraintBottom_toBottomOf=
"@id/btn_0"
app:layout_constraintEnd_toEndOf=
"@id/btn_9"
app:layout_constraintStart_toStartOf=
"@id/btn_9"
app:layout_constraintTop_toTopOf=
"@id/btn_0"
/>
<TextView
android:layout_width=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_0"
android:text=
"@string/forget_pin"
android:gravity=
"center"
android:id=
"@+id/btn_forget_pin"
android:paddingVertical=
"12dp"
android:background=
"?android:selectableItemBackground"
android:textSize=
"14sp"
android:textStyle=
"bold"
android:layout_marginTop=
"@dimen/_20sdp"
android:textColor=
"@color/primary100"
android:layout_height=
"wrap_content"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_old_pin.xml
0 → 100644
View file @
b0fbe4c3
<?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"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:fitsSystemWindows=
"false"
android:layout_height=
"match_parent"
android:background=
"@color/white"
android:orientation=
"vertical"
>
<View
android:layout_width=
"match_parent"
android:id=
"@+id/div"
android:background=
"@android:color/transparent"
android:layout_height=
"24dp"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<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"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:gravity=
"center"
android:visibility=
"invisible"
android:id=
"@+id/error_layout"
android:orientation=
"vertical"
android:background=
"@color/primary100"
android:layout_height=
"match_parent"
>
<TextView
android:layout_width=
"wrap_content"
android:textColor=
"@color/white100"
android:id=
"@+id/error_title"
android:layout_height=
"wrap_content"
android:text=
"@string/wrong_pin"
android:textSize=
"16sp"
android:textStyle=
"bold"
/>
<TextView
android:layout_width=
"wrap_content"
android:textColor=
"@color/white100"
android:id=
"@+id/error_text"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"@dimen/_14sdp"
android:text=
"@string/popitok"
android:textSize=
"14sp"
/>
</LinearLayout>
</FrameLayout>
<TextView
android:id=
"@+id/txt_enter_pin"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"@dimen/_14sdp"
android:layout_marginTop=
"@dimen/_14sdp"
android:text=
"@string/enter_old_pin"
android:textSize=
"29sp"
android:textStyle=
"bold"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"0.8"
>
<LinearLayout
android:layout_width=
"@dimen/_100sdp"
android:layout_gravity=
"center"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_height=
"wrap_content"
>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/card_pin"
android:layout_width=
"wrap_content"
android:layout_gravity=
"center"
android:layout_height=
"wrap_content"
app:cardCornerRadius=
"0dp"
android:minWidth=
"@dimen/_100sdp"
android:minHeight=
"@dimen/_32sdp"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_pin"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:orientation=
"horizontal"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount=
"4"
tools:listitem=
"@layout/item_pin"
/>
</com.google.android.material.card.MaterialCardView>
<View
android:layout_width=
"@dimen/_120sdp"
android:background=
"@color/grey30"
android:layout_height=
"2dp"
/>
</LinearLayout>
</FrameLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/btn_view_group"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"3"
android:paddingStart=
"@dimen/_44sdp"
android:paddingEnd=
"@dimen/_44sdp"
>
<TextView
android:id=
"@+id/btn_1"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_1"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_2"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_2"
app:layout_constraintEnd_toStartOf=
"@id/btn_3"
app:layout_constraintStart_toEndOf=
"@id/btn_1"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_3"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_3"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
<TextView
android:id=
"@+id/btn_4"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_4"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_1"
/>
<TextView
android:id=
"@+id/btn_5"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_5"
app:layout_constraintEnd_toStartOf=
"@id/btn_6"
app:layout_constraintStart_toEndOf=
"@id/btn_4"
app:layout_constraintTop_toTopOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_6"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_6"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_7"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_7"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_4"
/>
<TextView
android:id=
"@+id/btn_8"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_8"
app:layout_constraintEnd_toStartOf=
"@id/btn_9"
app:layout_constraintStart_toEndOf=
"@id/btn_7"
app:layout_constraintTop_toTopOf=
"@id/btn_7"
/>
<TextView
android:id=
"@+id/btn_9"
style=
"@style/BtnStyle"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_9"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/btn_7"
/>
<TextView
android:id=
"@+id/btn_0"
style=
"@style/BtnStyle"
android:layout_marginTop=
"@dimen/_16sdp"
android:background=
"@drawable/bgn_pin_btn"
android:text=
"@string/_0"
app:layout_constraintEnd_toEndOf=
"@id/btn_8"
app:layout_constraintStart_toStartOf=
"@id/btn_8"
app:layout_constraintTop_toBottomOf=
"@id/btn_7"
/>
<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/_4sdp"
android:src=
"@drawable/ic_vector_remove"
app:layout_constraintBottom_toBottomOf=
"@id/btn_0"
app:layout_constraintEnd_toEndOf=
"@id/btn_9"
app:layout_constraintStart_toStartOf=
"@id/btn_9"
app:layout_constraintTop_toTopOf=
"@id/btn_0"
/>
<TextView
android:layout_width=
"match_parent"
app:layout_constraintTop_toBottomOf=
"@id/btn_0"
android:text=
"@string/forget_pin"
android:gravity=
"center"
android:paddingVertical=
"12dp"
android:textSize=
"14sp"
android:background=
"?android:selectableItemBackground"
android:textStyle=
"bold"
android:id=
"@+id/btn_forget_pin"
android:layout_marginTop=
"@dimen/_20sdp"
android:textColor=
"@color/primary100"
android:layout_height=
"wrap_content"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_pin.xml
View file @
b0fbe4c3
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
<FrameLayout
<FrameLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:layout_weight=
"
1
"
>
android:layout_weight=
"
0.8
"
>
<TextView
<TextView
android:id=
"@+id/txt_not_pin"
android:id=
"@+id/txt_not_pin"
...
...
app/src/main/res/layout/fragment_safety.xml
View file @
b0fbe4c3
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +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:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:fitsSystemWindows=
"false"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
android:orientation=
"vertical"
>
...
@@ -10,18 +11,21 @@
...
@@ -10,18 +11,21 @@
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=
"34dp"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
app:title=
"@string/safety"
/>
app:title=
"@string/safety"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:background=
"@color/grey20"
android:background=
"@color/grey20"
android:layout_marginTop=
"40dp"
android:layout_marginTop=
"20dp"
android:paddingHorizontal=
"16dp"
android:paddingHorizontal=
"24dp"
android:id=
"@+id/txt_phone_safety"
android:paddingVertical=
"12dp"
android:paddingVertical=
"12dp"
android:textColor=
"@color/black80"
android:gravity=
"center"
android:gravity=
"center"
android:layout_marginHorizontal=
"12dp"
android:layout_marginHorizontal=
"12dp"
android:text=
"
Настройки безопасности действуют только для основного номера +998 97 999-99-99
"
android:text=
"
@string/settings_safety
"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
<LinearLayout
<LinearLayout
...
...
app/src/main/res/layout/fragment_support.xml
View file @
b0fbe4c3
...
@@ -10,10 +10,19 @@
...
@@ -10,10 +10,19 @@
android:id=
"@+id/toolbar"
android:id=
"@+id/toolbar"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
app:title=
"@string/support"
app:title=
"@string/support"
android:layout_marginTop=
"24dp"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
/>
/>
<ScrollView
android:layout_width=
"match_parent"
android:id=
"@+id/scrollView"
android:layout_height=
"match_parent"
>
<LinearLayout
android:layout_width=
"match_parent"
android:orientation=
"vertical"
android:layout_height=
"wrap_content"
>
<LinearLayout
<LinearLayout
android:id=
"@+id/btn_0890"
android:id=
"@+id/btn_0890"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
@@ -26,6 +35,7 @@
...
@@ -26,6 +35,7 @@
<ImageView
<ImageView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:contentDescription=
"@string/phone"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:src=
"@drawable/ic_vector_phone"
/>
android:src=
"@drawable/ic_vector_phone"
/>
...
@@ -37,14 +47,15 @@
...
@@ -37,14 +47,15 @@
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"0890"
tools:text=
"0890"
android:id=
"@+id/txt_phone1"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:textColor=
"@color/black100"
android:textColor=
"@color/black100"
android:textSize=
"15sp"
/>
android:textSize=
"15sp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"Для абонентов
"
android:text=
"@string/for_abonent
"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
...
@@ -65,6 +76,7 @@
...
@@ -65,6 +76,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:contentDescription=
"@string/phone"
android:src=
"@drawable/ic_vector_phone"
/>
android:src=
"@drawable/ic_vector_phone"
/>
<LinearLayout
<LinearLayout
...
@@ -75,14 +87,15 @@
...
@@ -75,14 +87,15 @@
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android
:text=
"+998 97 130 09 09"
tools
:text=
"+998 97 130 09 09"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:id=
"@+id/txt_phone2"
android:textColor=
"@color/black100"
android:textColor=
"@color/black100"
android:textSize=
"15sp"
/>
android:textSize=
"15sp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"Со всех номеров
"
android:text=
"@string/all_nomer
"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
...
@@ -103,6 +116,7 @@
...
@@ -103,6 +116,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:contentDescription=
"@string/phone"
android:src=
"@drawable/ic_vector_phone"
/>
android:src=
"@drawable/ic_vector_phone"
/>
<LinearLayout
<LinearLayout
...
@@ -113,14 +127,15 @@
...
@@ -113,14 +127,15 @@
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"+998
97 203 10 10"
tools:text=
"+998
97 203 10 10"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:id=
"@+id/txt_phone3"
android:textColor=
"@color/black100"
android:textColor=
"@color/black100"
android:textSize=
"15sp"
/>
android:textSize=
"15sp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"Связь с нами
"
android:text=
"@string/contact_us
"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
...
@@ -141,6 +156,7 @@
...
@@ -141,6 +156,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:contentDescription=
"@string/telegram_bot"
android:src=
"@drawable/ic_vector_telegram"
/>
android:src=
"@drawable/ic_vector_telegram"
/>
<LinearLayout
<LinearLayout
...
@@ -151,14 +167,15 @@
...
@@ -151,14 +167,15 @@
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"MobiuzHelpBot
"
tools:text=
"MobiuzHelpBot
"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:id=
"@+id/txt_help_bot"
android:textColor=
"@color/black100"
android:textColor=
"@color/black100"
android:textSize=
"15sp"
/>
android:textSize=
"15sp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"Телеграмм бот
"
android:text=
"@string/telegram_bot
"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
...
@@ -179,6 +196,7 @@
...
@@ -179,6 +196,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_gravity=
"center"
android:contentDescription=
"@string/email"
android:src=
"@drawable/ic_group_message"
/>
android:src=
"@drawable/ic_group_message"
/>
<LinearLayout
<LinearLayout
...
@@ -189,14 +207,14 @@
...
@@ -189,14 +207,14 @@
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"Отправить обращение
"
android:text=
"@string/send_an_appeal
"
android:textStyle=
"bold"
android:textStyle=
"bold"
android:textColor=
"@color/black100"
android:textColor=
"@color/black100"
android:textSize=
"15sp"
/>
android:textSize=
"15sp"
/>
<TextView
<TextView
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:text=
"Ваше мнение имеет значение
"
android:text=
"@string/your_opinion_matters
"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:textColor=
"@color/grey110"
android:textColor=
"@color/grey110"
android:layout_height=
"wrap_content"
/>
android:layout_height=
"wrap_content"
/>
...
@@ -204,6 +222,9 @@
...
@@ -204,6 +222,9 @@
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_tarifs.xml
deleted
100644 → 0
View file @
a90983ff
<?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:fitsSystemWindows=
"true"
android:orientation=
"vertical"
>
<com.google.android.material.appbar.AppBarLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<com.google.android.material.appbar.MaterialToolbar
android:id=
"@+id/toolbar"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white100"
app:navigationIcon=
"@drawable/ic_baseline_arrow_back"
app:title=
"@string/tariffs"
/>
<com.google.android.material.tabs.TabLayout
android:id=
"@+id/tabLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white100"
app:tabIndicatorColor=
"@color/primary100"
app:tabMode=
"fixed"
app:tabSelectedTextColor=
"@color/primary100"
app:tabTextColor=
"@color/grey70"
/>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager2.widget.ViewPager2
android:id=
"@+id/view_pager"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
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