Commit f9d9b438 authored by shohboz's avatar shohboz

[UPD] MUS-230 Feature, updated offline rejim and refactoring screens classes

parent 785858b0
...@@ -42,7 +42,7 @@ class LanguageActivity : AppCompatActivity() { ...@@ -42,7 +42,7 @@ class LanguageActivity : AppCompatActivity() {
private fun setLangAndNavigate(lang: String) { private fun setLangAndNavigate(lang: String) {
pref.language = lang pref.language = lang
startActivity(Intent(this@LanguageActivity, AuthActivity::class.java)) startActivity(Intent(this, AuthActivity::class.java))
} }
override fun onDestroy() { override fun onDestroy() {
......
...@@ -8,6 +8,7 @@ import android.net.Uri ...@@ -8,6 +8,7 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.annotation.IdRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.GravityCompat import androidx.core.view.GravityCompat
...@@ -20,6 +21,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView ...@@ -20,6 +21,7 @@ import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseApp
import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessaging
import com.mobiuz.app.BuildConfig
import com.mobiuz.app.R import com.mobiuz.app.R
import com.mobiuz.app.databinding.ActivityMainBinding import com.mobiuz.app.databinding.ActivityMainBinding
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
...@@ -50,6 +52,7 @@ class MainActivity : AppCompatActivity() { ...@@ -50,6 +52,7 @@ class MainActivity : AppCompatActivity() {
private var currentNavController: LiveData<NavController>? = null private var currentNavController: LiveData<NavController>? = null
private val viewModel: MainViewModel by viewModels() private val viewModel: MainViewModel by viewModels()
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
// if offline type == 0 // if offline type == 0
private var type = 0 private var type = 0
...@@ -66,7 +69,7 @@ class MainActivity : AppCompatActivity() { ...@@ -66,7 +69,7 @@ class MainActivity : AppCompatActivity() {
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this) mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)
FirebaseMessaging.getInstance().token.addOnCompleteListener { FirebaseMessaging.getInstance().token.addOnCompleteListener {
if (it.isSuccessful) pref.setDeviceToken(it.result.toString()) if (it.isSuccessful) pref.deviceToken = it.result.toString()
} }
if (savedInstanceState == null) { if (savedInstanceState == null) {
setupBottomNavigationBar() setupBottomNavigationBar()
...@@ -75,18 +78,17 @@ class MainActivity : AppCompatActivity() { ...@@ -75,18 +78,17 @@ class MainActivity : AppCompatActivity() {
setUpUI() setUpUI()
collects() collects()
receiver = object : BroadcastReceiver(){ receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
type = NetworkUtil.getConnectivityStatus(this@MainActivity) type = NetworkUtil.getConnectivityStatus(this@MainActivity)
bn.btnTryAgain.isVisible = type == 0 bn.btnTryAgain.isVisible = type == 0
if(type == 0){ if (type == 0) {
showMessage(getString(R.string.not_internet_connect)) showMessage(getString(R.string.not_internet_connect))
} }
} }
} }
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE") val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
registerReceiver(receiver,intentFilter) registerReceiver(receiver, intentFilter)
} }
...@@ -96,10 +98,12 @@ class MainActivity : AppCompatActivity() { ...@@ -96,10 +98,12 @@ class MainActivity : AppCompatActivity() {
bn.apply { bn.apply {
bn.btnTryAgain.setOnClickListener { bn.btnTryAgain.setOnClickListener {
if (type == 0){ if (type == 0) {
navigate() navigate()
} }
} }
txtVersion.text = "v ${BuildConfig.VERSION_NAME}"
header.txtUserPhone.text = pref.userPhone.customMasketHome() header.txtUserPhone.text = pref.userPhone.customMasketHome()
customLog("lang:${pref.language}") customLog("lang:${pref.language}")
when (pref.language) { when (pref.language) {
...@@ -147,16 +151,16 @@ class MainActivity : AppCompatActivity() { ...@@ -147,16 +151,16 @@ class MainActivity : AppCompatActivity() {
} }
}) })
txtRedactData.setOnClickListener { txtRedactData.setOnClickListener {
navigateUri("https://www.mobi.uz/") navigateUri(CONSTANTS.MAIN_URL1)
} }
txtPublicOferta.setOnClickListener { txtPublicOferta.setOnClickListener {
navigateUri("https://www.mobi.uz/") navigateUri(CONSTANTS.MAIN_URL2)
} }
} }
} }
fun navigate(){ fun navigate() {
val intent = Intent(this, OfflineActivity::class.java) val intent = Intent(this, OfflineActivity::class.java)
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)
...@@ -206,7 +210,8 @@ class MainActivity : AppCompatActivity() { ...@@ -206,7 +210,8 @@ class MainActivity : AppCompatActivity() {
} }
} }
private fun navigateToSettingsScreen(resId: Int) {
private fun navigateToSettingsScreen(@IdRes resId: Int) {
val window = window.decorView val window = window.decorView
window.systemUiVisibility = window.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR window.systemUiVisibility = window.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
currentNavController?.value?.navigate(resId) currentNavController?.value?.navigate(resId)
...@@ -294,6 +299,7 @@ class MainActivity : AppCompatActivity() { ...@@ -294,6 +299,7 @@ class MainActivity : AppCompatActivity() {
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
unregisterReceiver(receiver) unregisterReceiver(receiver)
pref.blockedTime = 0
super.onDestroy() super.onDestroy()
} }
} }
\ No newline at end of file
...@@ -30,9 +30,8 @@ class MainViewModel @Inject constructor( ...@@ -30,9 +30,8 @@ class MainViewModel @Inject constructor(
private val _mainIndexUiState = MutableStateFlow<UiStateObject<Long>>(UiStateObject.EMPTY) private val _mainIndexUiState = MutableStateFlow<UiStateObject<Long>>(UiStateObject.EMPTY)
val mainIndexUiState: StateFlow<UiStateObject<Long>> = _mainIndexUiState val mainIndexUiState: StateFlow<UiStateObject<Long>> = _mainIndexUiState
fun mainIndex(status: Long) = viewModelScope.launch { fun openDrawer(time: Long) = viewModelScope.launch {
_mainIndexUiState.value = UiStateObject.SUCCESS(status) _mainIndexUiState.value = UiStateObject.SUCCESS(time)
// _mainIndexUiState.value = repository.mainIndex()
} }
private val _servicesUiState = MutableStateFlow<UiStateObject<String>>(UiStateObject.EMPTY) private val _servicesUiState = MutableStateFlow<UiStateObject<String>>(UiStateObject.EMPTY)
......
...@@ -59,8 +59,6 @@ class OfflineActivity : AppCompatActivity() { ...@@ -59,8 +59,6 @@ class OfflineActivity : AppCompatActivity() {
bn.btnTryAgain.isVisible = type != 0 bn.btnTryAgain.isVisible = type != 0
if(type != 0){ if(type != 0){
showMessage(getString(R.string.yes_internet_connect)) showMessage(getString(R.string.yes_internet_connect))
}else{
showMessage(getString(R.string.not_internet_connect))
} }
} }
} }
...@@ -76,7 +74,6 @@ class OfflineActivity : AppCompatActivity() { ...@@ -76,7 +74,6 @@ class OfflineActivity : AppCompatActivity() {
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
customLog("onResume: pref.isShowPin:${pref.isShowPin}")
if (pref.isShowPin && pref.pinCode.isNotEmpty()) { if (pref.isShowPin && pref.pinCode.isNotEmpty()) {
showPinCode() showPinCode()
} else { } else {
...@@ -127,6 +124,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -127,6 +124,7 @@ class OfflineActivity : AppCompatActivity() {
override fun onDestroy() { override fun onDestroy() {
unregisterReceiver(receiver) unregisterReceiver(receiver)
_bn = null _bn = null
pref.blockedTime = 0
super.onDestroy() super.onDestroy()
} }
} }
\ No newline at end of file
...@@ -9,9 +9,9 @@ import android.view.View ...@@ -9,9 +9,9 @@ import android.view.View
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.GravityCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.mobiuz.app.R
import com.mobiuz.app.databinding.ActivitySplashBinding import com.mobiuz.app.databinding.ActivitySplashBinding
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.network.model.UiStateObject import com.mobiuz.app.dev.network.model.UiStateObject
...@@ -32,42 +32,41 @@ class SplashActivity : AppCompatActivity() { ...@@ -32,42 +32,41 @@ class SplashActivity : AppCompatActivity() {
private var _bn: ActivitySplashBinding? = null private var _bn: ActivitySplashBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val viewModel: MainViewModel by viewModels() private val viewModel: MainViewModel by viewModels()
@Inject @Inject
lateinit var pref: SharedPref lateinit var pref: SharedPref
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private var isTypeOffline = false
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
_bn = ActivitySplashBinding.inflate(layoutInflater) _bn = ActivitySplashBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
receiver = object : BroadcastReceiver(){
receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
val type = NetworkUtil.getConnectivityStatus(this@SplashActivity) val type = NetworkUtil.getConnectivityStatus(this@SplashActivity)
isTypeOffline = if (type == 0){ if (type == 0) {
true showMessage(getString(R.string.not_internet_connect))
}else{ if (pref.services.isNotEmpty()) {
viewModel.services()
false
}
}
}
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
registerReceiver(receiver,intentFilter)
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
delay(1000) delay(1500)
if (isTypeOffline && pref.services.isNotEmpty()){
startActivity(Intent(this@SplashActivity, OfflineActivity::class.java)) startActivity(Intent(this@SplashActivity, OfflineActivity::class.java))
finish() finish()
}else{ }
}else {
bn.btnTryAgain.isVisible = true bn.btnTryAgain.isVisible = true
} }
} else {
viewModel.services()
}
} }
}
val intentFilter = IntentFilter("android.net.conn.CONNECTIVITY_CHANGE")
registerReceiver(receiver, intentFilter)
bn.btnTryAgain.setOnClickListener(object : ButtonClick(){ bn.btnTryAgain.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
viewModel.services() viewModel.services()
} }
...@@ -76,14 +75,17 @@ class SplashActivity : AppCompatActivity() { ...@@ -76,14 +75,17 @@ class SplashActivity : AppCompatActivity() {
viewModel.servicesUiState.collect { viewModel.servicesUiState.collect {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
bn.progress.isVisible = false
bn.btnTryAgain.isVisible = false bn.btnTryAgain.isVisible = false
navigate() navigate()
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
bn.progress.isVisible = false
bn.btnTryAgain.isVisible = true bn.btnTryAgain.isVisible = true
showMessage(it.message) showMessage(it.message)
} }
is UiStateObject.LOADING -> { is UiStateObject.LOADING -> {
bn.progress.isVisible = true
bn.btnTryAgain.isVisible = false bn.btnTryAgain.isVisible = false
} }
else -> Unit else -> Unit
...@@ -93,7 +95,7 @@ class SplashActivity : AppCompatActivity() { ...@@ -93,7 +95,7 @@ class SplashActivity : AppCompatActivity() {
} }
fun navigate(){ fun navigate() {
when { when {
pref.language.isEmpty() -> { pref.language.isEmpty() -> {
startActivity(Intent(this@SplashActivity, LanguageActivity::class.java)) startActivity(Intent(this@SplashActivity, LanguageActivity::class.java))
......
package com.mobiuz.app.dev.app package com.mobiuz.app.dev.app
import android.app.Application import android.app.Application
import android.content.Context
import android.content.res.Configuration
import com.mobiuz.app.dev.utils.LocaleHelper
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
@HiltAndroidApp @HiltAndroidApp
class App : Application() class App : Application(){
\ No newline at end of file override fun attachBaseContext(base: Context?) {
super.attachBaseContext(LocaleHelper.setLocale(base!!))
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
LocaleHelper.setLocale(this)
}
}
\ No newline at end of file
...@@ -52,9 +52,9 @@ class ServerModule { ...@@ -52,9 +52,9 @@ class ServerModule {
val builder = chain.request().newBuilder() val builder = chain.request().newBuilder()
builder.header("Content-Type", "application/x-www-form-urlencoded") builder.header("Content-Type", "application/x-www-form-urlencoded")
builder.header("Lang", sharedPref.language) builder.header("Lang", sharedPref.language)
builder.header("device-id", sharedPref.getDeviceToken() ?: Utils.getDeviceName()) builder.header("device-id", sharedPref.deviceToken ?: Utils.getDeviceName())
builder.header("Accept", "application/json") builder.header("Accept", "application/json")
builder.header("Authorization", "Bearer ${sharedPref.getUserToken()}") builder.header("Authorization", "Bearer ${sharedPref.userToken}")
chain.proceed(builder.build()) chain.proceed(builder.build())
}) })
.build() .build()
......
...@@ -14,20 +14,16 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) { ...@@ -14,20 +14,16 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) {
isRegistered = false isRegistered = false
userName = "" userName = ""
} }
fun setDeviceToken(token: String) { var deviceToken: String?
mySharedPref.edit().putString("device_token", token).apply() get() = mySharedPref.getString(::deviceToken.name, null)
} set(value) {
mySharedPref.edit().putString(::deviceToken.name, value).apply()
fun getDeviceToken(): String? {
return mySharedPref.getString("device_token", null)
}
fun setUserToken(token: String?) {
mySharedPref.edit().putString("user_token", token).apply()
} }
fun getUserToken(): String? { var userToken: String?
return mySharedPref.getString("user_token", null) get() = mySharedPref.getString(::userToken.name, null)
set(value) {
mySharedPref.edit().putString(::userToken.name, value).apply()
} }
var language: String var language: String
......
...@@ -3,69 +3,70 @@ package com.mobiuz.app.dev.network.api ...@@ -3,69 +3,70 @@ package com.mobiuz.app.dev.network.api
import com.mobiuz.app.dev.model.ServiceData import com.mobiuz.app.dev.model.ServiceData
import com.mobiuz.app.dev.model.UserAuth import com.mobiuz.app.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.* import com.mobiuz.app.dev.network.model.*
import com.mobiuz.app.dev.ui.global.CONSTANTS
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.POST import retrofit2.http.POST
interface ApiService { interface ApiService {
@POST("customer/login") @POST(CONSTANTS.API_LOGIN)
suspend fun login( suspend fun login(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<String> ): ResponseObject<String>
@POST("customer/register") @POST(CONSTANTS.API_REGISTER)
suspend fun register( suspend fun register(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<String> ): ResponseObject<String>
@POST("customer/check-phone") @POST(CONSTANTS.API_CHECK_PHONE)
suspend fun checkPhone( suspend fun checkPhone(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<Action> ): ResponseObject<Action>
@POST("customer/check-sms-code") @POST(CONSTANTS.API_CHECK_SMS_CODE)
suspend fun checkSMSCode( suspend fun checkSMSCode(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<GenerateToken> ): ResponseObject<GenerateToken>
@POST("main/index") @POST(CONSTANTS.API_MAIN_INDEX)
suspend fun mainIndex(): ResponseObject<Customer> suspend fun mainIndex(): ResponseObject<Customer>
@POST("customer/forget-password") @POST(CONSTANTS.API_FORGET_PASSWORD)
suspend fun forgetPassword( suspend fun forgetPassword(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<String> ): ResponseObject<String>
@POST("customer/check-reset-code") @POST(CONSTANTS.API_CHECK_RESET_CODE)
suspend fun checkResetCode( suspend fun checkResetCode(
@Body req: UserAuth @Body req: UserAuth
): Response ): Response
@POST("customer/reset-password") @POST(CONSTANTS.API_RESET_PASSWORD)
suspend fun resetPassword( suspend fun resetPassword(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<GenerateToken> ): ResponseObject<GenerateToken>
@POST("customer/log-out") @POST(CONSTANTS.API_LOG_OUT)
suspend fun logOut(): Response suspend fun logOut(): Response
@POST("customer/send-sms-code") @POST(CONSTANTS.API_SEND_SMS_CODE)
suspend fun reSendSms( suspend fun reSendSms(
@Body req: UserAuth @Body req: UserAuth
): ResponseObject<String> ): ResponseObject<String>
@POST("customer/check-password") @POST(CONSTANTS.API_CHECK_PASSWORD)
suspend fun checkPassword( suspend fun checkPassword(
@Body req: UserAuth @Body req: UserAuth
): Response ): Response
@POST("customer/change-password") @POST(CONSTANTS.API_CHANGE_PASSWORD)
suspend fun installPassword( suspend fun installPassword(
@Body req: ChangePassword @Body req: ChangePassword
): Response ): Response
@POST("service/index") @POST(CONSTANTS.API_SERVICE_INDEX)
suspend fun getServices(): ResponseList<ServiceData> suspend fun getServices(): ResponseList<ServiceData>
......
...@@ -3,5 +3,5 @@ package com.mobiuz.app.dev.network.model ...@@ -3,5 +3,5 @@ package com.mobiuz.app.dev.network.model
data class Response( data class Response(
var status: Boolean, var status: Boolean,
var message: String, var message: String,
var errors: List<Errors>, var errors: List<Errors>
) )
\ No newline at end of file
...@@ -55,7 +55,7 @@ class AuthRepository @Inject constructor( ...@@ -55,7 +55,7 @@ class AuthRepository @Inject constructor(
when { when {
res.status -> { res.status -> {
pref.setUserToken(res.data?.token) pref.userToken = res.data?.token
pref.isRegistered = true pref.isRegistered = true
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
} }
...@@ -106,7 +106,7 @@ class AuthRepository @Inject constructor( ...@@ -106,7 +106,7 @@ class AuthRepository @Inject constructor(
when { when {
res.status -> { res.status -> {
pref.isRegistered = true pref.isRegistered = true
pref.setUserToken(res.data?.token) pref.userToken = res.data?.token
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
} }
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
......
...@@ -39,6 +39,8 @@ class AuthActivity : AppCompatActivity() { ...@@ -39,6 +39,8 @@ class AuthActivity : AppCompatActivity() {
private lateinit var mFirebaseAnalytics: FirebaseAnalytics private lateinit var mFirebaseAnalytics: FirebaseAnalytics
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private var type = 0 private var type = 0
private var verificationCode: String? = null
private var phone = ""
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
...@@ -51,26 +53,26 @@ class AuthActivity : AppCompatActivity() { ...@@ -51,26 +53,26 @@ class AuthActivity : AppCompatActivity() {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
FirebaseMessaging.getInstance().token.addOnCompleteListener { FirebaseMessaging.getInstance().token.addOnCompleteListener {
if (it.isSuccessful) pref.setDeviceToken(it.result.toString()) if (it.isSuccessful) pref.deviceToken = it.result.toString()
} }
window.decorView.systemUiVisibility = window.decorView.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR window.decorView.systemUiVisibility = window.decorView.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
intent?.let { intent?.let {
phone = it.getStringExtra(CONSTANTS.PHONE) ?: ""
verificationCode = it.getStringExtra(CONSTANTS.PIN_CODE)
when (it.getStringExtra(CONSTANTS.TYPE_AUTH)) { when (it.getStringExtra(CONSTANTS.TYPE_AUTH)) {
CONSTANTS.PIN_CODE -> { CONSTANTS.PIN_CODE -> {
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.pinFragment, null, Utils.navOptions()) navController.navigate(R.id.pinFragment, null, Utils.navOptions())
} }
CONSTANTS.LOGIN -> { CONSTANTS.LOGIN -> {
val phone = it.getStringExtra(CONSTANTS.PHONE)
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.loginFragment, bundleOf(CONSTANTS.PHONE to phone ), Utils.navOptions()) navController.navigate(R.id.loginFragment, bundleOf(CONSTANTS.PHONE to phone), Utils.navOptions())
} }
CONSTANTS.TYPE_VERIFICATION -> { CONSTANTS.TYPE_VERIFICATION -> {
val phone = it.getStringExtra(CONSTANTS.PHONE)
val code = it.getStringExtra(CONSTANTS.PIN_CODE)
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.myVerificationFragment, bundleOf(CONSTANTS.PHONE to phone , CONSTANTS.PIN_CODE to code), Utils.navOptions()) navController.navigate(R.id.myVerificationFragment, bundleOf(CONSTANTS.PHONE to phone , CONSTANTS.PIN_CODE to verificationCode), Utils.navOptions())
} }
} }
} }
......
...@@ -5,6 +5,7 @@ import android.net.Uri ...@@ -5,6 +5,7 @@ import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.text.isDigitsOnly
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
...@@ -64,7 +65,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -64,7 +65,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
txtHelperMobiuz.makeLinks( txtHelperMobiuz.makeLinks(
Pair("www.mobi.uz", View.OnClickListener { Pair("www.mobi.uz", View.OnClickListener {
val uri = Uri.parse("https://www.mobi.uz/") val uri = Uri.parse(CONSTANTS.HTTP_MOBI_UZ)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
...@@ -72,14 +73,14 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -72,14 +73,14 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
txtAgree.makeLinks( txtAgree.makeLinks(
Pair("Terms of Use", View.OnClickListener { Pair("Terms of Use", View.OnClickListener {
val uri = Uri.parse("https://ip.mobi.uz/selfcare/") val uri = Uri.parse(CONSTANTS.TERMS_OF_USE)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
}), }),
Pair("Privacy Policy", View.OnClickListener { Pair("Privacy Policy", View.OnClickListener {
val uri = Uri.parse("https://www.mobi.uz/") val uri = Uri.parse(CONSTANTS.PRIVACY_POLICY)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
...@@ -145,9 +146,9 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -145,9 +146,9 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
} }
else -> { else -> {
if (type == CONSTANTS.TYPE_FORGET) { if (type == CONSTANTS.TYPE_FORGET) {
viewModel.resetPassword(UserAuth(phone.replace(" ", "").replace("+", ""), password, code)) viewModel.resetPassword(UserAuth(phone.filter { it.isDigit() }, password, code))
} else { } else {
viewModel.register(UserAuth(phone.replace(" ", "").replace("+", ""), password)) viewModel.register(UserAuth(phone.filter { it.isDigit() }, password))
} }
} }
} }
......
package com.mobiuz.app.dev.ui.global package com.mobiuz.app.dev.ui.global
object CONSTANTS { object CONSTANTS {
const val LOGIN = "login"
const val BASE_URL = "http://10.160.45.60/api/v1/" const val BASE_URL = "http://10.160.45.60/api/v1/"
//languages
const val RU = "ru" const val RU = "ru"
const val UZ = "uz" const val UZ = "uz"
const val EN = "en" const val EN = "en"
const val PHONE = "phone"
const val TYPE_AUTH = "type_auth" // safety data
const val TYPE_SERVICE = "type_service"
const val OLD_PASSWORD = "old_password"
const val LATEST_PASSWORD = "latest_password"
const val TYPE_VERIFICATION = "type_verification"
const val TYPE_FORGET = "type_forget"
const val FIRST = "first"
const val HELP_BOT = "@MobiuzHelpBot" const val HELP_BOT = "@MobiuzHelpBot"
const val TERMS_OF_USE = "https://ip.mobi.uz/selfcare/"
const val PRIVACY_POLICY = "https://www.mobi.uz/"
const val HTTP_MOBI_UZ = "https://www.mobi.uz/"
const val FEEDBACK = "https://company.mobi.uz/ru/feedback/" const val FEEDBACK = "https://company.mobi.uz/ru/feedback/"
const val EMAIL = "info@mobi.uz" const val MAIN_URL1 = "https://www.mobi.uz/"
const val MAIN_URL2 = "https://www.mobi.uz/"
const val PHONE1 = "0890" const val PHONE1 = "0890"
const val PHONE2 = "+998 97 130 09 09" const val PHONE2 = "+998 97 130 09 09"
const val PHONE3 = "+998 97 203 10 10" const val PHONE3 = "+998 97 203 10 10"
const val PHONE = "phone"
const val RESEND_CODE_TIME = 10000L
const val BLOCKED_TIME = 6000
//auth types
const val TYPE_AUTH = "type_auth"
const val LOGIN = "login"
const val TYPE_VERIFICATION = "type_verification"
const val TYPE_FORGET = "type_forget"
const val PIN_CODE = "PIN_CODE"
const val FIRST = "first"
const val SERVICE = "service" const val SERVICE = "service"
const val TYPE_PASSWORD = "TYPE_PASSWORD"
const val TYPE_SERVICE = "type_service"
const val OFFLINE = "offline" const val OFFLINE = "offline"
const val CURRENT_PASSWORD = "CURRENT_PASSWORD"
const val NEW_PASSWORD = "NEW_PASSWORD"
const val CONFIRM_NEW_PASSWORD = "CONFIRM_NEW_PASSWORD"
const val DEFAULT_PHONE = "+998 97 999-99-99" const val DEFAULT_PHONE = "+998 97 999-99-99"
const val FULL_SCREEN_DIALOG = "full_screen_dialog" const val FULL_SCREEN_DIALOG = "full_screen_dialog"
const val RESEND_CODE_TIME = 10000L
const val BLOCKED_TIME = 6000
//pin types
const val PIN_CODE = "PIN_CODE" //password types
const val TYPE_PASSWORD = "TYPE_PASSWORD"
const val OLD_PASSWORD = "OLD_PASSWORD"
const val LATEST_PASSWORD = "LATEST_PASSWORD"
const val CURRENT_PASSWORD = "CURRENT_PASSWORD"
const val NEW_PASSWORD = "NEW_PASSWORD"
const val CONFIRM_NEW_PASSWORD = "CONFIRM_NEW_PASSWORD"
//pin types
const val TYPE_PIN = "TYPE_PIN" const val TYPE_PIN = "TYPE_PIN"
const val NEW_PIN = "NEW_PIN" const val NEW_PIN = "NEW_PIN"
const val CONFIRM_NEW_PIN = "CONFIRM_NEW_PIN" const val CONFIRM_NEW_PIN = "CONFIRM_NEW_PIN"
...@@ -43,6 +63,23 @@ object CONSTANTS { ...@@ -43,6 +63,23 @@ object CONSTANTS {
const val CHANGE_NEW_PIN = "CHANGE_NEW_PIN" const val CHANGE_NEW_PIN = "CHANGE_NEW_PIN"
const val CONFIRM_CHANGE_NEW_PIN = "CONFIRM_CHANGE_NEW_PIN" const val CONFIRM_CHANGE_NEW_PIN = "CONFIRM_CHANGE_NEW_PIN"
//urls
const val API_LOGIN = "customer/login"
const val API_REGISTER = "customer/register"
const val API_CHECK_PHONE = "customer/check-phone"
const val API_CHECK_SMS_CODE = "customer/check-sms-code"
const val API_MAIN_INDEX = "main/index"
const val API_FORGET_PASSWORD = "customer/forget-password"
const val API_CHECK_RESET_CODE = "customer/check-reset-code"
const val API_RESET_PASSWORD = "customer/reset-password"
const val API_LOG_OUT = "customer/log-out"
const val API_SEND_SMS_CODE = "customer/send-sms-code"
const val API_CHECK_PASSWORD = "customer/check-password"
const val API_CHANGE_PASSWORD = "customer/change-password"
const val API_SERVICE_INDEX = "service/index"
const val LONGITUDE = 69.2602108116081 const val LONGITUDE = 69.2602108116081
const val LATITUDE = 41.34823322480444 const val LATITUDE = 41.34823322480444
......
...@@ -16,6 +16,7 @@ import com.mobiuz.app.dev.model.SharedPref ...@@ -16,6 +16,7 @@ import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.pin.PinAdapter import com.mobiuz.app.dev.ui.auth.pin.PinAdapter
import com.mobiuz.app.dev.utils.extensions.SingleBlock import com.mobiuz.app.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.customLog import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.vibrate
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import java.lang.Exception import java.lang.Exception
...@@ -44,12 +45,11 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) { ...@@ -44,12 +45,11 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) {
isCancelable = false isCancelable = false
setUpUI() setUpUI()
loadFingerPrint() if (pref.isUseFingerPrint) loadFingerPrint()
} }
private fun loadFingerPrint() { private fun loadFingerPrint() {
if(pref.isUseFingerPrint) {
val golfing = Goldfinger.Builder(requireContext()).build() val golfing = Goldfinger.Builder(requireContext()).build()
if (golfing.canAuthenticate()) { if (golfing.canAuthenticate()) {
val params = Goldfinger.PromptParams.Builder(this) val params = Goldfinger.PromptParams.Builder(this)
...@@ -70,7 +70,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) { ...@@ -70,7 +70,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) {
} }
}) })
} }
}
} }
fun setUpUI() { fun setUpUI() {
...@@ -87,6 +87,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) { ...@@ -87,6 +87,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) {
txtNotPin.isVisible = false txtNotPin.isVisible = false
dismiss() dismiss()
} else { } else {
vibrate(requireContext())
cardPin.startAnimation(AnimationUtils.loadAnimation(context, R.anim.shake)) cardPin.startAnimation(AnimationUtils.loadAnimation(context, R.anim.shake))
txtNotPin.isVisible = true txtNotPin.isVisible = true
} }
......
package com.mobiuz.app.dev.ui.auth.pin package com.mobiuz.app.dev.ui.global
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
......
...@@ -63,7 +63,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -63,7 +63,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
// navController.navigate(R.id.billingFragment) // navController.navigate(R.id.billingFragment)
} }
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
mainViewModel.mainIndex(System.currentTimeMillis()) mainViewModel.openDrawer(System.currentTimeMillis())
} }
scrollView.viewTreeObserver.addOnScrollChangedListener { scrollView.viewTreeObserver.addOnScrollChangedListener {
...@@ -145,12 +145,14 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -145,12 +145,14 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
txtCountMinut.text = it?.SECOND?.value?.toMoneyFormat() ?: "0" txtCountMinut.text = it?.SECOND?.value?.toMoneyFormat() ?: "0"
txtTypeMinut.text = it?.SECOND?.unit ?: "min" txtTypeMinut.text = it?.SECOND?.unit ?: "min"
txtTarif.text = it?.SECOND?.name ?: "My tarif"
txtTarifTo.text = it?.SECOND?.date_to?.getDateTime() ?: ""
txtCountSms.text = it?.ITEM?.value?.toMoneyFormat() ?: "0" txtCountSms.text = it?.ITEM?.value?.toMoneyFormat() ?: "0"
txtTypeSms.text = it?.ITEM?.unit ?: "sms" txtTypeSms.text = it?.ITEM?.unit ?: "sms"
} }
mainViewModel.setUserName(customer?.customer?.name ?: "Unnamed User") mainViewModel.setUserName(customer?.customer?.name ?: "Unnamed User")
txtTarif.text = customer?.customer?.tariff?.name.toString() ?: getString(R.string.my_tarif)
txtMyNumber.text = pref.userPhone.customMasketHome().replace("-", " ") txtMyNumber.text = pref.userPhone.customMasketHome().replace("-", " ")
toolbarMyNumber.text = pref.userPhone.customMasketHome().replace("-", " ") toolbarMyNumber.text = pref.userPhone.customMasketHome().replace("-", " ")
} }
......
package com.mobiuz.app.dev.ui.auth.pin package com.mobiuz.app.dev.ui.home
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
......
...@@ -62,28 +62,31 @@ class ServiceFragment : BaseFragment(R.layout.fragment_service) { ...@@ -62,28 +62,31 @@ class ServiceFragment : BaseFragment(R.layout.fragment_service) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
if (type == CONSTANTS.OFFLINE) {
toolbar.isVisible = false checkType(type == CONSTANTS.OFFLINE)
txtDostupno.isVisible = true
layoutOffline.isVisible = true
}
rvService.adapter = adapter rvService.adapter = adapter
// rvService.edgeEffectFactory = RecyclerView.EdgeEffectFactory()
val arg = pref.services val list = Gson().fromJson<List<ServiceData>>(pref.services, object : TypeToken<List<ServiceData>>() {}.type)
val list = Gson().fromJson<List<ServiceData>>(arg, object : TypeToken<List<ServiceData>>() {}.type)
adapter.submitList(list) adapter.submitList(list)
OverScrollDecoratorHelper.setUpStaticOverScroll(bn.rvService, OverScrollDecoratorHelper.ORIENTATION_VERTICAL) // OverScrollDecoratorHelper.setUpStaticOverScroll(bn.rvService, OverScrollDecoratorHelper.ORIENTATION_VERTICAL)
adapter.setOnClickListener { adapter.setOnClickListener {
navigateToServiceScreen(it) navigateToServiceScreen(it)
} }
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
mainViewModel.mainIndex(System.currentTimeMillis()) mainViewModel.openDrawer(System.currentTimeMillis())
}
} }
} }
private fun checkType(b: Boolean) {
bn.apply {
toolbar.isVisible = !b
txtDostupno.isVisible = b
layoutOffline.isVisible = b
}
} }
override fun onStop() { override fun onStop() {
......
...@@ -40,8 +40,6 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) { ...@@ -40,8 +40,6 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
// OverScrollDecoratorHelper.setUpStaticOverScroll(bn.viewGroup, OverScrollDecoratorHelper.ORIENTATION_VERTICAL)
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
navController.navigateUp() navController.navigateUp()
} }
...@@ -82,9 +80,7 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) { ...@@ -82,9 +80,7 @@ class LanguageFragment : BaseFragment(R.layout.fragment_language) {
requireActivity().finishAffinity() requireActivity().finishAffinity()
} }
override fun collects() { override fun collects() {}
}
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
......
...@@ -29,7 +29,6 @@ class ProfileFragment : BaseFragment(R.layout.fragment_profile) { ...@@ -29,7 +29,6 @@ class ProfileFragment : BaseFragment(R.layout.fragment_profile) {
_bn = FragmentProfileBinding.bind(view) _bn = FragmentProfileBinding.bind(view)
setUpUI() setUpUI()
collects() collects()
} }
override fun setUpUI() { override fun setUpUI() {
...@@ -40,23 +39,6 @@ class ProfileFragment : BaseFragment(R.layout.fragment_profile) { ...@@ -40,23 +39,6 @@ class ProfileFragment : BaseFragment(R.layout.fragment_profile) {
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
navController.navigateUp() navController.navigateUp()
} }
btn0890.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
}
})
btn0890.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
}
})
btnEmail.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
}
})
btnSim.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
}
})
} }
} }
......
...@@ -16,7 +16,6 @@ import dagger.hilt.android.AndroidEntryPoint ...@@ -16,7 +16,6 @@ import dagger.hilt.android.AndroidEntryPoint
import me.everything.android.ui.overscroll.OverScrollDecoratorHelper import me.everything.android.ui.overscroll.OverScrollDecoratorHelper
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class SupportFragment : BaseFragment(R.layout.fragment_support) { class SupportFragment : BaseFragment(R.layout.fragment_support) {
...@@ -32,7 +31,6 @@ class SupportFragment : BaseFragment(R.layout.fragment_support) { ...@@ -32,7 +31,6 @@ class SupportFragment : BaseFragment(R.layout.fragment_support) {
_bn = FragmentSupportBinding.bind(view) _bn = FragmentSupportBinding.bind(view)
setUpUI() setUpUI()
collects() collects()
} }
override fun setUpUI() { override fun setUpUI() {
...@@ -90,12 +88,7 @@ class SupportFragment : BaseFragment(R.layout.fragment_support) { ...@@ -90,12 +88,7 @@ class SupportFragment : BaseFragment(R.layout.fragment_support) {
pref.isShowPin = false pref.isShowPin = false
} }
override fun collects() {}
override fun collects() {
}
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
......
package com.mobiuz.app.dev.ui.settings.safety.password package com.mobiuz.app.dev.ui.settings.safety
import android.content.Intent import android.content.Intent
import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
...@@ -12,7 +11,6 @@ import androidx.navigation.NavController ...@@ -12,7 +11,6 @@ import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentChangePasswordBinding import com.mobiuz.app.databinding.FragmentChangePasswordBinding
import com.mobiuz.app.dev.MainViewModel
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import com.mobiuz.app.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.ChangePassword import com.mobiuz.app.dev.network.model.ChangePassword
...@@ -24,13 +22,11 @@ import com.mobiuz.app.dev.ui.global.ButtonClick ...@@ -24,13 +22,11 @@ import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.getColorCompat import com.mobiuz.app.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.showCustomDialog import com.mobiuz.app.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.hideKeyboard import com.mobiuz.app.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import javax.inject.Inject import javax.inject.Inject
...@@ -44,7 +40,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) { ...@@ -44,7 +40,6 @@ class ChangePasswordFragment : BaseFragment(R.layout.fragment_change_password) {
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private var type = "" private var type = ""
private var count = 3 private var count = 3
private lateinit var decorView: View
private var oldPassword = "" private var oldPassword = ""
private var newPassword = "" private var newPassword = ""
......
...@@ -45,7 +45,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) { ...@@ -45,7 +45,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
txtPhoneSafety.text = myText txtPhoneSafety.text = myText
switchBiometria.isChecked = pref.isUseFingerPrint switchBiometria.isChecked = pref.isUseFingerPrint
switchBiometria.setOnCheckedChangeListener { _, isChecked -> switchBiometria.setOnCheckedChangeListener { _, isChecked ->
val message = if(isChecked) "Biometric enabled" else "Biometric disabled" val message = if(isChecked) getString(R.string.biometric_enabled) else getString(R.string.biometric_disabled)
showToastMessage(message) showToastMessage(message)
pref.isUseFingerPrint = isChecked pref.isUseFingerPrint = isChecked
} }
...@@ -60,7 +60,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) { ...@@ -60,7 +60,7 @@ class SafetyFragment : BaseFragment(R.layout.fragment_safety) {
}) })
btnChangePassword.setOnClickListener(object : ButtonClick(){ btnChangePassword.setOnClickListener(object : ButtonClick(){
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
navController.navigate(R.id.currentPasswordFragment, bundleOf(CONSTANTS.TYPE_PASSWORD to CONSTANTS.CURRENT_PASSWORD),Utils.navOptions()) navController.navigate(R.id.changePasswordFragment, bundleOf(CONSTANTS.TYPE_PASSWORD to CONSTANTS.CURRENT_PASSWORD),Utils.navOptions())
} }
}) })
btn4.setOnClickListener(object : ButtonClick(){ btn4.setOnClickListener(object : ButtonClick(){
......
...@@ -31,6 +31,9 @@ import com.mobiuz.app.dev.ui.global.SenderDialog ...@@ -31,6 +31,9 @@ import com.mobiuz.app.dev.ui.global.SenderDialog
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException
import java.net.ConnectException import java.net.ConnectException
import java.sql.Date
import java.sql.Timestamp
import java.text.SimpleDateFormat
fun Fragment.showMessage(message: String) { fun Fragment.showMessage(message: String) {
...@@ -45,6 +48,16 @@ fun Fragment.showCustomDialog(description:String,status:Boolean, block: () -> Un ...@@ -45,6 +48,16 @@ fun Fragment.showCustomDialog(description:String,status:Boolean, block: () -> Un
dialog.show(childFragmentManager,"tab") dialog.show(childFragmentManager,"tab")
} }
fun String.getDateTime(): String? {
return try {
val long = Timestamp.parse(this)
val sdf = SimpleDateFormat("MM/dd/yyyy")
sdf.format(long)
} catch (e: Exception) {
""
}
}
fun FragmentActivity.showFullScreenDialog(block: (dialog: FullScreenDialog) -> Unit){ fun FragmentActivity.showFullScreenDialog(block: (dialog: FullScreenDialog) -> Unit){
val time = SharedPref(this).blockedTime val time = SharedPref(this).blockedTime
if(time < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME){ if(time < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME){
......
...@@ -4,9 +4,10 @@ ...@@ -4,9 +4,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical" android:orientation="vertical"
android:background="@color/white100"
tools:context=".dev.LanguageActivity"> tools:context=".dev.LanguageActivity">
<com.mobiuz.app.dev.ui.auth.pin.SquareImageView <com.mobiuz.app.dev.ui.global.SquareImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20sdp" android:layout_marginTop="@dimen/_20sdp"
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
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_margin="16dp"
android:text="@string/try_again" android:text="@string/to_offline"
android:visibility="visible" /> android:visibility="visible" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
...@@ -61,12 +61,13 @@ ...@@ -61,12 +61,13 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="1dp" android:layout_height="1dp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_4sdp"
android:background="@color/grey20" /> android:background="@color/grey20" />
<androidx.core.widget.NestedScrollView <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:layout_weight="1"> android:layout_weight="1">
<LinearLayout <LinearLayout
...@@ -78,7 +79,7 @@ ...@@ -78,7 +79,7 @@
android:id="@+id/btn_safety" 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/_24sdp" android:layout_marginTop="@dimen/_14sdp"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingVertical="18dp" android:paddingVertical="18dp"
...@@ -201,7 +202,7 @@ ...@@ -201,7 +202,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="32dp" android:layout_marginHorizontal="32dp"
android:layout_marginTop="30dp" android:layout_marginTop="20dp"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:text="@string/oferta_finans" android:text="@string/oferta_finans"
android:textColor="@color/link" android:textColor="@color/link"
...@@ -240,7 +241,6 @@ ...@@ -240,7 +241,6 @@
android:src="@drawable/ic_log_out" /> android:src="@drawable/ic_log_out" />
<TextView <TextView
android:id="@+id/txt_user_name"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
...@@ -251,11 +251,11 @@ ...@@ -251,11 +251,11 @@
android:textStyle="bold" /> android:textStyle="bold" />
<TextView <TextView
android:id="@+id/txt_user_phone" android:id="@+id/txt_version"
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="v 0.01.1" tools:text="0.01.1"
android:textColor="@color/grey80" android:textColor="@color/grey80"
android:textSize="14sp" /> android:textSize="14sp" />
......
...@@ -18,12 +18,19 @@ ...@@ -18,12 +18,19 @@
android:src="@drawable/ic_mobiuz_logo" android:src="@drawable/ic_mobiuz_logo"
android:textStyle="bold" /> android:textStyle="bold" />
<ProgressBar
android:layout_width="wrap_content"
android:id="@+id/progress"
android:visibility="gone"
android:backgroundTint="@color/primary110"
android:layout_height="wrap_content"/>
<Button <Button
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_marginHorizontal="@dimen/_24sdp" android:layout_marginHorizontal="@dimen/_24sdp"
android:text="Try Again" android:text="@string/btn_try_again"
android:visibility="gone" android:visibility="gone"
android:textColor="@color/white100" /> android:textColor="@color/white100" />
......
...@@ -48,14 +48,10 @@ ...@@ -48,14 +48,10 @@
</LinearLayout> </LinearLayout>
<TextView <TextView
android:layout_width="wrap_content" style="@style/TitleTextStyle"
android:layout_height="wrap_content" android:gravity="center"
android:layout_gravity="center"
android:layout_marginHorizontal="@dimen/_12sdp"
android:layout_marginTop="@dimen/_12sdp" android:layout_marginTop="@dimen/_12sdp"
android:text="@string/biometric_enter" android:text="@string/biometric_enter" />
android:textSize="29sp"
android:textStyle="bold" />
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
......
...@@ -61,7 +61,6 @@ ...@@ -61,7 +61,6 @@
<TextView <TextView
android:id="@+id/txt_password" android:id="@+id/txt_password"
style="@style/TitleTextStyle" style="@style/TitleTextStyle"
android:layout_marginStart="@dimen/_12sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_current_password" android:text="@string/enter_current_password"
app:layout_constraintBottom_toTopOf="@id/txt_hint_confirm" app:layout_constraintBottom_toTopOf="@id/txt_hint_confirm"
......
...@@ -16,14 +16,10 @@ ...@@ -16,14 +16,10 @@
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_12sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_number" android:text="@string/enter_number" />
android:textSize="29sp"
android:textStyle="bold" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -15,14 +15,10 @@ ...@@ -15,14 +15,10 @@
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_12sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_number" android:text="@string/enter_number"
android:textSize="29sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" /> app:layout_constraintTop_toBottomOf="@id/toolbar" />
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scaleType="fitXY" android:scaleType="fitXY"
android:id="@+id/home_image"
android:src="@drawable/bgn_home" /> android:src="@drawable/bgn_home" />
<LinearLayout <LinearLayout
...@@ -349,6 +350,7 @@ ...@@ -349,6 +350,7 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/txt_tarif_to"
android:layout_gravity="end" android:layout_gravity="end"
tools:text="22 Декабря" /> tools:text="22 Декабря" />
</FrameLayout> </FrameLayout>
......
...@@ -17,14 +17,10 @@ ...@@ -17,14 +17,10 @@
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_12sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter" android:text="@string/enter"
android:textSize="29sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toTopOf="@id/txt_hint_password" app:layout_constraintBottom_toTopOf="@id/txt_hint_password"
app:layout_constraintTop_toBottomOf="@id/toolbar" /> app:layout_constraintTop_toBottomOf="@id/toolbar" />
...@@ -137,7 +133,7 @@ ...@@ -137,7 +133,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/_6sdp" android:padding="@dimen/_6sdp"
android:textSize="16sp" android:textSize="17sp"
android:text="@string/forget_password" android:text="@string/forget_password"
android:background="?android:selectableItemBackground" android:background="?android:selectableItemBackground"
android:textColor="@color/grey110" android:textColor="@color/grey110"
......
This diff is collapsed.
...@@ -14,14 +14,10 @@ ...@@ -14,14 +14,10 @@
app:navigationIcon="@drawable/ic_baseline_arrow_back" /> app:navigationIcon="@drawable/ic_baseline_arrow_back" />
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_16sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/enter_verification" android:text="@string/enter_verification"
android:textSize="29sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" /> app:layout_constraintTop_toBottomOf="@id/toolbar" />
......
...@@ -17,14 +17,10 @@ ...@@ -17,14 +17,10 @@
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_pin" android:id="@+id/txt_enter_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_14sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/install_pin" android:text="@string/install_pin" />
android:textSize="29sp"
android:textStyle="bold" />
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -9,14 +9,10 @@ ...@@ -9,14 +9,10 @@
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_pin" android:id="@+id/txt_enter_pin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_14sdp"
android:layout_marginTop="@dimen/_34sdp" android:layout_marginTop="@dimen/_34sdp"
android:text="@string/enter_pin_code" android:text="@string/enter_pin_code" />
android:textSize="29sp"
android:textStyle="bold" />
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -36,17 +36,13 @@ ...@@ -36,17 +36,13 @@
android:layout_marginTop="20dp" /> android:layout_marginTop="20dp" />
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_user_name" android:id="@+id/txt_user_name"
android:layout_width="match_parent"
android:gravity="center" android:gravity="center"
android:elevation="8dp" android:elevation="8dp"
android:layout_marginHorizontal="@dimen/_24sdp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
tools:text="Юлия Шевченко " tools:text="Юлия Шевченко "
android:textSize="25sp" android:textSize="25sp" />
android:textStyle="bold" />
<TextView <TextView
android:id="@+id/txt_profile" android:id="@+id/txt_profile"
...@@ -119,94 +115,8 @@ ...@@ -119,94 +115,8 @@
</LinearLayout> </LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/btn_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:visibility="invisible"
android:background="?android:selectableItemBackground"
android:paddingHorizontal="@dimen/_16sdp"
android:paddingVertical="@dimen/_10sdp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_image_email" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Email"
android:textColor="@color/grey110"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="user@gmail.com"
android:textColor="@color/grey110"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/btn_sim"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"
android:layout_marginTop="10dp"
android:background="?android:selectableItemBackground"
android:paddingHorizontal="@dimen/_16sdp"
android:paddingVertical="@dimen/_10sdp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_image_sim" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Наименование СИМ-карты"
android:textColor="@color/grey110"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Наименование симкарты"
android:textStyle="bold"
android:textColor="@color/black100"
android:textSize="15sp" />
</LinearLayout>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>
......
...@@ -16,14 +16,10 @@ ...@@ -16,14 +16,10 @@
<TextView <TextView
style="@style/TitleTextStyle"
android:id="@+id/txt_enter_phone" android:id="@+id/txt_enter_phone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_12sdp"
android:layout_marginTop="@dimen/_14sdp" android:layout_marginTop="@dimen/_14sdp"
android:text="@string/register" android:text="@string/register"
android:textSize="29sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@id/txt_hint_password" app:layout_constraintBottom_toTopOf="@id/txt_hint_password"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/toolbar" /> app:layout_constraintTop_toBottomOf="@id/toolbar" />
...@@ -168,8 +164,7 @@ ...@@ -168,8 +164,7 @@
android:layout_marginTop="29dp" android:layout_marginTop="29dp"
android:textSize="13sp" android:textSize="13sp"
android:textColorLink="@color/primary100" android:textColorLink="@color/primary100"
android:text="By signing up, you're agree to our android:text="@string/by_signing_up_you_re_agree_to_our_nterms_of_use_and_privacy_policy"
\nTerms of Use and Privacy Policy"
android:textColor="@color/grey80" android:textColor="@color/grey80"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
android:overScrollMode="never"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
...@@ -11,7 +18,7 @@ ...@@ -11,7 +18,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_marginVertical="@dimen/_24sdp" android:layout_marginVertical="@dimen/_20sdp"
android:background="@color/grey10" android:background="@color/grey10"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="@dimen/_22sdp" android:paddingTop="@dimen/_22sdp"
...@@ -49,7 +56,7 @@ ...@@ -49,7 +56,7 @@
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_marginStart="16dp"
android:layout_marginTop="26dp" android:layout_marginTop="20dp"
android:text="@string/open" android:text="@string/open"
android:textColor="@color/grey80" android:textColor="@color/grey80"
android:visibility="gone" /> android:visibility="gone" />
...@@ -74,16 +81,17 @@ ...@@ -74,16 +81,17 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_service" android:id="@+id/rv_service"
android:overScrollMode="never"
android:scrollbars="none"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="match_parent"
android:layout_marginHorizontal="12dp" android:layout_marginHorizontal="12dp"
android:layout_marginBottom="@dimen/_30sdp"
android:clipToPadding="true"
android:layout_marginTop="@dimen/_20sdp" android:layout_marginTop="@dimen/_20sdp"
android:layout_weight="1"
android:overScrollMode="never"
android:scrollbars="none"
android:visibility="visible"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" /> app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
</LinearLayout> </LinearLayout>
</ScrollView>
\ No newline at end of file
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:textColor="@color/black80" android:textColor="@color/black80"
android:maxWidth="@dimen/_150sdp" android:maxWidth="@dimen/_120sdp"
android:layout_marginTop="6dp" android:layout_marginTop="13dp"
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:textSize="10sp" android:textSize="10sp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="wrap_content" android:layout_width="wrap_content"
app:cardCornerRadius="4dp" app:cardCornerRadius="4dp"
android:layout_marginTop="6dp" android:layout_marginTop="20dp"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<LinearLayout <LinearLayout
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
tools:layout="@layout/fragment_profile" /> tools:layout="@layout/fragment_profile" />
<fragment <fragment
android:id="@+id/changePasswordFragment" android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.safety.password.ChangePasswordFragment" android:name="com.mobiuz.app.dev.ui.settings.safety.ChangePasswordFragment"
android:label="CurrentPasswordFragment" /> android:label="CurrentPasswordFragment" />
<fragment <fragment
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
tools:layout="@layout/fragment_profile" /> tools:layout="@layout/fragment_profile" />
<fragment <fragment
android:id="@+id/changePasswordFragment" android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.safety.password.ChangePasswordFragment" android:name="com.mobiuz.app.dev.ui.settings.safety.ChangePasswordFragment"
android:label="CurrentPasswordFragment" /> android:label="CurrentPasswordFragment" />
<fragment <fragment
......
...@@ -71,4 +71,14 @@ ...@@ -71,4 +71,14 @@
<string name="tx1">Согласие на обработку данных</string> <string name="tx1">Согласие на обработку данных</string>
<string name="tx2">Публичная оферта</string> <string name="tx2">Публичная оферта</string>
<string name="tx3">Политика конфиденциальности</string> <string name="tx3">Политика конфиденциальности</string>
<string name="biometric_enabled">Biometric authentication enabled</string>
<string name="biometric_disabled">Biometric authentication disabled</string>
<string name="send">Send</string>
<string name="to_offline">Go offline</string>
<string name="try_again">Reconnect</string>
<string name="open">Available</string>
<string name="yes_internet_connect">Internet connection restored</string>
<string name="not_internet_connect">No active connection</string>
<string name="btn_try_again">Try again</string>
<string name="not_internet_try_again">Check your internet connection and try again</string>
</resources> </resources>
\ No newline at end of file
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<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">Ведите код \nподтверждения</string>
<string name="sent_code_again">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>
<string name="biometric_enter">Биометрический вход</string> <string name="biometric_enter">Биометрический вход</string>
...@@ -71,4 +71,14 @@ ...@@ -71,4 +71,14 @@
<string name="tx1">Согласие на обработку данных</string> <string name="tx1">Согласие на обработку данных</string>
<string name="tx2">Публичная оферта</string> <string name="tx2">Публичная оферта</string>
<string name="tx3">Политика конфиденциальности</string> <string name="tx3">Политика конфиденциальности</string>
<string name="biometric_enabled">Биометрическая аутентификация включена</string>
<string name="biometric_disabled">Биометрическая аутентификация отключена</string>
<string name="send">Отправить</string>
<string name="to_offline">Перейти в офлайн режим</string>
<string name="try_again">Повторить подключение</string>
<string name="open">Доступно</string>
<string name="yes_internet_connect">Интернет соединение восстановлено</string>
<string name="not_internet_connect">Отсутствует активное подключение</string>
<string name="btn_try_again">Попробуй снова</string>
<string name="not_internet_try_again">Проверьте интернет соединение и попробуйте снова</string>
</resources> </resources>
\ No newline at end of file
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
<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">Ведите код \nподтверждения</string>
<string name="sent_code_again">Sent code again</string> <string name="sent_code_again">Kodni qayta yuborish</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>
<string name="biometric_enter">Биометрический вход</string> <string name="biometric_enter">Биометрический вход</string>
...@@ -71,4 +71,14 @@ ...@@ -71,4 +71,14 @@
<string name="tx1">Согласие на обработку данных</string> <string name="tx1">Согласие на обработку данных</string>
<string name="tx2">Публичная оферта</string> <string name="tx2">Публичная оферта</string>
<string name="tx3">Политика конфиденциальности</string> <string name="tx3">Политика конфиденциальности</string>
<string name="biometric_enabled">Biometrik autentifikatsiya yoqilgan</string>
<string name="biometric_disabled">Biometrik autentifikatsiya o‘chirilgan</string>
<string name="send">Yuborish</string>
<string name="to_offline">Oflayn rejimga o\'tish</string>
<string name="try_again">Qayta ulanish</string>
<string name="open">Mavjud</string>
<string name="yes_internet_connect">Internetga ulanish tiklandi</string>
<string name="not_internet_connect">Faol ulanish yo\'q</string>
<string name="btn_try_again">Qayta urinib ko\'rish</string>
<string name="not_internet_try_again">Internet aloqangizni tekshiring va qayta urinib ko\'ring</string>
</resources> </resources>
\ No newline at end of file
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<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">Ведите код \nподтверждения</string>
<string name="sent_code_again">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>
<string name="biometric_enter">Биометрический вход</string> <string name="biometric_enter">Биометрический вход</string>
...@@ -140,5 +140,7 @@ ...@@ -140,5 +140,7 @@
<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>Оферта на предоставление \nфинансовых услуг</u></string> <string name="oferta_finans"><u>Оферта на предоставление \nфинансовых услуг</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="btn_try_again">Попробуй снова</string>
</resources> </resources>
\ No newline at end of file
...@@ -110,6 +110,8 @@ ...@@ -110,6 +110,8 @@
<item name="android:layout_width">match_parent</item> <item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item> <item name="android:layout_height">wrap_content</item>
<item name="android:textStyle">bold</item> <item name="android:textStyle">bold</item>
<item name="android:layout_marginEnd">@dimen/_12sdp</item>
<item name="android:layout_marginStart">@dimen/_12sdp</item>
<item name="android:textSize">29sp</item> <item name="android:textSize">29sp</item>
<item name="android:textColor">@color/black100</item> <item name="android:textColor">@color/black100</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