Commit 22e7c154 authored by shohboz's avatar shohboz

[UPD] MUS-244 Feature, updated localizations and fixed some bugs

parent 4edadbeb
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="FUQOZ9OVZLWKVKZT" />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2021-12-21T15:08:49.610759Z" />
</component>
</project>
\ No newline at end of file
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
<entry key="app/src/main/res/drawable/ic_finger_print.xml" value="0.2590277777777778" /> <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_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_group_12.xml" value="0.2796296296296296" />
<entry key="app/src/main/res/drawable/ic_image_only_finger.xml" value="0.26525096525096525" />
<entry key="app/src/main/res/drawable/ic_mobiuz_logo.xml" value="0.26180555555555557" /> <entry key="app/src/main/res/drawable/ic_mobiuz_logo.xml" value="0.26180555555555557" />
<entry key="app/src/main/res/drawable/ic_pinger_print.xml" value="0.2590277777777778" /> <entry key="app/src/main/res/drawable/ic_pinger_print.xml" value="0.2590277777777778" />
<entry key="app/src/main/res/drawable/ic_russia.xml" value="0.2796296296296296" /> <entry key="app/src/main/res/drawable/ic_russia.xml" value="0.2796296296296296" />
...@@ -89,6 +90,7 @@ ...@@ -89,6 +90,7 @@
<entry key="app/src/main/res/layout/fragment_service.xml" value="0.25625" /> <entry key="app/src/main/res/layout/fragment_service.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_support.xml" value="0.25625" /> <entry key="app/src/main/res/layout/fragment_support.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_tarifs.xml" value="0.25625" /> <entry key="app/src/main/res/layout/fragment_tarifs.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_ussd.xml" value="0.25625" />
<entry key="app/src/main/res/layout/fragment_verification.xml" value="0.2" /> <entry key="app/src/main/res/layout/fragment_verification.xml" value="0.2" />
<entry key="app/src/main/res/layout/home_home.xml" value="0.25625" /> <entry key="app/src/main/res/layout/home_home.xml" value="0.25625" />
<entry key="app/src/main/res/layout/home_motion.xml" value="0.10951008645533142" /> <entry key="app/src/main/res/layout/home_motion.xml" value="0.10951008645533142" />
......
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" /> <uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application <application
android:name=".dev.app.App" android:name=".dev.app.App"
......
...@@ -10,6 +10,7 @@ import com.mobiuz.app.dev.model.SharedPref ...@@ -10,6 +10,7 @@ import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -42,6 +43,7 @@ class LanguageActivity : AppCompatActivity() { ...@@ -42,6 +43,7 @@ class LanguageActivity : AppCompatActivity() {
private fun setLangAndNavigate(lang: String) { private fun setLangAndNavigate(lang: String) {
pref.language = lang pref.language = lang
AGRBilling.setLanguage(this, lang)
startActivity(Intent(this, AuthActivity::class.java)) startActivity(Intent(this, AuthActivity::class.java))
} }
......
...@@ -200,7 +200,7 @@ class MainActivity : AppCompatActivity() { ...@@ -200,7 +200,7 @@ class MainActivity : AppCompatActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (pref.isShowPin) { if (pref.isShowPin && !pref.isOpenUssdBottomSheetDialog) {
showPinCode() showPinCode()
} else { } else {
pref.blockedTime = System.currentTimeMillis() pref.blockedTime = System.currentTimeMillis()
...@@ -210,7 +210,8 @@ class MainActivity : AppCompatActivity() { ...@@ -210,7 +210,8 @@ class MainActivity : AppCompatActivity() {
private fun showPinCode() { private fun showPinCode() {
if(pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME){ if(pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME){
if (currentNavController?.value?.currentDestination?.id != R.id.fullScreenFragment){ if (currentNavController?.value?.currentDestination?.id != R.id.fullScreenFragment &&
currentNavController?.value?.currentDestination?.id != R.id.ussdFragment){
bn.btnTryAgain.isVisible = false bn.btnTryAgain.isVisible = false
currentNavController?.value?.navigate(R.id.fullScreenFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER)) currentNavController?.value?.navigate(R.id.fullScreenFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER))
} }
......
package com.mobiuz.app.dev package com.mobiuz.app.dev
import android.util.Log
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.mobiuz.app.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.ChangePassword
import com.mobiuz.app.dev.network.model.UiStateObject import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.repository.MainRepository import com.mobiuz.app.dev.network.repository.MainRepository
import com.mobiuz.app.dev.utils.extensions.customLog
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
...@@ -45,7 +41,7 @@ class MainViewModel @Inject constructor( ...@@ -45,7 +41,7 @@ class MainViewModel @Inject constructor(
private val _bottomSheetUiState = MutableStateFlow<UiStateObject<Boolean>>(UiStateObject.EMPTY) private val _bottomSheetUiState = MutableStateFlow<UiStateObject<Boolean>>(UiStateObject.EMPTY)
val bottomSheetUiState: StateFlow<UiStateObject<Boolean>> = _bottomSheetUiState val bottomSheetUiState: StateFlow<UiStateObject<Boolean>> = _bottomSheetUiState
fun bottomSheet(status:Boolean) = viewModelScope.launch { fun bottomSheet(status: Boolean) = viewModelScope.launch {
_bottomSheetUiState.value = UiStateObject.EMPTY _bottomSheetUiState.value = UiStateObject.EMPTY
_bottomSheetUiState.value = UiStateObject.SUCCESS(status) _bottomSheetUiState.value = UiStateObject.SUCCESS(status)
} }
...@@ -53,8 +49,7 @@ class MainViewModel @Inject constructor( ...@@ -53,8 +49,7 @@ class MainViewModel @Inject constructor(
private val _swipeDrawerUiState = MutableStateFlow<UiStateObject<Boolean>>(UiStateObject.EMPTY) private val _swipeDrawerUiState = MutableStateFlow<UiStateObject<Boolean>>(UiStateObject.EMPTY)
val swipeDrawerUiState: StateFlow<UiStateObject<Boolean>> = _swipeDrawerUiState val swipeDrawerUiState: StateFlow<UiStateObject<Boolean>> = _swipeDrawerUiState
fun swipeDrawer(status:Boolean) = viewModelScope.launch { fun swipeDrawer(status: Boolean) = viewModelScope.launch {
Log.e("AAA","swipeDrawer:$status")
_swipeDrawerUiState.value = UiStateObject.EMPTY _swipeDrawerUiState.value = UiStateObject.EMPTY
_swipeDrawerUiState.value = UiStateObject.SUCCESS(status) _swipeDrawerUiState.value = UiStateObject.SUCCESS(status)
} }
...@@ -62,6 +57,4 @@ class MainViewModel @Inject constructor( ...@@ -62,6 +57,4 @@ class MainViewModel @Inject constructor(
suspend fun logOut() = repository.logOut() suspend fun logOut() = repository.logOut()
} }
\ No newline at end of file
...@@ -17,7 +17,9 @@ import com.mobiuz.app.dev.model.SharedPref ...@@ -17,7 +17,9 @@ import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.service.ServiceAdapter import com.mobiuz.app.dev.ui.service.ServiceAdapter
import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.NetworkUtil import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
...@@ -31,6 +33,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -31,6 +33,7 @@ class OfflineActivity : AppCompatActivity() {
private lateinit var adapter: ServiceAdapter private lateinit var adapter: ServiceAdapter
private lateinit var navController: NavController private lateinit var navController: NavController
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private val intentFilter = IntentFilter()
// if offline type == 0 // if offline type == 0
private var type = 0 private var type = 0
...@@ -39,6 +42,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -39,6 +42,7 @@ class OfflineActivity : AppCompatActivity() {
lateinit var pref: SharedPref lateinit var pref: SharedPref
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
LocaleHelper.setLocale(this)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
_bn = ActivityOfflineBinding.inflate(layoutInflater) _bn = ActivityOfflineBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
...@@ -48,6 +52,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -48,6 +52,7 @@ class OfflineActivity : AppCompatActivity() {
val fragment = supportFragmentManager.findFragmentById(R.id.offline_container) as NavHostFragment val fragment = supportFragmentManager.findFragmentById(R.id.offline_container) as NavHostFragment
navController = NavHostFragment.findNavController(fragment) navController = NavHostFragment.findNavController(fragment)
// if(intent )
intent?.let { intent?.let {
val type = it.getStringExtra(CONSTANTS.TYPE_SERVICE) val type = it.getStringExtra(CONSTANTS.TYPE_SERVICE)
...@@ -64,6 +69,10 @@ class OfflineActivity : AppCompatActivity() { ...@@ -64,6 +69,10 @@ class OfflineActivity : AppCompatActivity() {
receiver = object : BroadcastReceiver() { receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action == CONSTANTS.USSD_ACTION_REFRESH) {
pref.blockedTime = System.currentTimeMillis()
customLog("USSD_ACTION_REFRESH")
}
if (intent?.action == CONSTANTS.CONNECTIVITY_CHANGE) { if (intent?.action == CONSTANTS.CONNECTIVITY_CHANGE) {
sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE)) sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE))
} }
...@@ -77,9 +86,10 @@ class OfflineActivity : AppCompatActivity() { ...@@ -77,9 +86,10 @@ class OfflineActivity : AppCompatActivity() {
} }
} }
val intentFilter = IntentFilter()
intentFilter.addAction(CONSTANTS.CONNECTIVITY_CHANGE) intentFilter.addAction(CONSTANTS.CONNECTIVITY_CHANGE)
intentFilter.addAction(CONSTANTS.MY_CONNECTIVITY_CHANGE) intentFilter.addAction(CONSTANTS.MY_CONNECTIVITY_CHANGE)
intentFilter.addAction(CONSTANTS.USSD_ACTION_REFRESH)
registerReceiver(receiver, intentFilter) registerReceiver(receiver, intentFilter)
bn.btnTryAgain.setOnClickListener { bn.btnTryAgain.setOnClickListener {
...@@ -108,7 +118,9 @@ class OfflineActivity : AppCompatActivity() { ...@@ -108,7 +118,9 @@ class OfflineActivity : AppCompatActivity() {
private fun showPinCode() { private fun showPinCode() {
if (pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME) { if (pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME) {
if (navController.currentDestination?.id != R.id.fullScreenFragment) { if (navController.currentDestination?.id != R.id.fullScreenFragment &&
navController.currentDestination?.id != R.id.ussdFragment) {
customLog("fullScreenFragment")
bn.btnTryAgain.isVisible = false bn.btnTryAgain.isVisible = false
navController.navigate(R.id.fullScreenFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER)) navController.navigate(R.id.fullScreenFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER))
} }
......
...@@ -2,6 +2,7 @@ package com.mobiuz.app.dev.model ...@@ -2,6 +2,7 @@ package com.mobiuz.app.dev.model
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject import javax.inject.Inject
...@@ -27,7 +28,7 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) { ...@@ -27,7 +28,7 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) {
} }
var language: String var language: String
get() = mySharedPref.getString(::language.name, "") ?: "" get() = mySharedPref.getString(::language.name,"") ?: ""
set(value) { set(value) {
mySharedPref.edit().putString(::language.name, value).apply() mySharedPref.edit().putString(::language.name, value).apply()
} }
...@@ -80,6 +81,12 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) { ...@@ -80,6 +81,12 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) {
mySharedPref.edit().putBoolean(::isShowPin.name, value).apply() mySharedPref.edit().putBoolean(::isShowPin.name, value).apply()
} }
var isOpenUssdBottomSheetDialog: Boolean
get() = mySharedPref.getBoolean(::isOpenUssdBottomSheetDialog.name, true)
set(value) {
mySharedPref.edit().putBoolean(::isOpenUssdBottomSheetDialog.name, value).apply()
}
var blockedTime: Long var blockedTime: Long
get() = mySharedPref.getLong(::blockedTime.name, 0) get() = mySharedPref.getLong(::blockedTime.name, 0)
set(value) { set(value) {
......
...@@ -156,8 +156,8 @@ class AuthRepository @Inject constructor( ...@@ -156,8 +156,8 @@ class AuthRepository @Inject constructor(
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
} }
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage(),true)
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message,true)
} }
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
......
...@@ -21,6 +21,7 @@ import com.mobiuz.app.dev.MainActivity ...@@ -21,6 +21,7 @@ import com.mobiuz.app.dev.MainActivity
import com.mobiuz.app.dev.OfflineActivity import com.mobiuz.app.dev.OfflineActivity
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.NetworkUtil import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
...@@ -43,6 +44,7 @@ class AuthActivity : AppCompatActivity() { ...@@ -43,6 +44,7 @@ class AuthActivity : AppCompatActivity() {
private var phone = "" private var phone = ""
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
LocaleHelper.setLocale(this)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
_bn = ActivityAuthBinding.inflate(layoutInflater) _bn = ActivityAuthBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
......
...@@ -75,7 +75,7 @@ class BiometricFragment : BaseFragment(R.layout.fragment_biometric) { ...@@ -75,7 +75,7 @@ class BiometricFragment : BaseFragment(R.layout.fragment_biometric) {
intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST) intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent) startActivity(intent)
requireActivity().finish() requireActivity().finishAffinity()
} }
override fun collects() {} override fun collects() {}
......
...@@ -47,7 +47,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -47,7 +47,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
arguments?.let { arguments?.let {
type = it.getString(CONSTANTS.TYPE_PIN, "") ?: "" type = it.getString(CONSTANTS.TYPE_PIN, "") ?: ""
customLog("pin type = $type")
pinCode = it.getString(CONSTANTS.PIN_CODE, "") ?: "" pinCode = it.getString(CONSTANTS.PIN_CODE, "") ?: ""
} }
} }
...@@ -65,7 +64,15 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -65,7 +64,15 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
bn.apply { bn.apply {
loadData() loadData()
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
navController.navigateUp() when {
navController.popBackStack(R.id.registerFragment,false) -> {
}
navController.popBackStack(R.id.loginFragment,false) -> {
}
else -> navController.navigateUp()
}
} }
rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
rvPin.setHasFixedSize(true) rvPin.setHasFixedSize(true)
...@@ -79,12 +86,15 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -79,12 +86,15 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
getString(R.string.confirm_pin) getString(R.string.confirm_pin)
} }
CONSTANTS.CURRENT_PIN -> { CONSTANTS.CURRENT_PIN -> {
topDiv.isVisible = true
getString(R.string.enter_old_pin) getString(R.string.enter_old_pin)
} }
CONSTANTS.CHANGE_NEW_PIN -> { CONSTANTS.CHANGE_NEW_PIN -> {
topDiv.isVisible = true
getString(R.string.enter_new_pin) getString(R.string.enter_new_pin)
} }
CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> { CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> {
topDiv.isVisible = true
getString(R.string.confirm_new_pin) getString(R.string.confirm_new_pin)
} }
else -> { else -> {
...@@ -164,8 +174,10 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -164,8 +174,10 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
bn.apply { bn.apply {
count-- count--
if (count == 0){ if (count == 0){
showMessage(getString(R.string.popitok_error)) showCustomDialog(getString(R.string.popitok_error),false){
navigateToLogin() navigateToLogin()
}
}else{ }else{
vibrate(requireContext()) vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake)) cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
...@@ -180,7 +192,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -180,7 +192,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN) intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent) startActivity(intent)
requireActivity().finish() requireActivity().finishAffinity()
} }
private fun navigate() { private fun navigate() {
...@@ -188,8 +200,11 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -188,8 +200,11 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
if (golfing.canAuthenticate()) { if (golfing.canAuthenticate()) {
navController.navigate(R.id.biometricFragment, null, Utils.navOptions()) navController.navigate(R.id.biometricFragment, null, Utils.navOptions())
} else { } else {
startActivity(Intent(requireContext(), MainActivity::class.java).putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST)) val intent = Intent(requireContext(), MainActivity::class.java)
requireActivity().finish() intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent)
requireActivity().finishAffinity()
} }
} }
......
...@@ -39,6 +39,7 @@ object CONSTANTS { ...@@ -39,6 +39,7 @@ object CONSTANTS {
const val FULL_SCREEN_DIALOG = "full_screen_dialog" const val FULL_SCREEN_DIALOG = "full_screen_dialog"
const val CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE" const val CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE"
const val MY_CONNECTIVITY_CHANGE = "MY_CONNECTIVITY_CHANGE" const val MY_CONNECTIVITY_CHANGE = "MY_CONNECTIVITY_CHANGE"
const val USSD_ACTION_REFRESH = "com.times.ussd.action.REFRESH"
//password types //password types
......
...@@ -6,10 +6,13 @@ import android.view.View ...@@ -6,10 +6,13 @@ import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.widget.TextView import android.widget.TextView
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.biometric.BiometricManager
import androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_STRONG
import androidx.biometric.BiometricManager.Authenticators.BIOMETRIC_WEAK
import androidx.biometric.BiometricPrompt
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
...@@ -22,15 +25,12 @@ import com.mobiuz.app.dev.model.SharedPref ...@@ -22,15 +25,12 @@ import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.pin.PinAdapter import com.mobiuz.app.dev.ui.auth.pin.PinAdapter
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.utils.extensions.SingleBlock import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.customLog import com.mobiuz.app.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.extensions.vibrate import com.mobiuz.app.dev.utils.extensions.vibrate
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay
import javax.inject.Inject import javax.inject.Inject
import android.widget.LinearLayout
@AndroidEntryPoint @AndroidEntryPoint
...@@ -45,6 +45,10 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -45,6 +45,10 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
private lateinit var mainViewModel: MainViewModel private lateinit var mainViewModel: MainViewModel
private var type = "" private var type = ""
private var errorCount = 3 private var errorCount = 3
private lateinit var goldfinger: Goldfinger
private lateinit var biometricManager: BiometricManager
private lateinit var biometricPrompt: BiometricPrompt
private lateinit var promptInfo: BiometricPrompt.PromptInfo
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
...@@ -59,24 +63,64 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -59,24 +63,64 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
val window = requireActivity().window.decorView val window = requireActivity().window.decorView
window.systemUiVisibility = window.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR window.systemUiVisibility = window.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
mainViewModel.bottomSheet(false) mainViewModel.bottomSheet(false)
mainViewModel.swipeDrawer(false) mainViewModel.swipeDrawer(false)
setUpUI() setUpUI()
if (pref.isUseFingerPrint) loadFingerPrint() goldfinger = Goldfinger.Builder(requireContext()).build()
biometricManager = BiometricManager.from(requireContext())
checkBiometric()
} }
private fun checkBiometric() {
when (biometricManager.canAuthenticate(BIOMETRIC_STRONG or BIOMETRIC_WEAK)) {
BiometricManager.BIOMETRIC_SUCCESS -> {
bn.btnFingerPrint.isVisible = true
if (pref.isUseFingerPrint) loadBiometric()
}
BiometricManager.BIOMETRIC_ERROR_NO_HARDWARE -> {
bn.btnFingerPrint.isVisible = false
}
BiometricManager.BIOMETRIC_ERROR_HW_UNAVAILABLE -> {
bn.btnFingerPrint.isVisible = false
}
else -> Unit
}
}
private fun loadBiometric() {
biometricPrompt = BiometricPrompt(this, object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationSucceeded(result: BiometricPrompt.AuthenticationResult) {
super.onAuthenticationSucceeded(result)
navigate()
}
})
promptInfo = BiometricPrompt.PromptInfo.Builder()
.setTitle(getString(R.string.biometric_enter))
.setSubtitle(getString(R.string.subtitle_biometric))
.setConfirmationRequired(true)
.setNegativeButtonText(getString(R.string.cancel))
.build()
biometricPrompt.authenticate(promptInfo)
}
private fun loadFingerPrint() { private fun loadFingerPrint() {
val golfing = Goldfinger.Builder(requireContext()).build() if (goldfinger.canAuthenticate()) {
if (golfing.canAuthenticate()) {
val params = Goldfinger.PromptParams.Builder(this) val params = Goldfinger.PromptParams.Builder(this)
.title(getString(R.string.enter_from_finger_or_face)) .title(getString(R.string.biometric_enter))
.description(getString(R.string.enter_from_finger_or_face))
.negativeButtonText(getString(R.string.cancel)) .negativeButtonText(getString(R.string.cancel))
.build() .build()
golfing.authenticate(params, object : Goldfinger.Callback { goldfinger.authenticate(params, object : Goldfinger.Callback {
override fun onResult(result: Goldfinger.Result) { override fun onResult(result: Goldfinger.Result) {
if (result.type() == Goldfinger.Type.SUCCESS) { if (result.type() == Goldfinger.Type.SUCCESS) {
navigate() navigate()
...@@ -93,23 +137,12 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -93,23 +137,12 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
bn.apply { bn.apply {
loadData() loadData()
val param1 = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
)
val param2 = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
)
param2.weight = 3f
// frame.layoutParams = param1
// btnViewGroup.layoutParams = param2
rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
rvPin.adapter = pinAdapter rvPin.adapter = pinAdapter
txtNotPin.isVisible = false txtNotPin.isVisible = false
requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner,object : OnBackPressedCallback(true){ requireActivity().onBackPressedDispatcher.addCallback(viewLifecycleOwner, object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {
requireActivity().finish() requireActivity().finish()
} }
...@@ -121,8 +154,10 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -121,8 +154,10 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
navigate() navigate()
} else { } else {
errorCount-- errorCount--
if (errorCount == 0){ if (errorCount == 0) {
loadWithPassword() showCustomDialog(getString(R.string.pin_code_error3), false) {
loadWithPassword()
}
} }
vibrate(requireContext()) vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(context, R.anim.shake)) cardPin.startAnimation(AnimationUtils.loadAnimation(context, R.anim.shake))
...@@ -142,7 +177,7 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -142,7 +177,7 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
loadWithPassword() loadWithPassword()
} }
R.id.btn_finger_print -> { R.id.btn_finger_print -> {
loadFingerPrint() loadBiometric()
} }
else -> { else -> {
val text = it as TextView val text = it as TextView
...@@ -152,22 +187,27 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) { ...@@ -152,22 +187,27 @@ class FullScreenFragment : BaseFragment(R.layout.fragment_pin_dialog) {
} }
} }
} }
} }
} }
private fun loadWithPassword() { private fun loadWithPassword() {
pref.clearUserData() val isOffline = NetworkUtil.getConnectivityStatus(requireContext())
val intent = Intent(requireContext(), AuthActivity::class.java) if (isOffline != 0){
intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN) pref.clearUserData()
startActivity(intent) val intent = Intent(requireContext(), AuthActivity::class.java)
requireActivity().finish() intent.putExtra(CONSTANTS.TYPE_AUTH, CONSTANTS.LOGIN)
startActivity(intent)
requireActivity().finish()
}else{
showMessage(getString(R.string.check_internet_and_try_again))
}
} }
private fun navigate() { private fun navigate() {
navController.popBackStack() navController.popBackStack()
requireActivity().sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE)) requireActivity().sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE))
if(type == CONSTANTS.OFFLINE){ if (type == CONSTANTS.OFFLINE) {
navController.navigate(R.id.serviceFragment, bundleOf(CONSTANTS.TYPE_SERVICE to CONSTANTS.OFFLINE)) navController.navigate(R.id.serviceFragment, bundleOf(CONSTANTS.TYPE_SERVICE to CONSTANTS.OFFLINE))
} else if (type != CONSTANTS.TYPE_AFTER) { } else if (type != CONSTANTS.TYPE_AFTER) {
navController.navigate(R.id.homeFragment) navController.navigate(R.id.homeFragment)
......
...@@ -79,16 +79,23 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -79,16 +79,23 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach() TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach()
jobAutoSlide = viewLifecycleOwner.lifecycleScope.launchWhenStarted { // lifecycleScope.launchWhenCreated {
while (isActive) { // repeat(10000000){
delay(4000) // delay(4000)
if (slider.currentItem != tabIndicator.tabCount - 1) { // if (slider.currentItem != tabIndicator.tabCount - 1) {
slider.currentItem = slider.currentItem + 1 // slider.currentItem = slider.currentItem + 1
} else { // } else {
slider.currentItem = 0 // slider.currentItem = 0
} // }
} // }
} // }
// jobAutoSlide = viewLifecycleOwner.lifecycleScope.launchWhenStarted {
// while (isActive) {
//
// }
// }
slider.offscreenPageLimit = 3 slider.offscreenPageLimit = 3
slider.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER slider.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER
...@@ -106,7 +113,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -106,7 +113,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
mainViewModel.openDrawer(System.currentTimeMillis()) mainViewModel.openDrawer(System.currentTimeMillis())
} }
val params0 = FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) val params0 = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
val params = FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) val params = FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
bounceScrollView.setOnOverScrollListener { fromStart, overScrolledDistance -> bounceScrollView.setOnOverScrollListener { fromStart, overScrolledDistance ->
......
package com.mobiuz.app.dev.ui.home package com.mobiuz.app.dev.ui.home
import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.mobiuz.app.R
import com.mobiuz.app.databinding.ItemHomeBinding import com.mobiuz.app.databinding.ItemHomeBinding
class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
...@@ -17,14 +20,20 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { ...@@ -17,14 +20,20 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
) )
} }
override fun onBindViewHolder(holder: SliderViewHolder, position: Int) = holder.onBind() override fun onBindViewHolder(holder: SliderViewHolder, position: Int) = holder.onBind(position)
override fun getItemCount(): Int = 4 override fun getItemCount(): Int = 4
inner class SliderViewHolder(val view: ItemHomeBinding) : RecyclerView.ViewHolder(view.root) { inner class SliderViewHolder(val view: ItemHomeBinding) : RecyclerView.ViewHolder(view.root) {
fun onBind() { fun onBind(position: Int) {
view.apply {
if(position % 2 != 0){
imageSlider.setBackgroundResource(R.drawable.image_slider2)
txtDescription.setTextColor(Color.WHITE)
txtDescription.text = itemView.context.getString(R.string.misic_all_with_you)
}
}
} }
} }
......
package com.mobiuz.app.dev.ui.service package com.mobiuz.app.dev.ui.service
import android.Manifest import android.Manifest
import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.telephony.PhoneStateListener
import android.telephony.TelephonyManager
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -15,7 +19,9 @@ import com.mobiuz.app.dev.model.UssdData ...@@ -15,7 +19,9 @@ import com.mobiuz.app.dev.model.UssdData
import com.mobiuz.app.dev.ui.global.ButtonClick import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.getCurrentName import com.mobiuz.app.dev.utils.extensions.getCurrentName
import com.mobiuz.app.dev.utils.extensions.checkPermission import com.mobiuz.app.dev.utils.extensions.checkPermission
import com.mobiuz.app.dev.utils.extensions.customLog
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -34,6 +40,7 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() { ...@@ -34,6 +40,7 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
pref.isOpenUssdBottomSheetDialog = true
setUpUI() setUpUI()
} }
...@@ -52,12 +59,18 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() { ...@@ -52,12 +59,18 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() {
pref.isShowPin = false pref.isShowPin = false
checkPermission(Manifest.permission.CALL_PHONE) { checkPermission(Manifest.permission.CALL_PHONE) {
try { try {
pref.blockedTime = System.currentTimeMillis()
pref.isShowPin = false pref.isShowPin = false
val ussd = data.code.replace("#", "") + Uri.encode("#") val ussd = data.code.replace("#", "") + Uri.encode("#")
startActivity(Intent(Intent.ACTION_CALL, Uri.parse("tel:$ussd"))) val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:$ussd"))
startActivityForResult(intent,1)
val manager = requireContext().getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
manager.listen(MyCallListener(pref),PhoneStateListener.LISTEN_CALL_STATE)
} catch (e: Exception) { } catch (e: Exception) {
pref.isShowPin = false pref.isShowPin = false
} }
pref.isOpenUssdBottomSheetDialog = false
dismiss() dismiss()
} }
} }
...@@ -65,9 +78,25 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() { ...@@ -65,9 +78,25 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() {
} }
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
pref.blockedTime = System.currentTimeMillis()
customLog("requestCode:$requestCode, resultCode:$resultCode, data:$data ")
}
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
_bn = null _bn = null
} }
} }
\ No newline at end of file
class MyCallListener(val pref: SharedPref): PhoneStateListener(){
override fun onCallStateChanged(state: Int, phoneNumber: String?) {
super.onCallStateChanged(state, phoneNumber)
pref.isShowPin = false
pref.blockedTime = System.currentTimeMillis()
Log.e("AAA", "RINGING, number: ")
}
}
...@@ -17,6 +17,7 @@ import com.mobiuz.app.dev.utils.LocaleHelper ...@@ -17,6 +17,7 @@ import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.extensions.SingleBlock import com.mobiuz.app.dev.utils.extensions.SingleBlock
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import me.everything.android.ui.overscroll.OverScrollDecoratorHelper import me.everything.android.ui.overscroll.OverScrollDecoratorHelper
import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
...@@ -72,6 +73,7 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) { ...@@ -72,6 +73,7 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) {
private fun setLangAndNavigate(lang: String) { private fun setLangAndNavigate(lang: String) {
pref.language = lang pref.language = lang
AGRBilling.changeLanguage(requireContext(),lang)
LocaleHelper.setLocale(requireContext()) LocaleHelper.setLocale(requireContext())
val intent = Intent(requireContext(), MainActivity::class.java) val intent = Intent(requireContext(), MainActivity::class.java)
intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST) intent.putExtra(CONSTANTS.FIRST, CONSTANTS.FIRST)
......
...@@ -183,7 +183,9 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -183,7 +183,9 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
private fun loadError(){ private fun loadError(){
bn.apply { bn.apply {
if (count == 0){ if (count == 0){
showMessage( getString(R.string.popitok_error_password)) showCustomDialog(getString(R.string.popitok_error_password),false){
}
}else{ }else{
showMessage(getString(R.string.popitok_password,count.toString())) showMessage(getString(R.string.popitok_password,count.toString()))
} }
...@@ -206,7 +208,7 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -206,7 +208,7 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
showProgressDialog(false) showProgressDialog(false)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
if(it.message == "Invalid password"){ if(it.fromServer){
count-- count--
if(count == 0){ if(count == 0){
showCustomDialog(getString(R.string.popitok_error_password), false){ showCustomDialog(getString(R.string.popitok_error_password), false){
......
...@@ -4,11 +4,13 @@ import android.annotation.TargetApi ...@@ -4,11 +4,13 @@ import android.annotation.TargetApi
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.global.CONSTANTS
import java.util.* import java.util.*
object LocaleHelper { object LocaleHelper {
fun setLocale(context: Context):Context { fun setLocale(context: Context):Context {
return language(context, SharedPref(context).language) val lang = SharedPref(context).language
return language(context,if (lang.isNotEmpty()) lang else CONSTANTS.RU )
} }
private fun language(context: Context, language: String):Context{ private fun language(context: Context, language: String):Context{
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="40dp"
android:height="45dp"
android:viewportWidth="50"
android:viewportHeight="55">
<path
android:pathData="M23.0276,0.0616C17.8956,0.3869 12.7318,1.9252 8.3149,4.4446C7.0558,5.1627 6.9921,5.2191 6.8822,5.7101C6.7806,6.1645 6.9581,6.6558 7.3149,6.9079C7.773,7.2313 8.2097,7.1279 9.5374,6.3819C13.0902,4.3855 17.1266,3.098 21.535,2.5549C23.1694,2.3534 27.34,2.3803 28.9447,2.6025C32.8488,3.143 35.5941,3.9625 38.9993,5.6043C40.7555,6.4511 40.7996,6.4657 41.2165,6.3398C41.8929,6.1355 42.2439,5.3782 41.9342,4.7918C41.7563,4.4549 41.6013,4.3487 40.3524,3.7073C35.0797,0.9994 28.8648,-0.3085 23.0276,0.0616ZM21.8549,7.0325C12.6033,7.9656 4.66,12.5571 0.5705,19.3358C-0.0386,20.3455 -0.0637,20.4207 0.0585,20.8674C0.2012,21.3879 0.5923,21.7219 1.0592,21.7219C1.592,21.7219 1.9278,21.466 2.3816,20.7141C4.0087,18.0179 6.1761,15.7778 9.0079,13.8657C18.2453,7.6286 31.7547,7.6286 40.9921,13.8657C43.8444,15.7917 45.9589,17.9774 47.6025,20.6989C48.1129,21.544 48.3791,21.7483 48.9492,21.7319C49.4082,21.7188 49.8022,21.3755 49.9415,20.8674C50.0637,20.4207 50.0386,20.3455 49.4295,19.3358C45.7273,13.1993 38.7668,8.7816 30.5463,7.351C27.8568,6.883 24.5409,6.7615 21.8549,7.0325ZM23.1343,13.8067C22.9583,13.8306 22.3347,13.9041 21.7483,13.9702C12.1414,15.0524 4.6268,21.6635 2.7761,30.6612C2.2112,33.4075 2.1426,36.6153 2.6009,38.853C3.0648,41.1183 4.4392,45.0647 4.9209,45.5147C5.6069,46.1557 6.769,45.6706 6.769,44.743C6.769,44.5452 6.583,43.911 6.3555,43.3334C5.7498,41.7953 5.112,39.7547 4.8347,38.4676C4.6305,37.5198 4.5923,37.0294 4.5964,35.4044C4.6015,33.3395 4.7015,32.4305 5.1254,30.5948C6.7587,23.521 12.1813,18.2817 19.5622,16.646C22.1053,16.0822 25.7942,15.9151 28.0404,16.2617C32.7602,16.99 36.4582,18.8291 39.6098,22.0158C42.7065,25.1468 44.5978,29.0493 45.2648,33.6847C45.3329,34.1576 45.3949,35.27 45.4026,36.1568C45.414,37.4759 45.3803,37.8765 45.2171,38.3602C44.3147,41.035 41.6345,42.7581 39.0293,42.3385C37.5868,42.1062 36.6046,41.5762 35.6109,40.4942C34.5627,39.3529 34.2295,38.4298 34.0646,36.2105C33.8722,33.6197 33.1666,31.8191 31.7383,30.274C28.7263,27.0156 22.9966,26.5757 19.312,29.3198C18.062,30.2508 17.0085,31.7358 16.462,33.3376C16.0147,34.6485 15.9029,35.5925 15.9687,37.5003C16.0648,40.2785 16.5949,42.3496 17.8569,44.8764C19.3191,47.804 21.5009,50.3311 24.5194,52.5928C25.906,53.632 28.019,54.914 28.4651,54.987C29.1004,55.0909 29.691,54.5581 29.691,53.8809C29.691,53.3354 29.409,53.0421 28.1591,52.2881C21.8259,48.4673 18.4911,43.4748 18.2091,37.3923C18.0586,34.1435 19.233,31.8035 21.6008,30.6348C22.8534,30.0165 23.5481,29.8577 25,29.8577C26.4519,29.8577 27.1466,30.0165 28.3992,30.6348C29.9611,31.4057 31.1058,32.8416 31.5589,34.5983C31.658,34.9825 31.777,35.9015 31.8233,36.6404C31.8696,37.3794 31.988,38.2984 32.0864,38.6826C32.7874,41.4203 35.0268,43.6825 37.7937,44.4477C38.8486,44.7394 40.7943,44.7159 41.8935,44.3981C44.5474,43.6305 46.5463,41.6586 47.4147,38.9513C47.6875,38.1009 47.7792,35.8021 47.6075,34.1222C46.5311,23.5971 38.9789,15.598 28.6249,14.0167C27.5692,13.8554 23.8296,13.7125 23.1343,13.8067ZM23.1343,20.7436C16.492,21.4402 11.2331,26.0263 9.5885,32.5561C9.1304,34.3756 8.9803,37.167 9.2218,39.3812C9.6948,43.7205 11.3428,47.777 14.1559,51.5267C15.1842,52.8975 16.8981,54.8105 17.2024,54.9271C18.1166,55.2775 19.0417,54.239 18.5862,53.3737C18.5182,53.2446 18.0466,52.6553 17.5383,52.0641C15.0164,49.1315 13.4043,46.4179 12.4303,43.4656C11.8228,41.6242 11.5782,40.2988 11.4381,38.0914C11.3329,36.4336 11.3398,35.9645 11.4866,34.8132C12.342,28.1043 17.1442,23.498 23.8056,22.9967C28.239,22.6631 32.3669,23.9539 35.0263,26.5053C37.1523,28.5449 38.2495,30.9187 38.5438,34.1146C38.7206,36.035 38.727,36.0616 39.0849,36.3653C39.556,36.765 40.1272,36.7434 40.5574,36.3097C40.8726,35.992 40.8855,35.9429 40.8855,35.0606C40.8855,32.3798 40.0222,29.4549 38.5601,27.182C37.8308,26.0482 36.0193,24.2039 34.8679,23.4227C33.4087,22.4328 31.3312,21.5487 29.4245,21.1063C27.637,20.6915 25.0523,20.5425 23.1343,20.7436ZM24.5202,34.5359C24.0081,34.7669 23.8907,35.0713 23.916,36.103C24.0788,42.7733 30.0729,49.2766 37.687,51.0438C39.5435,51.4747 41.8005,51.6829 42.4118,51.4795C43.0794,51.2574 43.3654,50.4088 42.9751,49.8083C42.7094,49.3995 42.4965,49.3354 41.0299,49.2219C38.5454,49.0297 36.7513,48.562 34.6486,47.5586C31.9866,46.2882 29.7736,44.4047 28.2544,42.1165C26.9999,40.2269 26.3692,38.433 26.1776,36.208C26.0767,35.0367 25.9143,34.6784 25.4035,34.4989C24.9926,34.3544 24.9156,34.3576 24.5202,34.5359Z"
android:fillColor="#969A97"
android:fillType="evenOdd"/>
</vector>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginBottom="30dp" android:layout_marginVertical="30dp"
android:text="@string/to_offline" android:text="@string/to_offline"
android:visibility="gone" /> android:visibility="gone" />
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
android:layout_gravity="start" android:layout_gravity="start"
android:layout_marginStart="@dimen/_12sdp" android:layout_marginStart="@dimen/_12sdp"
android:layout_marginBottom="@dimen/_12sdp" android:layout_marginBottom="@dimen/_12sdp"
android:text="@string/choose_lang" android:text="Tilni tanlang"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" /> android:textStyle="bold" />
......
...@@ -24,9 +24,10 @@ ...@@ -24,9 +24,10 @@
android:id="@+id/btn_try_again" android:id="@+id/btn_try_again"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginVertical="4dp"
android:text="@string/to_offline" android:text="@string/to_offline"
android:visibility="visible" /> android:visibility="gone" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav_view" android:id="@+id/bottom_nav_view"
...@@ -53,176 +54,183 @@ ...@@ -53,176 +54,183 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<include <LinearLayout
android:id="@+id/header"
layout="@layout/layout_home_header"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/_4sdp"
android:background="@color/grey20" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:overScrollMode="never" android:orientation="vertical"
android:layout_weight="1"> android:layout_weight="1">
<LinearLayout
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="0dp"
android:orientation="vertical"> android:overScrollMode="never"
android:layout_weight="1">
<LinearLayout <LinearLayout
android:id="@+id/btn_safety"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="@dimen/_14sdp" android:orientation="vertical">
android:background="?android:selectableItemBackground" <include
android:orientation="horizontal" android:id="@+id/header"
android:paddingVertical="18dp" layout="@layout/layout_home_header"
android:paddingStart="30dp" android:layout_width="match_parent"
android:paddingEnd="13dp"> android:layout_height="wrap_content" />
<ImageView <View
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="1dp"
android:src="@drawable/ic_safety" /> android:layout_marginTop="@dimen/_4sdp"
android:background="@color/grey20" />
<LinearLayout
android:id="@+id/btn_safety"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/_14sdp"
android:background="?android:selectableItemBackground"
android:orientation="horizontal"
android:paddingVertical="18dp"
android:paddingStart="30dp"
android:paddingEnd="13dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_safety" />
<TextView <TextView
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_weight="1" android:layout_weight="1"
android:text="@string/bezopasnost" android:text="@string/bezopasnost"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" /> android:textStyle="bold" />
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:src="@drawable/ic_baseline_keyboard_arrow_right" /> android:src="@drawable/ic_baseline_keyboard_arrow_right" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/btn_language" android:id="@+id/btn_language"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="@dimen/_10sdp" android:layout_marginTop="@dimen/_10sdp"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingVertical="10dp" android:paddingVertical="10dp"
android:paddingStart="30dp" android:paddingStart="30dp"
android:paddingEnd="13dp"> android:paddingEnd="13dp">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:src="@drawable/ic_image_language" /> android:src="@drawable/ic_image_language" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="@string/language_app"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_language"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="Русский"
android:textColor="@color/grey80"
android:textSize="12sp" />
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_baseline_keyboard_arrow_right" />
</LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="0dp" android:id="@+id/btn_support"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:layout_gravity="center" android:layout_height="match_parent"
android:layout_weight="1" android:layout_marginTop="@dimen/_10sdp"
android:orientation="vertical"> android:background="?android:selectableItemBackground"
android:orientation="horizontal"
android:paddingVertical="20dp"
android:paddingStart="30dp"
android:paddingEnd="10dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_image_support" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:text="@string/language_app" android:layout_weight="1"
android:text="@string/support"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <ImageView
android:id="@+id/txt_language"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_gravity="center"
android:text="Русский" android:src="@drawable/ic_baseline_keyboard_arrow_right" />
android:textColor="@color/grey80"
android:textSize="12sp" />
</LinearLayout> </LinearLayout>
<ImageView <View
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="1dp"
android:layout_gravity="center" android:layout_marginTop="@dimen/_14sdp"
android:src="@drawable/ic_baseline_keyboard_arrow_right" /> android:background="@color/grey20" />
</LinearLayout>
<LinearLayout <TextView
android:id="@+id/btn_support" android:id="@+id/txt_redact_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/_10sdp"
android:background="?android:selectableItemBackground"
android:orientation="horizontal"
android:paddingVertical="20dp"
android:paddingStart="30dp"
android:paddingEnd="10dp">
<ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_image_support" /> android:layout_marginHorizontal="32dp"
android:layout_marginTop="20dp"
android:background="?android:selectableItemBackground"
android:text="@string/oferta_finans"
android:textColor="@color/link"
android:textSize="14sp" />
<TextView <TextView
android:layout_width="0dp" android:id="@+id/txt_public_oferta"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_weight="1"
android:text="@string/support"
android:textSize="16sp"
android:textStyle="bold" />
<ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_marginHorizontal="32dp"
android:src="@drawable/ic_baseline_keyboard_arrow_right" /> android:layout_marginBottom="20dp"
android:layout_marginTop="12dp"
android:background="?android:selectableItemBackground"
android:text="@string/public_oferta"
android:textColor="@color/link"
android:textSize="14sp" />
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView>
<View </LinearLayout>
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="@dimen/_14sdp"
android:background="@color/grey20" />
<TextView
android:id="@+id/txt_redact_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
android:layout_marginTop="20dp"
android:background="?android:selectableItemBackground"
android:text="@string/oferta_finans"
android:textColor="@color/link"
android:textSize="14sp" />
<TextView
android:id="@+id/txt_public_oferta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp"
android:layout_marginTop="12dp"
android:background="?android:selectableItemBackground"
android:text="@string/public_oferta"
android:textColor="@color/link"
android:textSize="14sp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout <LinearLayout
android:id="@+id/btn_exit" android:id="@+id/btn_exit"
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:gravity="center" android:gravity="center"
android:text="Сохраненные\nкарты" android:text="@string/save_cards"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="14sp" /> android:textSize="14sp" />
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:gravity="center" android:gravity="center"
android:text="История\nпополнений" android:text="@string/history_pay"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="14sp" /> android:textSize="14sp" />
...@@ -138,7 +138,7 @@ ...@@ -138,7 +138,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:gravity="center" android:gravity="center"
android:text="Пополнить\nбаланс" android:text="@string/pay_balance"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="14sp" /> android:textSize="14sp" />
...@@ -162,7 +162,7 @@ ...@@ -162,7 +162,7 @@
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/_5sdp" android:layout_marginTop="@dimen/_5sdp"
android:letterSpacing="0.05" android:letterSpacing="0.05"
android:text="Powered by" android:text="@string/powered_by"
android:textColor="@color/grey80" android:textColor="@color/grey80"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold" /> android:textStyle="bold" />
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:fitsSystemWindows="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/bgn_home" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
app:navigationIcon="@drawable/ic_menu">
<LinearLayout
android:id="@+id/toolbar_inside_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_gravity="start"
android:layout_marginStart="10dp"
android:orientation="vertical">
<TextView
android:id="@+id/toolbar_my_number_helper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_number"
android:textColor="@color/white100" />
<TextView
android:id="@+id/toolbar_my_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
tools:text="+998 97 980 25 52" />
</LinearLayout>
</com.google.android.material.appbar.MaterialToolbar>
<androidx.core.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="12dp"
android:layout_marginTop="@dimen/_6sdp"
android:layout_marginBottom="@dimen/_6sdp">
<com.makeramen.roundedimageview.RoundedImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:src="@drawable/ic_photo"
app:riv_corner_radius="14dp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="10dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_number"
android:textColor="@color/white100" />
<TextView
android:id="@+id/txt_my_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
tools:text="+998 97 980 25 52" />
</LinearLayout>
</LinearLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginTop="@dimen/_12sdp"
android:paddingHorizontal="16dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/balance"
android:textColor="@color/white100" />
<TextView
android:id="@+id/txt_balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0 UZS"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
<ImageView
android:id="@+id/btn_add_sum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:background="?selectableItemBackgroundBorderless"
android:src="@drawable/ic_plus" />
</FrameLayout>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_10sdp"
android:layout_marginTop="@dimen/_12sdp"
app:cardCornerRadius="4dp"
app:cardElevation="4dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="12dp"
android:paddingHorizontal="@dimen/_12sdp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/my_tarif"
android:id="@+id/txt_tarif"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="end"
android:text="0 Сум/мес"
android:textColor="@color/grey70"
android:textSize="14sp" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="@color/grey20" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:text="@string/oatatok_tarifu"
android:textColor="@color/grey70" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_wi_fi" />
<TextView
android:id="@+id/txt_count_mb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginVertical="6dp"
android:text="0"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_type_mb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="mb"
android:textColor="@color/black80" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/grey20" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_phone" />
<TextView
android:id="@+id/txt_count_minut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginVertical="6dp"
android:text="0"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_type_minut"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="min"
android:textColor="@color/black80" />
</LinearLayout>
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="@color/grey20" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_message" />
<TextView
android:id="@+id/txt_count_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginVertical="6dp"
android:text="0"
android:textSize="20sp"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_type_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="SMS"
android:textColor="@color/black80" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginTop="16dp"
android:background="@color/grey20" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="16dp"
android:paddingHorizontal="@dimen/_12sdp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/next_spisanie"
android:textColor="@color/grey70"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:text="22 Декабря" />
</FrameLayout>
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
<include
layout="@layout/item_home"
android:layout_width="match_parent"
android:layout_height="@dimen/_150sdp"
android:layout_marginHorizontal="12dp"
android:layout_marginTop="@dimen/_16sdp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginHorizontal="12dp"
android:layout_marginTop="@dimen/_8sdp"
android:layout_marginBottom="@dimen/_20sdp"
android:background="?selectableItemBackgroundBorderless"
android:src="@drawable/ic_group_12" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
...@@ -7,6 +7,11 @@ ...@@ -7,6 +7,11 @@
android:background="@color/white" android:background="@color/white"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<View
android:layout_width="match_parent"
android:id="@+id/top_div"
android:visibility="gone"
android:layout_height="24dp"/>
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar" android:id="@+id/toolbar"
......
...@@ -166,13 +166,15 @@ ...@@ -166,13 +166,15 @@
<ImageView <ImageView
android:id="@+id/btn_finger_print" android:id="@+id/btn_finger_print"
android:layout_width="56dp" android:visibility="invisible"
android:layout_height="56dp" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?selectableItemBackgroundBorderless" android:background="?selectableItemBackgroundBorderless"
android:contentDescription="@string/remove" android:contentDescription="@string/remove"
android:src="@drawable/ic_finger_print" android:src="@drawable/ic_finger_print"
app:layout_constraintBottom_toBottomOf="@id/btn_0" app:layout_constraintBottom_toBottomOf="@id/btn_0"
app:layout_constraintStart_toStartOf="@id/btn_7" app:layout_constraintStart_toStartOf="@id/btn_7"
app:layout_constraintEnd_toEndOf="@id/btn_7"
app:layout_constraintTop_toTopOf="@id/btn_0" /> app:layout_constraintTop_toTopOf="@id/btn_0" />
......
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
android:textColor="@color/white100" android:textColor="@color/white100"
android:paddingHorizontal="18dp" android:paddingHorizontal="18dp"
android:paddingVertical="10dp" android:paddingVertical="10dp"
android:text="+998 97 999-99-99" tools:text="+998 97 999-99-99"
android:textSize="15sp" /> android:textSize="15sp" />
<View <View
...@@ -100,14 +100,14 @@ ...@@ -100,14 +100,14 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Дата рождения " android:text="@string/birthday"
android:textColor="@color/grey110" android:textColor="@color/grey110"
android:textSize="14sp" /> android:textSize="14sp" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="31.12.1999" tools:text="31.12.1999"
android:id="@+id/txt_birthday" android:id="@+id/txt_birthday"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="15sp" android:textSize="15sp"
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
android:inputType="numberPassword" android:inputType="numberPassword"
android:maxLength="7" android:maxLength="7"
android:paddingVertical="@dimen/_12sdp" android:paddingVertical="@dimen/_12sdp"
android:paddingStart="@dimen/_12sdp" android:paddingHorizontal="@dimen/_12sdp"
android:textSize="@dimen/_12sdp" /> android:textSize="@dimen/_12sdp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
...@@ -101,7 +101,7 @@ ...@@ -101,7 +101,7 @@
android:inputType="numberPassword" android:inputType="numberPassword"
android:maxLength="7" android:maxLength="7"
android:paddingVertical="@dimen/_12sdp" android:paddingVertical="@dimen/_12sdp"
android:paddingStart="@dimen/_12sdp" android:paddingHorizontal="@dimen/_12sdp"
android:textSize="@dimen/_12sdp" /> android:textSize="@dimen/_12sdp" />
</com.google.android.material.textfield.TextInputLayout> </com.google.android.material.textfield.TextInputLayout>
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
android:id="@+id/txt_helper_mobiuz" android:id="@+id/txt_helper_mobiuz"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/_10sdp" android:layout_marginHorizontal="@dimen/_16sdp"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
android:textSize="14sp" android:textSize="14sp"
android:textColorLink="@color/primary100" android:textColorLink="@color/primary100"
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Биометрия" android:text="@string/biometria"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Использовать для входа в приложение" android:text="@string/for_enter_app"
android:textColor="@color/grey110" android:textColor="@color/grey110"
android:textSize="15sp" /> android:textSize="15sp" />
</LinearLayout> </LinearLayout>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Сменить PIN" android:text="@string/change_pin"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="Изменение PIN для входа в приложение" android:text="@string/change_pin_code"
android:textColor="@color/grey110" android:textColor="@color/grey110"
android:textSize="15sp" /> android:textSize="15sp" />
</LinearLayout> </LinearLayout>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:text="Сменить пароль" android:text="@string/change_passoword"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textSize="18sp" android:textSize="18sp"
android:textStyle="bold" /> android:textStyle="bold" />
......
...@@ -11,8 +11,9 @@ ...@@ -11,8 +11,9 @@
android:paddingVertical="@dimen/_16sdp" android:paddingVertical="@dimen/_16sdp"
android:layout_height="180dp" android:layout_height="180dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:id="@+id/image_slider"
android:paddingHorizontal="12dp" android:paddingHorizontal="12dp"
android:background="@drawable/banner" android:background="@drawable/image_slider1"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
...@@ -28,6 +29,7 @@ ...@@ -28,6 +29,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="13dp" android:layout_marginTop="13dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:id="@+id/txt_description"
android:maxWidth="@dimen/_120sdp" android:maxWidth="@dimen/_120sdp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dui, risus" android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dui, risus"
android:textColor="@color/black80" android:textColor="@color/black80"
...@@ -50,7 +52,7 @@ ...@@ -50,7 +52,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:text="Узнать больше" android:text="@string/more_know"
android:textColor="@color/primary100" android:textColor="@color/primary100"
android:textSize="12sp" android:textSize="12sp"
android:textStyle="bold" /> android:textStyle="bold" />
......
...@@ -11,12 +11,13 @@ ...@@ -11,12 +11,13 @@
android:layout_width="84dp" android:layout_width="84dp"
android:layout_height="84dp" android:layout_height="84dp"
android:text="Ю" android:text="Ю"
android:layout_marginTop="24dp"
android:id="@+id/txt_avatar" android:id="@+id/txt_avatar"
android:gravity="center" android:gravity="center"
android:textSize="24sp" android:textSize="24sp"
android:layout_gravity="start" android:layout_gravity="start"
android:background="@drawable/bgn_avatar" android:background="@drawable/bgn_avatar"
android:layout_marginTop="20dp" /> />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:id="@+id/txt_user_name" android:id="@+id/txt_user_name"
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:id="@+id/btn_ok" android:id="@+id/btn_ok"
android:textSize="14sp" android:textSize="16sp"
android:layout_margin="24dp" android:layout_margin="24dp"
android:textStyle="bold" android:textStyle="bold"
android:elevation="2dp" android:elevation="2dp"
......
...@@ -4,11 +4,11 @@ ...@@ -4,11 +4,11 @@
<item <item
android:id="@+id/nav_graph_home" android:id="@+id/nav_graph_home"
android:icon="@drawable/ic_vector" android:icon="@drawable/ic_vector"
android:title="My MOBI" /> android:title="@string/my_mobi" />
<item <item
android:id="@+id/nav_graph_profile" android:id="@+id/nav_graph_profile"
android:icon="@drawable/ic_vector_service" android:icon="@drawable/ic_vector_service"
android:title="Услуги" /> android:title="@string/services" />
</menu> </menu>
\ No newline at end of file
...@@ -2,127 +2,143 @@ ...@@ -2,127 +2,143 @@
<resources> <resources>
<string name="login">Login</string> <string name="login">Login</string>
<string name="phone_number">Phone Number</string> <string name="phone_number">Phone Number</string>
<string name="ex304">Не исправимая ошибка</string> <string name="ex304">Fatal error</string>
<string name="ex400">неверный запрос</string> <string name="ex400">Incorrect request</string>
<string name="ex401">Пользователь не зарегистрирован</string> <string name="ex401">Unauthorized user</string>
<string name="ex403">Запрещено</string> <string name="ex403">Denied</string>
<string name="ex404">Не Найдено</string> <string name="ex404">Not found</string>
<string name="ex405">Метод запрещен</string> <string name="ex405">Method is denied</string>
<string name="ex406">Неприемлемо</string> <string name="ex406">Unacceptable</string>
<string name="ex408">Тайм-аут запроса</string> <string name="ex408">Request time-out</string>
<string name="ex409">Конфликт</string> <string name="ex409">Conflict</string>
<string name="ex413">Тайм-аут запроса</string> <string name="ex413">Request time-out</string>
<string name="ex429">Необработанный</string> <string name="ex429">Unresolved response</string>
<string name="ex500">Ошибка сервера</string> <string name="ex500">Server error</string>
<string name="exelse">Непредвиденная ошибка, повторите попытку позже</string> <string name="exelse">Unexpected error, try again later</string>
<string name="ioexception">Ошибка сетевого подключения</string> <string name="ioexception">Connection error</string>
<string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string> <string name="jsonsyntaxexception">Error retrieving information</string>
<string name="connect_exception">Internet yo\'q</string> <string name="connect_exception">No Internet connection</string>
<string name="ex_nothing">Неизвестная ошибка</string> <string name="ex_nothing">Unknown error</string>
<string name="register">Registration</string> <string name="register">Registration</string>
<string name="password">Password</string> <string name="password">Password</string>
<string name="choose_lang">Tilni tanlang</string> <string name="choose_lang">Select language</string>
<string name="back">Back</string> <string name="back">Back</string>
<string name="enter_number">Введите номер</string> <string name="enter_number">Enter the phone number</string>
<string name="phone">Телефон:</string> <string name="continuoue">Next</string>
<string name="continuoue">Далее</string> <string name="phone">Phone:</string>
<string name="think_password">Придумайте пароль</string> <string name="think_password">Create password</string>
<string name="enter">Войти</string> <string name="enter">Enter</string>
<string name="enter_verification">Ведите код \nподтверждения</string> <string name="enter_verification">Enter verification code</string>
<string name="sent_code_again">Sent code again</string> <string name="sent_code_again">Resend code</string>
<string name="install_pin">Установите PIN-код</string> <string name="install_pin">Enter PIN-code</string>
<string name="confirm_pin">Повторите этот PIN-код</string> <string name="confirm_pin">Repeat PIN-code</string>
<string name="biometric_enter">Биометрический вход</string> <string name="biometric_enter">Biometric login</string>
<string name="subtitle_biometric">Быстро войти в систему с помощью отпечатка пальца или Face ID.</string> <string name="subtitle_biometric">Quickly sign in with your fingerprint or Face ID</string>
<string name="avtorization">Активировать</string> <string name="avtorization">Activate</string>
<string name="change_all_time">Измените это в любое время в настройках</string> <string name="change_all_time">Change this at anytime in settings</string>
<string name="skip">Пропустить</string> <string name="skip">Skip</string>
<string name="enter_parol">Введите пароль:</string> <string name="enter_parol">Enter password:</string>
<string name="min_6">Должно быть не менее 4 символов</string> <string name="min_6">Must be at least 4 symbols</string>
<string name="confirm_parol">Введите пароль повторно:</string> <string name="confirm_parol">Enter password again:</string>
<string name="must_same">Пароли должны совпадать</string> <string name="must_same">Passwords should be equal</string>
<string name="my_number">Мой номер</string> <string name="my_number">My number</string>
<string name="balance">Баланс</string> <string name="balance">Balance</string>
<string name="oatatok_tarifu">Остаток по тарифу</string> <string name="oatatok_tarifu">Remaining tariff</string>
<string name="next_spisanie">Следующее списание:</string> <string name="next_spisanie">Next payment:</string>
<string name="forget_password">Забыли пароль?</string> <string name="forget_password">Forgot password?</string>
<string name="pin_not_same">Значения не совпадают</string> <string name="pin_not_same">Values do not match</string>
<string name="remove">remove</string> <string name="remove">Remove</string>
<string name="password_same">Пароли совпали</string> <string name="password_same">Passwords matched</string>
<string name="password_not_same">Пароли не совпали</string> <string name="password_not_same">Passwords did not match</string>
<string name="enter_pin_code">Введите PIN-код</string> <string name="enter_pin_code">Enter PIN-code</string>
<string name="exit">Exit</string> <string name="exit">Exit</string>
<string name="are_you_sure">Do you want to exit?</string> <string name="are_you_sure">Do you want to exit?</string>
<string name="no">No</string> <string name="no">No</string>
<string name="yes">Yes</string> <string name="yes">Yes</string>
<string name="successfully">Successfully</string> <string name="successfully">Successfully</string>
<string name="ok">Ok</string> <string name="ok">Ok</string>
<string name="helper_mobiuz">Для входа вы можете использовать пароль от интернет-помощника www.mobi.uz</string> <string name="helper_mobiuz">To enter, you can use the password from the Internet assistant www.mobi.uz</string>
<string name="error_data">Error</string> <string name="error_data">Error</string>
<string name="password_successfully_updated">Password successfully updated</string> <string name="password_successfully_updated">Password successfully updated</string>
<string name="enter_from_finger_or_face">Вход в приложение по отпечатку пальца или лицу</string> <string name="enter_from_finger_or_face">Fingerprint or Face ID login</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="my_tarif">My tarif</string> <string name="my_tarif">My tariff</string>
<string name="bezopasnost">Безопасность</string> <string name="bezopasnost">Security</string>
<string name="language_app">Язык приложени</string> <string name="language_app">Language</string>
<string name="support">Служба поддержки</string> <string name="support">Customer service</string>
<string name="tx1">Согласие на обработку данных</string> <string name="tx1">Terms of Use</string>
<string name="tx2">Публичная оферта</string> <string name="tx2">Public offer</string>
<string name="tx3">Политика конфиденциальности</string> <string name="tx3">Privacy Policy</string>
<string name="biometric_enabled">Biometric authentication enabled</string> <string name="biometric_enabled">Biometric authentication Enabled</string>
<string name="biometric_disabled">Biometric authentication disabled</string> <string name="biometric_disabled">Biometric authentication disabled</string>
<string name="send">Send</string> <string name="send">Send</string>
<string name="to_offline">Go offline</string> <string name="to_offline">Continue offline</string>
<string name="try_again">Reconnect</string> <string name="try_again">Reconnect</string>
<string name="open">Available</string> <string name="open">Available</string>
<string name="yes_internet_connect">Internet connection restored</string> <string name="yes_internet_connect">Internet connection is restored</string>
<string name="not_internet_connect">No active connection</string> <string name="not_internet_connect">No active connection</string>
<string name="btn_try_again">Попробуй снова</string> <string name="btn_try_again">Try again</string>
<string name="not_internet_try_again">Check your internet connection and try again</string> <string name="not_internet_try_again">Check Internet connection and try again</string>
<string name="cannot_change_pin">You cannot change new pin to current pin</string> <string name="cannot_change_pin">You can not change new PIN-code to current PIN-code</string>
<string name="cannot_change_password">You cannot change new password to current password</string> <string name="cannot_change_password">You can not change new password to current password</string>
<string name="password_updated">Password Successfully Updated</string> <string name="password_updated">Password is successfully updated</string>
<string name="by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy">By signing up, you\'re agree to our \nTerms of Use and Privacy Policy</string> <string name="not_internet">No Internet connection</string>
<string name="not_internet">Нет интернет соединения</string> <string name="settings_safety">Security settings are available only for the main number +998 97 999-99-99</string>
<string name="settings_safety">Настройки безопасности действуют только для основного номера +998 97 999–99-99</string> <string name="popitok_error_password">"Password change is not possible \nYou entered the wrong password 3 times"</string>
<string name="popitok_error_password">"Замена пароля невозможна "</string> <string name="close_process">Close</string>
<string name="close_process">Закрыть</string> <string name="login_register">Authorization/Registration</string>
<string name="login_register">Авторизация/Регистрация</string> <string name="impossible_change_password">Password change is not possible</string>
<string name="impossible_change_password">Замена пароля невозможна</string> <string name="wrong_password">Incorrect password</string>
<string name="wrong_password">Неверный Пароль</string> <string name="your_opinion_matters">Your opinion matters</string>
<string name="your_opinion_matters">Ваше мнение имеет значение</string> <string name="send_an_appeal">Send message</string>
<string name="send_an_appeal">Отправить обращение</string>
<string name="email">Email</string> <string name="email">Email</string>
<string name="telegram_bot">Телеграм бот</string> <string name="telegram_bot">Telegram bot</string>
<string name="contact_us">Связь с нами</string> <string name="contact_us">Contact us</string>
<string name="all_nomer">Со всех номеров</string> <string name="all_nomer">From all operators</string>
<string name="for_abonent">Для абонентов</string> <string name="for_abonent">For subscribers</string>
<string name="pin_code_updated">Пин-код успешно обновлен</string> <string name="pin_code_updated">PIN-code is successfully updated</string>
<string name="popitok_error">"Смена ПИН кода невозможна \nВы ввели неправильный PIN код 3 раза"</string> <string name="popitok_error">"PIN-code change is not possible. Invalid PIN-code is entered 3 times."</string>
<string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string> <string name="popitok">Invalid PIN-coe \ %1$s trials left</string>
<string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string> <string name="popitok_password">Invalid password \ %1$s trials left</string>
<string name="confirm_new_pin">Подтвердите PIN-код</string> <string name="confirm_new_pin">Confirm PIN-code</string>
<string name="enter_new_pin">Введите новый PIN-код</string> <string name="enter_new_pin">Enter new PIN-code</string>
<string name="forget_pin">Забыли PIN?</string> <string name="forget_pin">Forgot PIN?</string>
<string name="enter_old_pin">Введите старый PIN-код</string> <string name="enter_old_pin">Enter old PIN-code</string>
<string name="password_changed">Пароль изменен</string> <string name="password_changed">Password changed</string>
<string name="enter_confirm_new_password">Для подтверждения введите новый пароль ещё раз</string> <string name="enter_confirm_new_password">For confirmation, enter new password again</string>
<string name="enter_new_password">Введите новый пароль</string> <string name="enter_new_password">Enter new password</string>
<string name="enter_password">Введите пароль:</string> <string name="enter_password">Enter password:</string>
<string name="enter_current_password">Введите текущий пароль</string> <string name="enter_current_password">Enter current password</string>
<string name="minutes_and_sms">Минуты и SMS</string> <string name="minutes_and_sms">Minutes and SMS</string>
<string name="packets">Интернет-пакеты</string> <string name="packets">Internet services</string>
<string name="tariffs">Тарифы</string> <string name="tariffs">Tariff plans</string>
<string name="main_ussd_command">Основные ussd команды</string> <string name="main_ussd_command">Main USSD commands</string>
<string name="services">Услуги</string> <string name="services">Services</string>
<string name="profile">Профиль</string> <string name="profile">Profile</string>
<string name="safety">Безопасность</string> <string name="safety">Security</string>
<string name="error_code">Неверный код</string> <string name="error_code">Incorrect code</string>
<string name="redact_data"><u>Согласие на обработку данных</u></string> <string name="redact_data"><u>Terms of Use</u></string>
<string name="public_oferta"><u>Оферта на обработку персональных данных</u></string> <string name="public_oferta"><u>Public Offer</u></string>
<string name="txt_confidensialnost"><u>Политика конфиденциальности</u></string> <string name="txt_confidensialnost"><u>Privacy Policy</u></string>
<string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string> <string name="oferta_finans"><u>Public offer</u></string>
<string name="open_with_password">Войти по паролю</string> <string name="open_with_password">Enter with password</string>
<string name="sum_month">%1$s Сум/мес</string> <string name="sum_month">%1$s UZS/month</string>
<string name="misic_all_with_you">Music is always with you</string>
<string name="my_mobi">My MOBI</string>
<string name="vvesti_pin">Enter PIN - code</string>
<string name="pin_code_error3">Login not possible \nYou entered the wrong PIN 3 times</string>
<string name="for_enter_app">Use to enter the application</string>
<string name="biometria">Biometrics</string>
<string name="change_pin">Change PIN</string>
<string name="change_pin_code">Change PIN to enter the application</string>
<string name="change_passoword">Change password</string>
<string name="birthday">Date of Birth</string>
<string name="save_cards">Saved\ncards</string>
<string name="history_pay">History\npaid</string>
<string name="pay_balance">Пополнить\nбаланс</string>
<string name="powered_by">Powered by</string>
<string name="more_know">To learn more</string>
<string name="check_internet_and_try_again">Check your internet connection and try again</string>
</resources> </resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="login">Login</string> <string name="login">Авторизоваться</string>
<string name="phone_number">Phone Number</string> <string name="phone_number">Телефонный номер</string>
<string name="ex304">Не исправимая ошибка</string> <string name="ex304">Не исправимая ошибка</string>
<string name="ex400">неверный запрос</string> <string name="ex400">неверный запрос</string>
<string name="ex401">Пользователь не зарегистрирован</string> <string name="ex401">Пользователь не зарегистрирован</string>
...@@ -19,16 +19,16 @@ ...@@ -19,16 +19,16 @@
<string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string> <string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string>
<string name="connect_exception">Internet yo\'q</string> <string name="connect_exception">Internet yo\'q</string>
<string name="ex_nothing">Неизвестная ошибка</string> <string name="ex_nothing">Неизвестная ошибка</string>
<string name="register">Registration</string> <string name="register">Регистрация</string>
<string name="password">Password</string> <string name="password">Пароль</string>
<string name="choose_lang">Tilni tanlang</string> <string name="choose_lang">Выберите язык</string>
<string name="back">Back</string> <string name="back">Назад</string>
<string name="enter_number">Введите номер</string> <string name="enter_number">Введите номер</string>
<string name="continuoue">Далее</string> <string name="continuoue">Далее</string>
<string name="phone">Телефон:</string> <string name="phone">Телефон:</string>
<string name="think_password">Придумайте пароль</string> <string name="think_password">Придумайте пароль</string>
<string name="enter">Войти</string> <string name="enter">Войти</string>
<string name="enter_verification">Ведите код \nподтверждения</string> <string name="enter_verification">Ведите код подтверждения</string>
<string name="sent_code_again">Отправить код заново</string> <string name="sent_code_again">Отправить код заново</string>
<string name="install_pin">Установите PIN-код</string> <string name="install_pin">Установите PIN-код</string>
<string name="confirm_pin">Повторите этот PIN-код</string> <string name="confirm_pin">Повторите этот PIN-код</string>
...@@ -47,22 +47,22 @@ ...@@ -47,22 +47,22 @@
<string name="next_spisanie">Следующее списание:</string> <string name="next_spisanie">Следующее списание:</string>
<string name="forget_password">Забыли пароль?</string> <string name="forget_password">Забыли пароль?</string>
<string name="pin_not_same">Значения не совпадают</string> <string name="pin_not_same">Значения не совпадают</string>
<string name="remove">remove</string> <string name="remove">Удалять</string>
<string name="password_same">Пароли совпали</string> <string name="password_same">Пароли совпали</string>
<string name="password_not_same">Пароли не совпали</string> <string name="password_not_same">Пароли не совпали</string>
<string name="enter_pin_code">Введите PIN-код</string> <string name="enter_pin_code">Введите PIN-код</string>
<string name="exit">Exit</string> <string name="exit">Выход</string>
<string name="are_you_sure">Do you want to exit?</string> <string name="are_you_sure">Вы хотите выйти?</string>
<string name="no">No</string> <string name="no">Нет</string>
<string name="yes">Yes</string> <string name="yes">Да</string>
<string name="successfully">Successfully</string> <string name="successfully">Успешно</string>
<string name="ok">Ok</string> <string name="ok">Ok</string>
<string name="helper_mobiuz">Для входа вы можете использовать пароль от интернет-помощника www.mobi.uz</string> <string name="helper_mobiuz">Для входа вы можете использовать пароль от интернет-помощника www.mobi.uz</string>
<string name="error_data">Error</string> <string name="error_data">Ошибка</string>
<string name="password_successfully_updated">Password successfully updated</string> <string name="password_successfully_updated">Пароль успешно обновлен</string>
<string name="enter_from_finger_or_face">Вход в приложение по отпечатку пальца или лицу</string> <string name="enter_from_finger_or_face">Вход в приложение по отпечатку пальца или лицу</string>
<string name="cancel">Cancel</string> <string name="cancel">Отмена</string>
<string name="my_tarif">My tarif</string> <string name="my_tarif">Мы тариф</string>
<string name="bezopasnost">Безопасность</string> <string name="bezopasnost">Безопасность</string>
<string name="language_app">Язык приложени</string> <string name="language_app">Язык приложени</string>
<string name="support">Служба поддержки</string> <string name="support">Служба поддержки</string>
...@@ -82,23 +82,22 @@ ...@@ -82,23 +82,22 @@
<string name="cannot_change_pin">Вы не можете изменить новый пин-код на текущий пин-код</string> <string name="cannot_change_pin">Вы не можете изменить новый пин-код на текущий пин-код</string>
<string name="cannot_change_password">Вы не можете изменить новый пароль на текущий пароль</string> <string name="cannot_change_password">Вы не можете изменить новый пароль на текущий пароль</string>
<string name="password_updated">Пароль успешно обновлен</string> <string name="password_updated">Пароль успешно обновлен</string>
<string name="by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy">By signing up, you\'re agree to our \nTerms of Use and Privacy Policy</string>
<string name="not_internet">Нет интернет соединения</string> <string name="not_internet">Нет интернет соединения</string>
<string name="settings_safety">Настройки безопасности действуют только для основного номера +998 97 999-99-99</string> <string name="settings_safety">Настройки безопасности действуют только для основного номера +998 97 999-99-99</string>
<string name="popitok_error_password">"Замена пароля невозможна "</string> <string name="popitok_error_password">"Замена пароля невозможен \nВы ввели неправильный пароль 3 раза"</string>
<string name="close_process">Закрыть</string> <string name="close_process">Закрыть</string>
<string name="login_register">Авторизация/Регистрация</string> <string name="login_register">Авторизация/Регистрация</string>
<string name="impossible_change_password">Замена пароля невозможна</string> <string name="impossible_change_password">Замена пароля невозможна</string>
<string name="wrong_password">Неверный Пароль</string> <string name="wrong_password">Неверный Пароль</string>
<string name="your_opinion_matters">Ваше мнение имеет значение</string> <string name="your_opinion_matters">Ваше мнение имеет значение</string>
<string name="send_an_appeal">Отправить обращение</string> <string name="send_an_appeal">Отправить обращение</string>
<string name="email">Email</string> <string name="email">Электронное письмо</string>
<string name="telegram_bot">Телеграм бот</string> <string name="telegram_bot">Телеграм бот</string>
<string name="contact_us">Связь с нами</string> <string name="contact_us">Связь с нами</string>
<string name="all_nomer">Со всех номеров</string> <string name="all_nomer">Со всех номеров</string>
<string name="for_abonent">Для абонентов</string> <string name="for_abonent">Для абонентов</string>
<string name="pin_code_updated">Пин-код успешно обновлен</string> <string name="pin_code_updated">Пин-код успешно обновлен</string>
<string name="popitok_error">"Смена ПИН кода невозможна \nВы ввели неправильный PIN код 3 раза"</string> <string name="popitok_error">"Смена ПИН кода невозможен \nВы ввели неправильный PIN 3 раза"</string>
<string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string> <string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string>
<string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string> <string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string>
<string name="confirm_new_pin">Подтвердите PIN-код</string> <string name="confirm_new_pin">Подтвердите PIN-код</string>
...@@ -124,5 +123,22 @@ ...@@ -124,5 +123,22 @@
<string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string> <string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string>
<string name="open_with_password">Войти по паролю</string> <string name="open_with_password">Войти по паролю</string>
<string name="sum_month">%1$s Сум/мес</string> <string name="sum_month">%1$s Сум/мес</string>
<string name="misic_all_with_you">Музыка всегда с тобой</string>
<string name="my_mobi">Мой MOBI</string>
<string name="vvesti_pin">Ввести PIN - код</string>
<string name="pin_code_error3">Вход невозможен \nВы ввели неправильный PIN 3 раза</string>
<string name="change_passoword">Сменить пароль</string>
<string name="change_pin_code">Изменение PIN для входа в приложение</string>
<string name="change_pin">Сменить PIN</string>
<string name="biometria">Биометрия</string>
<string name="for_enter_app">Использовать для входа в приложение</string>
<string name="birthday">Дата рождения</string>
<string name="save_cards">Сохраненные\nкарты</string>
<string name="history_pay">История\nпополнений</string>
<string name="pay_balance">Пополнить\nбаланс</string>
<string name="powered_by">Питаться от</string>
<string name="more_know">Узнать больше</string>
<string name="check_internet_and_try_again">Проверьте подключение к Интернету и попробуйте еще раз</string>
</resources> </resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="login">Login</string> <string name="login">Kirish</string>
<string name="phone_number">Phone Number</string> <string name="phone_number">Telefon Raqami</string>
<string name="ex304">Не исправимая ошибка</string> <string name="ex304">To\'g\'irlab bo\'lmas xato</string>
<string name="ex400">неверный запрос</string> <string name="ex400">Noto\'g\'ri so\'rov</string>
<string name="ex401">Пользователь не зарегистрирован</string> <string name="ex401">Foydalanuvchi ro\'yxatdan o\'tmagan</string>
<string name="ex403">Запрещено</string> <string name="ex403">Taqiqlangan</string>
<string name="ex404">Не Найдено</string> <string name="ex404">Topilmadi</string>
<string name="ex405">Метод запрещен</string> <string name="ex405">Ruxsat etilmagan</string>
<string name="ex406">Неприемлемо</string> <string name="ex406">Maqbul emas</string>
<string name="ex408">Тайм-аут запроса</string> <string name="ex408">So\'rovni kutish vaqti tugadi</string>
<string name="ex409">Конфликт</string> <string name="ex409">Konflikt</string>
<string name="ex413">Тайм-аут запроса</string> <string name="ex413">So\'rovni kutish vaqti tugadi</string>
<string name="ex429">Необработанный</string> <string name="ex429">Ishlov berilmagan</string>
<string name="ex500">Ошибка сервера</string> <string name="ex500">Serverda xatolik</string>
<string name="exelse">Непредвиденная ошибка, повторите попытку позже</string> <string name="exelse">Kutilmagan xatolik yuz berdi, keyinroq qayta urinib ko\'ring</string>
<string name="ioexception">Ошибка сетевого подключения</string> <string name="ioexception">Tarmoqqa ulanishda xatolik yuz berdi</string>
<string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string> <string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string>
<string name="connect_exception">Internet yo\'q</string> <string name="connect_exception">Internet yo\'q</string>
<string name="ex_nothing">Неизвестная ошибка</string> <string name="ex_nothing">Noma\'lum xato</string>
<string name="register">Registration</string> <string name="register">Ro\'yxatdan o\'tish</string>
<string name="password">Password</string> <string name="password">Parol</string>
<string name="choose_lang">Tilni tanlang</string> <string name="choose_lang">Tilni tanlang</string>
<string name="back">Back</string> <string name="back">Orqaga</string>
<string name="enter_number">Введите номер</string> <string name="enter_number">Raqamni kiriting</string>
<string name="continuoue">Далее</string> <string name="continuoue">Keyingisi</string>
<string name="phone">Телефон:</string> <string name="phone">Telefon:</string>
<string name="think_password">Придумайте пароль</string> <string name="think_password">Iltimos, parol o\'ylab toping</string>
<string name="enter">Войти</string> <string name="enter">Kirish</string>
<string name="enter_verification">Ведите код \nподтверждения</string> <string name="enter_verification">Tasdiqlovchi kodni kiriting</string>
<string name="sent_code_again">Kodni qayta yuborish</string> <string name="sent_code_again">Kodni qayta yuborish</string>
<string name="install_pin">Установите PIN-код</string> <string name="install_pin">PIN kodni o\'rnatish</string>
<string name="confirm_pin">Повторите этот PIN-код</string> <string name="confirm_pin">Ayni PIN kodni qayta takrorlang</string>
<string name="biometric_enter">Биометрический вход</string> <string name="biometric_enter">Biometrik kirish</string>
<string name="subtitle_biometric">Быстро войти в систему с помощью отпечатка пальца или Face ID.</string> <string name="subtitle_biometric">Barmoq izi yoki Face ID bilan tezda kiring.</string>
<string name="avtorization">Активировать</string> <string name="avtorization">Faollashtirish</string>
<string name="change_all_time">Измените это в любое время в настройках</string> <string name="change_all_time">Sozlamalar orqali istalgan vaqtda o\'zgartiring</string>
<string name="skip">Пропустить</string> <string name="skip">O\'tkazib yuborish</string>
<string name="enter_parol">Введите пароль:</string> <string name="enter_parol">Parol kiriting:</string>
<string name="min_6">Должно быть не менее 4 символов</string> <string name="min_6">4 ta belgidan kam bo\'lmasligi kerak</string>
<string name="confirm_parol">Введите пароль повторно:</string> <string name="confirm_parol">Parolni qayta kiriting:</string>
<string name="must_same">Пароли должны совпадать</string> <string name="must_same">Parollar o\'zaro mos bo\'lishi kerak</string>
<string name="my_number">Мой номер</string> <string name="my_number">Mening raqamim</string>
<string name="balance">Баланс</string> <string name="balance">Balans</string>
<string name="oatatok_tarifu">Остаток по тарифу</string> <string name="oatatok_tarifu">Tarif bo\'yicha qoldiq</string>
<string name="next_spisanie">Следующее списание:</string> <string name="next_spisanie">Keyingi hisobdan chiqarish:</string>
<string name="forget_password">Забыли пароль?</string> <string name="forget_password">Parolni unutdingizmi?</string>
<string name="pin_not_same">Значения не совпадают</string> <string name="pin_not_same">Qiymatlar mos emas</string>
<string name="remove">remove</string> <string name="remove">Olib tashlash</string>
<string name="password_same">Пароли совпали</string> <string name="password_same">Parollar mos keldi</string>
<string name="password_not_same">Пароли не совпали</string> <string name="password_not_same">Parollar mos kelmadi</string>
<string name="enter_pin_code">Введите PIN-код</string> <string name="enter_pin_code">PIN kodni kiriting</string>
<string name="exit">Exit</string> <string name="exit">Chiqish</string>
<string name="are_you_sure">Do you want to exit?</string> <string name="are_you_sure">Haqiqatan ham chiqishni xohlaysizmi?</string>
<string name="no">No</string> <string name="no">Yo\'q</string>
<string name="yes">Yes</string> <string name="yes">Ha</string>
<string name="successfully">Successfully</string> <string name="successfully">Muvaffaqiyatli bajarildi</string>
<string name="ok">Ok</string> <string name="ok">Ok</string>
<string name="helper_mobiuz">Для входа вы можете использовать пароль от интернет-помощника www.mobi.uz</string> <string name="helper_mobiuz">Kirish uchun www.mobi.uz internet yordamchisi parolidan foydalanishingiz mumkin</string>
<string name="error_data">Error</string> <string name="error_data">Xato</string>
<string name="password_successfully_updated">Password successfully updated</string> <string name="password_successfully_updated">Parol muvaffaqiyatli yangilandi</string>
<string name="enter_from_finger_or_face">Вход в приложение по отпечатку пальца или лицу</string> <string name="enter_from_finger_or_face">Barmoq izi yoki Face ID orqali ilovaga kirish</string>
<string name="cancel">Cancel</string> <string name="cancel">Bekor qilish</string>
<string name="my_tarif">My tarif</string> <string name="my_tarif">Mening tarifi</string>
<string name="bezopasnost">Безопасность</string> <string name="bezopasnost">Xavfsizlik</string>
<string name="language_app">Язык приложени</string> <string name="language_app">Ilova tili</string>
<string name="support">Служба поддержки</string> <string name="support">Qo\'llab-quvvatlash xizmati</string>
<string name="tx1">Согласие на обработку данных</string> <string name="tx1">Ma\'lumotlarni qayta ishlashga rozilik</string>
<string name="tx2">Публичная оферта</string> <string name="tx2">Ommaviy oferta</string>
<string name="tx3">Политика конфиденциальности</string> <string name="tx3">Maxfiylik siyosati</string>
<string name="biometric_enabled">Biometrik autentifikatsiya yoqilgan</string> <string name="biometric_enabled">Biometrik autentifikatsiya yoqilgan</string>
<string name="biometric_disabled">Biometrik autentifikatsiya ochirilgan</string> <string name="biometric_disabled">Biometrik autentifikatsiya o\'chirilgan</string>
<string name="send">Yuborish</string> <string name="send">Yuborish</string>
<string name="to_offline">Oflayn rejimga o\'tish</string> <string name="to_offline">Oflayn rejimiga o\'tish</string>
<string name="try_again">Qayta ulanish</string> <string name="try_again">Qayta ulanish</string>
<string name="open">Mavjud</string> <string name="open">Mavjud</string>
<string name="yes_internet_connect">Internetga ulanish tiklandi</string> <string name="yes_internet_connect">Internetga ulanish tiklandi</string>
<string name="not_internet_connect">Faol ulanish yo\'q</string> <string name="not_internet_connect">Faol ulanish yo\'q</string>
<string name="btn_try_again">Попробуй снова</string> <string name="btn_try_again">Qayta urinib ko\'ring</string>
<string name="not_internet_try_again">Internet aloqangizni tekshiring va qayta urinib ko\'ring</string> <string name="not_internet_try_again">Internet aloqangizni tekshirib, qayta urinib ko\'ring</string>
<string name="cannot_change_pin">Siz yangi pin kodni joriy pin kodiga o\'zgartira olmaysiz</string> <string name="cannot_change_pin">Yangi PIN-kodni joriy PIN-kodga o\'zgartira olmaysiz</string>
<string name="cannot_change_password">Siz yangi parolni joriy parolga o\'zgartira olmaysiz</string> <string name="cannot_change_password">Siz yangi parolni joriy parolga o\'zgartira olmaysiz</string>
<string name="password_updated">Parol muvaffaqiyatli yangilandi</string> <string name="password_updated">Parol muvaffaqiyatli yangilandi</string>
<string name="by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy">By signing up, you\'re agree to our \nTerms of Use and Privacy Policy</string> <string name="not_internet">Internet aloqasi mavjd emas</string>
<string name="not_internet">Нет интернет соединения</string> <string name="settings_safety">Xavfsizlik sozlamalari faqat +998 97 999-99-99, asosiy raqam uchun amal qiladi</string>
<string name="settings_safety">Настройки безопасности действуют только для основного номера +998 97 999-99-99</string> <string name="popitok_error_password">"Parolni almashtirish mumkin emas \nSiz 3 marta noto'g'ri parol kiritdingiz"</string>
<string name="popitok_error_password">"Замена пароля невозможна "</string> <string name="close_process">Yopish</string>
<string name="close_process">Закрыть</string> <string name="login_register">Kirish / Ro\'yxatdan o\'tish</string>
<string name="login_register">Авторизация/Регистрация</string> <string name="impossible_change_password">Parolni almashtirish mumkin emas</string>
<string name="impossible_change_password">Замена пароля невозможна</string> <string name="wrong_password">Noto\'g\'ri Parol</string>
<string name="wrong_password">Неверный Пароль</string> <string name="your_opinion_matters">Sizning fikringiz ahamiyatga ega</string>
<string name="your_opinion_matters">Ваше мнение имеет значение</string> <string name="send_an_appeal">Murojaat yuborish</string>
<string name="send_an_appeal">Отправить обращение</string> <string name="email">Elektron pochta</string>
<string name="email">Email</string> <string name="telegram_bot">Telegram boti</string>
<string name="telegram_bot">Телеграм бот</string> <string name="contact_us">Biz bilan bog\'lanish</string>
<string name="contact_us">Связь с нами</string> <string name="all_nomer">Barcha raqamlardan</string>
<string name="all_nomer">Со всех номеров</string> <string name="for_abonent">Abonentlar uchun</string>
<string name="for_abonent">Для абонентов</string> <string name="pin_code_updated">PIN kod muvaffaqiyatli yangilandi</string>
<string name="pin_code_updated">Пин-код успешно обновлен</string> <string name="popitok_error">"PIN kodini o\'zgartirish mumkin emas \n3 marta no\'to\'g\'ri PIN kod kiritdingiz"</string>
<string name="popitok_error">"Смена ПИН кода невозможна \nВы ввели неправильный PIN код 3 раза"</string> <string name="popitok">Noto\'g\'ri PIN kod \n%1$s ta imkoniyatingiz qoldi</string>
<string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string> <string name="popitok_password">Noto\'g\'ri parol \n%1$s ta imkoniyatingiz qoldi</string>
<string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string> <string name="confirm_new_pin">PIN-kodni tasdiqlang</string>
<string name="confirm_new_pin">Подтвердите PIN-код</string> <string name="enter_new_pin">Yangi PIN-kodni kiriting</string>
<string name="enter_new_pin">Введите новый PIN-код</string> <string name="forget_pin">PINni unutdingizmi?</string>
<string name="forget_pin">Забыли PIN?</string> <string name="enter_old_pin">Eski PIN-kodni kiriting</string>
<string name="enter_old_pin">Введите старый PIN-код</string> <string name="password_changed">Parol o\'zgartirildi</string>
<string name="password_changed">Пароль изменен</string> <string name="enter_confirm_new_password">Tasdiqlash uchun yangi parolni qayta kiriting</string>
<string name="enter_confirm_new_password">Для подтверждения введите новый пароль ещё раз</string> <string name="enter_new_password">Yangi parolni kiriting</string>
<string name="enter_new_password">Введите новый пароль</string> <string name="enter_password">Parolni kiriting:</string>
<string name="enter_password">Введите пароль:</string> <string name="enter_current_password">Joriy parolni kiriting</string>
<string name="enter_current_password">Введите текущий пароль</string> <string name="minutes_and_sms">Daqiqalar va SMS</string>
<string name="minutes_and_sms">Минуты и SMS</string> <string name="packets">Internet paketlari</string>
<string name="packets">Интернет-пакеты</string> <string name="tariffs">Tariflar</string>
<string name="tariffs">Тарифы</string> <string name="main_ussd_command">Asosiy ussd buyruqlar</string>
<string name="main_ussd_command">Основные ussd команды</string> <string name="services">Xizmatlar</string>
<string name="services">Услуги</string> <string name="profile">Profil</string>
<string name="profile">Профиль</string> <string name="safety">Xavfsizlik</string>
<string name="safety">Безопасность</string> <string name="error_code">Noto\'g\'ri kod</string>
<string name="error_code">Неверный код</string> <string name="redact_data"><u>Ma\'lumotlarni qayta ishlashga rozilik</u></string>
<string name="redact_data"><u>Согласие на обработку данных</u></string> <string name="public_oferta"><u>Shaxsiy ma\'lumotlarni qayta ishlash bo\'yicha oferta</u></string>
<string name="public_oferta"><u>Оферта на обработку персональных данных</u></string> <string name="txt_confidensialnost"><u>Maxfiylik siyosati</u></string>
<string name="txt_confidensialnost"><u>Политика конфиденциальности</u></string> <string name="oferta_finans"><u>Moliyaviy xizmatlar ko\'rsatish bo\'yicha oferta</u></string>
<string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string> <string name="open_with_password">Parol bilan tizimga kirish</string>
<string name="open_with_password">Войти по паролю</string> <string name="sum_month">%1$s So\'m/oy</string>
<string name="sum_month">%1$s Сум/мес</string> <string name="misic_all_with_you">Musiqa har doim siz bilan</string>
<string name="my_mobi">My MOBI</string>
<string name="vvesti_pin">PIN-kodni kiriting</string>
<string name="pin_code_error3">Kirish mumkin emas \nSiz PIN-kodni 3 marta noto‘g‘ri kiritdingiz</string>
<string name="for_enter_app">Ilovaga kirish uchun foydalaning</string>
<string name="biometria">Biometrik</string>
<string name="change_pin">PIN-kodni o\'zgartirish</string>
<string name="change_pin_code">Ilovaga kirish uchun PIN-kodni o\'zgartirish</string>
<string name="change_passoword">Parolni o\'zgartirish</string>
<string name="birthday">Tug\'ilgan kun</string>
<string name="save_cards">Saqlangan \nkartalar</string>
<string name="history_pay">To\'langanlar \ntarixi</string>
<string name="pay_balance">Hisobni \nto\'ldirish</string>
<string name="powered_by">Tomonidan qo\'llab-quvvatlanadi</string>
<string name="more_know">Ko\'proq bilish</string>
<string name="check_internet_and_try_again">Internet ulanishini tekshirib qayta urinib ko\'ring</string>
</resources> </resources>
\ No newline at end of file
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
<string name="ex408">Тайм-аут запроса</string> <string name="ex408">Тайм-аут запроса</string>
<string name="ex409">Конфликт</string> <string name="ex409">Конфликт</string>
<string name="ex413">Тайм-аут запроса</string> <string name="ex413">Тайм-аут запроса</string>
<string name="ex422">Необработанный</string> <string name="ex422" translatable="false">Необработанный</string>
<string name="ex429">Необработанный</string> <string name="ex429">Необработанный</string>
<string name="ex500">Ошибка сервера</string> <string name="ex500">Ошибка сервера</string>
<string name="ex502">Неверный шлюз</string> <string name="ex502" translatable="false">Неверный шлюз</string>
<string name="exelse">Непредвиденная ошибка, повторите попытку позже</string> <string name="exelse">Непредвиденная ошибка, повторите попытку позже</string>
<string name="ioexception">Ошибка сетевого подключения</string> <string name="ioexception">Ошибка сетевого подключения</string>
<string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string> <string name="jsonsyntaxexception">Ma\'lumot olishda xatolik</string>
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<string name="choose_lang">Tilni tanlang</string> <string name="choose_lang">Tilni tanlang</string>
<string name="uzbek" translatable="false">O\'zbek</string> <string name="uzbek" translatable="false">O\'zbek</string>
<string name="english" translatable="false">English</string> <string name="english" translatable="false">English</string>
<string name="russian" translatable="false">Russian</string> <string name="russian" translatable="false">Русский</string>
<string name="back">Back</string> <string name="back">Back</string>
<string name="enter_number">Введите номер</string> <string name="enter_number">Введите номер</string>
<string name="continuoue">Далее</string> <string name="continuoue">Далее</string>
...@@ -110,6 +110,7 @@ ...@@ -110,6 +110,7 @@
<string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string> <string name="popitok">Неверный PIN-код \nОсталось %1$s попытки</string>
<string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string> <string name="popitok_password">Неверный Пароль \nОсталось %1$s попытки</string>
<string name="popitok_error">Смена ПИН кода невозможна \nВы ввели неправильный PIN код 3 раза</string> <string name="popitok_error">Смена ПИН кода невозможна \nВы ввели неправильный PIN код 3 раза</string>
<string name="pin_code_error3">Вход невозможен \nВы ввели неправильный PIN 3 раза</string>
<string name="pin_code_updated">Пин-код успешно обновлен</string> <string name="pin_code_updated">Пин-код успешно обновлен</string>
<string name="for_abonent">Для абонентов</string> <string name="for_abonent">Для абонентов</string>
<string name="all_nomer">Со всех номеров</string> <string name="all_nomer">Со всех номеров</string>
...@@ -140,11 +141,27 @@ ...@@ -140,11 +141,27 @@
<string name="not_internet_connect">Отсутствует активное подключение</string> <string name="not_internet_connect">Отсутствует активное подключение</string>
<string name="yes_internet_connect">Интернет соединение восстановлено</string> <string name="yes_internet_connect">Интернет соединение восстановлено</string>
<string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string> <string name="oferta_finans"><u>Оферта на предоставление финансовых услуг</u></string>
<string name="by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy">By signing up, you\'re agree to our \nTerms of Use and Privacy Policy</string> <string name="by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy" translatable="false">By signing up, you\'re agree to our \nTerms of Use and Privacy
Policy</string>
<string name="btn_try_again">Попробуй снова</string> <string name="btn_try_again">Попробуй снова</string>
<string name="cannot_change_pin">You cannot change new pin to current pin</string> <string name="cannot_change_pin">You cannot change new pin to current pin</string>
<string name="cannot_change_password">You cannot change new password to current password</string> <string name="cannot_change_password">You cannot change new password to current password</string>
<string name="open_with_password">Войти по паролю</string> <string name="open_with_password">Войти по паролю</string>
<string name="sum_month">%1$s Сум/мес</string> <string name="sum_month">%1$s Сум/мес</string>
<string name="misic_all_with_you">Musiqa har doim sen bilan</string>
<string name="my_mobi">My MOBI</string>
<string name="vvesti_pin">Ввести PIN - код</string>
<string name="change_passoword">Сменить пароль</string>
<string name="change_pin_code">Изменение PIN для входа в приложение</string>
<string name="change_pin">Сменить PIN</string>
<string name="biometria">Биометрия</string>
<string name="for_enter_app">Использовать для входа в приложение</string>
<string name="birthday">Дата рождения</string>
<string name="save_cards">Сохраненные\nкарты</string>
<string name="history_pay">История\nпополнений</string>
<string name="pay_balance">Пополнить\nбаланс</string>
<string name="powered_by">Powered by</string>
<string name="more_know">Узнать больше</string>
<string name="check_internet_and_try_again">Internet ulanishini tekshirib qayta urinib ko\'ring</string>
</resources> </resources>
\ No newline at end of file
...@@ -70,14 +70,6 @@ ...@@ -70,14 +70,6 @@
</style> </style>
<style name="DialogThemeLight" parent="Theme.AppCompat.Light.Dialog.MinWidth">
<item name="colorAccent">@color/chuck_colorAccent</item>
<item name="android:colorAccent">@color/chuck_colorAccent</item>
<item name="android:background">@color/chuck_colorPrimary</item>
<item name="android:textColorPrimary">@color/chuck_colorPrimary</item>
<item name="android:textColorSecondary">@color/chuck_colorPrimary</item>
</style>
<style name="BtnStyle"> <style name="BtnStyle">
<item name="android:layout_height">@dimen/_48sdp</item> <item name="android:layout_height">@dimen/_48sdp</item>
<item name="android:layout_width">@dimen/_48sdp</item> <item name="android:layout_width">@dimen/_48sdp</item>
......
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