Commit 7f12dde6 authored by shohboz's avatar shohboz

[UPD] MUS-266 Feature, updated modified sdk

parent 5f3765fd
......@@ -10,6 +10,9 @@
<entry key="../../.gradle/caches/transforms-3/fd180e2afb980e83e4951f5e21e58af5/transformed/jetified-agr-sdk-coreui-release-1.7.0/res/layout/agr_core_ui_layout_zero.xml" value="0.25625" />
<entry key="../../.gradle/caches/transforms-3/fd180e2afb980e83e4951f5e21e58af5/transformed/jetified-agr-sdk-coreui-release-1.7.0/res/layout/agr_item_card.xml" value="0.25625" />
<entry key="..\:/Users/NEW AGE/StudioProjects/shunchaki/app/src/main/res/layout/fragment_billing.xml" value="0.20520833333333333" />
<entry key="app/src/main/res/drawable/add_card_bg.xml" value="0.268359375" />
<entry key="app/src/main/res/drawable/agr_log_perfectum.xml" value="0.15" />
<entry key="app/src/main/res/drawable/bg_bottom_sheet_top.xml" value="0.15" />
<entry key="app/src/main/res/drawable/bgn_avatar.xml" value="0.25069444444444444" />
<entry key="app/src/main/res/drawable/bgn_lang.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/bgn_layer.xml" value="0.15" />
......@@ -26,7 +29,10 @@
<entry key="app/src/main/res/drawable/button_selector.xml" value="0.30092592592592593" />
<entry key="app/src/main/res/drawable/edit_text_bgn.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/edit_text_checked.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/edit_text_error.xml" value="0.15" />
<entry key="app/src/main/res/drawable/edit_text_unchecked.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/ic_add.xml" value="0.268359375" />
<entry key="app/src/main/res/drawable/ic_arrow_down.xml" value="0.268359375" />
<entry key="app/src/main/res/drawable/ic_background.xml" value="0.2759259259259259" />
<entry key="app/src/main/res/drawable/ic_baseline_account_box.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_baseline_arrow_back.xml" value="0.2759259259259259" />
......@@ -36,18 +42,24 @@
<entry key="app/src/main/res/drawable/ic_baseline_home.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_baseline_keyboard_arrow_right.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_bg.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_delete_card.xml" value="0.27890625" />
<entry key="app/src/main/res/drawable/ic_finger_print.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_fingerprint.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/ic_group_12.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_hour_icon.xml" value="0.268359375" />
<entry key="app/src/main/res/drawable/ic_humo_round.xml" value="0.27890625" />
<entry key="app/src/main/res/drawable/ic_image_only_finger.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/ic_logo.xml" value="0.2578125" />
<entry key="app/src/main/res/drawable/ic_mobiuz_logo.xml" value="0.26180555555555557" />
<entry key="app/src/main/res/drawable/ic_no_cards.xml" value="0.2578125" />
<entry key="app/src/main/res/drawable/ic_pinger_print.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_placeholder.xml" value="0.21666666666666667" />
<entry key="app/src/main/res/drawable/ic_russia.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_safety.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_uz_card_round.xml" value="0.27890625" />
<entry key="app/src/main/res/drawable/ic_vector_error.xml" value="0.20694444444444443" />
<entry key="app/src/main/res/drawable/radius_top.xml" value="0.25416666666666665" />
<entry key="app/src/main/res/drawable/rounded_dialog.xml" value="0.268359375" />
<entry key="app/src/main/res/drawable/tab_indicator.xml" value="0.2756756756756757" />
<entry key="app/src/main/res/drawable/text_handle.xml" value="1.4214285714285715" />
<entry key="app/src/main/res/layout-large/fragment_pin.xml" value="0.25625" />
......@@ -64,6 +76,7 @@
<entry key="app/src/main/res/layout/activity_test.xml" value="0.25625" />
<entry key="app/src/main/res/layout/bottom_sheet_ussd.xml" value="0.266796875" />
<entry key="app/src/main/res/layout/button_selector.xml" value="0.33242753623188404" />
<entry key="app/src/main/res/layout/dialog_delete_card.xml" value="0.12578125" />
<entry key="app/src/main/res/layout/fragment_action.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_add_card.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_base.xml" value="0.23497267759562843" />
......@@ -95,6 +108,7 @@
<entry key="app/src/main/res/layout/fragment_old_pin.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_pakets.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_password.xml" value="0.2" />
<entry key="app/src/main/res/layout/fragment_payment_successful.xml" value="0.19023224043715847" />
<entry key="app/src/main/res/layout/fragment_pin.xml" value="0.23497267759562843" />
<entry key="app/src/main/res/layout/fragment_pin_dialog.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_pin_lock.xml" value="0.23497267759562843" />
......@@ -104,6 +118,7 @@
<entry key="app/src/main/res/layout/fragment_replenish_balance.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_safety.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_security.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_select_card.xml" value="0.137890625" />
<entry key="app/src/main/res/layout/fragment_service.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_services.xml" value="0.24795081967213115" />
<entry key="app/src/main/res/layout/fragment_support.xml" value="0.25625" />
......@@ -121,14 +136,17 @@
<entry key="app/src/main/res/layout/item_ussd.xml" value="0.22" />
<entry key="app/src/main/res/layout/large.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_ask_create_task.xml" value="0.22643442622950818" />
<entry key="app/src/main/res/layout/layout_dialog_message.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_empty.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_exit.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_home_header.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_offline_bottom_sheet.xml" value="0.266051912568306" />
<entry key="app/src/main/res/layout/layout_select_another_card.xml" value="0.25625" />
<entry key="app/src/main/res/layout/layout_sender.xml" value="0.25625" />
<entry key="app/src/main/res/layout/mobi_uz_item_card.xml" value="0.25625" />
<entry key="app/src/main/res/layout/monitoring_item.xml" value="0.25625" />
<entry key="app/src/main/res/layout/motion_layout.xml" value="0.266796875" />
<entry key="app/src/main/res/layout/view_select_card.xml" value="0.25625" />
<entry key="app/src/main/res/menu/bottom_nav_menu.xml" value="0.3416666666666667" />
<entry key="app/src/main/res/xml/layout_description.xml" value="0.25625" />
</map>
......
......@@ -58,7 +58,7 @@ dependencies {
api fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
api(name: 'agr-sdk-core-release-1.7.0', ext: 'aar')
api(name: 'agr-sdk-coreui-release-1.7.0', ext: 'aar')
api(name: 'agr-sdk-mobi-uz-release-1.0.0', ext: 'aar')
// api(name: 'agr-sdk-mobi-uz-release-1.0.0', ext: 'aar')
api(name: 'agr-sdk-pgw-core-release-1.7.0', ext: 'aar')
implementation 'androidx.core:core-ktx:1.7.0'
......
......@@ -5,12 +5,12 @@ import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.sdk.pgw_core.mobi.MobiUz
import uz.mobiuz.mobiservice.dev.databinding.ActivityLanguageBinding
import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling
import uz.mobiuz.mobiservice.dev.databinding.ActivityLanguageBinding
import javax.inject.Inject
@AndroidEntryPoint
......@@ -43,7 +43,7 @@ class LanguageActivity : AppCompatActivity() {
private fun setLangAndNavigate(lang: String) {
pref.language = lang
AGRBilling.setLanguage(this, lang)
MobiUz.setLanguage(this, lang)
startActivity(Intent(this, AuthActivity::class.java))
finish()
}
......
......@@ -8,8 +8,6 @@ import ru.terrakok.cicerone.Router
import timber.log.Timber
import toothpick.Toothpick
import toothpick.configuration.Configuration
import uz.agr.mobiuz.AGRBilling
import uz.agr.mobiuz.di.AppModule
import uz.agr.sdk.core.di.DI
import uz.agr.sdk.core.di.module.CoreServerModule
import uz.agr.sdk.core.model.system.LocaleManager
......@@ -26,9 +24,8 @@ class App : MultiDexApplication() {
super.onCreate()
INSTANCE = this
initToothpick()
initAppScope()
// initAppScope()
initLogger()
AGRBilling.init(this)
MobiUz.init(this)
}
......@@ -58,9 +55,7 @@ class App : MultiDexApplication() {
private fun initAppScope() {
val appScope = Toothpick.openScope(DI.APP_SCOPE)
appScope.installModules(AppModule())
appScope.installModules(CoreServerModule("MOBIUZ"))
appScope.installModules(FlowNavigationModule(appScope.getInstance(Router::class.java)))
val serverScope = Toothpick.openScopes(DI.APP_SCOPE, DI.SERVER_SCOPE)
serverScope.installModules(ServerModule())
......
package uz.mobiuz.mobiservice.dev.model
class Tuple2(
val first: String,
val second: String
)
\ No newline at end of file
......@@ -12,8 +12,7 @@ import uz.mobiuz.mobiservice.dev.utils.extensions.userMessage
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import retrofit2.HttpException
import uz.agr.mobiuz.AGRBilling
import uz.agr.sdk.pgw_core.mobi.MobiUz
import javax.inject.Inject
import javax.inject.Singleton
......@@ -45,8 +44,8 @@ class MainRepository @Inject constructor(
suspend fun logOut() {
try {
withContext(Dispatchers.IO){
AGRBilling.deleteAllCards()
AGRBilling.deleteAllMonitoring()
MobiUz.deleteAllCards()
// todo monitoring ni delete qilish kerak
apiService.logOut()
}
} catch (e: Exception) {
......
......@@ -20,8 +20,6 @@ import com.google.android.gms.auth.api.phone.SmsRetriever
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.databinding.FragmentVerificationBinding
......@@ -37,6 +35,8 @@ 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.showKeyboard
import uz.mobiuz.mobiservice.dev.utils.sms.MessageDialog
import uz.mobiuz.mobiservice.dev.utils.sms.SmsBroadcastReceiver
import java.util.regex.Pattern
import javax.inject.Inject
......@@ -453,8 +453,8 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
private fun showSuccessDialog() {
val dialog = MessageDialog(
requireContext(),
getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_added),
getString(uz.agr.mobiuz.R.string.agr_mobi_uz_close_process)
getString(R.string.agr_mobi_uz_card_added),
getString(R.string.agr_mobi_uz_close_process)
)
dialog.window!!.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
......
package uz.mobiuz.mobiservice.dev.ui.sdk
import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.util.TypedValue
import androidx.cardview.widget.CardView
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.view_select_card.view.*
import uz.agr.sdk.core.entity.card.CardInfo
import uz.agr.sdk.coreui.extension.drawable
import uz.agr.sdk.coreui.extension.formatToMaskedCardPan
import uz.agr.sdk.coreui.extension.formattedMoney
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.utils.extensions.tint
class SelectCardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : CardView(context, attrs, defStyleAttr) {
private var stateViewNewCard = false
init {
inflate(context, R.layout.view_select_card, this)
cardElevation = 0F
radius = resources.getDimension(R.dimen.select_card_view_corner_radius)
val outValue = TypedValue()
context.theme.resolveAttribute(android.R.attr.selectableItemBackground, outValue, true)
foreground = context.drawable(outValue.resourceId)
}
fun init(onClickListener: () -> Unit) {
setOnClickListener { onClickListener.invoke() }
}
@SuppressLint("SetTextI18n")
fun showCard(cardInfo: CardInfo, position: Int) {
stateViewNewCard = false
cardContent.setBackgroundResource(getCardBackground(position % 3))
tvCardPan.isVisible = true
tvCardBalance.isVisible = true
tvNewCard.isVisible = false
arrow.tint(R.color.agr_white)
tvCardPan.text = cardInfo.pan.formatToMaskedCardPan()
tvCardBalance.text = cardInfo.balance.formattedMoney() + " " + context.getString(R.string.agr_mobi_uz_curr)
}
fun showProgress(show: Boolean) {
if (stateViewNewCard.not()) {
progressView.isVisible = show
}
}
fun showNewCard() {
stateViewNewCard = true
cardContent.setBackgroundResource(R.drawable.add_card_bg)
tvCardPan.isVisible = false
tvCardBalance.isVisible = false
progressView.isVisible = false
tvNewCard.isVisible = true
arrow.tint(R.color.primary100)
}
private fun getCardBackground(position: Int): Int {
return when (position) {
0 -> R.drawable.select_card
1 -> R.drawable.select_card
2 -> R.drawable.select_card
else -> R.drawable.select_card
}
}
}
......@@ -5,21 +5,19 @@ import android.text.method.DigitsKeyListener
import android.view.View
import android.view.inputmethod.EditorInfo
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 dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect
import uz.agr.mobiuz.ui.fast_action.animation.getColorCompat
import uz.agr.sdk.core.entity.card.CardInfo
import uz.agr.sdk.coreui.extension.hideSoftInput
import uz.agr.sdk.coreui.extension.showSoftInput
import uz.agr.sdk.coreui.extension.visible
import uz.agr.sdk.coreui.ui.ButtonClick
import uz.agr.sdk.coreui.ui.form.CardDateExpireFormat
import uz.agr.sdk.coreui.ui.form.CardNumberFormat
import uz.agr.sdk.pgw_core.mobi.BaseListener
import uz.agr.sdk.pgw_core.mobi.CardListenerMobi
import uz.agr.sdk.pgw_core.mobi.MobiUz
import uz.mobiuz.mobiservice.dev.R
......@@ -28,8 +26,7 @@ import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import uz.mobiuz.mobiservice.dev.utils.extensions.checkInternet
import uz.mobiuz.mobiservice.dev.utils.extensions.customLog
import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import java.util.*
import javax.inject.Inject
......@@ -75,6 +72,7 @@ class AddCardFragment : BaseFragment(R.layout.fragment_add_card) {
override fun loading(boolean: Boolean) {
showProgressDialog(boolean)
}
override fun local(localData: List<CardInfo>) {}
override fun server(serverData: List<CardInfo>) {
val hash = MobiUz.getHash(cardNumberValid!!, cardExpiryValid!!)
......@@ -83,7 +81,7 @@ class AddCardFragment : BaseFragment(R.layout.fragment_add_card) {
if (filteredCards.isEmpty()) {
viewModel.cardRegistration("998917797278", cardNumberValid!!, cardExpiryValid!!)
} else {
showToastMessage(getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_exist))
showToastMessage(getString(R.string.agr_mobi_uz_card_exist))
}
}
})
......@@ -138,17 +136,17 @@ class AddCardFragment : BaseFragment(R.layout.fragment_add_card) {
cardNumberValid = number
}
if (!(number.startsWith("8600") || number.startsWith("9860")) || number.filter { it.isDigit() }.length != 16) {
tvErrorMsg.visible(true)
tvErrorMsg.text = getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_format_error)
tvErrorMsg.isVisible = true
tvErrorMsg.text = getString(R.string.agr_mobi_uz_card_format_error)
}
if (valid) {
etCardNumber.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_unchecked)
etCardNumber.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.agr_text_color))
tvErrorMsg.visible(false)
etCardNumber.setBackgroundResource(R.drawable.edit_text_unchecked)
etCardNumber.setTextColor(getColorCompat(R.color.black100))
tvErrorMsg.isVisible = false
} else {
etCardNumber.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_error)
etCardNumber.setBackgroundResource(R.drawable.edit_text_error)
etCardNumber.setTextColor(getColorCompat(R.color.primary100))
tvErrorMsg.visible(true)
tvErrorMsg.isVisible = true
}
checkValidForm()
})
......@@ -190,13 +188,13 @@ class AddCardFragment : BaseFragment(R.layout.fragment_add_card) {
}
cardExpiryIsValid = checkValid
if (checkValid) {
etCardExpiry.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_unchecked)
etCardExpiry.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.agr_text_color))
tvErrorMsgExpiry.visible(false)
etCardExpiry.setBackgroundResource(R.drawable.edit_text_unchecked)
etCardExpiry.setTextColor(getColorCompat(R.color.black100))
tvErrorMsgExpiry.isVisible = false
} else {
etCardExpiry.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_error)
etCardExpiry.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.primary100))
tvErrorMsgExpiry.visible(true)
etCardExpiry.setBackgroundResource(R.drawable.edit_text_error)
etCardExpiry.setTextColor(getColorCompat(R.color.primary100))
tvErrorMsgExpiry.isVisible = true
}
checkValidForm()
})
......
......@@ -19,12 +19,7 @@ import com.google.android.gms.auth.api.phone.SmsRetriever
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.mobiuz.ui.fast_action.animation.getColorCompat
import uz.agr.mobiuz.ui.fast_action.animation.showKeyboard
import uz.agr.sdk.coreui.extension.hideSoftInput
import uz.agr.sdk.coreui.extension.visible
import uz.agr.sdk.coreui.ui.ButtonClick
import uz.agr.sdk.coreui.ui.TextWatcherWrapper
import uz.mobiuz.mobiservice.dev.R
......@@ -34,9 +29,13 @@ import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import uz.mobiuz.mobiservice.dev.utils.extensions.clearText
import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import uz.mobiuz.mobiservice.dev.utils.extensions.isEmpty
import uz.mobiuz.mobiservice.dev.utils.extensions.isNotEmpty
import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import uz.mobiuz.mobiservice.dev.utils.showKeyboard
import uz.mobiuz.mobiservice.dev.utils.sms.MessageDialog
import uz.mobiuz.mobiservice.dev.utils.sms.SmsBroadcastReceiver
import java.util.regex.Pattern
import javax.inject.Inject
......@@ -190,8 +189,8 @@ class CardConfirmFragment : BaseFragment(R.layout.fragment_card_confirm) {
private fun showSuccessDialog() {
val dialog = MessageDialog(
requireContext(),
getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_added),
getString(uz.agr.mobiuz.R.string.agr_mobi_uz_close_process)
getString(R.string.agr_mobi_uz_card_added),
getString(R.string.agr_mobi_uz_close_process)
)
dialog.window!!.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
......@@ -278,18 +277,18 @@ class CardConfirmFragment : BaseFragment(R.layout.fragment_card_confirm) {
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
super.onTextChanged(s, start, before, count)
bn.txtErrorCode.isVisible = false
txtErrorCode.visible(false)
txtErrorCode.isVisible = false
if (s.toString().isNotEmpty()) {
if (i == pinView.childCount - 1) {
pin6.hideKeyboard()
btnConfirm.isEnabled = true
} else pinView.getChildAt(i + 1).requestFocus()
this@apply.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_bgn_ver_checked)
this@apply.setBackgroundResource(R.drawable.bgn_ver_checked)
} else {
if (i == pinView.childCount - 1) {
btnConfirm.isEnabled = false
}
this@apply.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_bgn_ver_unchecked)
this@apply.setBackgroundResource(R.drawable.bgn_ver_unchecked)
}
}
})
......
......@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.app.AlertDialog
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView
import com.hannesdorfmann.adapterdelegates4.AdapterDelegate
import kotlinx.android.synthetic.main.mobi_uz_item_card.view.*
......@@ -78,11 +79,11 @@ class CardDelegate(
val isUzCard = cardInfo.pan.startsWith("8600")
val isHumoCard = cardInfo.pan.startsWith("9860")
if (isHumoCard) {
containerView.ivHumo.visible(true)
containerView.ivUzCard.visible(false)
containerView.ivHumo.isVisible = true
containerView.ivUzCard.isVisible = false
} else {
containerView.ivHumo.visible(false)
containerView.ivUzCard.visible(true)
containerView.ivHumo.isVisible = false
containerView.ivUzCard.isVisible = true
}
}
......
......@@ -13,7 +13,6 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect
import uz.agr.mobiuz.presentation.card.dialog.MessageDialogFragment
import uz.agr.sdk.core.entity.card.CardInfo
import uz.agr.sdk.coreui.extension.formattedCardNumber
import uz.agr.sdk.coreui.extension.visible
......@@ -88,24 +87,24 @@ class CardsListFragment : BaseFragment(R.layout.fragment_cards_list) {
recyclerView.addItemDecoration(
StartOffsetItemDecoration(
resources.getDimensionPixelOffset(
uz.agr.mobiuz.R.dimen.agr_card_list_start_offset
R.dimen.agr_card_list_start_offset
)
)
)
recyclerView.addItemDecoration(
EndOffsetItemDecoration(
resources.getDimensionPixelOffset(
uz.agr.mobiuz.R.dimen.agr_card_list_end_offset
R.dimen.agr_card_list_end_offset
)
)
)
swipeToRefresh.setColorSchemeResources(
uz.agr.mobiuz.R.color.agr_black,
uz.agr.mobiuz.R.color.agr_mobi_uz_colorAccent
R.color.agr_black,
R.color.primary100
)
swipeToRefresh.setOnRefreshListener {
MobiUz.refreshCardsInfo(object : BaseListener<List<CardInfo>>{
MobiUz.refreshCardsInfo(object : BaseListener<List<CardInfo>> {
override fun error(message: String) {
swipeToRefresh.isRefreshing = false
showToastMessage(message)
......@@ -132,7 +131,7 @@ class CardsListFragment : BaseFragment(R.layout.fragment_cards_list) {
}
private fun showDeleteCardConfirmDialog(cardNumber: String) {
val dialog = MessageDialogFragment(requireContext(), getString(uz.agr.mobiuz.R.string.agr_mobi_uz_delete_card_question))
val dialog = MessageDialogFragment(requireContext(), getString(R.string.agr_mobi_uz_delete_card_question))
dialog.window!!.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
dialog.window!!.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.setCanceledOnTouchOutside(true)
......@@ -140,7 +139,7 @@ class CardsListFragment : BaseFragment(R.layout.fragment_cards_list) {
dialog.dismiss()
}
dialog.setOnOkClickListener {
MobiUz.deleteCard(selectedCard!!,object : BaseListener<Boolean>{
MobiUz.deleteCard(selectedCard!!, object : BaseListener<Boolean> {
override fun error(message: String) {
}
......
package uz.mobiuz.mobiservice.dev.ui.sdk.card
import android.app.AlertDialog
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import uz.agr.sdk.coreui.ui.ButtonClick
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.databinding.DialogDeleteCardBinding
import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
class MessageDialogFragment(context: Context, title: String? = null) : AlertDialog(context, R.style.AgrProgressDialogTheme) {
private val contentView = LayoutInflater.from(context).inflate(R.layout.dialog_delete_card, null, false)
private var listenerOk: SingleBlock<Int>? = null
private var binding: DialogDeleteCardBinding
private var listenerCancel: SingleBlock<Int>? = null
init {
setView(contentView)
binding = DialogDeleteCardBinding.bind(contentView)
binding.apply {
if (title != null)
description.text = title
btnOk.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
listenerOk?.invoke(1)
}
})
btnCancel.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
listenerCancel?.invoke(1)
}
})
}
}
fun setOnOkClickListener(block: SingleBlock<Int>) {
listenerOk = block
}
fun setOnCancelClickListener(block: SingleBlock<Int>) {
listenerCancel = block
}
}
\ No newline at end of file
......@@ -6,9 +6,9 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.hannesdorfmann.adapterdelegates4.AdapterDelegate
import kotlinx.android.synthetic.main.item_history_header.view.*
import uz.agr.mobiuz.model.Tuple2
import uz.agr.sdk.coreui.extension.inflate
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.model.Tuple2
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.*
......
......@@ -3,13 +3,12 @@ package uz.mobiuz.mobiservice.dev.ui.sdk.history
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.hannesdorfmann.adapterdelegates4.ListDelegationAdapter
import uz.agr.mobiuz.model.Tuple2
import uz.agr.mobiuz.ui.global.list.DividerAdapterDelegate
import uz.agr.sdk.coreui.extension.formattedMoney
import uz.agr.sdk.coreui.ui.history.DividerItem
import uz.agr.sdk.coreui.ui.list.ProgressAdapterDelegate
import uz.agr.sdk.coreui.ui.list.ProgressItem
import uz.mobiuz.mobiservice.dev.model.Monitoring
import uz.mobiuz.mobiservice.dev.model.Tuple2
class MonitoringAdapter : ListDelegationAdapter<MutableList<Any>>() {
......@@ -17,7 +16,6 @@ class MonitoringAdapter : ListDelegationAdapter<MutableList<Any>>() {
items = mutableListOf()
delegatesManager.addDelegate(HistoryHeaderDelegate())
delegatesManager.addDelegate(MonitoringDelegate())
delegatesManager.addDelegate(DividerAdapterDelegate())
delegatesManager.addDelegate(ProgressAdapterDelegate())
}
......@@ -46,7 +44,6 @@ class MonitoringAdapter : ListDelegationAdapter<MutableList<Any>>() {
var tempDate = ""
for (item in historyList) {
if (tempDate != item.date.toString()) {
items.add(DividerItem())
val value = hashMap[item.date.toString()]
items.add(
Tuple2(
......@@ -58,9 +55,6 @@ class MonitoringAdapter : ListDelegationAdapter<MutableList<Any>>() {
}
items.add(item)
}
if (items.isNotEmpty()) {
items.add(DividerItem())
}
if (progress) items.add(ProgressItem())
//yes, on main thread...
......
......@@ -6,11 +6,11 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.hannesdorfmann.adapterdelegates4.AdapterDelegate
import kotlinx.android.synthetic.main.monitoring_item.view.*
import uz.agr.mobiuz.ui.fast_action.animation.formatCard1
import uz.agr.sdk.coreui.extension.formattedMoney
import uz.agr.sdk.coreui.extension.inflate
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.model.Monitoring
import uz.mobiuz.mobiservice.dev.utils.extensions.formatCard
import uz.mobiuz.mobiservice.dev.utils.extensions.formatPhone
import java.text.SimpleDateFormat
import java.util.*
......@@ -37,7 +37,7 @@ class MonitoringDelegate : AdapterDelegate<MutableList<Any>>() {
@SuppressLint("SetTextI18n", "ResourceAsColor")
fun bind(history: Monitoring) {
this.history = history
containerView.cardPan.text = history.pan.formatCard1()
containerView.cardPan.text = history.pan.formatCard()
containerView.tvAmount.text = "- " + (history.amount * 100).formattedMoney(false) + " " + itemView.context.getString(R.string.agr_mobi_uz_curr)
// val date = timeFormat.format(history.date)
val date = history.date.toString()
......
......@@ -9,11 +9,11 @@ import androidx.navigation.fragment.NavHostFragment
import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect
import uz.agr.mobiuz.ui.history.header.HeaderItemDecoration
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.databinding.FragmentMonitoringLocalBinding
import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import uz.mobiuz.mobiservice.dev.utils.HeaderItemDecoration
import javax.inject.Inject
......
......@@ -82,14 +82,14 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
if (::monitoring.isInitialized) {
etAmount.text = "${monitoring.amount.formattedMoney(showDecimal = false, tiyinToSum = false)} ${
getString(
uz.agr.mobiuz.R.string
R.string
.agr_mobi_uz_curr
)
}"
etPhone.text = monitoring.phone.formatPhone(minus = false)
}
if (saveCard == CONSTANTS.IS_SAVED_CARD) {
showSnackMessage(getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_added))
showSnackMessage(getString(R.string.agr_mobi_uz_card_added))
if (cardNumber.isNotEmpty()) {
tvPanTitle.isVisible = true
etCardPan.isVisible = true
......@@ -99,7 +99,7 @@ class PaymentSuccessfulFragment : BaseFragment(R.layout.fragment_payment_success
if (saveCard == CONSTANTS.IS_NOT_SAVED_CARD) {
if (cardNumber.length == 20)
deleteCard(cardNumber.substring(0, 16), cardNumber.substring(16, 20))
showSnackMessage(getString(uz.agr.mobiuz.R.string.agr_mobi_uz_card_not_save))
showSnackMessage(getString(R.string.agr_mobi_uz_card_not_save))
}
}
......
......@@ -15,8 +15,6 @@ import com.google.gson.Gson
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.android.synthetic.main.fragment_replenish_balance.*
import timber.log.Timber
import uz.agr.mobiuz.ui.fast_action.animation.getColorCompat
import uz.agr.mobiuz.ui.replenish.dialog.SelectCardBottomDialogFragment
import uz.agr.sdk.core.entity.card.CardInfo
import uz.agr.sdk.core.entity.tuple.Tuple3
import uz.agr.sdk.coreui.extension.hideSoftInput
......@@ -38,6 +36,7 @@ import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import uz.mobiuz.mobiservice.dev.ui.sdk.card.CardViewModel
import uz.mobiuz.mobiservice.dev.ui.sdk.pay.SelectAnotherCard
import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import java.util.*
import javax.inject.Inject
import kotlin.collections.HashMap
......@@ -86,7 +85,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
navController.navigateUp()
}
etAmountInterval.text = getString(uz.agr.mobiuz.R.string.agr_mobi_uz_amount_interval, "1000", "500 000")
etAmountInterval.text = getString(R.string.agr_mobi_uz_amount_interval, "1000", "500 000")
tvLinkOferta.setOnClickListener(object : uz.agr.sdk.coreui.ui.ButtonClick() {
override fun onSingleClick(v: View?) {
......@@ -218,7 +217,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
} else {
if (selectedCard != null) {
if (selectedCard!!.balance > amountValid!!) pay()
else showSnackMessage(getString(uz.agr.mobiuz.R.string.agr_mobi_uz_not_enough_money))
else showSnackMessage(getString(R.string.agr_mobi_uz_not_enough_money))
}
}
}
......@@ -235,7 +234,7 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
val phoneNumber = "998${etPhone.unmaskedText}"
val amount = amountValid ?: 0
if (!isMobiUz(phoneNumber.substring(3, 5))) {
showSnackMessage(getString(uz.agr.mobiuz.R.string.agr_mobi_uz_payment_phone_error))
showSnackMessage(getString(R.string.agr_mobi_uz_payment_phone_error))
return
}
......@@ -452,11 +451,11 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
etCardExpiry.requestFocus()
cardNumberValid = number
etCardNumber.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_unchecked)
etCardNumber.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.agr_text_color))
etCardNumber.setBackgroundResource(R.drawable.edit_text_unchecked)
etCardNumber.setTextColor(getColorCompat(R.color.black100))
} else {
etCardNumber.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_error)
etCardNumber.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.primary100))
etCardNumber.setBackgroundResource(R.drawable.edit_text_error)
etCardNumber.setTextColor(getColorCompat(R.color.primary100))
}
tvErrorMsg.isVisible = !valid
......@@ -488,11 +487,11 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
etCardNumber.requestFocus()
} else activity?.hideSoftInput()
etCardExpiry.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_unchecked)
etCardExpiry.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.agr_text_color))
etCardExpiry.setBackgroundResource(R.drawable.edit_text_unchecked)
etCardExpiry.setTextColor(getColorCompat(R.color.black100))
} else {
etCardExpiry.setBackgroundResource(uz.agr.mobiuz.R.drawable.agr_edit_text_error)
etCardExpiry.setTextColor(getColorCompat(uz.agr.mobiuz.R.color.primary100))
etCardExpiry.setBackgroundResource(R.drawable.edit_text_error)
etCardExpiry.setTextColor(getColorCompat(R.color.primary100))
}
cardExpiryIsValid = checkValid
......@@ -533,16 +532,16 @@ class ReplenishBalanceFragment : BaseFragment(R.layout.fragment_replenish_balanc
private fun getResources(prefix: Int): Int {
return when (prefix) {
99 -> uz.agr.mobiuz.R.drawable.agr_logo_uztelekom
95 -> uz.agr.mobiuz.R.drawable.agr_logo_uztelekom
98 -> uz.agr.mobiuz.R.drawable.agr_log_perfectum
97 -> uz.agr.mobiuz.R.drawable.agr_logo_ums
88 -> uz.agr.mobiuz.R.drawable.agr_logo_ums
94 -> uz.agr.mobiuz.R.drawable.agr_logo_ucell
93 -> uz.agr.mobiuz.R.drawable.agr_logo_ucell
91 -> uz.agr.mobiuz.R.drawable.agr_logo_beeline
90 -> uz.agr.mobiuz.R.drawable.agr_logo_beeline
71 -> uz.agr.mobiuz.R.drawable.agr_logo_uztelekom
99 -> R.drawable.agr_logo_uztelekom
95 -> R.drawable.agr_logo_uztelekom
98 -> R.drawable.agr_log_perfectum
97 -> R.drawable.agr_logo_ums
88 -> R.drawable.agr_logo_ums
94 -> R.drawable.agr_logo_ucell
93 -> R.drawable.agr_logo_ucell
91 -> R.drawable.agr_logo_beeline
90 -> R.drawable.agr_logo_beeline
71 -> R.drawable.agr_logo_uztelekom
else -> 0
}
}
......
package uz.mobiuz.mobiservice.dev.ui.sdk.payment
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.recyclerview.widget.LinearLayoutManager
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import kotlinx.android.synthetic.main.fragment_select_card.*
import uz.agr.sdk.core.entity.card.CardInfo
import uz.agr.sdk.coreui.extension.fadeIn
import uz.agr.sdk.coreui.extension.fadeOut
import uz.agr.sdk.coreui.extension.visible
import uz.agr.sdk.coreui.ui.ButtonClick
import uz.agr.sdk.coreui.ui.decoration.EndOffsetItemDecoration
import uz.agr.sdk.coreui.ui.decoration.StartOffsetItemDecoration
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.ui.sdk.card.CardsListAdapter
/**
* Created by DostonbekIbragimov on 22/12/2021.
*/
class SelectCardBottomDialogFragment(val cards: List<CardInfo>) : BottomSheetDialogFragment() {
private var mListener: Listener? = null
fun setListener(listener: Listener?) {
this.mListener = listener
}
private lateinit var adapter: CardsListAdapter
override fun onStart() {
super.onStart()
val view: FrameLayout = dialog?.findViewById(R.id.design_bottom_sheet)!!
view.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
val behavior = BottomSheetBehavior.from(view)
behavior.peekHeight = 3000
behavior.state = BottomSheetBehavior.STATE_EXPANDED
behavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
override fun onStateChanged(bottomSheet: View, newState: Int) {
when (newState) {
BottomSheetBehavior.STATE_EXPANDED -> {
}
BottomSheetBehavior.STATE_COLLAPSED -> {
}
BottomSheetBehavior.STATE_DRAGGING -> {
}
BottomSheetBehavior.STATE_SETTLING -> {
}
BottomSheetBehavior.STATE_HIDDEN -> {
}
}
}
override fun onSlide(bottomSheet: View, slideOffset: Float) {}
})
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
inflater.inflate(R.layout.fragment_select_card, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
adapter = CardsListAdapter(true)
// behavior.isDraggable = true
/* btnRechargeCard.setOnClickListener {
dismiss()
mListener?.onClickRechargeCard()
}
btnCardDetails.setOnClickListener {
dismiss()
mListener?.onClickCardDetails()
}
btnDeleteCard.setOnClickListener {
dismiss()
mListener?.onClickDeleteCard()
}*/
adapter.setOnClickListener { cardInfo, position ->
mListener?.onClickCardSelected(cardInfo, position)
dismiss()
}
btnEnterAnotherCard.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
dismiss()
mListener?.onClickAnotherCard()
}
})
toolbar.setNavigationOnClickListener {
dismiss()
mListener?.onClickCancel()
}
recyclerView.apply {
layoutManager = LinearLayoutManager(context)
setHasFixedSize(true)
adapter = this@SelectCardBottomDialogFragment.adapter
visible(false)
}
recyclerView.addItemDecoration(StartOffsetItemDecoration(resources.getDimensionPixelOffset(R.dimen.agr_card_list_start_offset)))
recyclerView.addItemDecoration(EndOffsetItemDecoration(resources.getDimensionPixelOffset(R.dimen.agr_card_list_end_offset)))
/* toolbar.setNavigationOnClickListener { presenter.onBackPressed() }
swipeToRefresh.setOnRefreshListener { presenter.refreshCardsInfo() }
btnEnterAnotherCard.setOnClickListener { presenter.onClickNewCard() }
zeroViewHolder = ZeroViewHolder(zeroLayout) { presenter.refreshCardsInfo() }
noCardsViewHolder = NoCardsViewHolder(emptyLayout)
btnEnterAnotherCard.visible(selectCard)*/
if (cards.isNotEmpty()) recyclerView.fadeIn()
else recyclerView.fadeOut()
// swipeToRefresh.isEnabled = cards.isNotEmpty()
adapter.setData(cards)
adapter.notifyDataSetChanged()
}
interface Listener {
fun onClickAnotherCard()
fun onClickCancel()
fun onClickCardSelected(cardInfo: CardInfo, position: Int)
}
}
\ No newline at end of file
......@@ -6,6 +6,8 @@ import android.view.View
import androidx.core.view.isVisible
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.sdk.pgw_core.mobi.MobiUz
import uz.mobiuz.mobiservice.dev.MainActivity
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.databinding.FragmentLanguageBinding
......@@ -14,8 +16,6 @@ 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.utils.LocaleHelper
import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject
......@@ -71,7 +71,7 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) {
private fun setLangAndNavigate(lang: String) {
pref.language = lang
AGRBilling.setLanguage(requireContext(), lang)
MobiUz.setLanguage(requireContext(), lang)
LocaleHelper.setLocale(requireContext())
val intent = Intent(requireContext(), MainActivity::class.java)
intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST)
......
package uz.mobiuz.mobiservice.dev.utils
/*
solution based on - based on Sevastyan answer on StackOverflow
changes:
- take to account views offsets
- transformed to Kotlin
- now works on viewHolders
- try to cache viewHolders between draw's
- support for clipToPadding=false
Source:
https://stackoverflow.com/questions/32949971/how-can-i-make-sticky-headers-in-recyclerview-without-external-lib/44327350#44327350
gist:
https://gist.github.com/filipkowicz/1a769001fae407b8813ab4387c42fcbd
*/
import android.graphics.Canvas
import android.graphics.Rect
import android.graphics.RectF
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
class HeaderItemDecoration(
parent: RecyclerView,
private val shouldFadeOutHeader: Boolean = false,
private val isHeader: (itemPosition: Int) -> Boolean
) : RecyclerView.ItemDecoration() {
private var currentHeader: Pair<Int, RecyclerView.ViewHolder>? = null
init {
parent.adapter?.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
override fun onChanged() {
// clear saved header as it can be outdated now
currentHeader = null
}
})
parent.doOnEachNextLayout {
// clear saved layout as it may need layout update
currentHeader = null
}
// handle click on sticky header
parent.addOnItemTouchListener(object : RecyclerView.SimpleOnItemTouchListener() {
override fun onInterceptTouchEvent(
recyclerView: RecyclerView,
motionEvent: MotionEvent
): Boolean {
return if (motionEvent.action == MotionEvent.ACTION_DOWN) {
motionEvent.y <= currentHeader?.second?.itemView?.bottom ?: 0
} else false
}
})
}
override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
super.onDrawOver(c, parent, state)
//val topChild = parent.getChildAt(0) ?: return
val topChild = parent.findChildViewUnder(
parent.paddingLeft.toFloat(),
parent.paddingTop.toFloat() /*+ (currentHeader?.second?.itemView?.height ?: 0 )*/
) ?: return
val topChildPosition = parent.getChildAdapterPosition(topChild)
if (topChildPosition == RecyclerView.NO_POSITION) {
return
}
val headerView = getHeaderViewForItem(topChildPosition, parent) ?: return
val contactPoint = headerView.bottom + parent.paddingTop
val childInContact = getChildInContact(parent, contactPoint) ?: return
if (isHeader(parent.getChildAdapterPosition(childInContact))) {
moveHeader(c, headerView, childInContact, parent.paddingTop)
return
}
drawHeader(c, headerView, parent.paddingTop)
}
private fun getHeaderViewForItem(itemPosition: Int, parent: RecyclerView): View? {
if (parent.adapter == null) {
return null
}
val headerPosition = getHeaderPositionForItem(itemPosition)
if (headerPosition == RecyclerView.NO_POSITION) return null
val headerType = parent.adapter?.getItemViewType(headerPosition) ?: return null
// if match reuse viewHolder
if (currentHeader?.first == headerPosition && currentHeader?.second?.itemViewType == headerType) {
return currentHeader?.second?.itemView
}
val headerHolder = parent.adapter?.createViewHolder(parent, headerType)
if (headerHolder != null) {
parent.adapter?.onBindViewHolder(headerHolder, headerPosition)
fixLayoutSize(parent, headerHolder.itemView)
// save for next draw
currentHeader = headerPosition to headerHolder
}
return headerHolder?.itemView
}
private fun drawHeader(c: Canvas, header: View, paddingTop: Int) {
c.save()
c.translate(0f, paddingTop.toFloat())
header.draw(c)
c.restore()
}
private fun moveHeader(c: Canvas, currentHeader: View, nextHeader: View, paddingTop: Int) {
c.save()
if (!shouldFadeOutHeader) {
c.clipRect(0, paddingTop, c.width, paddingTop + currentHeader.height)
} else {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
c.saveLayerAlpha(
RectF(0f, 0f, c.width.toFloat(), c.height.toFloat()),
(((nextHeader.top - paddingTop) / nextHeader.height.toFloat()) * 255).toInt()
)
} else {
c.saveLayerAlpha(
0f, 0f, c.width.toFloat(), c.height.toFloat(),
(((nextHeader.top - paddingTop) / nextHeader.height.toFloat()) * 255).toInt(),
Canvas.ALL_SAVE_FLAG
)
}
}
c.translate(0f, (nextHeader.top - currentHeader.height).toFloat() /*+ paddingTop*/)
currentHeader.draw(c)
if (shouldFadeOutHeader) {
c.restore()
}
c.restore()
}
private fun getChildInContact(parent: RecyclerView, contactPoint: Int): View? {
var childInContact: View? = null
for (i in 0 until parent.childCount) {
val child = parent.getChildAt(i)
val mBounds = Rect()
parent.getDecoratedBoundsWithMargins(child, mBounds)
if (mBounds.bottom > contactPoint) {
if (mBounds.top <= contactPoint) {
// This child overlaps the contactPoint
childInContact = child
break
}
}
}
return childInContact
}
/**
* Properly measures and layouts the top sticky header.
*
* @param parent ViewGroup: RecyclerView in this case.
*/
private fun fixLayoutSize(parent: ViewGroup, view: View) {
// Specs for parent (RecyclerView)
val widthSpec = View.MeasureSpec.makeMeasureSpec(parent.width, View.MeasureSpec.EXACTLY)
val heightSpec =
View.MeasureSpec.makeMeasureSpec(parent.height, View.MeasureSpec.UNSPECIFIED)
// Specs for children (headers)
val childWidthSpec = ViewGroup.getChildMeasureSpec(
widthSpec,
parent.paddingLeft + parent.paddingRight,
view.layoutParams.width
)
val childHeightSpec = ViewGroup.getChildMeasureSpec(
heightSpec,
parent.paddingTop + parent.paddingBottom,
view.layoutParams.height
)
view.measure(childWidthSpec, childHeightSpec)
view.layout(0, 0, view.measuredWidth, view.measuredHeight)
}
private fun getHeaderPositionForItem(itemPosition: Int): Int {
var headerPosition = RecyclerView.NO_POSITION
var currentPosition = itemPosition
do {
if (isHeader(currentPosition)) {
headerPosition = currentPosition
break
}
currentPosition -= 1
} while (currentPosition >= 0)
return headerPosition
}
}
inline fun View.doOnEachNextLayout(crossinline action: (view: View) -> Unit) {
addOnLayoutChangeListener { view, _, _, _, _, _, _, _, _ ->
action(
view
)
}
}
\ No newline at end of file
......@@ -10,6 +10,7 @@ import android.text.method.LinkMovementMethod
import android.text.style.ClickableSpan
import android.util.Log
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import android.widget.Toast
import androidx.annotation.ColorInt
......@@ -22,7 +23,6 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText
import com.google.gson.JsonSyntaxException
import retrofit2.HttpException
import uz.agr.mobiuz.ui.fast_action.animation.getPhoneMasked
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.network.model.Errors
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
......@@ -307,3 +307,15 @@ fun String.formatPhone(minus: Boolean = true): String {
else -> this
}
}
fun getPhoneMasked(phone: String, minus: Boolean): String {
return when {
phone.length != 9 -> phone
minus -> "+998 ${phone.substring(0, 2)} ${phone.substring(2, 5)}-${phone.substring(5, 7)}-${phone.substring(7, 9)}"
else -> "+998 ${phone.substring(0, 2)} ${phone.substring(2, 5)} ${phone.substring(5, 7)} ${phone.substring(7, 9)}"
}
}
fun ImageView.tint(colorRes: Int) = this.setColorFilter(this.context.color(colorRes))
fun Context.color(colorRes: Int) = ContextCompat.getColor(this, colorRes)
package uz.mobiuz.mobiservice.dev.utils.sms
import android.app.AlertDialog
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import androidx.core.view.isVisible
import kotlinx.android.synthetic.main.layout_dialog_message.*
import uz.agr.sdk.coreui.ui.ButtonClick
import uz.mobiuz.mobiservice.dev.R
class MessageDialog(context: Context, title: String? = null, buttonText: String, drawable: Int? = null) : AlertDialog(context, R.style.AgrProgressDialogTheme) {
private val contentView = LayoutInflater.from(context).inflate(R.layout.layout_dialog_message, null, false)
private var listenerOk: OnClickListener? = null
init {
setView(contentView)
contentView.apply {
if (title != null)
description.text = title
else description.isVisible = false
if (drawable != null) {
image.setImageResource(drawable)
}
btnOk.text = buttonText
btnOk.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
listenerOk?.dialogPositiveClicked()
}
})
}
}
fun setOnOkClickListener(event: OnClickListener) {
listenerOk = event
}
interface OnClickListener {
fun dialogPositiveClicked() {}
}
}
package uz.mobiuz.mobiservice.dev.utils.sms
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import com.google.android.gms.auth.api.phone.SmsRetriever
import com.google.android.gms.common.api.CommonStatusCodes
import com.google.android.gms.common.api.Status
class SmsBroadcastReceiver : BroadcastReceiver() {
var smsBroadcastReceiverListener: SmsBroadcastReceiverListener? = null
override fun onReceive(context: Context, intent: Intent) {
if (intent.action == SmsRetriever.SMS_RETRIEVED_ACTION) {
val extras = intent.extras
val smsRetrieverStatus = extras!![SmsRetriever.EXTRA_STATUS] as Status?
when (smsRetrieverStatus!!.statusCode) {
CommonStatusCodes.SUCCESS -> {
val messageIntent =
extras.getParcelable<Intent>(SmsRetriever.EXTRA_CONSENT_INTENT)
smsBroadcastReceiverListener!!.onSuccess(messageIntent)
}
CommonStatusCodes.TIMEOUT -> smsBroadcastReceiverListener!!.onFailure()
}
}
}
interface SmsBroadcastReceiverListener {
fun onSuccess(intent: Intent?)
fun onFailure()
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false">
<shape>
<corners android:radius="6dp" />
<stroke android:width="1dp" android:color="@color/grey30" android:dashWidth="1dp" android:dashGap="1dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<solid android:color="@color/fast_text_grey" />
<corners android:radius="6dp" />
<stroke android:width="1dp" android:color="@color/grey30" android:dashWidth="1dp" android:dashGap="1dp" />
</shape>
</item>
</selector>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="28dp"
android:height="28dp"
android:viewportWidth="28"
android:viewportHeight="28">
<group>
<clip-path
android:pathData="M14,14m-14,0a14,14 0,1 1,28 0a14,14 0,1 1,-28 0"/>
<path
android:pathData="M14,14m-14,0a14,14 0,1 1,28 0a14,14 0,1 1,-28 0"
android:fillColor="#FF650F"/>
<path
android:pathData="M14.7814,8C13.2844,6 11.4547,5.3333 11.4547,5.3333C11.4547,5.3333 15.1141,4 19.2725,6.6667C22.5579,8.7735 22.4171,11.4005 20.8188,12.7394C19.9331,13.4814 18.6357,13.6527 17.5718,13.2037C16.9867,12.9567 16.5556,12.5555 16.2785,12.0001C15.5745,10.7506 15.6192,9.1193 14.7814,8Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M7.9808,13.2939C6.0063,14.8223 5.3671,16.6649 5.3671,16.6649C5.3671,16.6649 3.9844,13.0176 6.5863,8.8133C8.6419,5.4917 11.2653,5.5953 12.6243,7.1776C13.3773,8.0544 13.5667,9.3518 13.1338,10.4242C12.8957,11.0138 12.5015,11.4515 11.9512,11.7371C10.7143,12.4602 9.0858,12.4386 7.9808,13.2939Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M20.0248,14.7437C21.9895,13.2026 22.6168,11.3558 22.6168,11.3558C22.6168,11.3558 24.0229,14.9942 21.448,19.2152C19.4138,22.5499 16.7897,22.4632 15.4207,20.8897C14.662,20.0178 14.4643,18.7216 14.8903,17.6465C15.1246,17.0553 15.516,16.6152 16.0645,16.326C17.2967,15.595 18.9253,15.6061 20.0248,14.7437Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M13.1686,20.0118C14.6906,21.9928 16.5285,22.6363 16.5285,22.6363C16.5285,22.6363 12.8862,24.0157 8.6946,21.4017C5.383,19.3364 5.4908,16.7079 7.0722,15.3489C7.9485,14.5958 9.2436,14.4082 10.3131,14.8438C10.9012,15.0833 11.3373,15.479 11.6214,16.0309C12.341,17.2715 12.3168,18.9031 13.1686,20.0118Z"
android:fillColor="#ffffff"/>
</group>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="28dp"
android:height="28dp"
android:viewportWidth="28"
android:viewportHeight="28">
<path
android:pathData="M14,14m-14,0a14,14 0,1 1,28 0a14,14 0,1 1,-28 0"
android:fillColor="#60A4FB"/>
<path
android:pathData="M3.7334,11.6901C4.7469,11.9815 5.4896,12.9071 5.4896,14.0013C5.4896,15.0952 4.7469,16.0204 3.7336,16.3118C4.4403,15.7819 4.8979,14.9435 4.8979,14.0013C4.8979,13.0584 4.4403,12.22 3.7334,11.6901ZM4.5965,10.4655C6.5725,10.4655 8.1748,12.049 8.1748,14.0011C8.1748,15.9535 6.5725,17.537 4.5965,17.537C4.4481,17.537 4.3013,17.5275 4.1576,17.5101C5.926,17.296 7.2966,15.8072 7.2966,14.0011C7.2966,12.1951 5.926,10.7063 4.1574,10.492C4.3013,10.4746 4.4481,10.4655 4.5965,10.4655ZM5.8513,8.4186C8.971,8.4186 11.5008,10.9189 11.5008,14.0011C11.5008,17.0836 8.971,19.5837 5.8513,19.5837C5.6171,19.5837 5.3856,19.5692 5.1585,19.5406C7.9515,19.2029 10.1137,16.8516 10.1137,14.0011C10.1137,11.1508 7.9515,8.7986 5.1585,8.4608C5.3856,8.4331 5.6171,8.4186 5.8513,8.4186Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M13.8774,3.7344C19.6142,3.7344 24.2667,8.3319 24.2667,14.001C24.2667,19.6701 19.6142,24.2677 13.8774,24.2677C13.4455,24.2677 13.0204,24.2408 12.6021,24.1904C17.7378,23.5688 21.716,19.2433 21.716,14.001C21.716,8.7588 17.7378,4.4327 12.6021,3.811C13.0204,3.7607 13.4455,3.7344 13.8774,3.7344ZM7.663,6.4952C11.8572,6.4952 15.2585,9.8562 15.2585,14.001C15.2585,18.1458 11.8572,21.5073 7.663,21.5073C7.3476,21.5073 7.0367,21.487 6.7313,21.4495C10.4856,20.9957 13.3939,17.8336 13.3939,14.001C13.3939,10.1683 10.4856,7.0062 6.7313,6.5519C7.0405,6.5143 7.3516,6.4954 7.663,6.4952ZM10.2071,4.8262C15.3346,4.8262 19.4919,8.9349 19.4919,14.001C19.4919,19.0673 15.3346,23.1763 10.2071,23.1763C9.8219,23.1763 9.4417,23.1514 9.0678,23.1062C13.6577,22.5509 17.2127,18.6863 17.2127,14.001C17.2127,9.3158 13.6577,5.451 9.0678,4.8952C9.4415,4.85 9.8219,4.8262 10.2071,4.8262Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="17dp"
android:height="4dp"
android:viewportWidth="17"
android:viewportHeight="4">
<path
android:pathData="M2.5,0L14.5,0A2,2 0,0 1,16.5 2L16.5,2A2,2 0,0 1,14.5 4L2.5,4A2,2 0,0 1,0.5 2L0.5,2A2,2 0,0 1,2.5 0z"
android:fillColor="#F1F1F1"/>
</vector>
<?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/primary25" />
</shape>
\ No newline at end of file
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="44dp"
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
<path
android:pathData="M22,0L22,0A22,22 0,0 1,44 22L44,22A22,22 0,0 1,22 44L22,44A22,22 0,0 1,0 22L0,22A22,22 0,0 1,22 0z"
android:fillColor="#E62229" />
<path
android:pathData="M23.0588,16L20.9412,16L20.9412,20.9412H16L16,23.0588H20.9412L20.9412,28H23.0588L23.0588,23.0588L28,23.0588V20.9412H23.0588L23.0588,16Z"
android:fillColor="#ffffff" />
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M2.0457,6.6165C2.2801,6.3821 2.598,6.2505 2.9294,6.2505C3.2609,6.2505 3.5788,6.3821 3.8132,6.6165L10.0007,12.804L16.1882,6.6165C16.4239,6.3888 16.7397,6.2628 17.0674,6.2656C17.3952,6.2685 17.7087,6.3999 17.9404,6.6317C18.1722,6.8635 18.3037,7.177 18.3065,7.5047C18.3094,7.8325 18.1834,8.1482 17.9557,8.384L10.8844,15.4552C10.65,15.6896 10.3321,15.8212 10.0007,15.8212C9.6692,15.8212 9.3513,15.6896 9.1169,15.4552L2.0457,8.384C1.8113,8.1496 1.6797,7.8317 1.6797,7.5002C1.6797,7.1688 1.8113,6.8509 2.0457,6.6165Z"
android:fillColor="#ffffff"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M5.0013,15.8333C5.0013,16.75 5.7513,17.5 6.668,17.5H13.3346C14.2513,17.5 15.0013,16.75 15.0013,15.8333V5.8333H5.0013V15.8333ZM15.8346,3.3333H12.918L12.0846,2.5H7.918L7.0846,3.3333H4.168V5H15.8346V3.3333Z"
android:fillColor="#ffffff"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="16dp"
android:height="16dp"
android:viewportWidth="16"
android:viewportHeight="16">
<path
android:pathData="M7.9987,1.333C4.3227,1.333 1.332,4.3237 1.332,7.9997C1.332,11.6757 4.3227,14.6663 7.9987,14.6663C11.6747,14.6663 14.6654,11.6757 14.6654,7.9997C14.6654,4.3237 11.6747,1.333 7.9987,1.333ZM7.9987,13.333C5.058,13.333 2.6654,10.9403 2.6654,7.9997C2.6654,5.059 5.058,2.6663 7.9987,2.6663C10.9394,2.6663 13.332,5.059 13.332,7.9997C13.332,10.9403 10.9394,13.333 7.9987,13.333Z"
android:fillColor="#E62229"/>
<path
android:pathData="M8.6654,4.667H7.332V8.2763L9.5274,10.4717L10.47,9.529L8.6654,7.7243V4.667Z"
android:fillColor="#E62229"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="32dp"
android:viewportWidth="56"
android:viewportHeight="32">
<path
android:pathData="M4,0L52,0A4,4 0,0 1,56 4L56,28A4,4 0,0 1,52 32L4,32A4,4 0,0 1,0 28L0,4A4,4 0,0 1,4 0z"
android:fillColor="#ffffff"
android:fillAlpha="0.1"/>
<group>
<clip-path
android:pathData="M8,11h40v10.1961h-40z"/>
<path
android:pathData="M15.394,11.6227C15.3625,11.6614 15.2949,11.7277 15.3149,11.7846C15.3348,11.8412 15.4574,11.828 15.5089,11.8539C15.5972,11.8981 15.6328,11.9866 15.6302,12.0811C15.6269,12.1908 15.6257,13.2427 15.6216,14.6924C14.3456,14.6848 13.07,14.6773 11.7941,14.6698C11.7693,14.3527 11.7611,13.9973 11.7837,13.6106C11.8046,13.2542 11.8502,12.8992 11.9199,12.5491C11.9504,12.3958 11.9855,12.2434 12.0251,12.0922C12.0686,11.926 12.1885,11.722 12.1757,11.5481C12.1741,11.5248 12.1686,11.5008 12.1538,11.4827C12.1196,11.4402 12.0537,11.4471 12.0009,11.4606C11.6759,11.5441 11.3602,11.7174 11.1112,11.9417C11.0347,12.0106 10.8299,12.2052 10.6444,12.5375C10.1532,13.417 10.1148,14.6627 10.1148,14.6627C10.09,15.4682 10.0582,17.1004 10.9162,18.7948C10.9162,18.7948 11.5176,19.9826 12.3776,20.2755C12.5475,20.3333 12.5935,20.2949 12.6081,20.2761C12.6752,20.1902 12.5313,20.0425 12.4889,19.9767C12.4105,19.8556 12.3436,19.7272 12.2859,19.5949C12.1665,19.3215 12.0875,19.0321 12.0285,18.7403C11.8489,17.8519 11.7328,16.953 11.7575,16.0458H15.6215V19.4554C15.6215,19.6816 15.7138,19.8987 15.9222,20.0048C16.0477,20.0687 16.1899,20.0913 16.3297,20.1086C16.5747,20.1391 16.8245,20.156 17.0667,20.1095C17.2085,20.0823 17.3501,20.0311 17.4558,19.9329C17.6261,19.7746 17.6287,19.5605 17.6287,19.3449C17.6287,17.6321 17.6446,15.9197 17.6426,14.2072C17.6421,13.7825 17.6392,13.3577 17.6341,12.933C17.6272,12.3563 17.4478,11.7754 16.9387,11.4518C16.7187,11.312 16.4666,11.2356 16.2202,11.2356C15.9111,11.2356 15.611,11.3558 15.3939,11.6227H15.394Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M9.3654,13.6978C8.8576,14.3047 8.8176,15.0132 8.7929,15.7175C8.7352,17.371 9.3386,18.5473 9.474,18.8002C9.7777,19.368 10.1075,19.7419 10.2047,19.8496C10.5517,20.2332 10.9,20.4997 11.1672,20.6764C10.9553,20.6243 10.6554,20.5255 10.3346,20.3279C10.0375,20.1451 9.8257,19.9409 9.6865,19.7844C9.4854,19.5272 9.3439,19.3008 9.251,19.1399C9.0031,18.7101 8.6942,18.1747 8.5369,17.457C8.4926,17.2554 8.4627,17.0505 8.3835,17.0425C8.2691,17.0307 8.1397,17.4387 8.1118,17.5267C8.0215,17.8115 7.9986,18.0738 8.0003,18.2131C8.0068,18.7545 8.4125,19.8083 9.3835,20.5231C9.3835,20.5231 10.2323,21.1479 11.6838,21.196C11.7431,21.198 12.0948,21.1896 12.3554,21.003C12.4837,20.9112 12.5685,20.7705 12.3407,20.704C10.7813,20.2479 10.1731,18.5962 9.8401,17.1636C9.7675,16.8514 9.6984,16.5438 9.6572,16.2248C9.5326,15.2617 9.538,14.2024 9.8503,13.2733C9.6123,13.3267 9.5047,13.5316 9.3656,13.6979L9.3654,13.6978Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M36.9172,11.2559C36.847,11.2568 36.7766,11.2609 36.7065,11.2609C36.6091,11.2617 36.5118,11.2634 36.4143,11.2642C36.3477,11.2648 36.2808,11.2647 36.214,11.2647C36.0913,11.2644 35.9686,11.2642 35.8462,11.2684C35.6761,11.2751 35.5175,11.3329 35.3969,11.4599C35.2533,11.6105 35.1391,11.8254 34.9492,12.2861C34.9173,12.3622 34.8926,12.4267 34.8749,12.4709C34.8031,12.6273 33.7832,14.8364 33.3986,15.4761C33.3706,15.5238 33.3076,15.6258 33.2294,15.6224C33.1512,15.6258 33.0881,15.5237 33.0602,15.4761C32.6755,14.8364 31.6555,12.6273 31.5839,12.4709C31.5663,12.4267 31.5416,12.3622 31.5095,12.2861C31.3197,11.8254 31.2054,11.6104 31.0619,11.4599C30.9414,11.3329 30.7826,11.2752 30.6125,11.2684C30.4902,11.2642 30.3673,11.2644 30.2447,11.2647C30.178,11.2648 30.1112,11.2649 30.0444,11.2642C29.9469,11.2634 29.8496,11.2617 29.7523,11.2609C29.6821,11.2609 29.6118,11.2568 29.5416,11.2559C29.4403,11.2551 29.3454,11.2876 29.2591,11.342C29.0996,11.445 29.0308,11.5954 29.006,11.6523C28.9597,11.7568 28.9511,11.8472 28.9439,11.8849C28.8736,12.2393 28.8664,12.5337 28.8728,12.7319C28.7987,15.0055 28.7244,17.2781 28.6501,19.5517C28.6526,19.5894 28.6597,19.6422 28.6804,19.7005C28.797,20.0333 29.2191,20.1973 29.5447,20.2014C29.8735,20.2055 30.2662,20.0501 30.405,19.7482C30.4067,19.7448 30.4322,19.6863 30.4458,19.621C30.5423,19.1578 30.5981,15.4294 30.6188,13.8046C31.5086,15.6283 32.2054,16.9912 32.5269,17.5925C32.5925,17.7162 32.7321,17.9646 32.9891,18.0491C33.0633,18.0741 33.1455,18.0875 33.2294,18.0883C33.3131,18.0875 33.3952,18.0741 33.4695,18.0491C33.7264,17.9647 33.8661,17.7163 33.9317,17.5925C34.2533,16.9912 34.9498,15.6283 35.8396,13.8046C35.8605,15.4294 35.9163,19.1578 36.0129,19.621C36.0265,19.6863 36.052,19.7448 36.0536,19.7482C36.1925,20.0501 36.5851,20.2055 36.9138,20.2014C37.2395,20.1973 37.6617,20.0333 37.7783,19.7005C37.7989,19.6421 37.8061,19.5894 37.8085,19.5517C37.7343,17.2781 37.6601,15.0055 37.5857,12.7319C37.5922,12.5337 37.5851,12.2393 37.5147,11.8849C37.5076,11.8472 37.4988,11.7568 37.4526,11.6523C37.4278,11.5955 37.3591,11.445 37.1995,11.342C37.1144,11.2883 37.0207,11.2559 36.9209,11.2559C36.9196,11.2559 36.9184,11.2559 36.9171,11.2559H36.9172Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M25.1876,11.5132C25.0602,11.6548 25.0254,11.8221 25.0146,11.923C25.0093,13.6007 25.004,15.2784 24.9987,16.9562C25.0018,17.1205 24.9852,17.4299 24.8194,17.7706C24.6444,18.1301 24.3963,18.3334 24.3325,18.3837C24.3325,18.3837 23.91,18.7173 23.3576,18.7622C23.3023,18.7667 23.2442,18.7686 23.2442,18.7686C23.2297,18.7691 23.2153,18.7694 23.2006,18.7698C23.186,18.7694 23.1716,18.7692 23.1572,18.7686C23.1572,18.7686 23.0991,18.7667 23.0437,18.7622C22.4913,18.7172 22.0688,18.3837 22.0688,18.3837C22.0051,18.3334 21.757,18.1301 21.582,17.7706C21.4161,17.4298 21.3995,17.1205 21.4026,16.9562C21.3974,15.2784 21.392,13.6007 21.3867,11.923C21.3759,11.8221 21.3412,11.6547 21.2137,11.5132C20.9843,11.2583 20.6181,11.2684 20.3299,11.2762C20.0262,11.2846 19.7102,11.2933 19.5251,11.5271C19.38,11.7107 19.3913,11.9373 19.4031,12.0358V17.3037C19.4031,17.7939 19.5439,18.4433 20.0137,19.0597C20.5417,19.7522 21.2915,20.0607 21.5228,20.1467C21.9911,20.3207 22.4523,20.3696 22.5935,20.3836C22.8382,20.4081 23.0467,20.4093 23.2007,20.4046C23.3549,20.4093 23.5633,20.4081 23.8081,20.3836C23.9493,20.3696 24.4104,20.3207 24.8787,20.1467C25.11,20.0607 25.8598,19.7522 26.3878,19.0597C26.8578,18.4433 26.9986,17.7939 26.9986,17.3037V12.0358C27.0103,11.9373 27.0217,11.7107 26.8766,11.5271C26.6916,11.2933 26.3752,11.2846 26.0716,11.2762C26.0199,11.2748 25.9656,11.2733 25.9099,11.2733C25.6562,11.2733 25.3759,11.3041 25.1877,11.5132H25.1876Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M40.7168,11.9398C40.0102,12.4708 39.49,13.2159 39.2359,14.0621C38.5093,16.4904 39.6023,19.5884 42.2185,20.2732C42.6409,20.3835 43.0748,20.4303 43.5079,20.4187C43.941,20.4303 44.375,20.3835 44.7972,20.2732C47.4138,19.5884 48.5065,16.4903 47.7799,14.0621C47.5258,13.2159 47.0056,12.4709 46.2992,11.9398C45.498,11.3386 44.5055,11.0234 43.5079,11C42.5104,11.0234 41.5178,11.3386 40.7168,11.9398ZM41.1783,16.773C40.9149,15.665 40.9634,14.3606 41.5839,13.3723C42.0137,12.6874 42.7445,12.2819 43.5079,12.276C44.2713,12.2818 45.0021,12.6873 45.432,13.3723C46.0525,14.3606 46.1009,15.665 45.8375,16.773C45.5641,17.9227 44.8007,19.1585 43.5079,19.1719C42.2152,19.1585 41.4517,17.9227 41.1783,16.773Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</group>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="56dp"
android:viewportWidth="56"
android:viewportHeight="56">
<path
android:pathData="M28,0L28,0A28,28 0,0 1,56 28L56,28A28,28 0,0 1,28 56L28,56A28,28 0,0 1,0 28L0,28A28,28 0,0 1,28 0z"
android:fillColor="#F1F1F1"/>
<path
android:pathData="M15.9,24.9853C15.4363,25.0771 14.9961,25.4423 14.7759,25.9179L14.666,26.1553V33.1448V40.1343L14.8023,40.4247C14.9634,40.7681 15.2388,41.0507 15.5726,41.2151L15.8141,41.334H27.9993H40.1846L40.4247,41.2158C40.7514,41.0549 41.0329,40.765 41.1963,40.4212L41.3327,40.1343V33.1448V26.1553L41.1876,25.86C41.0206,25.52 40.7199,25.2271 40.3736,25.0671L40.1324,24.9556L28.1298,24.9479C21.5284,24.9437 16.025,24.9605 15.9,24.9853ZM21.8795,28.139C22.1855,28.2668 22.381,28.4439 22.5473,28.744L22.7025,29.0241V30.4846V31.9451L22.5473,32.2252C22.462,32.3793 22.3198,32.5604 22.2314,32.6278C21.8696,32.9037 21.8177,32.9101 19.9477,32.9101H18.2073L17.9243,32.7666C17.6022,32.6034 17.3339,32.2856 17.2475,31.965C17.2113,31.8306 17.1966,31.2521 17.207,30.3633C17.2223,29.0393 17.2287,28.9614 17.3397,28.7539C17.4755,28.5001 17.7883,28.2213 18.0391,28.1305C18.1628,28.0858 18.7271,28.0659 19.9514,28.0631C21.3993,28.0598 21.7201,28.0724 21.8795,28.139ZM18.7626,30.4846V31.3453H19.9628H21.1631V30.4846V29.624H19.9628H18.7626V30.4846ZM20.9543,37.1873V37.9697H19.0235H17.0926V37.1873V36.4048H19.0235H20.9543V37.1873ZM26.9556,37.1873V37.9697H25.0248H23.0939V37.1873V36.4048H25.0248H26.9556V37.1873ZM32.9048,37.1873V37.9697H30.9739H29.0431V37.1873V36.4048H30.9739H32.9048V37.1873ZM38.9061,37.1873V37.9697H36.9752H35.0444V37.1873V36.4048H36.9752H38.9061V37.1873Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M30.2595,14.9834C30.3972,14.8812 30.6085,14.7653 30.7292,14.7258C31.0584,14.6183 31.5725,14.6622 31.8879,14.8247C32.0764,14.9219 32.6328,15.4441 33.8936,16.7071L35.6384,18.455L35.2765,18.8376C35.0775,19.048 34.0358,20.1526 32.9617,21.2922L31.0088,23.3643H26.4126H21.8164L25.9128,19.2667C28.1658,17.0131 30.1218,15.0856 30.2595,14.9834Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M33.6186,22.8751L35.4104,20.9732L36.7411,19.5605L37.3545,20.1708C37.6919,20.5065 37.962,20.7971 37.9546,20.8166C37.9473,20.8362 37.413,21.4155 36.7672,22.104L35.5931,23.3558L34.3753,23.3601L33.1575,23.3643L33.6186,22.8751Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M37.7448,23.3382L38.4171,22.6221L39.0895,21.9061L39.8834,22.6979C40.3201,23.1334 40.6708,23.4963 40.6628,23.5044C40.6547,23.5125 40.5675,23.4938 40.4689,23.4631C40.3704,23.4323 39.7171,23.3917 39.0172,23.3727L37.7448,23.3382Z"
android:fillColor="#ffffff"/>
</vector>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="56dp"
android:height="32dp"
android:viewportWidth="56"
android:viewportHeight="32">
<path
android:pathData="M4,0L52,0A4,4 0,0 1,56 4L56,28A4,4 0,0 1,52 32L4,32A4,4 0,0 1,0 28L0,4A4,4 0,0 1,4 0z"
android:fillColor="#ffffff"
android:fillAlpha="0.1"/>
<path
android:pathData="M35.3847,14.1997C35.3847,16.913 34.7474,18.937 33.4726,20.2533C32.1979,21.5697 30.2292,22.2297 27.5742,22.2297C25.0926,22.2297 23.2107,21.5697 21.9284,20.2533C20.6424,18.9333 20.0012,16.946 20.0012,14.2913V5.3777C20.0012,5.1687 20.1747,5 20.3897,5H24.8889C25.1039,5 25.2774,5.1687 25.2774,5.3777V14.4857C25.2774,15.571 25.4848,16.4033 25.9035,16.9937C26.6615,17.969 28.0871,18.1633 29.0865,17.4263C29.2374,17.3163 29.3731,17.188 29.4901,17.045C29.9011,16.4913 30.1048,15.6773 30.1048,14.603V12.898H35.381V14.1997H35.3847Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M34.9773,11.9007H30.1084V5.396C30.1084,5.176 30.2894,5 30.5157,5H31.2436C31.2436,7.222 33.0991,9.0223 35.3808,9.0223V11.9043H34.9773V11.9007Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M32.2808,5H34.9773C35.2036,5 35.3846,5.176 35.3846,5.396V8.0213C33.6686,8.0213 32.2808,6.6683 32.2808,5Z"
android:fillColor="#F4B000"
android:fillType="evenOdd"/>
<path
android:pathData="M20.8863,26.5553C21.4822,26.5553 21.7688,26.2326 21.7688,25.7596V24.6193H21.3426V25.7486C21.3426,25.9943 21.1352,26.196 20.8825,26.196C20.6298,26.196 20.4224,25.9943 20.4224,25.7486V24.6193H20V25.7633C20,26.2326 20.2904,26.559 20.8863,26.5553ZM24.3409,26.5223V26.1666H23.398L24.322,24.9456V24.6193H22.8512V24.975H23.7752L22.8512,26.1923V26.5186L24.3409,26.5223ZM26.3322,26.5553C26.6754,26.5626 26.9922,26.383 27.1506,26.086L26.7923,25.9173C26.7018,26.086 26.5245,26.1923 26.3322,26.1923C25.9777,26.174 25.7024,25.8806 25.7212,25.536C25.7363,25.2133 26.0003,24.9566 26.3322,24.942C26.5245,24.9456 26.7018,25.052 26.7923,25.217L27.1506,25.0446C26.9922,24.7513 26.6754,24.5716 26.3322,24.579C25.774,24.5643 25.3064,24.9896 25.2913,25.5323C25.2762,26.075 25.7137,26.5296 26.2718,26.5443C26.2907,26.559 26.3095,26.559 26.3322,26.5553ZM29.9716,26.5223L29.2173,24.6193H28.6968L27.9388,26.5223H28.414L28.5384,26.1996H29.3757L29.4964,26.5223H29.9716ZM29.2625,25.844H28.6516L28.9571,25.0263L29.2625,25.844ZM32.7813,26.999L32.0647,25.7963C32.3287,25.734 32.5097,25.4956 32.4946,25.2316C32.5059,24.9053 32.2457,24.6303 31.9101,24.6156C31.8874,24.6156 31.861,24.6156 31.8384,24.6156H30.922V26.5186H31.3368V25.844H31.6423L32.3061,26.9953L32.7813,26.999ZM31.7743,25.492H31.3368V24.9786H31.7743C31.9214,24.964 32.0496,25.0666 32.0647,25.2096C32.0798,25.3526 31.9742,25.4773 31.8271,25.492C31.812,25.492 31.7932,25.492 31.7743,25.492ZM34.3464,26.5223C34.9611,26.5223 35.3835,26.1446 35.3835,25.5726C35.3835,25.0006 34.9574,24.6193 34.3464,24.6193H33.5733V26.5223H34.3464ZM34.3464,26.1666H33.9919V24.9786H34.3464C34.6632,24.9566 34.9347,25.1876 34.9611,25.492C34.9649,25.5176 34.9649,25.547 34.9611,25.5726C34.9762,25.888 34.7235,26.152 34.3992,26.1666C34.3803,26.1666 34.3615,26.1666 34.3464,26.1666Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
<path
android:pathData="M35.8928,24.5861V24.5898C35.8928,24.7841 35.7306,24.9455 35.527,24.9455C35.3271,24.9455 35.1611,24.7878 35.1611,24.5898C35.1611,24.3955 35.3233,24.2341 35.527,24.2341H35.8928V24.5861Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="@drawable/language_bgn"
android:orientation="vertical">
......@@ -11,13 +12,14 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/_70sdp"
android:contentDescription="@null"
android:src="@drawable/ic_mobiuz_language" />
<LinearLayout
android:layout_marginTop="@dimen/_20sdp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_20sdp"
android:orientation="vertical">
<TextView
......@@ -33,21 +35,23 @@
<com.google.android.material.card.MaterialCardView
android:id="@+id/uzbek_lang"
android:layout_width="180dp"
app:cardElevation="16dp"
android:translationZ="10dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:translationZ="10dp"
app:cardCornerRadius="6dp"
android:layout_height="wrap_content">
app:cardElevation="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingVertical="@dimen/_12sdp">
android:paddingVertical="@dimen/_12sdp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_uzbekistan" />
<TextView
......@@ -65,21 +69,23 @@
android:id="@+id/russian_lang"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginVertical="12dp"
android:layout_gravity="center"
app:cardElevation="16dp"
android:layout_marginVertical="12dp"
android:translationZ="10dp"
app:cardCornerRadius="6dp">
app:cardCornerRadius="6dp"
app:cardElevation="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingVertical="@dimen/_12sdp">
android:paddingVertical="@dimen/_12sdp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_russia" />
<TextView
......@@ -97,20 +103,22 @@
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:translationZ="10dp"
app:cardElevation="16dp"
android:layout_marginBottom="62dp"
app:cardCornerRadius="6dp">
android:translationZ="10dp"
app:cardCornerRadius="6dp"
app:cardElevation="16dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingVertical="@dimen/_12sdp">
android:paddingVertical="@dimen/_12sdp"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_united_kingdom" />
<TextView
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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="wrap_content"
android:layout_marginHorizontal="@dimen/_16sdp"
app:cardBackgroundColor="@color/agr_white"
app:cardCornerRadius="6dp"
app:cardUseCompatPadding="true">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:minWidth="@dimen/_230sdp"
android:orientation="vertical">
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="26dp"
android:layout_marginTop="24dp"
android:gravity="center"
android:letterSpacing="0.05"
android:text="@string/agr_mobi_uz_delete_card_question"
android:textColor="@color/black80"
android:textSize="24sp"
android:textStyle="bold" />
<Button
android:id="@+id/btnCancel"
style="@style/ButtonPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="36dp"
android:elevation="2dp"
android:gravity="center"
android:paddingVertical="16dp"
android:text="@string/agr_mobi_uz_no"
android:textAllCaps="false"
android:textSize="14sp"
android:textStyle="bold" />
<Button
android:id="@+id/btnOk"
style="@style/Widget.AppCompat.Button.Borderless.Colored"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp"
android:text="@string/agr_mobi_uz_accept_delete"
android:textAllCaps="false"
android:textColor="@color/primary100"
android:textSize="15sp"
android:textStyle="bold" />
<Space
android:layout_width="match_parent"
android:layout_height="@dimen/_22sdp" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
\ No newline at end of file
......@@ -3,9 +3,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:layout_height="match_parent"
android:background="@color/agr_white"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
......@@ -14,11 +14,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0dp"
app:navigationIcon="@drawable/agr_ic_arrow_blue" />
app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView
style="@style/TitleTextStyle"
android:id="@+id/toolbar_title"
style="@style/TitleTextStyle"
android:layout_marginTop="30dp"
android:text="@string/agr_mobi_uz_add_card_title" />
......@@ -29,7 +29,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text="@string/agr_mobi_uz_card_number"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<EditText
......@@ -39,15 +39,15 @@
android:layout_marginLeft="16dp"
android:layout_marginTop="4dp"
android:layout_marginRight="16dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:hint="0000 0000 0000 0000"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLength="19"
android:paddingVertical="12dp"
android:paddingHorizontal="16dp"
android:textColor="@color/agr_text_color"
android:paddingVertical="12dp"
android:textColor="@color/black100"
android:textSize="15sp"
tools:ignore="Autofill,HardcodedText" />
......@@ -64,8 +64,8 @@
android:textSize="13sp"
android:textStyle="bold"
android:visibility="gone"
tools:visibility="visible"
app:drawableStartCompat="@drawable/agr_mobi_uz_ic_error" />
app:drawableStartCompat="@drawable/ic_vector_error"
tools:visibility="visible" />
<TextView
android:layout_width="match_parent"
......@@ -75,7 +75,7 @@
android:layout_marginTop="16dp"
android:layout_marginRight="16dp"
android:text="@string/agr_mobi_uz_card_expiry"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<EditText
......@@ -85,7 +85,7 @@
android:layout_marginLeft="16dp"
android:layout_marginTop="4dp"
android:layout_marginRight="16dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:hint="ММ/ГГ"
android:imeOptions="actionDone"
......@@ -94,7 +94,7 @@
android:paddingVertical="12dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
tools:ignore="Autofill,HardcodedText" />
......@@ -111,8 +111,8 @@
android:textSize="13sp"
android:textStyle="bold"
android:visibility="gone"
tools:visibility="visible"
app:drawableStartCompat="@drawable/agr_mobi_uz_ic_error" />
app:drawableStartCompat="@drawable/ic_vector_error"
tools:visibility="visible" />
<View
android:layout_width="match_parent"
......
<?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"
......@@ -49,8 +48,8 @@
<TextView
style="@style/TitleTextStyle"
android:gravity="center"
android:layout_marginTop="@dimen/_12sdp"
android:gravity="center"
android:text="@string/biometric_enter" />
<TextView
......@@ -75,15 +74,15 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="17sp"
android:text="@string/avtorization"
android:textColor="@color/black100"
android:text="@string/avtorization" />
android:textSize="17sp" />
<Switch
android:id="@+id/btn_switch"
android:layout_width="wrap_content"
android:checked="true"
android:layout_height="wrap_content"
android:checked="true"
tools:ignore="UseSwitchCompatOrMaterialXml" />
</LinearLayout>
......@@ -96,10 +95,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textSize="14sp"
android:layout_marginHorizontal="@dimen/_12sdp"
android:text="@string/change_all_time"
/>
android:textSize="14sp" />
</LinearLayout>
......@@ -111,10 +109,10 @@
<Button
android:id="@+id/btn_next"
style="@style/BiometricButtonPrimary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
style="@style/BiometricButtonPrimary"
android:layout_marginEnd="@dimen/_12sdp"
android:paddingHorizontal="@dimen/_32sdp"
android:paddingVertical="@dimen/_10sdp"
......
......@@ -13,7 +13,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0dp"
app:navigationIcon="@drawable/agr_ic_arrow_blue" />
app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView
android:id="@+id/txtEnterPhone"
......@@ -22,7 +22,7 @@
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_14sdp"
android:text="@string/agr_mobi_uz_enter_confirmation"
android:textColor="@color/agr_black80"
android:textColor="@color/black80"
android:textSize="29sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
......@@ -73,37 +73,37 @@
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin1"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:inputType="number" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin2"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:inputType="number" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin3"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:inputType="number" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin4"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:inputType="number" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin5"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:inputType="number" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/pin6"
style="@style/PinStyle"
android:background="@drawable/agr_bgn_ver_unchecked"
android:background="@drawable/bgn_ver_unchecked"
android:imeOptions="actionDone"
android:inputType="number" />
......
......@@ -4,8 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:background="@color/agr_white"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
......@@ -14,9 +14,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0dp"
app:title="@string/agr_mobi_uz_save_cards"
app:layout_constraintTop_toTopOf="parent"
app:navigationIcon="@drawable/agr_ic_arrow_blue"/>
app:navigationIcon="@drawable/ic_baseline_arrow_back"
app:title="@string/agr_mobi_uz_save_cards" />
<FrameLayout
......@@ -33,8 +33,9 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:visibility="visible"
android:layout_height="match_parent"
android:overScrollMode="never"
android:visibility="visible"
tools:listitem="@layout/mobi_uz_item_card"
tools:paddingTop="@dimen/agr_card_list_start_offset" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
......
......@@ -4,8 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey10"
android:fitsSystemWindows="true"
android:background="@color/agr_grey10"
android:orientation="vertical">
......@@ -15,8 +15,8 @@
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"/>
app:navigationIcon="@drawable/ic_baseline_arrow_back"
app:title="@string/agr_mobi_uz_history_title" />
<FrameLayout
......@@ -32,11 +32,11 @@
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/agr_mobi_uz_monitoring_item" />
tools:listitem="@layout/monitoring_item" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<include
layout="@layout/agr_layout_empty"
layout="@layout/layout_empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
......
......@@ -47,7 +47,7 @@
android:gravity="center"
android:letterSpacing="0.05"
android:text="@string/agr_mobi_uz_payment_success"
android:textColor="@color/agr_black80"
android:textColor="@color/black80"
android:textSize="32sp"
android:textStyle="bold" />
......@@ -56,7 +56,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:text="@string/agr_mobi_uz_summa_pay"
android:textColor="@color/agr_grey110"
android:textColor="@color/grey110"
android:textSize="12sp" />
<TextView
......@@ -74,7 +74,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/agr_mobi_uz_summa_phone"
android:textColor="@color/agr_grey110"
android:textColor="@color/grey110"
android:textSize="12sp" />
<TextView
......@@ -93,7 +93,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/agr_mobi_uz_summa_card_pan"
android:textColor="@color/agr_grey110"
android:textColor="@color/grey110"
android:textSize="12sp"
android:visibility="gone"
tools:visibility="visible" />
......@@ -133,7 +133,7 @@
android:layout_marginTop="36dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/agr_female_error"
android:src="@drawable/female_error"
tools:ignore="ContentDescription" />
<TextView
......@@ -145,7 +145,7 @@
android:gravity="center"
android:letterSpacing="0.01"
android:text="@string/agr_mobi_uz_payment_error"
android:textColor="@color/agr_black80"
android:textColor="@color/black80"
android:textSize="24sp"
android:textStyle="bold" />
......@@ -154,7 +154,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:text="@string/agr_mobi_uz_refresh_time"
android:textColor="@color/agr_grey110"
android:textColor="@color/grey110"
android:textSize="14sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.constraintlayout.widget.ConstraintLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:id="@+id/view_group"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
......@@ -16,8 +15,8 @@
<TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone"
style="@style/TitleTextStyle"
android:layout_marginTop="@dimen/_14sdp"
android:text="@string/register"
app:layout_constraintBottom_toTopOf="@id/txt_hint_password"
......@@ -55,8 +54,8 @@
android:imeOptions="actionNext"
android:inputType="numberPassword"
android:maxLength="7"
android:paddingVertical="@dimen/_12sdp"
android:paddingHorizontal="@dimen/_12sdp"
android:paddingVertical="@dimen/_12sdp"
android:textSize="@dimen/_12sdp" />
</com.google.android.material.textfield.TextInputLayout>
......@@ -100,8 +99,8 @@
android:imeOptions="actionDone"
android:inputType="numberPassword"
android:maxLength="7"
android:paddingVertical="@dimen/_12sdp"
android:paddingHorizontal="@dimen/_12sdp"
android:paddingVertical="@dimen/_12sdp"
android:textSize="@dimen/_12sdp" />
</com.google.android.material.textfield.TextInputLayout>
......@@ -112,8 +111,8 @@
android:paddingEnd="6dp"
android:src="@drawable/ic_vector_error"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@id/txt_check_confirm"
app:layout_constraintBottom_toBottomOf="@id/txt_check_confirm"
app:layout_constraintEnd_toStartOf="@id/txt_check_confirm"
app:layout_constraintStart_toStartOf="@id/layout_input_confirm"
app:layout_constraintTop_toTopOf="@id/txt_check_confirm" />
......@@ -124,8 +123,8 @@
android:layout_marginTop="@dimen/_6sdp"
android:text="@string/must_same"
android:textColor="@color/grey110"
android:visibility="visible"
android:textSize="13sp"
android:visibility="visible"
app:layout_constraintStart_toEndOf="@id/image_check"
app:layout_constraintTop_toBottomOf="@id/layout_input_confirm" />
......@@ -135,10 +134,10 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_16sdp"
android:layout_marginTop="24dp"
android:textSize="14sp"
android:textColorLink="@color/primary100"
android:text="@string/helper_mobiuz"
android:textColor="@color/black100"
android:textColorLink="@color/primary100"
android:textSize="14sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@id/layout_input_password"
app:layout_constraintTop_toBottomOf="@id/txt_check_confirm" />
......@@ -148,9 +147,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginHorizontal="@dimen/_12sdp"
android:layout_marginTop="30dp"
android:layout_marginBottom="@dimen/_20sdp"
android:layout_marginHorizontal="@dimen/_12sdp"
android:enabled="false"
android:text="@string/continuoue"
android:textSize="@dimen/_12sdp"
......@@ -162,13 +161,13 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_10sdp"
android:layout_marginTop="29dp"
android:textSize="13sp"
android:gravity="center"
android:textColorLink="@color/primary100"
android:text="@string/by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy"
android:textColor="@color/grey80"
app:layout_constraintStart_toStartOf="parent"
android:textColorLink="@color/primary100"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_register" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -3,9 +3,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:layout_height="match_parent"
android:background="@color/agr_white"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
......@@ -14,8 +14,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="0dp"
app:title="@string/agr_mobi_uz_rb_title"
app:navigationIcon="@drawable/agr_ic_arrow_blue"/>
app:navigationIcon="@drawable/ic_baseline_arrow_back"
app:title="@string/agr_mobi_uz_rb_title" />
<ScrollView
android:id="@+id/replenishBalanceContainer"
......@@ -37,7 +37,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:text="@string/agr_mobi_uz_fast_phone_number"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<com.github.pinball83.maskededittext.MaskedEditText
......@@ -46,13 +46,13 @@
android:layout_height="56dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="4dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:imeOptions="actionNext"
android:inputType="number|textNoSuggestions"
android:paddingHorizontal="12dp"
android:paddingVertical="12dp"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
app:mask="+998 ** *** ** **"
app:notMaskedSymbol="*" />
......@@ -64,7 +64,7 @@
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@string/agr_mobi_uz_amount"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<FrameLayout
......@@ -77,7 +77,7 @@
android:id="@+id/etAmount"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:imeOptions="actionDone"
android:importantForAutofill="no"
......@@ -86,7 +86,7 @@
android:maxLength="11"
android:paddingHorizontal="12dp"
android:paddingVertical="12dp"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
tools:ignore="LabelFor" />
......@@ -96,7 +96,7 @@
android:layout_gravity="center|end"
android:layout_marginEnd="16dp"
android:text="@string/agr_mobi_uz_curr"
android:textColor="@color/agr_grey100"
android:textColor="@color/grey100"
android:textSize="15sp" />
</FrameLayout>
......@@ -116,7 +116,7 @@
android:layout_marginTop="40dp"
android:layout_marginRight="16dp"
android:text="@string/agr_mobi_uz_source_money_transfer"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<LinearLayout
......@@ -125,7 +125,7 @@
android:layout_height="124dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:background="@drawable/agr_add_card_bg"
android:background="@drawable/add_card_bg"
android:clickable="true"
android:focusable="true"
android:gravity="center"
......@@ -135,7 +135,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agr_mobi_uz_add_card"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="14sp" />
<ImageView
......@@ -143,10 +143,10 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_agr_add" />
app:srcCompat="@drawable/ic_add" />
</LinearLayout>
<uz.agr.mobiuz.ui.view.SelectCardView1
<uz.mobiuz.mobiservice.dev.ui.sdk.SelectCardView
android:id="@+id/selectCardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -173,7 +173,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agr_mobi_uz_card_number"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<EditText
......@@ -181,7 +181,7 @@
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginTop="4dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:hint="0000 0000 0000 0000"
android:imeOptions="actionNext"
......@@ -191,7 +191,7 @@
android:maxLength="19"
android:paddingHorizontal="16dp"
android:paddingVertical="12dp"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
tools:ignore="Autofill,HardcodedText" />
......@@ -206,7 +206,7 @@
android:textSize="13sp"
android:textStyle="bold"
android:visibility="gone"
app:drawableStartCompat="@drawable/agr_mobi_uz_ic_error"
app:drawableStartCompat="@drawable/ic_vector_error"
tools:visibility="visible" />
<TextView
......@@ -214,7 +214,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/agr_mobi_uz_card_expiry"
android:textColor="@color/agr_black75"
android:textColor="@color/black75"
android:textSize="15sp" />
<EditText
......@@ -222,7 +222,7 @@
android:layout_width="wrap_content"
android:layout_height="56dp"
android:layout_marginTop="4dp"
android:background="@drawable/agr_edit_text_unchecked"
android:background="@drawable/edit_text_unchecked"
android:gravity="center|start"
android:hint="ММ/ГГ"
android:imeOptions="actionDone"
......@@ -233,7 +233,7 @@
android:paddingVertical="12dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
tools:ignore="HardcodedText" />
......@@ -248,7 +248,7 @@
android:textSize="13sp"
android:textStyle="bold"
android:visibility="gone"
app:drawableStartCompat="@drawable/agr_mobi_uz_ic_error"
app:drawableStartCompat="@drawable/ic_vector_error"
tools:visibility="visible" />
<LinearLayout
......@@ -263,7 +263,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/agr_mobi_uz_save_card"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="16sp" />
<Switch
......@@ -292,11 +292,11 @@
<TextView
android:id="@+id/tvLinkOferta"
android:background="?android:selectableItemBackground"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="64dp"
android:background="?android:selectableItemBackground"
android:text="@string/agr_mobi_uz_oferta"
android:textColor="@color/linkColor" />
......
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:background="#00000000">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/_14sdp"
android:background="@drawable/rounded_dialog"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
style="@style/agr_ToolbarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_dialog"
android:elevation="0dp"
android:visibility="visible"
app:navigationIcon="@drawable/ic_baseline_arrow_back">
<TextView
android:id="@+id/toolbar_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/agr_mobi_uz_save_cards"
android:textColor="@color/agr_black"
android:textSize="18sp"
android:textStyle="bold" />
</androidx.appcompat.widget.Toolbar>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:listitem="@layout/mobi_uz_item_card"
tools:paddingTop="@dimen/agr_card_list_start_offset" />
<include
layout="@layout/agr_core_ui_layout_zero"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
<include
layout="@layout/agr_core_ui_layout_empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</FrameLayout>
<Button
android:id="@+id/btnEnterAnotherCard"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_gravity="bottom"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginBottom="30dp"
android:background="@drawable/button_selector"
android:text="@string/agr_mobi_uz_sc_enter_another_card"
android:textAllCaps="false"
android:textColor="@color/agr_white"
android:textSize="15sp"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
......@@ -26,7 +26,7 @@
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_weight="1"
android:textColor="@color/agr_grey110"
android:textColor="@color/grey110"
android:textSize="13sp"
tools:text="03 марта 2022" />
......@@ -39,7 +39,7 @@
android:layout_marginRight="20dp"
android:layout_weight="1"
android:gravity="end"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="14sp"
android:textStyle="bold"
tools:text="03 марта" />
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView 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="wrap_content"
android:layout_marginHorizontal="@dimen/_16sdp"
app:cardCornerRadius="6dp"
app:cardUseCompatPadding="true">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white100"
android:clickable="true"
android:focusable="true"
android:minWidth="@dimen/_230sdp"
android:orientation="vertical">
<ImageView
android:id="@+id/image"
android:layout_width="@dimen/_70sdp"
android:layout_height="@dimen/_70sdp"
android:layout_gravity="center"
android:layout_marginTop="36dp"
android:adjustViewBounds="true"
android:src="@drawable/icon_female"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="26dp"
android:layout_marginTop="24dp"
android:gravity="center"
android:letterSpacing="0.05"
android:textColor="@color/black80"
android:textSize="24sp"
android:textStyle="bold"
tools:text="Card Added" />
<Button
android:id="@+id/btnOk"
style="@style/ButtonPrimary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="24dp"
android:elevation="2dp"
android:gravity="center"
android:paddingVertical="16dp"
android:text="@string/agr_mobi_uz_close_process"
android:textSize="14sp"
android:textStyle="bold" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
\ No newline at end of file
......@@ -27,7 +27,7 @@
app:layout_constraintBottom_toTopOf="@id/tvNoCard"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@drawable/ic_agr_no_cards" />
app:srcCompat="@drawable/ic_no_cards" />
<TextView
android:id="@+id/tvNoCard"
......@@ -38,7 +38,7 @@
android:lineSpacingExtra="2dp"
android:layout_marginHorizontal="@dimen/_30sdp"
android:text="@string/agr_mobi_uz_no_card"
android:textColor="@color/agr_grey80"
android:textColor="@color/grey80"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
......
......@@ -3,7 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/agr_rounded_dialog"
android:background="@drawable/rounded_dialog"
android:orientation="vertical">
<ImageView
......@@ -12,7 +12,7 @@
android:layout_gravity="center"
android:layout_marginTop="12dp"
android:contentDescription="@null"
app:srcCompat="@drawable/agr_bg_bottom_sheet_top" />
app:srcCompat="@drawable/bg_bottom_sheet_top" />
<TextView
android:id="@+id/txt_title"
......@@ -23,42 +23,33 @@
android:layout_marginTop="@dimen/_20sdp"
android:gravity="center"
android:text="@string/agr_mobi_uz_source_money_transfer"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="20sp"
android:textStyle="bold" />
<Button
<TextView
android:id="@+id/btnAnotherCard"
android:layout_width="match_parent"
android:layout_height="@dimen/_44sdp"
android:layout_gravity="center_horizontal"
android:layout_marginHorizontal="@dimen/_20sdp"
android:layout_marginTop="@dimen/_20sdp"
android:background="@drawable/agr_mobi_uz_button_grey"
android:elevation="0dp"
android:background="?android:selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:text="@string/agr_mobi_uz_pay_with_another_card"
android:textAllCaps="false"
android:textColor="@color/primary100"
android:textSize="15sp"
android:textStyle="bold"
android:translationZ="0dp" />
android:textStyle="bold" />
<Button
android:id="@+id/btnAddCard"
android:layout_width="match_parent"
android:layout_height="@dimen/_44sdp"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_20sdp"
android:layout_marginTop="@dimen/_12sdp"
android:background="@drawable/agr_mobi_uz_button"
android:elevation="0dp"
android:paddingVertical="12dp"
android:text="@string/agr_mobi_uz_add_card"
android:textAllCaps="false"
android:textColor="@color/agr_white"
android:textSize="15sp"
android:textStyle="bold"
android:translationZ="0dp" />
android:text="@string/agr_mobi_uz_add_card" />
<Space
android:layout_width="match_parent"
......
......@@ -11,7 +11,7 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/agr_card_background">
android:background="@drawable/card_background">
<TextView
android:id="@+id/tvCardHolderName"
......@@ -36,7 +36,7 @@
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_agr_humo_round" />
app:srcCompat="@drawable/ic_humo_round" />
<ImageView
android:id="@+id/ivUzCard"
......@@ -48,14 +48,14 @@
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_agr_uz_card_round" />
app:srcCompat="@drawable/ic_uz_card_round" />
<TextView
android:id="@+id/titleCardNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agr_mobi_uz_card_number"
android:textColor="@color/agr_grey60"
android:textColor="@color/grey60"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tvCardHolderName"
......@@ -81,7 +81,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agr_mobi_uz_card_balance"
android:textColor="@color/agr_grey60"
android:textColor="@color/grey60"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@id/tvCardHolderName"
......@@ -109,7 +109,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/agr_mobi_uz_card_expire_1"
android:textColor="@color/agr_grey60"
android:textColor="@color/grey60"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="@id/titleCardNumber"
app:layout_constraintEnd_toEndOf="parent"
......@@ -141,10 +141,11 @@
app:layout_constraintBottom_toBottomOf="@id/tvCardBalance"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tvCardBalance"
app:srcCompat="@drawable/ic_mobi_uz_delete" />
app:srcCompat="@drawable/ic_delete_card" />
<View
android:layout_width="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="1dp"/>
android:layout_height="1dp"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
......@@ -19,12 +19,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginBottom="16dp"
android:drawableStart="@drawable/ic_agr_hour_icon"
android:drawablePadding="4dp"
android:textColor="@color/agr_grey70"
android:textColor="@color/grey70"
android:textSize="14sp"
app:drawableStartCompat="@drawable/ic_hour_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="12:45" />
......@@ -74,7 +73,7 @@
android:gravity="center"
android:maxLength="26"
android:maxLines="1"
android:textColor="@color/agr_text_color"
android:textColor="@color/black100"
android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
......@@ -86,7 +85,6 @@
android:layout_width="72dp"
android:layout_height="32dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:textAllCaps="false"
android:textColor="#1054A5"
android:visibility="gone"
......@@ -98,7 +96,7 @@
android:id="@+id/cardPan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/agr_grey100"
android:textColor="@color/grey100"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/tvTime"
app:layout_constraintEnd_toEndOf="@id/tvAmount"
......@@ -108,7 +106,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agr_mobi_uz_with_card"
android:textColor="@color/agr_grey100"
android:textColor="@color/grey100"
android:textSize="12sp"
app:layout_constraintBottom_toTopOf="@id/cardPan"
app:layout_constraintEnd_toEndOf="@id/cardPan" />
......
<?xml version="1.0" encoding="utf-8"?>
<merge 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="wrap_content"
tools:parentTag="androidx.cardview.widget.CardView">
<RelativeLayout
android:id="@+id/cardContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:background="@drawable/select_card">
<TextView
android:id="@+id/tvNewCard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginStart="16dp"
android:layout_marginTop="27dp"
android:layout_toStartOf="@+id/arrow"
android:paddingBottom="27dp"
android:text="@string/agr_mobi_uz_new_card"
android:textColor="@color/black100"
android:textSize="17sp"
android:textStyle="bold"
android:visibility="gone" />
<TextView
android:id="@+id/tvCardPan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:layout_marginTop="15dp"
android:layout_toStartOf="@+id/arrow"
android:textColor="@color/agr_white"
android:textSize="18sp"
app:fontFamily="@font/ocr"
tools:text="8600 73•• •••• 8600" />
<TextView
android:id="@+id/tvCardBalance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tvCardPan"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:layout_marginTop="11dp"
android:layout_marginEnd="35dp"
android:paddingBottom="12dp"
android:textColor="@color/agr_white"
android:textSize="15sp"
tools:text="7 456 500,00 сум" />
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/progressView"
android:layout_width="26dp"
android:layout_height="26dp"
android:layout_below="@+id/tvCardPan"
android:layout_gravity="center_horizontal"
android:layout_marginStart="-30dp"
android:layout_marginTop="11dp"
android:layout_toEndOf="@+id/tvCardBalance"
android:visibility="invisible"
app:lottie_autoPlay="true"
app:lottie_fileName="lottie/agr_loading.json"
app:lottie_loop="true" />
<ImageView
android:id="@+id/arrow"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
android:contentDescription="@null"
app:srcCompat="@drawable/ic_arrow_down"
tools:tint="@color/agr_white" />
</RelativeLayout>
</merge>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -21,6 +21,7 @@
<color name="grey110">#717472</color>
<color name="grey80">#B6B6B6</color>
<color name="grey70">#C6BFBA</color>
<color name="grey60">#918A8B</color>
<color name="grey30">#E7E1DD</color>
<color name="grey20">#F1F1F1</color>
<color name="grey10">#FBFBFB</color>
......@@ -31,4 +32,7 @@
<color name="primary30">#F4CDCE</color>
<color name="primary25">#FDE9EA</color>
<color name="fast_text_grey">#CBCED2</color>
<color name="linkColor">#007AFF</color>
</resources>
\ No newline at end of file
......@@ -2,4 +2,13 @@
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
<dimen name="category_vendor_list_start_offset">18dp</dimen>
<dimen name="vendor_list_start_offset">8dp</dimen>
<dimen name="vendor_list_end_offset">8dp</dimen>
<dimen name="card_list_start_offset">8dp</dimen>
<dimen name="card_list_end_offset">16dp</dimen>
<dimen name="select_card_view_corner_radius">4dp</dimen>
<dimen name="button_height">50dp</dimen>
<dimen name="default_padding">5dp</dimen>
</resources>
\ No newline at end of file
This diff is collapsed.
......@@ -124,10 +124,21 @@
<item name="android:windowAnimationStyle">@style/MaterialDialogAnimation</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<style name="MaterialDialogAnimation" tools:ignore="ResourceName">
<item name="android:windowEnterAnimation">@anim/agr_grow_in</item>
<item name="android:windowExitAnimation">@anim/agr_fade_out</item>
</style>
<style name="AgrProgressDialogTheme" parent="ThemeOverlay.AppCompat.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:windowAnimationStyle">@style/MaterialDialogAnimation</item>
<item name="android:windowMinWidthMajor">90%</item>
<item name="android:windowMinWidthMinor">90%</item>
</style>
</resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment