Commit 71518399 authored by shohboz's avatar shohboz

[UPD] MUS-107 Feature, updated package name to com.mobiuz.app

parent 7654afcf
package uz.ssd.mobiuz package com.mobiuz.app
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="uz.ssd.mobiuz"> package="com.mobiuz.app">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="android.permission.CALL_PHONE" />
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<uses-permission android:name="android.permission.USE_FINGERPRINT" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" />
<application <application
android:name=".app.App" android:name="com.mobiuz.app.app.App"
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
...@@ -20,25 +20,25 @@ ...@@ -20,25 +20,25 @@
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="m"> tools:targetApi="m">
<activity <activity
android:name=".LanguageActivity" android:name="com.mobiuz.app.LanguageActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:configChanges="orientation" android:configChanges="orientation"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name=".MainActivity" android:name="com.mobiuz.app.MainActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:configChanges="orientation" android:configChanges="orientation"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name=".AuthActivity" android:name="com.mobiuz.app.AuthActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:configChanges="orientation" android:configChanges="orientation"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name=".SplashActivity" android:name="com.mobiuz.app.SplashActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="true" android:exported="true"
android:windowSoftInputMode="adjustResize" android:windowSoftInputMode="adjustResize"
......
package uz.ssd.mobiuz package com.mobiuz.app
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.ssd.mobiuz.databinding.ActivityLanguageBinding import com.mobiuz.app.databinding.ActivityLanguageBinding
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.CONSTANTS
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
package uz.ssd.mobiuz package com.mobiuz.app
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
class MotionFragment: BaseFragment(R.layout.home_motion) { class MotionFragment : BaseFragment(R.layout.home_motion) {
override fun setUpUI() { override fun setUpUI() {
......
package uz.ssd.mobiuz package com.mobiuz.app
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle import android.os.Bundle
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.biometric.BiometricPrompt import androidx.biometric.BiometricPrompt
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.ssd.mobiuz.databinding.ActivityMainBinding import com.mobiuz.app.databinding.ActivityPinBinding
import uz.ssd.mobiuz.databinding.ActivityPinBinding
import java.util.concurrent.Executor import java.util.concurrent.Executor
@AndroidEntryPoint @AndroidEntryPoint
...@@ -28,26 +27,35 @@ class PinActivity : AppCompatActivity() { ...@@ -28,26 +27,35 @@ class PinActivity : AppCompatActivity() {
executor = ContextCompat.getMainExecutor(this) executor = ContextCompat.getMainExecutor(this)
biometricPrompt = BiometricPrompt(this, executor, biometricPrompt = BiometricPrompt(this, executor,
object : BiometricPrompt.AuthenticationCallback() { object : BiometricPrompt.AuthenticationCallback() {
override fun onAuthenticationError(errorCode: Int, override fun onAuthenticationError(
errString: CharSequence) { errorCode: Int,
errString: CharSequence
) {
super.onAuthenticationError(errorCode, errString) super.onAuthenticationError(errorCode, errString)
Toast.makeText(applicationContext, Toast.makeText(
"Authentication error: $errString", Toast.LENGTH_SHORT) applicationContext,
"Authentication error: $errString", Toast.LENGTH_SHORT
)
.show() .show()
} }
override fun onAuthenticationSucceeded( override fun onAuthenticationSucceeded(
result: BiometricPrompt.AuthenticationResult) { result: BiometricPrompt.AuthenticationResult
) {
super.onAuthenticationSucceeded(result) super.onAuthenticationSucceeded(result)
Toast.makeText(applicationContext, Toast.makeText(
"Authentication succeeded!", Toast.LENGTH_SHORT) applicationContext,
"Authentication succeeded!", Toast.LENGTH_SHORT
)
.show() .show()
} }
override fun onAuthenticationFailed() { override fun onAuthenticationFailed() {
super.onAuthenticationFailed() super.onAuthenticationFailed()
Toast.makeText(applicationContext, "Authentication failed", Toast.makeText(
Toast.LENGTH_SHORT) applicationContext, "Authentication failed",
Toast.LENGTH_SHORT
)
.show() .show()
} }
}) })
...@@ -60,6 +68,7 @@ class PinActivity : AppCompatActivity() { ...@@ -60,6 +68,7 @@ class PinActivity : AppCompatActivity() {
biometricPrompt.authenticate(promptInfo) biometricPrompt.authenticate(promptInfo)
} }
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
super.onDestroy() super.onDestroy()
......
package uz.ssd.mobiuz package com.mobiuz.app
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -6,9 +6,9 @@ import androidx.appcompat.app.AppCompatActivity ...@@ -6,9 +6,9 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import uz.ssd.mobiuz.databinding.ActivitySplashBinding import com.mobiuz.app.databinding.ActivitySplashBinding
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.CONSTANTS
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
package uz.ssd.mobiuz.app package com.mobiuz.app.app
import android.app.Application import android.app.Application
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
......
package uz.ssd.mobiuz.di package com.mobiuz.app.di
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
......
package uz.ssd.mobiuz.di package com.mobiuz.app.di
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
......
package uz.ssd.mobiuz.model package com.mobiuz.app.model
data class PinData( data class PinData(
var count: Int = -1 var count: Int = -1
......
package uz.ssd.mobiuz.model package com.mobiuz.app.model
data class UserAuth( data class UserAuth(
val phone: String, val phone: String,
......
package uz.ssd.mobiuz.network.api package com.mobiuz.app.network.api
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.POST import retrofit2.http.POST
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.* import com.mobiuz.app.network.model.*
interface ApiService { interface ApiService {
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
data class Action( data class Action(
var action: String = "" var action: String = ""
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
data class Customer( data class Customer(
var customer: CustomerData? var customer: CustomerData?
......
package com.mobiuz.app.network.model
data class Errors(
var key: String,
var message: String
)
\ No newline at end of file
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
data class GenerateToken( data class GenerateToken(
var token: String var token: String
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
class ResponseList<T>( class ResponseList<T>(
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
class ResponseObject<T>( class ResponseObject<T>(
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
data class Status( data class Status(
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
sealed class UiStateList<out T> { sealed class UiStateList<out T> {
......
package uz.ssd.mobiuz.network.model package com.mobiuz.app.network.model
sealed class UiStateObject<out T> { sealed class UiStateObject<out T> {
data class SUCCESS<out T>(val data: T) : UiStateObject<T>() data class SUCCESS<out T>(val data: T) : UiStateObject<T>()
data class ERROR(val message: String,var fromServer: Boolean = false) : UiStateObject<Nothing>() data class ERROR(val message: String, var fromServer: Boolean = false) : UiStateObject<Nothing>()
data class ERRORS(val errors: List<Errors>) : UiStateObject<Nothing>() data class ERRORS(val errors: List<Errors>) : UiStateObject<Nothing>()
object LOADING : UiStateObject<Nothing>() object LOADING : UiStateObject<Nothing>()
object EMPTY : UiStateObject<Nothing>() object EMPTY : UiStateObject<Nothing>()
......
package uz.ssd.mobiuz.network.repository package com.mobiuz.app.network.repository
import android.content.Context import android.content.Context
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.api.ApiService import com.mobiuz.app.network.api.ApiService
import uz.ssd.mobiuz.network.model.Action import com.mobiuz.app.network.model.Action
import uz.ssd.mobiuz.network.model.Customer import com.mobiuz.app.network.model.Customer
import uz.ssd.mobiuz.network.model.GenerateToken import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.utils.extensions.userMessage
import uz.ssd.mobiuz.utils.extensions.userMessage
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
......
package uz.ssd.mobiuz.network.repository package com.mobiuz.app.network.repository
import uz.ssd.mobiuz.network.api.ApiService import com.mobiuz.app.network.api.ApiService
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
@Singleton @Singleton
class MainRepository @Inject constructor( class MainRepository @Inject constructor(
private val apiService: ApiService private val apiService: ApiService
) { )
\ No newline at end of file
}
\ No newline at end of file
package uz.ssd.mobiuz.ui.auth package com.mobiuz.app.ui.auth
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
...@@ -6,10 +6,10 @@ import dagger.hilt.android.lifecycle.HiltViewModel ...@@ -6,10 +6,10 @@ 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
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.Action import com.mobiuz.app.network.model.Action
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.network.repository.AuthRepository import com.mobiuz.app.network.repository.AuthRepository
import javax.inject.Inject import javax.inject.Inject
@HiltViewModel @HiltViewModel
......
package uz.ssd.mobiuz.ui.auth.biometric package com.mobiuz.app.ui.auth.biometric
import android.Manifest import android.Manifest
import android.content.Intent import android.content.Intent
...@@ -11,13 +11,13 @@ import androidx.core.content.ContextCompat ...@@ -11,13 +11,13 @@ import androidx.core.content.ContextCompat
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.ssd.mobiuz.BuildConfig import com.mobiuz.app.BuildConfig
import uz.ssd.mobiuz.MainActivity import com.mobiuz.app.MainActivity
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentBiometricBinding import com.mobiuz.app.databinding.FragmentBiometricBinding
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.CONSTANTS
@AndroidEntryPoint @AndroidEntryPoint
class BiometricFragment : BaseFragment(R.layout.fragment_biometric) { class BiometricFragment : BaseFragment(R.layout.fragment_biometric) {
...@@ -31,8 +31,8 @@ class BiometricFragment : BaseFragment(R.layout.fragment_biometric) { ...@@ -31,8 +31,8 @@ class BiometricFragment : BaseFragment(R.layout.fragment_biometric) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
if (BuildConfig.VERSION_CODE >= Build.VERSION_CODES.P) { if (BuildConfig.VERSION_CODE >= Build.VERSION_CODES.P) {
if (ContextCompat.checkSelfPermission(requireContext(),Manifest.permission.USE_BIOMETRIC) != PackageManager.PERMISSION_GRANTED) { if (ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.USE_BIOMETRIC) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(requireActivity(), arrayOf(Manifest.permission.ACCESS_FINE_LOCATION),101) requestPermissions(requireActivity(), arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), 101)
} }
} }
......
package uz.ssd.mobiuz.ui.auth.check package com.mobiuz.app.ui.auth.check
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentCheckPhoneBinding import com.mobiuz.app.databinding.FragmentCheckPhoneBinding
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.ui.auth.AuthViewModel import com.mobiuz.app.ui.auth.AuthViewModel
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.TextWatcherWrapper import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.CONSTANTS
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.TextWatcherWrapper
import uz.ssd.mobiuz.utils.Utils import com.mobiuz.app.utils.Utils
import uz.ssd.mobiuz.utils.extensions.customLog import com.mobiuz.app.utils.extensions.customLog
import uz.ssd.mobiuz.utils.extensions.showCustomDialog import com.mobiuz.app.utils.extensions.showCustomDialog
@AndroidEntryPoint @AndroidEntryPoint
class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
...@@ -63,7 +62,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -63,7 +62,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
phone.length < 13 -> { phone.length < 13 -> {
inputPhone.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake)) inputPhone.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
} }
else -> viewModel.checkPhone(UserAuth(phone.replace("+",""), null)) else -> viewModel.checkPhone(UserAuth(phone.replace("+", ""), null))
} }
} }
...@@ -90,13 +89,13 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -90,13 +89,13 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
bn.helperPhone.isVisible = false bn.helperPhone.isVisible = false
showProgressDialog(false) showProgressDialog(false)
showCustomDialog(it.message,false){} showCustomDialog(it.message, false) {}
} }
is UiStateObject.ERRORS -> { is UiStateObject.ERRORS -> {
it.errors.forEach { it.errors.forEach {
if(it.key == "phone"){ if (it.key == "phone") {
bn.layoutInput.startAnimation(AnimationUtils.loadAnimation(requireContext(),R.anim.shake)) bn.layoutInput.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
bn.helperPhone.isVisible = true bn.helperPhone.isVisible = true
bn.helperPhone.text = it.message bn.helperPhone.text = it.message
} }
......
package uz.ssd.mobiuz.ui.auth.login package com.mobiuz.app.ui.auth.login
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -10,17 +10,17 @@ import androidx.navigation.NavController ...@@ -10,17 +10,17 @@ import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentLoginBinding import com.mobiuz.app.databinding.FragmentLoginBinding
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.ui.auth.AuthViewModel import com.mobiuz.app.ui.auth.AuthViewModel
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.TextWatcherWrapper import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.CONSTANTS
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.TextWatcherWrapper
import uz.ssd.mobiuz.utils.Utils import com.mobiuz.app.utils.Utils
import uz.ssd.mobiuz.utils.extensions.showCustomDialog import com.mobiuz.app.utils.extensions.showCustomDialog
@AndroidEntryPoint @AndroidEntryPoint
class LoginFragment : BaseFragment(R.layout.fragment_login) { class LoginFragment : BaseFragment(R.layout.fragment_login) {
...@@ -105,7 +105,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -105,7 +105,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
showProgressDialog(false) showProgressDialog(false)
showCustomDialog(it.message,false){} showCustomDialog(it.message, false) {}
bn.helperPassword.isVisible = false bn.helperPassword.isVisible = false
bn.helperPhone.isVisible = false bn.helperPhone.isVisible = false
} }
...@@ -141,16 +141,18 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -141,16 +141,18 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
navController.navigate(R.id.verificationFragment, navController.navigate(
R.id.verificationFragment,
bundleOf( bundleOf(
CONSTANTS.PHONE to phone, CONSTANTS.PHONE to phone,
CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET
), ),
Utils.navOptions()) Utils.navOptions()
)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
showProgressDialog(false) showProgressDialog(false)
showCustomDialog(it.message,false){} showCustomDialog(it.message, false) {}
} }
is UiStateObject.ERRORS -> { is UiStateObject.ERRORS -> {
......
package uz.ssd.mobiuz.ui.auth.pin package com.mobiuz.app.ui.auth.pin
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -6,21 +6,20 @@ import android.view.View ...@@ -6,21 +6,20 @@ import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.widget.TextView import android.widget.TextView
import androidx.core.hardware.fingerprint.FingerprintManagerCompat import androidx.core.hardware.fingerprint.FingerprintManagerCompat
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import uz.ssd.mobiuz.MainActivity import com.mobiuz.app.MainActivity
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentPinBinding import com.mobiuz.app.databinding.FragmentPinBinding
import uz.ssd.mobiuz.model.PinData import com.mobiuz.app.model.PinData
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.CONSTANTS
import uz.ssd.mobiuz.utils.Utils import com.mobiuz.app.utils.Utils
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -68,7 +67,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -68,7 +67,7 @@ class ConfirmPinFragment : BaseFragment(R.layout.fragment_pin) {
txtNotPin.isVisible = false txtNotPin.isVisible = false
navigate() navigate()
} else { } else {
cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(),R.anim.shake)) cardPin.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
txtNotPin.isVisible = true txtNotPin.isVisible = true
} }
} }
......
package uz.ssd.mobiuz.ui.auth.pin package com.mobiuz.app.ui.auth.pin
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.ItemPinBinding import com.mobiuz.app.databinding.ItemPinBinding
import uz.ssd.mobiuz.model.PinData import com.mobiuz.app.model.PinData
import uz.ssd.mobiuz.utils.extensions.SingleBlock import com.mobiuz.app.utils.extensions.SingleBlock
class PinAdapter : RecyclerView.Adapter<PinAdapter.VHolder>() { class PinAdapter : RecyclerView.Adapter<PinAdapter.VHolder>() {
private val list : ArrayList<PinData> by lazy { ArrayList() } private val list: ArrayList<PinData> by lazy { ArrayList() }
private var listener: SingleBlock<String>? = null private var listener: SingleBlock<String>? = null
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VHolder {
...@@ -39,7 +39,7 @@ class PinAdapter : RecyclerView.Adapter<PinAdapter.VHolder>() { ...@@ -39,7 +39,7 @@ class PinAdapter : RecyclerView.Adapter<PinAdapter.VHolder>() {
list[index].count = id list[index].count = id
notifyItemChanged(index) notifyItemChanged(index)
if (index == 3) checkDone() if (index == 3) checkDone()
}else{ } else {
list.forEach { list.forEach {
it.count = -1 it.count = -1
} }
......
package uz.ssd.mobiuz.ui.auth.pin package com.mobiuz.app.ui.auth.pin
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentPinBinding import com.mobiuz.app.databinding.FragmentPinBinding
import uz.ssd.mobiuz.model.PinData import com.mobiuz.app.model.PinData
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.ui.auth.AuthViewModel import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.utils.Utils
import uz.ssd.mobiuz.utils.Utils
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -33,7 +30,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -33,7 +30,6 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
private val pinAdapter = PinAdapter() private val pinAdapter = PinAdapter()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentPinBinding.bind(view) _bn = FragmentPinBinding.bind(view)
......
package uz.ssd.mobiuz.ui.auth.register package com.mobiuz.app.ui.auth.register
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.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentRegisterBinding import com.mobiuz.app.databinding.FragmentRegisterBinding
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.ui.auth.AuthViewModel import com.mobiuz.app.ui.auth.AuthViewModel
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.CONSTANTS
import uz.ssd.mobiuz.ui.global.TextWatcherWrapper import com.mobiuz.app.ui.global.TextWatcherWrapper
import uz.ssd.mobiuz.utils.Utils import com.mobiuz.app.utils.Utils
import uz.ssd.mobiuz.utils.extensions.showCustomDialog import com.mobiuz.app.utils.extensions.showCustomDialog
@AndroidEntryPoint @AndroidEntryPoint
class RegisterFragment : BaseFragment(R.layout.fragment_register) { class RegisterFragment : BaseFragment(R.layout.fragment_register) {
...@@ -109,7 +108,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -109,7 +108,7 @@ 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.replace(" ", "").replace("+", ""), password, code))
} else { } else {
viewModel.register(UserAuth(phone.replace(" ", "").replace("+", ""), password)) viewModel.register(UserAuth(phone.replace(" ", "").replace("+", ""), password))
} }
...@@ -162,7 +161,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -162,7 +161,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
showProgressDialog(false) showProgressDialog(false)
showCustomDialog("Password successfully updated", true) { showCustomDialog("Password successfully updated", true) {
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.pinFragment,null,Utils.navOptions()) navController.navigate(R.id.pinFragment, null, Utils.navOptions())
} }
} }
......
package uz.ssd.mobiuz.ui.auth.verification package com.mobiuz.app.ui.auth.verification
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentVerificationBinding import com.mobiuz.app.databinding.FragmentVerificationBinding
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.model.UserAuth
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.ui.auth.AuthViewModel import com.mobiuz.app.ui.auth.AuthViewModel
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.TextWatcherWrapper import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.CONSTANTS
import uz.ssd.mobiuz.ui.global.CONSTANTS import com.mobiuz.app.ui.global.TextWatcherWrapper
import uz.ssd.mobiuz.utils.Utils import com.mobiuz.app.utils.Utils
import uz.ssd.mobiuz.utils.hideKeyboard import com.mobiuz.app.utils.extensions.showCustomDialog
import uz.ssd.mobiuz.utils.extensions.showCustomDialog import com.mobiuz.app.utils.hideKeyboard
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -82,9 +81,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -82,9 +81,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
getLinePinCodes() getLinePinCodes()
val auth = UserAuth(phone.replace("+", "").replace(" ", ""), null, code) val auth = UserAuth(phone.replace("+", "").replace(" ", ""), null, code)
if(type == CONSTANTS.TYPE_FORGET){ if (type == CONSTANTS.TYPE_FORGET) {
viewModel.checkResetCode(auth) viewModel.checkResetCode(auth)
}else{ } else {
viewModel.verification(auth) viewModel.verification(auth)
} }
...@@ -118,7 +117,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -118,7 +117,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
showProgressDialog(false) showProgressDialog(false)
bn.lineField.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake)) bn.lineField.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
bn.helperLineField.isVisible = false bn.helperLineField.isVisible = false
showCustomDialog(it.message,false){} showCustomDialog(it.message, false) {}
} }
is UiStateObject.ERRORS -> { is UiStateObject.ERRORS -> {
showProgressDialog(false) showProgressDialog(false)
...@@ -145,19 +144,21 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -145,19 +144,21 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
showProgressDialog(false) showProgressDialog(false)
bn.helperLineField.isVisible = false bn.helperLineField.isVisible = false
pref.userPhone = phone pref.userPhone = phone
navController.navigate(R.id.registerFragment, navController.navigate(
R.id.registerFragment,
bundleOf( bundleOf(
CONSTANTS.PHONE to phone, CONSTANTS.PHONE to phone,
CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET, CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET,
CONSTANTS.PIN_CODE to code, CONSTANTS.PIN_CODE to code,
), ),
Utils.navOptions()) Utils.navOptions()
)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
showProgressDialog(false) showProgressDialog(false)
bn.lineField.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake)) bn.lineField.startAnimation(AnimationUtils.loadAnimation(requireContext(), R.anim.shake))
bn.helperLineField.isVisible = false bn.helperLineField.isVisible = false
showCustomDialog(it.message,false){} showCustomDialog(it.message, false) {}
} }
is UiStateObject.ERRORS -> { is UiStateObject.ERRORS -> {
showProgressDialog(false) showProgressDialog(false)
......
package uz.ssd.mobiuz.ui.base package com.mobiuz.app.ui.base
import android.os.Bundle import android.os.Bundle
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.fragment.app.Fragment import androidx.fragment.app.Fragment
import uz.ssd.mobiuz.ui.global.ProgressDialog import com.mobiuz.app.ui.global.ProgressDialog
abstract class BaseFragment(private val layoutId: Int) : Fragment() { abstract class BaseFragment(private val layoutId: Int) : Fragment() {
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.os.SystemClock import android.os.SystemClock
import android.view.View import android.view.View
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
object CONSTANTS { object CONSTANTS {
const val BASE_URL = "http://10.160.45.60/api/v1/" const val BASE_URL = "http://10.160.45.60/api/v1/"
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.os.Bundle import android.os.Bundle
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.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.LayoutExitBinding import com.mobiuz.app.databinding.LayoutExitBinding
import uz.ssd.mobiuz.utils.extensions.SingleBlock import com.mobiuz.app.utils.extensions.SingleBlock
class ExitDialog : DialogFragment() { class ExitDialog : DialogFragment() {
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.widget.TextView import android.widget.TextView
import androidx.core.view.isVisible
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentPinDialogBinding import com.mobiuz.app.databinding.FragmentPinDialogBinding
import uz.ssd.mobiuz.model.PinData import com.mobiuz.app.model.PinData
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.ui.auth.pin.PinAdapter import com.mobiuz.app.ui.auth.pin.PinAdapter
import uz.ssd.mobiuz.utils.extensions.SingleBlock import com.mobiuz.app.utils.extensions.SingleBlock
import javax.inject.Inject import javax.inject.Inject
...@@ -32,7 +31,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) { ...@@ -32,7 +31,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setStyle(STYLE_NO_TITLE,R.style.FullScreenDialog) setStyle(STYLE_NO_TITLE, R.style.FullScreenDialog)
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
...@@ -48,7 +47,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) { ...@@ -48,7 +47,7 @@ class FullScreenDialog : DialogFragment(R.layout.fragment_pin_dialog) {
loadData() loadData()
rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false) rvPin.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
withPassword.setOnClickListener(object : ButtonClick(){ withPassword.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
listener?.invoke(Unit) listener?.invoke(Unit)
} }
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import uz.ssd.mobiuz.R import com.mobiuz.app.R
class ProgressDialog : DialogFragment(R.layout.fragment_progress) { class ProgressDialog : DialogFragment(R.layout.fragment_progress) {
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
...@@ -6,9 +6,9 @@ import android.view.LayoutInflater ...@@ -6,9 +6,9 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.LayoutSenderBinding import com.mobiuz.app.databinding.LayoutSenderBinding
import uz.ssd.mobiuz.utils.extensions.SingleBlock import com.mobiuz.app.utils.extensions.SingleBlock
class SenderDialog( class SenderDialog(
private val txtDescription: String, private val txtDescription: String,
......
package uz.ssd.mobiuz.ui.global package com.mobiuz.app.ui.global
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
......
package uz.ssd.mobiuz.ui.home package com.mobiuz.app.ui.home
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
...@@ -8,15 +8,15 @@ import androidx.fragment.app.viewModels ...@@ -8,15 +8,15 @@ import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.ssd.mobiuz.AuthActivity import com.mobiuz.app.AuthActivity
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.databinding.FragmentHomeBinding import com.mobiuz.app.databinding.FragmentHomeBinding
import uz.ssd.mobiuz.model.SharedPref import com.mobiuz.app.model.SharedPref
import uz.ssd.mobiuz.network.model.Customer import com.mobiuz.app.network.model.Customer
import uz.ssd.mobiuz.network.model.UiStateObject import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.ui.base.BaseFragment import com.mobiuz.app.ui.base.BaseFragment
import uz.ssd.mobiuz.ui.global.ButtonClick import com.mobiuz.app.ui.global.ButtonClick
import uz.ssd.mobiuz.utils.extensions.* import com.mobiuz.app.utils.extensions.*
import javax.inject.Inject import javax.inject.Inject
...@@ -28,7 +28,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -28,7 +28,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
private var _bn: FragmentHomeBinding? = null private var _bn: FragmentHomeBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val viewModel : HomeViewModel by viewModels() private val viewModel: HomeViewModel by viewModels()
private var customer: Customer? = null private var customer: Customer? = null
...@@ -114,8 +114,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -114,8 +114,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
txtMyNumber.text = pref.userPhone txtMyNumber.text = pref.userPhone
} }
} }
}catch (e:Exception){ } catch (e: Exception) {
showCustomDialog(e.userMessage(requireContext()),false){} showCustomDialog(e.userMessage(requireContext()), false) {}
} }
......
package uz.ssd.mobiuz.ui.home package com.mobiuz.app.ui.home
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
...@@ -6,11 +6,9 @@ import dagger.hilt.android.lifecycle.HiltViewModel ...@@ -6,11 +6,9 @@ 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
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uz.ssd.mobiuz.model.UserAuth import com.mobiuz.app.network.model.Customer
import uz.ssd.mobiuz.network.model.Action import com.mobiuz.app.network.model.UiStateObject
import uz.ssd.mobiuz.network.model.Customer import com.mobiuz.app.network.repository.AuthRepository
import uz.ssd.mobiuz.network.model.UiStateObject
import uz.ssd.mobiuz.network.repository.AuthRepository
import javax.inject.Inject import javax.inject.Inject
@HiltViewModel @HiltViewModel
......
package uz.ssd.mobiuz.utils package com.mobiuz.app.utils
import android.content.Context import android.content.Context
import android.view.View import android.view.View
......
package uz.ssd.mobiuz.utils package com.mobiuz.app.utils
import android.os.Build import android.os.Build
import android.text.TextUtils import android.text.TextUtils
import androidx.navigation.NavOptions import androidx.navigation.NavOptions
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import java.util.*
object Utils { object Utils {
...@@ -19,7 +20,7 @@ object Utils { ...@@ -19,7 +20,7 @@ object Utils {
fun getDeviceName(): String { fun getDeviceName(): String {
val manufacturer = Build.MANUFACTURER val manufacturer = Build.MANUFACTURER
val model = Build.MODEL val model = Build.MODEL
return if (model.toLowerCase().startsWith(manufacturer.toLowerCase())) { return if (model.lowercase(Locale.getDefault()).startsWith(manufacturer.lowercase(Locale.getDefault()))) {
capitalize(model) capitalize(model)
} else { } else {
capitalize(manufacturer) + " " + model capitalize(manufacturer) + " " + model
......
package uz.ssd.mobiuz.utils.extensions package com.mobiuz.app.utils.extensions
import java.text.DecimalFormat import java.text.DecimalFormat
import java.text.DecimalFormatSymbols import java.text.DecimalFormatSymbols
...@@ -22,8 +22,8 @@ fun String.toMoneyFormat(): String { ...@@ -22,8 +22,8 @@ fun String.toMoneyFormat(): String {
} }
} }
fun String.currencyFormat():String{ fun String.currencyFormat(): String {
val format = this.replace(",","") val format = this.replace(",", "")
return DecimalFormat("###,###,###").format(format.toDouble()) return DecimalFormat("###,###,###").format(format.toDouble())
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package uz.ssd.mobiuz.utils.extensions package com.mobiuz.app.utils.extensions
import android.content.Intent import android.content.Intent
import android.util.SparseArray import android.util.SparseArray
...@@ -25,7 +25,7 @@ import androidx.lifecycle.MutableLiveData ...@@ -25,7 +25,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import uz.ssd.mobiuz.R import com.mobiuz.app.R
/** /**
* Manages the various graphs needed for a [BottomNavigationView]. * Manages the various graphs needed for a [BottomNavigationView].
......
package uz.ssd.mobiuz.utils package com.mobiuz.app.utils
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
...@@ -53,6 +53,7 @@ fun Fragment.checkPermissions(permissions: Array<String>, granted: () -> Unit) { ...@@ -53,6 +53,7 @@ fun Fragment.checkPermissions(permissions: Array<String>, granted: () -> Unit) {
} }
}) })
} }
fun FragmentActivity.checkPermissions(permissions: Array<String>, granted: () -> Unit) { fun FragmentActivity.checkPermissions(permissions: Array<String>, granted: () -> Unit) {
val mContext = this val mContext = this
val options = Permissions.Options() val options = Permissions.Options()
......
package uz.ssd.mobiuz.utils.extensions package com.mobiuz.app.utils.extensions
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
...@@ -9,9 +9,9 @@ import androidx.fragment.app.FragmentActivity ...@@ -9,9 +9,9 @@ import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.gson.JsonSyntaxException import com.google.gson.JsonSyntaxException
import retrofit2.HttpException import retrofit2.HttpException
import uz.ssd.mobiuz.R import com.mobiuz.app.R
import uz.ssd.mobiuz.ui.global.ExitDialog import com.mobiuz.app.ui.global.ExitDialog
import uz.ssd.mobiuz.ui.global.SenderDialog import com.mobiuz.app.ui.global.SenderDialog
import java.io.IOException import java.io.IOException
import java.net.ConnectException import java.net.ConnectException
......
package uz.ssd.mobiuz.network.model
data class Errors(
var key:String,
var message:String
)
\ No newline at end of file
...@@ -7,40 +7,40 @@ ...@@ -7,40 +7,40 @@
<fragment <fragment
android:id="@+id/checkPhoneFragment" android:id="@+id/checkPhoneFragment"
android:name="uz.ssd.mobiuz.ui.auth.check.CheckPhoneFragment" android:name="com.mobiuz.app.ui.auth.check.CheckPhoneFragment"
android:label="fragment_login" android:label="fragment_login"
tools:layout="@layout/fragment_check_phone" /> tools:layout="@layout/fragment_check_phone" />
<fragment <fragment
android:id="@+id/verificationFragment" android:id="@+id/verificationFragment"
android:name="uz.ssd.mobiuz.ui.auth.verification.VerificationFragment" android:name="com.mobiuz.app.ui.auth.verification.VerificationFragment"
android:label="fragment_verification" android:label="fragment_verification"
tools:layout="@layout/fragment_verification" /> tools:layout="@layout/fragment_verification" />
<fragment <fragment
android:id="@+id/registerFragment" android:id="@+id/registerFragment"
android:name="uz.ssd.mobiuz.ui.auth.register.RegisterFragment" android:name="com.mobiuz.app.ui.auth.register.RegisterFragment"
android:label="EnterPasswordFragment" android:label="EnterPasswordFragment"
tools:layout="@layout/fragment_register" /> tools:layout="@layout/fragment_register" />
<fragment <fragment
android:id="@+id/loginFragment" android:id="@+id/loginFragment"
android:name="uz.ssd.mobiuz.ui.auth.login.LoginFragment" android:name="com.mobiuz.app.ui.auth.login.LoginFragment"
android:label="fragment_password" android:label="fragment_password"
tools:layout="@layout/fragment_login" /> tools:layout="@layout/fragment_login" />
<fragment <fragment
android:id="@+id/pinFragment" android:id="@+id/pinFragment"
android:name="uz.ssd.mobiuz.ui.auth.pin.PinFragment" android:name="com.mobiuz.app.ui.auth.pin.PinFragment"
android:label="PinFragment" android:label="PinFragment"
tools:layout="@layout/fragment_pin" /> tools:layout="@layout/fragment_pin" />
<fragment <fragment
android:id="@+id/biometricFragment" android:id="@+id/biometricFragment"
android:name="uz.ssd.mobiuz.ui.auth.biometric.BiometricFragment" android:name="com.mobiuz.app.ui.auth.biometric.BiometricFragment"
android:label="fragment_biometric" android:label="fragment_biometric"
tools:layout="@layout/fragment_biometric" /> tools:layout="@layout/fragment_biometric" />
<fragment <fragment
android:id="@+id/confirmPinFragment" android:id="@+id/confirmPinFragment"
android:name="uz.ssd.mobiuz.ui.auth.pin.ConfirmPinFragment" android:name="com.mobiuz.app.ui.auth.pin.ConfirmPinFragment"
android:label="ConfirmPinFragment" android:label="ConfirmPinFragment"
tools:layout="@layout/fragment_pin" /> tools:layout="@layout/fragment_pin" />
</navigation> </navigation>
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<fragment <fragment
android:id="@+id/homeFragment" android:id="@+id/homeFragment"
android:name="uz.ssd.mobiuz.ui.home.HomeFragment" android:name="com.mobiuz.app.ui.home.HomeFragment"
android:label="fragment_home" android:label="fragment_home"
tools:layout="@layout/fragment_home" /> tools:layout="@layout/fragment_home" />
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<fragment <fragment
android:id="@+id/homeFragment" android:id="@+id/homeFragment"
android:name="uz.ssd.mobiuz.ui.home.HomeFragment" android:name="com.mobiuz.app.ui.home.HomeFragment"
android:label="fragment_home" android:label="fragment_home"
tools:layout="@layout/fragment_home" /> tools:layout="@layout/fragment_home" />
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<fragment <fragment
android:id="@+id/motionFragment" android:id="@+id/motionFragment"
tools:layout="@layout/home_motion" tools:layout="@layout/home_motion"
android:name="uz.ssd.mobiuz.MotionFragment" android:name="com.mobiuz.app.MotionFragment"
android:label="MotionFragment" /> android:label="MotionFragment" />
</navigation> </navigation>
\ No newline at end of file
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
<fragment <fragment
android:id="@+id/homeFragment" android:id="@+id/homeFragment"
android:name="uz.ssd.mobiuz.ui.home.HomeFragment" android:name="com.mobiuz.app.ui.home.HomeFragment"
android:label="fragment_home" android:label="fragment_home"
tools:layout="@layout/fragment_home" /> tools:layout="@layout/fragment_home" />
<fragment <fragment
android:id="@+id/blankFragment" android:id="@+id/blankFragment"
android:name="uz.ssd.mobiuz.BlankFragment" android:name="com.mobiuz.app.BlankFragment"
android:label="fragment_blank" android:label="fragment_blank"
tools:layout="@layout/fragment_blank" /> tools:layout="@layout/fragment_blank" />
......
package uz.ssd.mobiuz package com.mobiuz.app
import org.junit.Test import org.junit.Test
......
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