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