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
4d59fc7a
Commit
4d59fc7a
authored
Jan 06, 2022
by
shohboz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[UPD]
MUS-312
, Feature, updated payment continue
parent
d2c1ab1a
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
916 additions
and
35 deletions
+916
-35
DatabaseModule.kt
.../main/java/uz/mobiuz/mobiservice/dev/di/DatabaseModule.kt
+15
-8
Monitoring.kt
...c/main/java/uz/mobiuz/mobiservice/dev/model/Monitoring.kt
+14
-0
MonitoringDao.kt
...uz/mobiuz/mobiservice/dev/model/database/MonitoringDao.kt
+33
-0
RoomDatabase.kt
.../uz/mobiuz/mobiservice/dev/model/database/RoomDatabase.kt
+11
-0
CardRepository.kt
...biuz/mobiservice/dev/network/repository/CardRepository.kt
+9
-0
AuthViewModel.kt
...n/java/uz/mobiuz/mobiservice/dev/ui/auth/AuthViewModel.kt
+55
-0
VerificationFragment.kt
...iservice/dev/ui/auth/verification/VerificationFragment.kt
+79
-18
CONSTANTS.kt
...ain/java/uz/mobiuz/mobiservice/dev/ui/global/CONSTANTS.kt
+3
-0
HistoryViewModel.kt
...mobiuz/mobiservice/dev/ui/sdk/history/HistoryViewModel.kt
+54
-0
MonitoringLocalFragment.kt
...mobiservice/dev/ui/sdk/history/MonitoringLocalFragment.kt
+98
-0
PaymentSuccessfulFragment.kt
...rvice/dev/ui/sdk/pay/success/PaymentSuccessfulFragment.kt
+17
-0
ReplenishBalanceFragment.kt
...obiservice/dev/ui/sdk/payment/ReplenishBalanceFragment.kt
+489
-0
fragment_monitoring_local.xml
app/src/main/res/layout/fragment_monitoring_local.xml
+36
-7
nav_graph_home.xml
app/src/main/res/navigation/nav_graph_home.xml
+3
-2
No files found.
app/src/main/java/uz/mobiuz/mobiservice/dev/di/DatabaseModule.kt
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.di
package
uz.mobiuz.mobiservice.dev.di
import
android.content.Context
import
androidx.room.Room
import
dagger.Module
import
dagger.Module
import
dagger.Provides
import
dagger.hilt.InstallIn
import
dagger.hilt.InstallIn
import
dagger.hilt.android.qualifiers.ApplicationContext
import
dagger.hilt.components.SingletonComponent
import
dagger.hilt.components.SingletonComponent
import
uz.mobiuz.mobiservice.dev.model.database.MonitoringDao
import
uz.mobiuz.mobiservice.dev.model.database.RoomDatabase
import
javax.inject.Singleton
@Module
@Module
@InstallIn
(
SingletonComponent
::
class
)
@InstallIn
(
SingletonComponent
::
class
)
class
DatabaseModule
{
class
DatabaseModule
{
//
@Provides
@Provides
//
@Singleton
@Singleton
// fun getDatabase(@ApplicationContext context: Context): App
Database =
fun
getDatabase
(
@ApplicationContext
context
:
Context
):
Room
Database
=
// Room.databaseBuilder(context, App
Database::class.java,"block").build()
Room
.
databaseBuilder
(
context
,
Room
Database
::
class
.
java
,
"block"
).
build
()
//
//
@Provides
@Provides
//
@Singleton
@Singleton
// fun getProductDao(database: AppDatabase): ProductDao = database.product
Dao()
fun
getProductDao
(
database
:
RoomDatabase
):
MonitoringDao
=
database
.
monitoring
Dao
()
}
}
app/src/main/java/uz/mobiuz/mobiservice/dev/model/Monitoring.kt
0 → 100644
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.model
import
androidx.room.Entity
import
androidx.room.PrimaryKey
@Entity
(
tableName
=
"monitoring"
)
class
Monitoring
(
@PrimaryKey
(
autoGenerate
=
true
)
val
id
:
Int
=
0
,
val
date
:
Long
=
0L
,
val
phone
:
String
=
""
,
val
amount
:
Long
=
0L
,
val
pan
:
String
=
""
)
app/src/main/java/uz/mobiuz/mobiservice/dev/model/database/MonitoringDao.kt
0 → 100644
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.model.database
import
androidx.room.*
import
io.reactivex.Single
import
uz.mobiuz.mobiservice.dev.model.Monitoring
/**
* Created by DostonbekIbragimov on 21/12/2021.
*/
@Dao
interface
MonitoringDao
{
@Query
(
"SELECT * FROM monitoring"
)
fun
getAllMonitoring
():
Single
<
List
<
Monitoring
>>
@Query
(
"DELETE FROM monitoring"
)
fun
deleteAllMonitoring
()
@Query
(
"SELECT * FROM monitoring WHERE id = :id"
)
fun
getCardById
(
id
:
String
):
Monitoring
?
@Insert
(
onConflict
=
OnConflictStrategy
.
REPLACE
)
fun
addMonitoring
(
cardInfo
:
Monitoring
):
Long
@Update
fun
updateMonitoring
(
monitoring
:
List
<
Monitoring
>)
@Update
fun
updateMonitoring
(
monitoringInfo
:
Monitoring
)
@Delete
fun
deleteMonitoring
(
monitoringInfo
:
Monitoring
)
}
\ No newline at end of file
app/src/main/java/uz/mobiuz/mobiservice/dev/model/database/RoomDatabase.kt
0 → 100644
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.model.database
import
androidx.room.Database
import
androidx.room.RoomDatabase
import
uz.agr.mobiuz.model.entity.Monitoring
@Database
(
entities
=
[
Monitoring
::
class
],
version
=
1
)
abstract
class
RoomDatabase
:
RoomDatabase
()
{
abstract
fun
monitoringDao
():
MonitoringDao
}
app/src/main/java/uz/mobiuz/mobiservice/dev/network/repository/CardRepository.kt
View file @
4d59fc7a
...
@@ -7,7 +7,9 @@ import kotlinx.coroutines.withContext
...
@@ -7,7 +7,9 @@ import kotlinx.coroutines.withContext
import
uz.agr.sdk.core.entity.card.CardRegistration
import
uz.agr.sdk.core.entity.card.CardRegistration
import
uz.agr.sdk.pgw_core.mobi.BaseListener
import
uz.agr.sdk.pgw_core.mobi.BaseListener
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
uz.mobiuz.mobiservice.dev.model.Monitoring
import
uz.mobiuz.mobiservice.dev.model.SharedPref
import
uz.mobiuz.mobiservice.dev.model.SharedPref
import
uz.mobiuz.mobiservice.dev.model.database.MonitoringDao
import
uz.mobiuz.mobiservice.dev.network.api.ApiService
import
uz.mobiuz.mobiservice.dev.network.api.ApiService
import
uz.mobiuz.mobiservice.dev.network.model.Customer
import
uz.mobiuz.mobiservice.dev.network.model.Customer
import
uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import
uz.mobiuz.mobiservice.dev.network.model.UiStateObject
...
@@ -19,9 +21,16 @@ import javax.inject.Singleton
...
@@ -19,9 +21,16 @@ import javax.inject.Singleton
@Singleton
@Singleton
class
CardRepository
@Inject
constructor
(
class
CardRepository
@Inject
constructor
(
private
val
apiService
:
ApiService
,
private
val
apiService
:
ApiService
,
private
val
dao
:
MonitoringDao
,
private
val
pref
:
SharedPref
,
private
val
pref
:
SharedPref
,
@ApplicationContext
val
context
:
Context
@ApplicationContext
val
context
:
Context
)
{
)
{
suspend
fun
addMonitoring
(
data
:
Monitoring
){
withContext
(
Dispatchers
.
IO
){
dao
.
addMonitoring
(
data
)
}
}
}
}
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/auth/AuthViewModel.kt
View file @
4d59fc7a
...
@@ -13,6 +13,8 @@ import kotlinx.coroutines.flow.SharedFlow
...
@@ -13,6 +13,8 @@ import kotlinx.coroutines.flow.SharedFlow
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
import
uz.agr.sdk.core.entity.card.CardInfo
import
uz.agr.sdk.core.entity.card.CardInfo
import
uz.agr.sdk.core.entity.card.CardRegistration
import
uz.agr.sdk.core.entity.card.CardRegistration
import
uz.agr.sdk.pgw_core.VendorPaySuccessListener
import
uz.agr.sdk.pgw_core.VendorReSendCodeListener
import
uz.agr.sdk.pgw_core.mobi.BaseListener
import
uz.agr.sdk.pgw_core.mobi.BaseListener
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -147,5 +149,58 @@ class AuthViewModel @Inject constructor(
...
@@ -147,5 +149,58 @@ class AuthViewModel @Inject constructor(
})
})
}
}
private
val
_vendorResendSmsUiState
=
MutableSharedFlow
<
UiStateObject
<
Int
>>()
val
vendorResendSmsUiState
:
SharedFlow
<
UiStateObject
<
Int
>>
=
_vendorResendSmsUiState
fun
vendorResendSms
(
transactionId
:
Long
)
=
viewModelScope
.
launch
{
_vendorResendSmsUiState
.
emit
(
UiStateObject
.
LOADING
)
MobiUz
.
vendorReSendSmsCode
(
transactionId
,
object
:
VendorReSendCodeListener
{
override
fun
showError
(
message
:
String
)
{
viewModelScope
.
launch
{
_vendorResendSmsUiState
.
emit
(
UiStateObject
.
ERROR
(
message
))
}
}
override
fun
showProgress
(
show
:
Boolean
)
{}
override
fun
showTimer
(
result
:
Int
)
{
viewModelScope
.
launch
{
_vendorResendSmsUiState
.
emit
(
UiStateObject
.
SUCCESS
(
result
))
}
}
})
}
private
val
_vendorUiState
=
MutableSharedFlow
<
UiStateObject
<
String
>>()
val
vendorUiState
:
SharedFlow
<
UiStateObject
<
String
>>
=
_vendorUiState
fun
vendor
(
code
:
String
,
transactionId
:
Long
)
=
viewModelScope
.
launch
{
_vendorUiState
.
emit
(
UiStateObject
.
LOADING
)
MobiUz
.
vendorPay
(
code
,
transactionId
,
object
:
VendorPaySuccessListener
{
override
fun
exit
()
{
}
override
fun
showError
(
message
:
String
)
{
viewModelScope
.
launch
{
_vendorUiState
.
emit
(
UiStateObject
.
ERROR
(
message
))
}
}
override
fun
showProgress
(
show
:
Boolean
)
{
}
override
fun
showSuccess
(
transactionId
:
String
)
{
viewModelScope
.
launch
{
_vendorUiState
.
emit
(
UiStateObject
.
SUCCESS
(
transactionId
))
}
}
})
}
}
}
\ No newline at end of file
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/auth/verification/VerificationFragment.kt
View file @
4d59fc7a
...
@@ -18,6 +18,11 @@ import androidx.navigation.NavController
...
@@ -18,6 +18,11 @@ import androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.fragment.NavHostFragment
import
com.google.android.gms.auth.api.phone.SmsRetriever
import
com.google.android.gms.auth.api.phone.SmsRetriever
import
com.google.android.material.textfield.TextInputEditText
import
com.google.android.material.textfield.TextInputEditText
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
uz.agr.mobiuz.extension.SmsBroadcastReceiver
import
uz.agr.mobiuz.ui.dialog.MessageDialog
import
uz.agr.sdk.coreui.extension.hideSoftInput
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.databinding.FragmentVerificationBinding
import
uz.mobiuz.mobiservice.dev.databinding.FragmentVerificationBinding
import
uz.mobiuz.mobiservice.dev.model.SharedPref
import
uz.mobiuz.mobiservice.dev.model.SharedPref
...
@@ -29,14 +34,9 @@ import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
...
@@ -29,14 +34,9 @@ import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import
uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import
uz.mobiuz.mobiservice.dev.utils.Utils
import
uz.mobiuz.mobiservice.dev.utils.Utils
import
uz.mobiuz.mobiservice.dev.utils.extensions.*
import
uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import
uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import
uz.mobiuz.mobiservice.dev.utils.showKeyboard
import
uz.mobiuz.mobiservice.dev.utils.showKeyboard
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
uz.agr.mobiuz.extension.SmsBroadcastReceiver
import
uz.agr.mobiuz.ui.dialog.MessageDialog
import
uz.agr.sdk.coreui.extension.hideSoftInput
import
uz.mobiuz.mobiservice.dev.utils.extensions.*
import
java.util.regex.Pattern
import
java.util.regex.Pattern
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -61,6 +61,11 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -61,6 +61,11 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
private
var
cardNumber
=
""
private
var
cardNumber
=
""
private
var
cardId
=
""
private
var
cardId
=
""
private
var
cardExpire
=
""
private
var
cardExpire
=
""
private
var
payCardnumber
=
""
var
transactionId
=
0L
var
payAmount
=
0L
var
saveCard
:
Boolean
?
=
null
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
...
@@ -73,6 +78,12 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -73,6 +78,12 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
cardId
=
it
.
getString
(
CONSTANTS
.
CARD_ID
)
?:
""
cardId
=
it
.
getString
(
CONSTANTS
.
CARD_ID
)
?:
""
cardNumber
=
it
.
getString
(
CONSTANTS
.
CARD_NUMBER
)
?:
""
cardNumber
=
it
.
getString
(
CONSTANTS
.
CARD_NUMBER
)
?:
""
cardExpire
=
it
.
getString
(
CONSTANTS
.
CARD_EXPIRE
)
?:
""
cardExpire
=
it
.
getString
(
CONSTANTS
.
CARD_EXPIRE
)
?:
""
payCardnumber
=
it
.
getString
(
CONSTANTS
.
PAY_CARD_NUMBER
)
?:
""
transactionId
=
it
.
getLong
(
CONSTANTS
.
TRANSACTION_ID
)
saveCard
=
it
.
getBoolean
(
CONSTANTS
.
SAVED_CARD
)
payAmount
=
it
.
getLong
(
CONSTANTS
.
PAY_AMOUNT
)
}
}
}
}
...
@@ -109,7 +120,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -109,7 +120,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
btnVerification
.
setOnClickListener
(
object
:
ButtonClick
()
{
btnVerification
.
setOnClickListener
(
object
:
ButtonClick
()
{
override
fun
onSingleClick
(
v
:
View
?)
{
override
fun
onSingleClick
(
v
:
View
?)
{
getLinePinCodes
()
getLinePinCodes
()
if
(
checkInternet
()){
if
(
checkInternet
())
{
val
auth
=
UserAuth
(
phone
.
filter
{
it
.
isDigit
()
},
null
,
code
)
val
auth
=
UserAuth
(
phone
.
filter
{
it
.
isDigit
()
},
null
,
code
)
when
(
type
)
{
when
(
type
)
{
CONSTANTS
.
TYPE_FORGET
->
{
CONSTANTS
.
TYPE_FORGET
->
{
...
@@ -118,6 +129,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -118,6 +129,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
CONSTANTS
.
TYPE_ADD_CARD
->
{
CONSTANTS
.
TYPE_ADD_CARD
->
{
viewModel
.
cardConfirm
(
cardId
,
getLinePinCodes
())
viewModel
.
cardConfirm
(
cardId
,
getLinePinCodes
())
}
}
CONSTANTS
.
TYPE_ANOTHER_CARD
->
{
viewModel
.
vendor
(
getLinePinCodes
(),
transactionId
)
}
else
->
{
else
->
{
viewModel
.
verification
(
auth
)
viewModel
.
verification
(
auth
)
}
}
...
@@ -127,10 +141,15 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -127,10 +141,15 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
})
})
sentCodeAgain
.
setOnClickListener
{
sentCodeAgain
.
setOnClickListener
{
if
(
type
==
CONSTANTS
.
TYPE_ADD_CARD
){
when
(
type
)
{
CONSTANTS
.
TYPE_ADD_CARD
->
{
viewModel
.
resendSms
(
"998949125150"
,
cardNumber
,
cardExpire
)
viewModel
.
resendSms
(
"998949125150"
,
cardNumber
,
cardExpire
)
}
else
}
viewModel
.
resetSmsCode
(
UserAuth
(
phone
.
filter
{
it
.
isDigit
()
}))
CONSTANTS
.
TYPE_ANOTHER_CARD
->
{
viewModel
.
vendorResendSms
(
transactionId
)
}
else
->
viewModel
.
resetSmsCode
(
UserAuth
(
phone
.
filter
{
it
.
isDigit
()
}))
}
}
}
coutdownView
.
setOnCountdownEndListener
{
coutdownView
.
setOnCountdownEndListener
{
count
(
false
)
count
(
false
)
...
@@ -139,8 +158,8 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -139,8 +158,8 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
}
}
}
}
private
fun
setVerificationCode
(
code
:
String
)
{
private
fun
setVerificationCode
(
code
:
String
)
{
if
(
verificationCode
.
length
==
6
)
{
if
(
verificationCode
.
length
==
6
)
{
bn
.
apply
{
bn
.
apply
{
pin1
.
setText
(
verificationCode
[
0
].
toString
())
pin1
.
setText
(
verificationCode
[
0
].
toString
())
pin2
.
setText
(
verificationCode
[
1
].
toString
())
pin2
.
setText
(
verificationCode
[
1
].
toString
())
...
@@ -154,7 +173,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -154,7 +173,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
}
}
}
}
private
fun
getLinePinCodes
()
:
String
{
private
fun
getLinePinCodes
()
:
String
{
bn
.
apply
{
bn
.
apply
{
code
=
""
code
=
""
code
+=
pin1
.
text
.
toString
()
code
+=
pin1
.
text
.
toString
()
...
@@ -268,9 +287,6 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -268,9 +287,6 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
viewModel
.
resetSmsCodeUiState
.
collect
{
viewModel
.
resetSmsCodeUiState
.
collect
{
when
(
it
)
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
is
UiStateObject
.
SUCCESS
->
{
// showToastMessage(it.data)
// verificationCode = it.data
// setVerificationCode()
count
(
true
)
count
(
true
)
showProgressDialog
(
false
)
showProgressDialog
(
false
)
}
}
...
@@ -356,6 +372,50 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -356,6 +372,50 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
}
}
}
}
}
}
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
vendorUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
navController
.
navigate
(
R
.
id
.
paymentSuccessfulFragment
,
bundleOf
(
CONSTANTS
.
PHONE
to
phone
,
CONSTANTS
.
PAY_AMOUNT
to
payAmount
,
CONSTANTS
.
PAY_SAVE_CARD
to
saveCard
,
CONSTANTS
.
PAY_CARD_NUMBER
to
cardNumber
)
)
showProgressDialog
(
false
)
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showMessage
(
it
.
message
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
vendorResendSmsUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
count
(
true
)
showProgressDialog
(
false
)
}
is
UiStateObject
.
ERROR
->
{
showProgressDialog
(
false
)
showMessage
(
it
.
message
)
}
is
UiStateObject
.
LOADING
->
{
showProgressDialog
(
true
)
}
else
->
Unit
}
}
}
}
}
private
fun
count
(
status
:
Boolean
)
{
private
fun
count
(
status
:
Boolean
)
{
...
@@ -406,6 +466,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
...
@@ -406,6 +466,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
})
})
dialog
.
show
()
dialog
.
show
()
}
}
private
fun
startSmsUserConsent
()
{
private
fun
startSmsUserConsent
()
{
val
client
=
SmsRetriever
.
getClient
(
requireContext
())
val
client
=
SmsRetriever
.
getClient
(
requireContext
())
client
.
startSmsUserConsent
(
null
)
client
.
startSmsUserConsent
(
null
)
...
...
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/global/CONSTANTS.kt
View file @
4d59fc7a
...
@@ -3,6 +3,8 @@ package uz.mobiuz.mobiservice.dev.ui.global
...
@@ -3,6 +3,8 @@ package uz.mobiuz.mobiservice.dev.ui.global
object
CONSTANTS
{
object
CONSTANTS
{
const
val
CARD_ID
=
"CARD_ID"
const
val
CARD_ID
=
"CARD_ID"
const
val
TRANSACTION_ID
=
"TRANSACTION_ID"
const
val
SAVED_CARD
=
"SAVED_CARD"
const
val
CARD_NUMBER
=
"CARD_NUMBER"
const
val
CARD_NUMBER
=
"CARD_NUMBER"
const
val
CARD_EXPIRE
=
"CARD_EXPIRE"
const
val
CARD_EXPIRE
=
"CARD_EXPIRE"
const
val
UNAUTHORIZED
=
"UNAUTHORIZED"
const
val
UNAUTHORIZED
=
"UNAUTHORIZED"
...
@@ -49,6 +51,7 @@ object CONSTANTS {
...
@@ -49,6 +51,7 @@ object CONSTANTS {
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
TYPE_ADD_CARD
=
"TYPE_ADD_CARD"
const
val
TYPE_ADD_CARD
=
"TYPE_ADD_CARD"
const
val
TYPE_ANOTHER_CARD
=
"TYPE_ANOTHER_CARD"
const
val
PIN_CODE
=
"PIN_CODE"
const
val
PIN_CODE
=
"PIN_CODE"
const
val
FIRST
=
"first"
const
val
FIRST
=
"first"
const
val
SERVICE
=
"service"
const
val
SERVICE
=
"service"
...
...
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/history/HistoryViewModel.kt
0 → 100644
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.ui.sdk.history
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
dagger.hilt.android.lifecycle.HiltViewModel
import
kotlinx.coroutines.flow.MutableSharedFlow
import
kotlinx.coroutines.flow.SharedFlow
import
kotlinx.coroutines.launch
import
uz.agr.sdk.core.entity.card.CardInfo
import
uz.agr.sdk.pgw_core.mobi.CardListenerMobi
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
uz.mobiuz.mobiservice.dev.model.Monitoring
import
uz.mobiuz.mobiservice.dev.network.model.UiStateList
import
uz.mobiuz.mobiservice.dev.network.repository.CardRepository
import
uz.mobiuz.mobiservice.dev.network.repository.MainRepository
import
javax.inject.Inject
@HiltViewModel
class
HistoryViewModel
@Inject
constructor
(
private
val
repository
:
CardRepository
)
:
ViewModel
()
{
fun
addMonitoring
(
data
:
Monitoring
)
=
viewModelScope
.
launch
{
repository
.
addMonitoring
(
data
)
}
private
val
_cardListUiState
=
MutableSharedFlow
<
UiStateList
<
CardInfo
>>()
val
cardListUiState
:
SharedFlow
<
UiStateList
<
CardInfo
>>
=
_cardListUiState
fun
getAllCards
()
=
viewModelScope
.
launch
{
_cardListUiState
.
emit
(
UiStateList
.
LOADING
)
MobiUz
.
getAllCards
(
object
:
CardListenerMobi
<
CardInfo
>
{
override
fun
error
(
message
:
String
)
{
viewModelScope
.
launch
{
_cardListUiState
.
emit
(
UiStateList
.
ERROR
(
message
))
}
}
override
fun
loading
(
boolean
:
Boolean
)
{}
override
fun
local
(
localData
:
List
<
CardInfo
>)
{
viewModelScope
.
launch
{
_cardListUiState
.
emit
(
UiStateList
.
SUCCESS
(
localData
))
}
}
override
fun
server
(
serverData
:
List
<
CardInfo
>)
{
viewModelScope
.
launch
{
_cardListUiState
.
emit
(
UiStateList
.
SUCCESS
(
serverData
))
}
}
})
}
}
\ No newline at end of file
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/MonitoringLocalFragment.kt
→
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/
history/
MonitoringLocalFragment.kt
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.ui.sdk
package
uz.mobiuz.mobiservice.dev.ui.sdk
.history
import
android.os.Bundle
import
android.os.Bundle
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
...
@@ -9,8 +9,12 @@ import androidx.fragment.app.viewModels
...
@@ -9,8 +9,12 @@ 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
androidx.recyclerview.widget.LinearLayoutManager
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
uz.agr.mobiuz.ui.history.header.HeaderItemDecoration
import
uz.agr.mobiuz.ui.history.local.MonitoringAdapter
import
uz.agr.sdk.pgw_core.mobi.MobiUz
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.databinding.FragmentCardsListBinding
import
uz.mobiuz.mobiservice.dev.databinding.FragmentCardsListBinding
import
uz.mobiuz.mobiservice.dev.databinding.FragmentMonitoringLocalBinding
import
uz.mobiuz.mobiservice.dev.databinding.FragmentMonitoringLocalBinding
...
@@ -32,17 +36,33 @@ class MonitoringLocalFragment : BaseFragment(R.layout.fragment_monitoring_local)
...
@@ -32,17 +36,33 @@ class MonitoringLocalFragment : BaseFragment(R.layout.fragment_monitoring_local)
private
val
viewModel
:
HomeViewModel
by
viewModels
()
private
val
viewModel
:
HomeViewModel
by
viewModels
()
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
navController
:
NavController
by
lazy
(
LazyThreadSafetyMode
.
NONE
)
{
NavHostFragment
.
findNavController
(
this
)
}
private
val
adapter
:
MonitoringAdapter
by
lazy
{
MonitoringAdapter
()
}
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
_bn
=
FragmentMonitoringLocalBinding
.
bind
(
view
)
_bn
=
FragmentMonitoringLocalBinding
.
bind
(
view
)
setUpUI
()
setUpUI
()
collects
()
collects
()
}
}
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
toolbar
.
setNavigationOnClickListener
{
navController
.
navigateUp
()
}
recyclerView
.
apply
{
layoutManager
=
LinearLayoutManager
(
context
)
setHasFixedSize
(
true
)
adapter
=
adapter
addItemDecoration
(
HeaderItemDecoration
(
this
)
{
itemPosition
->
if
(
itemPosition
>=
0
&&
itemPosition
<
adapter
!!
.
itemCount
)
{
(
adapter
as
MonitoringAdapter
).
isHeaderItem
(
itemPosition
)
}
else
false
})
}
}
}
}
...
...
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/pay/success/PaymentSuccessfulFragment.kt
View file @
4d59fc7a
...
@@ -3,6 +3,7 @@ package uz.mobiuz.mobiservice.dev.ui.sdk.pay.success
...
@@ -3,6 +3,7 @@ package uz.mobiuz.mobiservice.dev.ui.sdk.pay.success
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
android.view.View
import
androidx.activity.OnBackPressedCallback
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
import
androidx.navigation.NavController
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.fragment.NavHostFragment
...
@@ -13,6 +14,7 @@ import uz.agr.sdk.coreui.extension.showSnackMessage
...
@@ -13,6 +14,7 @@ import uz.agr.sdk.coreui.extension.showSnackMessage
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.R
import
uz.mobiuz.mobiservice.dev.databinding.FragmentPaymentSuccessfulBinding
import
uz.mobiuz.mobiservice.dev.databinding.FragmentPaymentSuccessfulBinding
import
uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import
uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import
uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.utils.extensions.formatCard
import
uz.mobiuz.mobiservice.dev.utils.extensions.formatCard
...
@@ -35,6 +37,7 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
...
@@ -35,6 +37,7 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
phone
=
arguments
?.
getString
(
CONSTANTS
.
PHONE
,
""
)
?:
""
phone
=
arguments
?.
getString
(
CONSTANTS
.
PHONE
,
""
)
?:
""
amount
=
arguments
?.
getString
(
CONSTANTS
.
PAY_AMOUNT
,
"0"
)
?:
"0"
amount
=
arguments
?.
getString
(
CONSTANTS
.
PAY_AMOUNT
,
"0"
)
?:
"0"
saveCard
=
arguments
?.
getBoolean
(
CONSTANTS
.
PAY_SAVE_CARD
)
saveCard
=
arguments
?.
getBoolean
(
CONSTANTS
.
PAY_SAVE_CARD
)
...
@@ -51,6 +54,19 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
...
@@ -51,6 +54,19 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
override
fun
setUpUI
()
{
override
fun
setUpUI
()
{
bn
.
apply
{
bn
.
apply
{
requireActivity
().
onBackPressedDispatcher
.
addCallback
(
viewLifecycleOwner
,
object
:
OnBackPressedCallback
(
true
)
{
override
fun
handleOnBackPressed
()
{
navController
.
popBackStack
(
R
.
id
.
replenishBalanceFragment
,
false
)
}
})
doneButton
.
setOnClickListener
(
object
:
ButtonClick
(){
override
fun
onSingleClick
(
v
:
View
?)
{
navController
.
popBackStack
(
R
.
id
.
replenishBalanceFragment
,
false
)
}
})
etAmount
.
text
=
"${amount.toLong().formattedMoney(showDecimal = false, tiyinToSum = false)} ${getString(uz.agr.mobiuz.R.string.agr_mobi_uz_curr)}"
etAmount
.
text
=
"${amount.toLong().formattedMoney(showDecimal = false, tiyinToSum = false)} ${getString(uz.agr.mobiuz.R.string.agr_mobi_uz_curr)}"
etPhone
.
text
=
phone
.
formatPhone
(
minus
=
false
)
etPhone
.
text
=
phone
.
formatPhone
(
minus
=
false
)
if
(
saveCard
==
true
)
{
if
(
saveCard
==
true
)
{
...
@@ -67,6 +83,7 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
...
@@ -67,6 +83,7 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
}
}
}
}
override
fun
collects
()
{
override
fun
collects
()
{
}
}
...
...
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/ReplenishBalanceFragment.kt
→
app/src/main/java/uz/mobiuz/mobiservice/dev/ui/sdk/
payment/
ReplenishBalanceFragment.kt
View file @
4d59fc7a
package
uz.mobiuz.mobiservice.dev.ui.sdk
package
uz.mobiuz.mobiservice.dev.ui.sdk
.payment
import
android.content.Intent
import
android.content.Intent
import
android.net.Uri
import
android.net.Uri
...
@@ -15,7 +15,6 @@ import androidx.navigation.fragment.NavHostFragment
...
@@ -15,7 +15,6 @@ import androidx.navigation.fragment.NavHostFragment
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
kotlinx.coroutines.flow.collect
import
kotlinx.coroutines.flow.collect
import
timber.log.Timber
import
timber.log.Timber
import
uz.agr.mobiuz.model.system.LocaleManager
import
uz.agr.mobiuz.ui.fast_action.animation.getColorCompat
import
uz.agr.mobiuz.ui.fast_action.animation.getColorCompat
import
uz.agr.sdk.core.entity.card.CardInfo
import
uz.agr.sdk.core.entity.card.CardInfo
import
uz.agr.sdk.core.entity.tuple.Tuple3
import
uz.agr.sdk.core.entity.tuple.Tuple3
...
@@ -37,6 +36,7 @@ import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
...
@@ -37,6 +36,7 @@ import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import
uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import
uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import
uz.mobiuz.mobiservice.dev.ui.home.HomeViewModel
import
uz.mobiuz.mobiservice.dev.ui.home.HomeViewModel
import
uz.mobiuz.mobiservice.dev.ui.sdk.card.CardViewModel
import
uz.mobiuz.mobiservice.dev.ui.sdk.pay.SelectAnotherCard
import
uz.mobiuz.mobiservice.dev.ui.sdk.pay.SelectAnotherCard
import
java.util.*
import
java.util.*
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -118,19 +118,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
...
@@ -118,19 +118,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
override
fun
collects
()
{
override
fun
collects
()
{
viewLifecycleOwner
.
lifecycleScope
.
launchWhenStarted
{
viewModel
.
mainIndexUiState
.
collect
{
when
(
it
)
{
is
UiStateObject
.
SUCCESS
->
{
}
is
UiStateObject
.
ERROR
->
{
}
is
UiStateObject
.
LOADING
->
{
}
else
->
Unit
}
}
}
}
}
private
fun
setCardListAdapter
(
list
:
List
<
CardInfo
>)
{
private
fun
setCardListAdapter
(
list
:
List
<
CardInfo
>)
{
...
@@ -234,6 +222,15 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
...
@@ -234,6 +222,15 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
MobiUz
.
onClickPay
(
phoneNumber
,
selectedCard
,
vendorFormParams
,
requireContext
(),
object
:
VendorPayConfirm
{
MobiUz
.
onClickPay
(
phoneNumber
,
selectedCard
,
vendorFormParams
,
requireContext
(),
object
:
VendorPayConfirm
{
override
fun
showConfirmPage
(
transactionId
:
Long
,
phoneNumber
:
String
,
timeOut
:
Int
)
{
override
fun
showConfirmPage
(
transactionId
:
Long
,
phoneNumber
:
String
,
timeOut
:
Int
)
{
// todo Shohboz aka uchun
// todo Shohboz aka uchun
navController
.
navigate
(
R
.
id
.
verificationFragment
,
bundleOf
(
CONSTANTS
.
TYPE_VERIFICATION
to
CONSTANTS
.
TYPE_ANOTHER_CARD
,
CONSTANTS
.
PHONE
to
"998"
+
bn
.
etPhone
.
unmaskedText
,
CONSTANTS
.
PAY_AMOUNT
to
amountValid
,
CONSTANTS
.
TRANSACTION_ID
to
transactionId
)
)
}
}
override
fun
showError
(
message
:
String
)
{
override
fun
showError
(
message
:
String
)
{
...
@@ -245,6 +242,8 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
...
@@ -245,6 +242,8 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
}
}
override
fun
showSuccessfulPayment
(
transactionId
:
Long
)
{
override
fun
showSuccessfulPayment
(
transactionId
:
Long
)
{
// todo must add to local database
viewModel
navController
.
navigate
(
navController
.
navigate
(
R
.
id
.
paymentSuccessfulFragment
,
R
.
id
.
paymentSuccessfulFragment
,
bundleOf
(
bundleOf
(
...
@@ -257,10 +256,52 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
...
@@ -257,10 +256,52 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
}
}
}
}
private
fun
payWithAnotherCard
(
cardNumber
:
String
,
cardExpiry
:
String
,
saveCard
:
Boolean
,
phoneNumber
:
String
,
vendorFormParams
:
HashMap
<
String
,
String
>)
{
private
fun
deleteCard
(
cardNumber
:
String
,
cardExpiry
:
String
)
{
MobiUz
.
getLocalCards
(
object
:
BaseListener
<
List
<
CardInfo
>>
{
override
fun
error
(
message
:
String
)
{}
override
fun
loading
(
boolean
:
Boolean
)
{}
override
fun
success
(
data
:
List
<
CardInfo
>)
{
val
card
:
CardInfo
?
=
data
.
find
{
it
.
expiry
.
filter
{
it
.
isDigit
()
}
==
cardExpiry
.
filter
{
it
.
isDigit
()
}
&&
it
.
pan
.
replace
(
" "
,
""
).
substring
(
0
,
6
)
==
cardNumber
.
replace
(
" "
,
""
).
substring
(
0
,
6
)
&&
it
.
pan
.
replace
(
" "
,
""
).
substring
(
it
.
pan
.
length
-
4
,
it
.
pan
.
length
)
==
cardNumber
.
replace
(
" "
,
""
).
substring
(
cardNumber
.
length
-
4
,
cardNumber
.
length
)
}
if
(
card
!=
null
)
{
MobiUz
.
deleteCard
(
card
,
object
:
BaseListener
<
Boolean
>
{
override
fun
error
(
message
:
String
)
{}
override
fun
loading
(
boolean
:
Boolean
)
{}
override
fun
success
(
data
:
Boolean
)
{}
})
}
}
})
}
MobiUz
.
vendorPayWithAnotherCard
(
cardNumber
,
cardExpiry
,
saveCard
,
phoneNumber
,
vendorFormParams
,
object
:
VendorPayConfirm
{
private
fun
payWithAnotherCard
(
cardNumber
:
String
,
cardExpiry
:
String
,
saveCard
:
Boolean
,
phone
:
String
,
vendorFormParams
:
HashMap
<
String
,
String
>)
{
MobiUz
.
vendorPayWithAnotherCard
(
cardNumber
,
cardExpiry
,
saveCard
,
phone
,
vendorFormParams
,
object
:
VendorPayConfirm
{
override
fun
showConfirmPage
(
transactionId
:
Long
,
phoneNumber
:
String
,
timeOut
:
Int
)
{
override
fun
showConfirmPage
(
transactionId
:
Long
,
phoneNumber
:
String
,
timeOut
:
Int
)
{
var
isSave
=
false
val
responsePhone
=
phoneNumber
.
replace
(
"+"
,
""
)
val
inputPhone
=
phone
.
replace
(
"+"
,
""
)
if
(
responsePhone
.
substring
(
0
,
5
)
==
inputPhone
.
substring
(
0
,
5
)
&&
responsePhone
.
substring
(
responsePhone
.
length
-
2
,
responsePhone
.
length
)
==
inputPhone
.
substring
(
inputPhone
.
length
-
2
,
inputPhone
.
length
)
)
isSave
=
true
else
{
deleteCard
(
cardNumber
,
cardExpiry
)
}
navController
.
navigate
(
R
.
id
.
verificationFragment
,
bundleOf
(
CONSTANTS
.
TYPE_VERIFICATION
to
CONSTANTS
.
TYPE_ANOTHER_CARD
,
CONSTANTS
.
TRANSACTION_ID
to
transactionId
,
CONSTANTS
.
PHONE
to
"998"
+
bn
.
etPhone
.
unmaskedText
,
CONSTANTS
.
SAVED_CARD
to
isSave
,
CONSTANTS
.
PAY_AMOUNT
to
amountValid
,
CONSTANTS
.
PAY_CARD_NUMBER
to
cardNumber
)
)
// todo Shohboz aka uchun
// todo Shohboz aka uchun
}
}
...
@@ -276,7 +317,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
...
@@ -276,7 +317,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
navController
.
navigate
(
navController
.
navigate
(
R
.
id
.
paymentSuccessfulFragment
,
R
.
id
.
paymentSuccessfulFragment
,
bundleOf
(
bundleOf
(
CONSTANTS
.
PHONE
to
phoneNumber
,
CONSTANTS
.
PHONE
to
"998"
+
bn
.
etPhone
.
unmaskedText
,
CONSTANTS
.
PAY_AMOUNT
to
amountValid
,
CONSTANTS
.
PAY_AMOUNT
to
amountValid
,
CONSTANTS
.
PAY_SAVE_CARD
to
saveCard
,
CONSTANTS
.
PAY_SAVE_CARD
to
saveCard
,
CONSTANTS
.
PAY_CARD_NUMBER
to
cardNumber
CONSTANTS
.
PAY_CARD_NUMBER
to
cardNumber
...
...
app/src/main/res/layout/fragment_monitoring_local.xml
View file @
4d59fc7a
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
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:tools=
"http://schemas.android.com/tools"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.sdk.MonitoringLocalFragment"
>
android:background=
"@color/agr_grey10"
android:orientation=
"vertical"
>
<!-- TODO: Update blank fragment layout -->
<TextView
<com.google.android.material.appbar.MaterialToolbar
android:id=
"@+id/toolbar"
style=
"@style/agr_ToolbarStyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:elevation=
"0dp"
app:title=
"@string/agr_mobi_uz_history_title"
app:navigationIcon=
"@drawable/agr_ic_arrow_blue"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id=
"@+id/swipeToRefresh"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/recyclerView"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:text=
"@string/hello_blank_fragment"
/>
tools:listitem=
"@layout/agr_mobi_uz_monitoring_item"
/>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</FrameLayout>
<include
\ No newline at end of file
layout=
"@layout/agr_layout_empty"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:visibility=
"gone"
/>
</FrameLayout>
</LinearLayout>
app/src/main/res/navigation/nav_graph_home.xml
View file @
4d59fc7a
...
@@ -67,12 +67,12 @@
...
@@ -67,12 +67,12 @@
tools:layout=
"@layout/fragment_cards_list"
/>
tools:layout=
"@layout/fragment_cards_list"
/>
<fragment
<fragment
android:id=
"@+id/monitoringLocalFragment"
android:id=
"@+id/monitoringLocalFragment"
android:name=
"uz.mobiuz.mobiservice.dev.ui.sdk.MonitoringLocalFragment"
android:name=
"uz.mobiuz.mobiservice.dev.ui.sdk.
history.
MonitoringLocalFragment"
android:label=
"fragment_monitoring_local"
android:label=
"fragment_monitoring_local"
tools:layout=
"@layout/fragment_monitoring_local"
/>
tools:layout=
"@layout/fragment_monitoring_local"
/>
<fragment
<fragment
android:id=
"@+id/replenishBalanceFragment"
android:id=
"@+id/replenishBalanceFragment"
android:name=
"uz.mobiuz.mobiservice.dev.ui.sdk.ReplenishBalanceFragment"
android:name=
"uz.mobiuz.mobiservice.dev.ui.sdk.
payment.
ReplenishBalanceFragment"
android:label=
"fragment_replenish_balance"
android:label=
"fragment_replenish_balance"
tools:layout=
"@layout/fragment_replenish_balance"
/>
tools:layout=
"@layout/fragment_replenish_balance"
/>
<fragment
<fragment
...
@@ -94,6 +94,7 @@
...
@@ -94,6 +94,7 @@
<fragment
<fragment
android:id=
"@+id/verificationFragment"
android:id=
"@+id/verificationFragment"
tools:layout=
"@layout/fragment_verification"
android:name=
"uz.mobiuz.mobiservice.dev.ui.auth.verification.VerificationFragment"
android:name=
"uz.mobiuz.mobiservice.dev.ui.auth.verification.VerificationFragment"
android:label=
"MyVerificationFragment"
/>
android:label=
"MyVerificationFragment"
/>
...
...
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