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
ea5a7a11
Commit
ea5a7a11
authored
Dec 01, 2021
by
shohboz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ADD]
MUS-129
, Feature added biometric add or not screen
parent
2acc7e5c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
272 additions
and
0 deletions
+272
-0
BiometricFragment.kt
app/src/main/java/uz/ssd/mobiuz/ui/auth/BiometricFragment.kt
+121
-0
ic_fingerprint.xml
app/src/main/res/drawable/ic_fingerprint.xml
+16
-0
fragment_biometric.xml
app/src/main/res/layout/fragment_biometric.xml
+123
-0
item_confirm.xml
app/src/main/res/layout/item_confirm.xml
+12
-0
No files found.
app/src/main/java/uz/ssd/mobiuz/ui/auth/BiometricFragment.kt
0 → 100644
View file @
ea5a7a11
package
uz.ssd.mobiuz.ui.auth
import
android.content.Intent
import
android.os.Bundle
import
android.view.View
import
uz.ssd.mobiuz.R
import
androidx.core.os.bundleOf
import
androidx.fragment.app.viewModels
import
androidx.lifecycle.lifecycleScope
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
uz.ssd.mobiuz.MainActivity
import
uz.ssd.mobiuz.databinding.FragmentBiometricBinding
import
uz.ssd.mobiuz.databinding.FragmentLoginBinding
import
uz.ssd.mobiuz.model.UserAuth
import
uz.ssd.mobiuz.network.model.UiStateObject
import
uz.ssd.mobiuz.ui.base.BaseFragment
import
uz.ssd.mobiuz.ui.global.TextWatcherWrapper
import
uz.ssd.mobiuz.utils.ButtonClick
import
uz.ssd.mobiuz.utils.CONSTANTS
import
uz.ssd.mobiuz.utils.Utils
import
uz.ssd.mobiuz.utils.extensions.customLog
import
uz.ssd.mobiuz.utils.extensions.showMessage
@AndroidEntryPoint
class
BiometricFragment
:
BaseFragment
(
R
.
layout
.
fragment_biometric
)
{
private
var
_bn
:
FragmentBiometricBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
var
phone
=
""
var
phoneRaw
=
""
private
val
viewModel
:
AuthViewModel
by
viewModels
()
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentBiometricBinding
.
bind
(
view
)
setUpUI
()
collects
()
}
override
fun
setUpUI
()
{
bn
.
apply
{
btnBack
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
navigateUp
()
}
})
txtSkip
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
requireActivity
().
finish
()
startActivity
(
Intent
(
requireContext
(),
MainActivity
::
class
.
java
))
}
})
btnNext
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
requireActivity
().
finish
()
startActivity
(
Intent
(
requireContext
(),
MainActivity
::
class
.
java
))
}
})
btnSwitch
.
setOnCheckedChangeListener
{
buttonView
,
isChecked
->
}
}
}
override
fun
collects
()
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
loginUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
showProgressDialog
(
false
)
if
(
phone
!=
"+998949125150"
)
{
navController
.
navigate
(
R
.
id
.
enterPasswordFragment
,
null
,
Utils
.
navOptions
())
}
else
{
navController
.
navigate
(
R
.
id
.
passwordFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phoneRaw
),
Utils
.
navOptions
())
}
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showMessage
(
it
.
message
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
}
override
fun
onDestroy
()
{
_bn
=
null
super
.
onDestroy
()
}
}
//fun main(){
// var ss = -421
// if(ss.toString().startsWith("-")){
// ss = ss.toString().replace("-","").toInt()
// val dd = (ss.toString().reversed().toInt()) * -1
// print(dd)
// }else{
// val dd = ss.toString().reversed().toInt()
// print(dd)
// }
//
//}
\ No newline at end of file
app/src/main/res/drawable/ic_fingerprint.xml
0 → 100644
View file @
ea5a7a11
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"140dp"
android:height=
"140dp"
android:viewportWidth=
"140"
android:viewportHeight=
"140"
>
<path
android:pathData=
"M67.239,31.086C60.054,31.542 52.825,33.695 46.641,37.222C44.878,38.228 44.789,38.307 44.635,38.994C44.493,39.63 44.741,40.318 45.241,40.671C45.882,41.124 46.494,40.979 48.352,39.935C53.326,37.14 58.977,35.337 65.149,34.577C67.437,34.295 73.276,34.332 75.523,34.644C80.988,35.4 84.832,36.548 89.599,38.846C92.058,40.032 92.119,40.052 92.703,39.876C93.65,39.59 94.142,38.529 93.708,37.708C93.459,37.237 93.242,37.088 91.493,36.19C84.112,32.399 75.411,30.568 67.239,31.086ZM65.597,40.845C52.645,42.152 41.524,48.58 35.799,58.07C34.946,59.484 34.911,59.589 35.082,60.214C35.282,60.943 35.829,61.411 36.483,61.411C37.229,61.411 37.699,61.052 38.334,60C40.612,56.225 43.646,53.089 47.611,50.412C60.543,41.68 79.457,41.68 92.389,50.412C96.382,53.108 99.342,56.168 101.643,59.979C102.358,61.162 102.731,61.448 103.529,61.425C104.171,61.406 104.723,60.926 104.918,60.214C105.089,59.589 105.054,59.484 104.201,58.07C99.018,49.479 89.274,43.294 77.765,41.291C74,40.636 69.357,40.466 65.597,40.845ZM67.388,50.329C67.142,50.363 66.269,50.466 65.448,50.558C51.998,52.073 41.478,61.329 38.887,73.926C38.096,77.771 38,82.261 38.641,85.394C39.291,88.566 41.215,94.09 41.889,94.721C42.85,95.618 44.477,94.939 44.477,93.64C44.477,93.363 44.216,92.475 43.898,91.667C43.05,89.513 42.157,86.657 41.769,84.855C41.483,83.528 41.429,82.841 41.435,80.566C41.442,77.675 41.582,76.403 42.175,73.833C44.462,63.929 52.054,56.594 62.387,54.304C65.948,53.515 71.112,53.281 74.257,53.766C80.864,54.786 86.041,57.361 90.454,61.822C94.789,66.206 97.437,71.669 98.371,78.159C98.466,78.821 98.553,80.378 98.564,81.619C98.58,83.466 98.532,84.027 98.304,84.704C97.041,88.449 93.288,90.861 89.641,90.274C87.622,89.949 86.246,89.207 84.855,87.692C83.388,86.094 82.921,84.802 82.69,81.695C82.421,78.067 81.433,75.547 79.434,73.383C75.217,68.822 67.195,68.206 62.037,72.048C60.287,73.351 58.812,75.43 58.047,77.673C57.421,79.508 57.264,80.829 57.356,83.5C57.491,87.39 58.233,90.289 60,93.827C62.047,97.926 65.101,101.464 69.327,104.63C71.268,106.085 74.227,107.88 74.851,107.982C75.741,108.127 76.567,107.381 76.567,106.433C76.567,105.67 76.173,105.259 74.423,104.203C65.556,98.854 60.888,91.865 60.493,83.349C60.282,78.801 61.926,75.525 65.241,73.889C66.995,73.023 67.967,72.801 70,72.801C72.033,72.801 73.005,73.023 74.759,73.889C76.946,74.968 78.548,76.978 79.182,79.438C79.321,79.976 79.488,81.262 79.553,82.297C79.617,83.331 79.783,84.618 79.921,85.156C80.902,88.988 84.037,92.155 87.911,93.227C89.388,93.635 92.112,93.602 93.651,93.157C97.366,92.083 100.165,89.322 101.381,85.532C101.763,84.341 101.891,81.123 101.65,78.771C100.144,64.036 89.57,52.837 75.075,50.623C73.597,50.398 68.361,50.197 67.388,50.329ZM67.388,60.041C58.089,61.016 50.726,67.437 48.424,76.579C47.783,79.126 47.572,83.034 47.91,86.134C48.573,92.209 50.88,97.888 54.818,103.137C56.258,105.057 58.657,107.735 59.083,107.898C60.363,108.389 61.658,106.935 61.021,105.723C60.925,105.542 60.265,104.717 59.554,103.89C56.023,99.784 53.766,95.985 52.403,91.852C51.552,89.274 51.209,87.418 51.013,84.328C50.866,82.007 50.876,81.35 51.081,79.739C52.279,70.346 59.002,63.897 68.328,63.195C74.535,62.728 80.314,64.535 84.037,68.107C87.013,70.963 88.549,74.286 88.961,78.76C89.209,81.449 89.218,81.486 89.719,81.911C90.378,82.471 91.178,82.441 91.78,81.834C92.222,81.389 92.24,81.32 92.24,80.085C92.24,76.332 91.031,72.237 88.984,69.055C87.963,67.467 85.427,64.885 83.815,63.792C81.772,62.406 78.864,61.168 76.194,60.549C73.692,59.968 70.073,59.759 67.388,60.041ZM69.328,79.35C68.611,79.674 68.447,80.1 68.482,81.544C68.71,90.883 77.102,99.987 87.762,102.461C90.361,103.065 93.521,103.356 94.376,103.071C95.311,102.76 95.712,101.572 95.165,100.732C94.793,100.159 94.495,100.07 92.442,99.911C88.964,99.642 86.452,98.987 83.508,97.582C79.781,95.804 76.683,93.167 74.556,89.963C72.8,87.318 71.917,84.806 71.649,81.691C71.507,80.051 71.28,79.55 70.565,79.298C69.99,79.096 69.882,79.101 69.328,79.35Z"
android:fillColor=
"#E62229"
android:fillType=
"evenOdd"
/>
<path
android:strokeWidth=
"1"
android:pathData=
"M70,0.5L70,0.5A69.5,69.5 0,0 1,139.5 70L139.5,70A69.5,69.5 0,0 1,70 139.5L70,139.5A69.5,69.5 0,0 1,0.5 70L0.5,70A69.5,69.5 0,0 1,70 0.5z"
android:strokeAlpha=
"0.06"
android:fillColor=
"#00000000"
android:strokeColor=
"#000000"
/>
</vector>
app/src/main/res/layout/fragment_biometric.xml
0 → 100644
View file @
ea5a7a11
<?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:orientation=
"vertical"
tools:context=
".ui.auth.BiometricFragment"
>
<FrameLayout
android:layout_width=
"match_parent"
android:paddingHorizontal=
"@dimen/_12sdp"
android:layout_height=
"?actionBarSize"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center|start"
android:padding=
"@dimen/_4sdp"
android:id=
"@+id/btn_back"
android:background=
"?selectableItemBackgroundBorderless"
android:src=
"@drawable/ic_baseline_arrow_back"
/>
<TextView
android:layout_width=
"wrap_content"
android:text=
"Пропустить"
android:id=
"@+id/txt_skip"
android:padding=
"@dimen/_4sdp"
android:textStyle=
"bold"
android:background=
"?android:selectableItemBackground"
android:textColor=
"@color/red_dark"
android:layout_gravity=
"center|end"
android:layout_height=
"wrap_content"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_marginTop=
"@dimen/_12sdp"
android:layout_height=
"wrap_content"
android:gravity=
"center"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@drawable/ic_fingerprint"
/>
</LinearLayout>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginTop=
"@dimen/_12sdp"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:text=
"Биометрический вход"
android:textSize=
"@dimen/_20sdp"
android:textStyle=
"bold"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:gravity=
"center"
android:layout_marginTop=
"@dimen/_12sdp"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:text=
"Быстро войти в систему с помощью отпечатка пальца
или Face ID."
android:textColor=
"@color/text_color_77"
android:textSize=
"@dimen/_14sdp"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:paddingHorizontal=
"@dimen/_12sdp"
android:layout_height=
"0dp"
android:gravity=
"center"
android:layout_weight=
"1"
>
<TextView
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:text=
"Активировать"
android:textStyle=
"bold"
android:layout_height=
"wrap_content"
/>
<Switch
android:layout_width=
"wrap_content"
android:id=
"@+id/btn_switch"
android:layout_height=
"wrap_content"
tools:ignore=
"UseSwitchCompatOrMaterialXml"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_weight=
"1"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginHorizontal=
"@dimen/_12sdp"
android:text=
"Измените это в любое время в настройках"
android:textColor=
"@color/text_color_77"
android:textSize=
"@dimen/_14sdp"
/>
</LinearLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:gravity=
"end|bottom"
android:layout_weight=
"1"
>
<com.google.android.material.button.MaterialButton
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"end"
android:id=
"@+id/btn_next"
android:layout_marginEnd=
"@dimen/_12sdp"
android:textAllCaps=
"false"
android:padding=
"@dimen/_10sdp"
android:text=
"@string/continuoue_task"
android:textColor=
"@color/red"
app:backgroundTint=
"@color/white"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
app/src/main/res/layout/item_confirm.xml
0 → 100644
View file @
ea5a7a11
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<EditText
android:layout_width=
"wrap_content"
android:inputType=
"number"
android:layout_height=
"wrap_content"
/>
</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