Commit c9b38e0f authored by shohboz's avatar shohboz

[UPD] MUS-261 Feature, updated block app and changed projectId and motion test

parent ae54b133
...@@ -16,7 +16,7 @@ android { ...@@ -16,7 +16,7 @@ android {
} }
defaultConfig { defaultConfig {
applicationId "com.mobiuz.app" applicationId "uz.mobiuz.mobiservice.dev"
minSdk 21 minSdk 21
targetSdk 31 targetSdk 31
versionCode 1 versionCode 1
...@@ -313,4 +313,7 @@ dependencies { ...@@ -313,4 +313,7 @@ dependencies {
//cache fragment //cache fragment
implementation 'com.jakewharton:process-phoenix:2.1.2' implementation 'com.jakewharton:process-phoenix:2.1.2'
implementation 'xyz.peridy.shimmer:shimmerlayout:1.1'
implementation 'com.facebook.shimmer:shimmer:0.5.0'
} }
\ No newline at end of file
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:453497477762:android:57da19692a77341ae9b29b", "mobilesdk_app_id": "1:453497477762:android:57da19692a77341ae9b29b",
"android_client_info": { "android_client_info": {
"package_name": "com.mobiuz.app" "package_name": "uz.mobiuz.mobiservice"
} }
}, },
"oauth_client": [ "oauth_client": [
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
"client_id": "453497477762-t0b1iqi4k3t8s49mm7eco951kpdr4eta.apps.googleusercontent.com", "client_id": "453497477762-t0b1iqi4k3t8s49mm7eco951kpdr4eta.apps.googleusercontent.com",
"client_type": 1, "client_type": 1,
"android_info": { "android_info": {
"package_name": "com.mobiuz.app", "package_name": "uz.mobiuz.mobiservice",
"certificate_hash": "0259d09452724d02cca3c034973f523c2485a232" "certificate_hash": "0259d09452724d02cca3c034973f523c2485a232"
} }
}, },
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
"client_info": { "client_info": {
"mobilesdk_app_id": "1:453497477762:android:4e22d841473f89a3e9b29b", "mobilesdk_app_id": "1:453497477762:android:4e22d841473f89a3e9b29b",
"android_client_info": { "android_client_info": {
"package_name": "com.mobiuz.app.dev" "package_name": "uz.mobiuz.mobiservice.dev"
} }
}, },
"oauth_client": [ "oauth_client": [
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
"client_id": "453497477762-okn4u5uhp9mq1j85ckqds7bhieo4sbu6.apps.googleusercontent.com", "client_id": "453497477762-okn4u5uhp9mq1j85ckqds7bhieo4sbu6.apps.googleusercontent.com",
"client_type": 1, "client_type": 1,
"android_info": { "android_info": {
"package_name": "com.mobiuz.app.dev", "package_name": "uz.mobiuz.mobiservice.dev",
"certificate_hash": "0259d09452724d02cca3c034973f523c2485a232" "certificate_hash": "0259d09452724d02cca3c034973f523c2485a232"
} }
}, },
......
package com.mobiuz.app package uz.mobiuz.mobiservice
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="com.mobiuz.app"> package="uz.mobiuz.mobiservice.dev">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application <application
android:name=".dev.app.App" android:name=".app.App"
android:allowBackup="true" android:allowBackup="true"
android:hardwareAccelerated="true" android:hardwareAccelerated="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
...@@ -25,12 +25,12 @@ ...@@ -25,12 +25,12 @@
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="m"> tools:targetApi="m">
<activity <activity
android:name=".dev.TestActivity" android:name=".TestActivity"
android:exported="true" > android:exported="true" >
</activity> </activity>
<activity <activity
android:name=".dev.SplashActivity" android:name=".SplashActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="true" android:exported="true"
android:screenOrientation="portrait" android:screenOrientation="portrait"
...@@ -42,25 +42,25 @@ ...@@ -42,25 +42,25 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".dev.LanguageActivity" android:name=".LanguageActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".dev.OfflineActivity" android:name=".OfflineActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".dev.MainActivity" android:name=".MainActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity <activity
android:name=".dev.ui.auth.AuthActivity" android:name=".ui.auth.AuthActivity"
android:configChanges="orientation" android:configChanges="orientation"
android:exported="false" android:exported="false"
android:screenOrientation="portrait" android:screenOrientation="portrait"
......
package com.mobiuz.app.dev
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.mobiuz.app.R
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
}
}
\ No newline at end of file
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
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 androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import com.mobiuz.app.databinding.ActivityLanguageBinding import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling import uz.agr.mobiuz.AGRBilling
import uz.mobiuz.mobiservice.dev.databinding.ActivityLanguageBinding
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
...@@ -21,21 +21,19 @@ import com.google.android.material.bottomnavigation.BottomNavigationView ...@@ -21,21 +21,19 @@ import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseApp
import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessaging
import com.mobiuz.app.BuildConfig
import com.mobiuz.app.R
import com.mobiuz.app.databinding.ActivityMainBinding
import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.*
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import uz.mobiuz.mobiservice.dev.databinding.ActivityMainBinding
import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import uz.mobiuz.mobiservice.dev.utils.LocaleHelper
import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import uz.mobiuz.mobiservice.dev.utils.extensions.*
import javax.inject.Inject import javax.inject.Inject
...@@ -53,6 +51,7 @@ class MainActivity : AppCompatActivity() { ...@@ -53,6 +51,7 @@ class MainActivity : AppCompatActivity() {
private val viewModel: MainViewModel by viewModels() private val viewModel: MainViewModel by viewModels()
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private val intentFilter = IntentFilter() private val intentFilter = IntentFilter()
private var isFirstRunning = true
// if offline type == 0 // if offline type == 0
private var type = 0 private var type = 0
...@@ -64,13 +63,12 @@ class MainActivity : AppCompatActivity() { ...@@ -64,13 +63,12 @@ class MainActivity : AppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
_bn = ActivityMainBinding.inflate(layoutInflater) _bn = ActivityMainBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
pref.isShowPin = false pref.isShowPin = true
if (savedInstanceState == null) { if (savedInstanceState == null) {
setupBottomNavigationBar() setupBottomNavigationBar()
} }
val data = intent?.getStringExtra(CONSTANTS.FIRST) val data = intent?.getStringExtra(CONSTANTS.FIRST)
if (data != null && data == CONSTANTS.FIRST) { if (data != null && data == CONSTANTS.FIRST) {
currentNavController?.value?.popBackStack() currentNavController?.value?.popBackStack()
...@@ -89,12 +87,17 @@ class MainActivity : AppCompatActivity() { ...@@ -89,12 +87,17 @@ class MainActivity : AppCompatActivity() {
receiver = object : BroadcastReceiver() { receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action == CONSTANTS.CONNECTIVITY_CHANGE){
if (intent?.action == CONSTANTS.UNAUTHORIZED) {
pref.clearUserData()
startActivity(Intent(this@MainActivity, AuthActivity::class.java))
finish()
}
if (intent?.action == CONSTANTS.CONNECTIVITY_CHANGE) {
sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE)) sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE))
} }
if (intent?.action == CONSTANTS.MY_CONNECTIVITY_CHANGE){ if (intent?.action == CONSTANTS.MY_CONNECTIVITY_CHANGE) {
type = NetworkUtil.getConnectivityStatus(this@MainActivity) type = NetworkUtil.getConnectivityStatus(this@MainActivity)
// bn.btnTryAgain.isVisible =
if ((type == 0) && (currentNavController?.value?.currentDestination?.id != R.id.pinFragment)) { if ((type == 0) && (currentNavController?.value?.currentDestination?.id != R.id.pinFragment)) {
showOfflineBottomSheetDialog() showOfflineBottomSheetDialog()
} }
...@@ -103,19 +106,14 @@ class MainActivity : AppCompatActivity() { ...@@ -103,19 +106,14 @@ class MainActivity : AppCompatActivity() {
} }
intentFilter.addAction(CONSTANTS.CONNECTIVITY_CHANGE) intentFilter.addAction(CONSTANTS.CONNECTIVITY_CHANGE)
intentFilter.addAction(CONSTANTS.UNAUTHORIZED)
intentFilter.addAction(CONSTANTS.MY_CONNECTIVITY_CHANGE) intentFilter.addAction(CONSTANTS.MY_CONNECTIVITY_CHANGE)
registerReceiver(receiver, intentFilter) registerReceiver(receiver, intentFilter)
} }
private fun setUpUI() { private fun setUpUI() {
bn.apply { bn.apply {
bn.btnTryAgain.setOnClickListener {
if (type == 0) {
navigateToOffline()
}
}
txtVersion.text = "v ${BuildConfig.VERSION_NAME}" txtVersion.text = "v ${BuildConfig.VERSION_NAME}"
header.txtUserPhone.text = pref.userPhone.customMasketHome() header.txtUserPhone.text = pref.userPhone.customMasketHome()
...@@ -164,31 +162,27 @@ class MainActivity : AppCompatActivity() { ...@@ -164,31 +162,27 @@ class MainActivity : AppCompatActivity() {
} }
}) })
txtRedactData.setOnClickListener { txtRedactData.setOnClickListener {
navigateUri(when(pref.language){ navigateUri(
CONSTANTS.UZ -> CONSTANTS.LICENSE_UZ when (pref.language) {
CONSTANTS.RU -> CONSTANTS.LICENSE_RU CONSTANTS.UZ -> CONSTANTS.LICENSE_UZ
else -> CONSTANTS.LICENSE_EN CONSTANTS.RU -> CONSTANTS.LICENSE_RU
}) else -> CONSTANTS.LICENSE_EN
}
)
} }
txtPublicOferta.setOnClickListener { txtPublicOferta.setOnClickListener {
navigateUri(when(pref.language){ navigateUri(
CONSTANTS.UZ -> CONSTANTS.PRIVACY_POLICY_UZ when (pref.language) {
CONSTANTS.RU -> CONSTANTS.PRIVACY_POLICY_RU CONSTANTS.UZ -> CONSTANTS.PRIVACY_POLICY_UZ
else -> CONSTANTS.PRIVACY_POLICY_EN CONSTANTS.RU -> CONSTANTS.PRIVACY_POLICY_RU
}) else -> CONSTANTS.PRIVACY_POLICY_EN
}
)
} }
} }
} }
private fun navigateToOffline() {
val intent = Intent(this, OfflineActivity::class.java)
intent.putExtra(CONSTANTS.TYPE_SERVICE, CONSTANTS.FROM_ONLINE)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent)
finish()
}
private fun navigateUri(link: String) { private fun navigateUri(link: String) {
val uri = Uri.parse(link) val uri = Uri.parse(link)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
...@@ -206,19 +200,23 @@ class MainActivity : AppCompatActivity() { ...@@ -206,19 +200,23 @@ class MainActivity : AppCompatActivity() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (pref.isShowPin) { if (!isFirstRunning) {
showPinCode() if (pref.isShowPin) {
} else { showPinCode()
pref.blockedTime = System.currentTimeMillis() } else {
pref.isShowPin = true pref.blockedTime = System.currentTimeMillis()
pref.isShowPin = true
}
} }
isFirstRunning = false
} }
private fun showPinCode() { private fun showPinCode() {
if(pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME){ if (pref.blockedTime < System.currentTimeMillis() - CONSTANTS.BLOCKED_TIME) {
if (currentNavController?.value?.currentDestination?.id != R.id.pinFragment && if (currentNavController?.value?.currentDestination?.id != R.id.pinFragment &&
currentNavController?.value?.currentDestination?.id != R.id.ussdFragment){ currentNavController?.value?.currentDestination?.id != R.id.ussdFragment
bn.btnTryAgain.isVisible = false ) {
currentNavController?.value?.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER)) currentNavController?.value?.navigate(R.id.pinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.TYPE_AFTER))
} }
} }
...@@ -312,6 +310,7 @@ class MainActivity : AppCompatActivity() { ...@@ -312,6 +310,7 @@ class MainActivity : AppCompatActivity() {
override fun onDestroy() { override fun onDestroy() {
_bn = null _bn = null
pref.blockedTime = 0
unregisterReceiver(receiver) unregisterReceiver(receiver)
super.onDestroy() super.onDestroy()
} }
......
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
...@@ -13,23 +13,19 @@ import androidx.core.view.GravityCompat ...@@ -13,23 +13,19 @@ import androidx.core.view.GravityCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.drawerlayout.widget.DrawerLayout import androidx.drawerlayout.widget.DrawerLayout
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModelProvider
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 com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.mobiuz.app.BuildConfig import uz.mobiuz.mobiservice.dev.databinding.FragmentMainBinding
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.databinding.FragmentMainBinding import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.utils.extensions.*
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.*
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
...@@ -48,22 +44,20 @@ class MainFragment : Fragment(R.layout.fragment_main) { ...@@ -48,22 +44,20 @@ class MainFragment : Fragment(R.layout.fragment_main) {
private lateinit var bottomNavigationView: BottomNavigationView private lateinit var bottomNavigationView: BottomNavigationView
private var currentNavController: LiveData<NavController>? = null private var currentNavController: LiveData<NavController>? = null
private val viewModel: MainViewModel by viewModels() private lateinit var viewModel: MainViewModel
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private val intentFilter = IntentFilter() private val intentFilter = IntentFilter()
private val bottomNavSelectedItemIdKey = "BOTTOM_NAV_SELECTED_ITEM_ID_KEY" private val bottomNavSelectedItemIdKey = "BOTTOM_NAV_SELECTED_ITEM_ID_KEY"
private var bottomNavSelectedItemId = R.id.nav_graph_home // Must be your starting destination private var bottomNavSelectedItemId = R.id.nav_graph_home // Must be your starting destination
private val navController : NavController by lazy (LazyThreadSafetyMode.NONE){ NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
// if offline type == 0 // if offline type == 0
private var type = 0 private var type = 0
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
// LocaleHelper.setLocale(this)
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
// _bn = ActivityMainBinding.inflate(layoutInflater) viewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java]
// setContentView(bn.root)
} }
...@@ -92,8 +86,8 @@ class MainFragment : Fragment(R.layout.fragment_main) { ...@@ -92,8 +86,8 @@ class MainFragment : Fragment(R.layout.fragment_main) {
receiver = object : BroadcastReceiver() { receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.action == CONSTANTS.INTENT_ACTION_NAVIGATE){ if (intent?.action == CONSTANTS.INTENT_ACTION_NAVIGATE) {
val id = intent.getIntExtra(CONSTANTS.FRAGMENT_ID,0) val id = intent.getIntExtra(CONSTANTS.FRAGMENT_ID, 0)
customLog("INTENT_ACTION_NAVIGATE: id: $id") customLog("INTENT_ACTION_NAVIGATE: id: $id")
navController.navigate(id) navController.navigate(id)
} }
...@@ -101,7 +95,7 @@ class MainFragment : Fragment(R.layout.fragment_main) { ...@@ -101,7 +95,7 @@ class MainFragment : Fragment(R.layout.fragment_main) {
} }
} }
intentFilter.addAction(CONSTANTS.INTENT_ACTION_NAVIGATE) // intentFilter.addAction(CONSTANTS.INTENT_ACTION_NAVIGATE)
requireActivity().registerReceiver(receiver, intentFilter) requireActivity().registerReceiver(receiver, intentFilter)
} }
...@@ -181,6 +175,18 @@ class MainFragment : Fragment(R.layout.fragment_main) { ...@@ -181,6 +175,18 @@ class MainFragment : Fragment(R.layout.fragment_main) {
} }
) )
} }
// lifecycleScope.launchWhenCreated {
// viewModel.navigateUiState.collect {
// when (it) {
// is UiStateObject.SUCCESS -> {
// bn.drawerLayout.openDrawer(GravityCompat.START)
// }
// else -> Unit
// }
// }
// }
} }
} }
...@@ -210,7 +216,7 @@ class MainFragment : Fragment(R.layout.fragment_main) { ...@@ -210,7 +216,7 @@ class MainFragment : Fragment(R.layout.fragment_main) {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
if (pref.isShowPin) { if (pref.isShowPin) {
showPinCode() // showPinCode()
} else { } else {
pref.blockedTime = System.currentTimeMillis() pref.blockedTime = System.currentTimeMillis()
pref.isShowPin = true pref.isShowPin = true
......
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.repository.MainRepository import uz.mobiuz.mobiservice.dev.network.repository.MainRepository
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
......
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
...@@ -10,16 +10,15 @@ import androidx.core.os.bundleOf ...@@ -10,16 +10,15 @@ import androidx.core.os.bundleOf
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.databinding.ActivityOfflineBinding
import com.mobiuz.app.databinding.ActivityOfflineBinding import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.service.ServicesAdapter
import com.mobiuz.app.dev.ui.service.ServicesAdapter import uz.mobiuz.mobiservice.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.LocaleHelper import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev package uz.mobiuz.mobiservice.dev
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.graphics.Rect
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.View import android.view.View
import android.view.Window
import androidx.activity.viewModels import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.databinding.ActivitySplashBinding
import com.mobiuz.app.databinding.ActivitySplashBinding import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import java.lang.RuntimeException import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import javax.inject.Inject import javax.inject.Inject
@SuppressLint("CustomSplashScreen") @SuppressLint("CustomSplashScreen")
...@@ -54,18 +47,18 @@ class SplashActivity : AppCompatActivity() { ...@@ -54,18 +47,18 @@ class SplashActivity : AppCompatActivity() {
receiver = object : BroadcastReceiver() { receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) { override fun onReceive(context: Context?, intent: Intent?) {
val type = NetworkUtil.getConnectivityStatus(this@SplashActivity) val type = NetworkUtil.getConnectivityStatus(this@SplashActivity)
if (type == 0) { if (type == 0) {
if (pref.services.isNotEmpty()) { if (pref.services.isNotEmpty()) {
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
delay(1500) delay(1500)
startActivity(Intent(this@SplashActivity, OfflineActivity::class.java)) startActivity(Intent(this@SplashActivity, OfflineActivity::class.java))
finish() finish()
} }
}else { } else {
bn.btnTryAgain.isVisible = true bn.btnTryAgain.isVisible = true
} }
} else { } else {
viewModel.services() viewModel.services()
} }
} }
} }
...@@ -100,7 +93,6 @@ class SplashActivity : AppCompatActivity() { ...@@ -100,7 +93,6 @@ class SplashActivity : AppCompatActivity() {
} }
fun navigate() { fun navigate() {
when { when {
pref.language.isEmpty() -> { pref.language.isEmpty() -> {
......
package uz.mobiuz.mobiservice.dev
import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import uz.mobiuz.mobiservice.dev.databinding.ActivityTestBinding
import dagger.hilt.android.AndroidEntryPoint
@AndroidEntryPoint
class TestActivity : AppCompatActivity() {
private val viewModel: MainViewModel by viewModels()
private var _bn: ActivityTestBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_bn = ActivityTestBinding.inflate(layoutInflater)
setContentView(bn.root)
val fragment = supportFragmentManager.findFragmentById(R.id.test_container) as NavHostFragment
navController = NavHostFragment.findNavController(fragment)
collects()
}
private fun collects() {
}
override fun onDestroy() {
_bn = null
super.onDestroy()
}
}
\ No newline at end of file
package com.mobiuz.app.dev.app package uz.mobiuz.mobiservice.dev.app
import android.content.Context import android.content.Context
import androidx.multidex.MultiDex import androidx.multidex.MultiDex
import androidx.multidex.MultiDexApplication import androidx.multidex.MultiDexApplication
import com.mobiuz.app.BuildConfig import uz.mobiuz.mobiservice.dev.BuildConfig
import com.mobiuz.app.dev.utils.LocaleHelper import uz.mobiuz.mobiservice.dev.utils.LocaleHelper
import dagger.hilt.android.HiltAndroidApp import dagger.hilt.android.HiltAndroidApp
import ru.terrakok.cicerone.Router import ru.terrakok.cicerone.Router
import timber.log.Timber import timber.log.Timber
......
package com.mobiuz.app.dev.di package uz.mobiuz.mobiservice.dev.di
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
......
package com.mobiuz.app.dev.di package uz.mobiuz.mobiservice.dev.di
import dagger.Module import dagger.Module
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
......
package com.mobiuz.app.dev.di package uz.mobiuz.mobiservice.dev.di
import android.content.Context import android.content.Context
import android.content.Intent import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.network.api.ApiService
import com.mobiuz.app.dev.network.api.ApiService import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.Utils
import com.readystatesoftware.chuck.ChuckInterceptor import com.readystatesoftware.chuck.ChuckInterceptor
import dagger.Module import dagger.Module
import dagger.Provides import dagger.Provides
...@@ -42,9 +40,11 @@ class ServerModule { ...@@ -42,9 +40,11 @@ class ServerModule {
@Provides @Provides
@Singleton @Singleton
fun getClient(@ApplicationContext context: Context, sharedPref: SharedPref): OkHttpClient{ fun getClient(@ApplicationContext context: Context, sharedPref: SharedPref): OkHttpClient{
return OkHttpClient.Builder() return OkHttpClient.Builder()
.connectTimeout(60, java.util.concurrent.TimeUnit.SECONDS) .connectTimeout(60, java.util.concurrent.TimeUnit.SECONDS)
.readTimeout(60, java.util.concurrent.TimeUnit.SECONDS) .readTimeout(60, java.util.concurrent.TimeUnit.SECONDS)
.addInterceptor( .addInterceptor(
ChuckInterceptor(context) ChuckInterceptor(context)
) )
......
package com.mobiuz.app.dev.model package uz.mobiuz.mobiservice.dev.model
data class PinData( data class PinData(
var count: Int = -1 var count: Int = -1
......
package com.mobiuz.app.dev.model package uz.mobiuz.mobiservice.dev.model
data class ServiceData ( data class ServiceData (
val id:Int, val id:Int,
......
package com.mobiuz.app.dev.model package uz.mobiuz.mobiservice.dev.model
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences
import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.model package uz.mobiuz.mobiservice.dev.model
data class UserAuth( data class UserAuth(
val phone: String? = null, val phone: String? = null,
......
package com.mobiuz.app.dev.network.api package uz.mobiuz.mobiservice.dev.network.api
import com.mobiuz.app.dev.model.ServiceData import uz.mobiuz.mobiservice.dev.model.ServiceData
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.* import uz.mobiuz.mobiservice.dev.network.model.*
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.POST import retrofit2.http.POST
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Action( data class Action(
var action: String = "" var action: String = ""
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class ChangePassword( data class ChangePassword(
val old_password:String, val old_password:String,
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Customer( data class Customer(
val events:List<Events>, val events:List<Events>,
...@@ -9,7 +9,7 @@ data class CustomerData( ...@@ -9,7 +9,7 @@ data class CustomerData(
var info: CustomerInfo?, var info: CustomerInfo?,
var name: String, var name: String,
val tariff:TarifCodeName?, val tariff:TarifCodeName?,
var date_of_birth: String var date_of_birth: String?
) )
data class TarifCodeName( data class TarifCodeName(
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Errors( data class Errors(
var key: String, var key: String,
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Events( data class Events(
val id:Int, val id:Int,
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class GenerateToken( data class GenerateToken(
var token: String var token: String
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Response( data class Response(
var status: Boolean, var status: Boolean,
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
class ResponseList<T>( class ResponseList<T>(
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
class ResponseObject<T>( class ResponseObject<T>(
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
data class Roaming( data class Roaming(
val name: String? val name: String?
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.network.model
sealed class UiStateList<out T> { sealed class UiStateList<out T> {
......
package com.mobiuz.app.dev.network.model package uz.mobiuz.mobiservice.dev.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>()
......
package com.mobiuz.app.dev.network.repository package uz.mobiuz.mobiservice.dev.network.repository
import android.content.Context import android.content.Context
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.api.ApiService import uz.mobiuz.mobiservice.dev.network.api.ApiService
import com.mobiuz.app.dev.network.model.Action import uz.mobiuz.mobiservice.dev.network.model.Action
import com.mobiuz.app.dev.network.model.ChangePassword import uz.mobiuz.mobiservice.dev.network.model.ChangePassword
import com.mobiuz.app.dev.network.model.Customer import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.utils.extensions.getMessage
import com.mobiuz.app.dev.utils.extensions.getMessage import uz.mobiuz.mobiservice.dev.utils.extensions.userMessage
import com.mobiuz.app.dev.utils.extensions.userMessage
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
......
package com.mobiuz.app.dev.network.repository package uz.mobiuz.mobiservice.dev.network.repository
import android.content.Context import android.content.Context
import com.google.gson.Gson import com.google.gson.Gson
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.network.api.ApiService
import com.mobiuz.app.dev.network.api.ApiService import uz.mobiuz.mobiservice.dev.network.model.Customer
import com.mobiuz.app.dev.network.model.ChangePassword import uz.mobiuz.mobiservice.dev.network.model.Roaming
import com.mobiuz.app.dev.network.model.Customer import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.model.Roaming import uz.mobiuz.mobiservice.dev.utils.extensions.getMessage
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.utils.extensions.userMessage
import com.mobiuz.app.dev.utils.extensions.getMessage
import com.mobiuz.app.dev.utils.extensions.userMessage
import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import retrofit2.HttpException
import uz.agr.mobiuz.AGRBilling import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
......
package com.mobiuz.app.dev.ui.auth package uz.mobiuz.mobiservice.dev.ui.auth
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.os.Bundle import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.google.firebase.FirebaseApp import com.google.firebase.FirebaseApp
import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.messaging.FirebaseMessaging import com.google.firebase.messaging.FirebaseMessaging
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.OfflineActivity
import com.mobiuz.app.databinding.ActivityAuthBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainActivity import uz.mobiuz.mobiservice.dev.databinding.ActivityAuthBinding
import com.mobiuz.app.dev.OfflineActivity import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.LocaleHelper import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.NetworkUtil import uz.mobiuz.mobiservice.dev.utils.extensions.showOfflineBottomSheetDialog
import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.extensions.showOfflineBottomSheetDialog
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
package com.mobiuz.app.dev.ui.auth package uz.mobiuz.mobiservice.dev.ui.auth
import android.util.Log
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.Action import uz.mobiuz.mobiservice.dev.network.model.Action
import com.mobiuz.app.dev.network.model.ChangePassword import uz.mobiuz.mobiservice.dev.network.model.ChangePassword
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.repository.AuthRepository import uz.mobiuz.mobiservice.dev.network.repository.AuthRepository
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.auth.biometric package uz.mobiuz.mobiservice.dev.ui.auth.biometric
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.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainActivity
import com.mobiuz.app.databinding.FragmentBiometricBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainActivity import uz.mobiuz.mobiservice.dev.databinding.FragmentBiometricBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.extensions.getColorCompat import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.auth.check package uz.mobiuz.mobiservice.dev.ui.auth.check
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.telephony.PhoneNumberFormattingTextWatcher
import android.text.Editable
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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentCheckPhoneBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentCheckPhoneBinding
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthViewModel import uz.mobiuz.mobiservice.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.NetworkUtil import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.extensions.*
import com.mobiuz.app.dev.utils.extensions.* import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import com.mobiuz.app.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
...@@ -74,7 +69,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -74,7 +69,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
super.onTextChanged(s, start, before, count) super.onTextChanged(s, start, before, count)
try { try {
inputPhone.removeTextChangedListener(this) inputPhone.removeTextChangedListener(this)
newText = s.toString().replace(" ","").maskedTextMobi() newText = s.toString().filter { it.isDigit() }.maskedTextMobi()
inputPhone.setText(newText) inputPhone.setText(newText)
inputPhone.setSelection(oldText.checkChangedPosition(newText)) inputPhone.setSelection(oldText.checkChangedPosition(newText))
inputPhone.addTextChangedListener(this) inputPhone.addTextChangedListener(this)
......
package com.mobiuz.app.dev.ui.auth.login package uz.mobiuz.mobiservice.dev.ui.auth.login
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
...@@ -9,19 +9,19 @@ import androidx.fragment.app.viewModels ...@@ -9,19 +9,19 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentLoginBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentLoginBinding
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthViewModel import uz.mobiuz.mobiservice.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.checkInternet import uz.mobiuz.mobiservice.dev.utils.extensions.checkInternet
import com.mobiuz.app.dev.utils.extensions.makeLinks import uz.mobiuz.mobiservice.dev.utils.extensions.makeLinks
import com.mobiuz.app.dev.utils.hideKeyboard import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
...@@ -57,8 +57,8 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -57,8 +57,8 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
bn.viewGroup.hideKeyboard() bn.viewGroup.hideKeyboard()
} }
}) })
txtHelperMobiuz.makeLinks(Pair(CONSTANTS.HTTP_MOBI_UZ, View.OnClickListener { txtHelperMobiuz.makeLinks(Pair(CONSTANTS.WWW_MOBI_UZ, View.OnClickListener {
val uri = Uri.parse(CONSTANTS.HTTP_MOBI_UZ) val uri = Uri.parse(CONSTANTS.MOBI_UZ_SELF_CARE)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
......
package com.mobiuz.app.dev.ui.auth.pin package uz.mobiuz.mobiservice.dev.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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.ItemPinBinding import uz.mobiuz.mobiservice.dev.databinding.ItemPinBinding
import com.mobiuz.app.dev.model.PinData import uz.mobiuz.mobiservice.dev.model.PinData
import com.mobiuz.app.dev.utils.extensions.SingleBlock import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
class InstallPinAdapter : RecyclerView.Adapter<InstallPinAdapter.VHolder>() { class InstallPinAdapter : RecyclerView.Adapter<InstallPinAdapter.VHolder>() {
......
package com.mobiuz.app.dev.ui.auth.pin package uz.mobiuz.mobiservice.dev.ui.auth.pin
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -13,16 +13,16 @@ import androidx.core.view.isVisible ...@@ -13,16 +13,16 @@ import androidx.core.view.isVisible
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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainActivity
import com.mobiuz.app.databinding.FragmentInstallPinBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainActivity import uz.mobiuz.mobiservice.dev.databinding.FragmentInstallPinBinding
import com.mobiuz.app.dev.model.PinData import uz.mobiuz.mobiservice.dev.model.PinData
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.* import uz.mobiuz.mobiservice.dev.utils.extensions.*
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.auth.register package uz.mobiuz.mobiservice.dev.ui.auth.register
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
...@@ -10,22 +10,22 @@ import androidx.fragment.app.viewModels ...@@ -10,22 +10,22 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentRegisterBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentRegisterBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthViewModel import uz.mobiuz.mobiservice.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.checkInternet import uz.mobiuz.mobiservice.dev.utils.extensions.checkInternet
import com.mobiuz.app.dev.utils.extensions.getColorCompat import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.makeLinks import uz.mobiuz.mobiservice.dev.utils.extensions.makeLinks
import com.mobiuz.app.dev.utils.extensions.showCustomDialog import uz.mobiuz.mobiservice.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.hideKeyboard import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.auth.verification package uz.mobiuz.mobiservice.dev.ui.auth.verification
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent import android.view.KeyEvent
...@@ -11,23 +11,23 @@ import androidx.lifecycle.lifecycleScope ...@@ -11,23 +11,23 @@ import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentVerificationBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentVerificationBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthViewModel import uz.mobiuz.mobiservice.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.clearText import uz.mobiuz.mobiservice.dev.utils.extensions.clearText
import com.mobiuz.app.dev.utils.extensions.getColorCompat import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.isEmpty import uz.mobiuz.mobiservice.dev.utils.extensions.isEmpty
import com.mobiuz.app.dev.utils.extensions.isNotEmpty import uz.mobiuz.mobiservice.dev.utils.extensions.isNotEmpty
import com.mobiuz.app.dev.utils.hideKeyboard import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import com.mobiuz.app.dev.utils.showKeyboard import uz.mobiuz.mobiservice.dev.utils.showKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.base package uz.mobiuz.mobiservice.dev.ui.base
import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.text.SpannableStringBuilder
import android.text.Spanned
import android.text.style.ForegroundColorSpan
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 android.widget.Toast import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.google.android.material.snackbar.Snackbar import uz.mobiuz.mobiservice.dev.ui.global.ProgressDialog
import com.mobiuz.app.dev.ui.global.ProgressDialog
abstract class BaseFragment(private val layoutId: Int) : Fragment() { abstract class BaseFragment(private val layoutId: Int) : Fragment() {
...@@ -37,20 +32,7 @@ abstract class BaseFragment(private val layoutId: Int) : Fragment() { ...@@ -37,20 +32,7 @@ abstract class BaseFragment(private val layoutId: Int) : Fragment() {
} }
} }
// protected fun showSnackMessage(message:String){ protected fun showToastMessage(message: String) {
// val ssb = SpannableStringBuilder().apply {
// append(message)
// setSpan(
// ForegroundColorSpan(Color.WHITE),
// 0,
// message.length,
// Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
// )
// }
// view?.let { Snackbar.make(it, ssb, Snackbar.LENGTH_LONG).show() }
// }
protected fun showToastMessage(message:String) {
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
} }
} }
\ No newline at end of file
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.os.SystemClock import android.os.SystemClock
import android.view.View import android.view.View
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
object CONSTANTS { object CONSTANTS {
const val UNAUTHORIZED = "UNAUTHORIZED"
const val BASE_URL = "https://mobileapp.mobi.uz/api/v1/" const val BASE_URL = "https://mobileapp.mobi.uz/api/v1/"
//languages //languages
...@@ -12,6 +13,8 @@ object CONSTANTS { ...@@ -12,6 +13,8 @@ object CONSTANTS {
// safety data // safety data
const val HELP_BOT = "@MobiuzHelpBot" const val HELP_BOT = "@MobiuzHelpBot"
const val HTTP_MOBI_UZ = "https://mobi.uz" const val HTTP_MOBI_UZ = "https://mobi.uz"
const val WWW_MOBI_UZ = "www.mobi.uz"
const val MOBI_UZ_SELF_CARE = "https://ip.mobi.uz/selfcare/"
const val FEEDBACK = "https://company.mobi.uz/ru/feedback/" const val FEEDBACK = "https://company.mobi.uz/ru/feedback/"
const val TERMS_OF_USE = "Terms of Use" const val TERMS_OF_USE = "Terms of Use"
const val PRIVACY_POLICY = "Privacy Policy" const val PRIVACY_POLICY = "Privacy Policy"
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.LayoutExitBinding import uz.mobiuz.mobiservice.dev.databinding.LayoutExitBinding
import com.mobiuz.app.dev.utils.extensions.SingleBlock import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
class ExitDialog : DialogFragment() { class ExitDialog : DialogFragment() {
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.content.Intent import android.content.Intent
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 com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.mobiuz.app.databinding.LayoutOfflineBottomSheetBinding import uz.mobiuz.mobiservice.dev.OfflineActivity
import com.mobiuz.app.dev.OfflineActivity import uz.mobiuz.mobiservice.dev.databinding.LayoutOfflineBottomSheetBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -16,20 +16,21 @@ import androidx.lifecycle.lifecycleScope ...@@ -16,20 +16,21 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainViewModel
import com.mobiuz.app.databinding.FragmentPinBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainViewModel import uz.mobiuz.mobiservice.dev.databinding.FragmentPinBinding
import com.mobiuz.app.dev.model.PinData import uz.mobiuz.mobiservice.dev.model.PinData
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.pin.InstallPinAdapter import uz.mobiuz.mobiservice.dev.ui.auth.pin.InstallPinAdapter
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.utils.NetworkUtil import uz.mobiuz.mobiservice.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.extensions.showCustomDialog import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.extensions.showMessage import uz.mobiuz.mobiservice.dev.utils.extensions.vibrate
import com.mobiuz.app.dev.utils.extensions.vibrate
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import uz.mobiuz.mobiservice.dev.utils.extensions.customLog
import javax.inject.Inject import javax.inject.Inject
...@@ -78,6 +79,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -78,6 +79,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
when (biometricManager.canAuthenticate(BIOMETRIC_STRONG or BIOMETRIC_WEAK)) { when (biometricManager.canAuthenticate(BIOMETRIC_STRONG or BIOMETRIC_WEAK)) {
BiometricManager.BIOMETRIC_SUCCESS -> { BiometricManager.BIOMETRIC_SUCCESS -> {
bn.btnFingerPrint.isVisible = true bn.btnFingerPrint.isVisible = true
customLog("BIOMETRIC_SUCCESS")
if (pref.isUseFingerPrint){ if (pref.isUseFingerPrint){
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
delay(300) delay(300)
...@@ -86,6 +88,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) { ...@@ -86,6 +88,7 @@ class PinFragment : BaseFragment(R.layout.fragment_pin) {
} }
} }
else -> { else -> {
customLog("ERROR BiometricManager")
bn.btnFingerPrint.isVisible = false bn.btnFingerPrint.isVisible = false
} }
} }
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
class ProgressDialog : DialogFragment(R.layout.fragment_progress) { class ProgressDialog : DialogFragment(R.layout.fragment_progress) {
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
...@@ -6,9 +6,9 @@ import android.view.View ...@@ -6,9 +6,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.LayoutSenderBinding import uz.mobiuz.mobiservice.dev.databinding.LayoutSenderBinding
import com.mobiuz.app.dev.utils.extensions.SingleBlock import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
class SenderDialog( class SenderDialog(
private val txtDescription: String, private val txtDescription: String,
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.ImageView
import com.makeramen.roundedimageview.RoundedImageView import com.makeramen.roundedimageview.RoundedImageView
......
package com.mobiuz.app.dev.ui.global package uz.mobiuz.mobiservice.dev.ui.global
import android.text.Editable import android.text.Editable
import android.text.TextWatcher import android.text.TextWatcher
......
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentBillingBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentBillingBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.utils.extensions.showMessage import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
...@@ -15,19 +15,21 @@ import androidx.lifecycle.lifecycleScope ...@@ -15,19 +15,21 @@ 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.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.facebook.shimmer.ShimmerFrameLayout
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentHomeBinding
import com.mobiuz.app.dev.MainViewModel
import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.network.model.Customer
import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.extensions.*
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import uz.agr.sdk.coreui.extension.fadeIn
import uz.mobiuz.mobiservice.dev.MainViewModel
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.databinding.FragmentHomeBinding
import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.network.model.Customer
import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import uz.mobiuz.mobiservice.dev.utils.extensions.*
import javax.inject.Inject import javax.inject.Inject
...@@ -41,7 +43,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -41,7 +43,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
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 lateinit var mainViewModel: MainViewModel private lateinit var mainViewModel: MainViewModel
private var isFirstProgressing = true private var isProgressing = false
private var jobAutoSlide: Job? = null private var jobAutoSlide: Job? = null
private var jobToMatch: Job? = null private var jobToMatch: Job? = null
...@@ -51,7 +53,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -51,7 +53,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
private var lastUpdateTime = 0L private var lastUpdateTime = 0L
private lateinit var matchParam: FrameLayout.LayoutParams private lateinit var matchParam: FrameLayout.LayoutParams
private lateinit var changedParam: FrameLayout.LayoutParams private lateinit var changedParam: FrameLayout.LayoutParams
private val navController : NavController by lazy (LazyThreadSafetyMode.NONE){ NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
...@@ -59,13 +61,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -59,13 +61,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
viewModel.mainIndex() viewModel.mainIndex()
viewModel.mainRoaming() viewModel.mainRoaming()
matchParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT) matchParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
changedParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT) changedParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentHomeBinding.bind(view) _bn = FragmentHomeBinding.bind(view)
isFirstProgressing = true
requireActivity().window.decorView.systemUiVisibility = View.VISIBLE requireActivity().window.decorView.systemUiVisibility = View.VISIBLE
setUpUI() setUpUI()
collects() collects()
...@@ -78,7 +79,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -78,7 +79,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
slider.adapter = sliderAdapter slider.adapter = sliderAdapter
sliderAdapter.setOnClickListener { sliderAdapter.setOnClickListener {
val uri = Uri.parse(it) pref.isShowPin = false
val uri = Uri.parse(it.url)
val intent = Intent(Intent.ACTION_VIEW) val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri intent.data = uri
startActivity(intent) startActivity(intent)
...@@ -86,30 +88,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -86,30 +88,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach() TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach()
// lifecycleScope.launchWhenCreated {
// repeat(10000000){
// delay(4000)
// if (slider.currentItem != tabIndicator.tabCount - 1) {
// slider.currentItem = slider.currentItem + 1
// } else {
// slider.currentItem = 0
// }
// }
// }
// jobAutoSlide = viewLifecycleOwner.lifecycleScope.launchWhenStarted {
// while (isActive) {
//
// }
// }
slider.offscreenPageLimit = 3 slider.offscreenPageLimit = 3
slider.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER slider.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER
btnAddSum.setOnClickListener { btnAddSum.setOnClickListener {
pref.isShowPin = false pref.isShowPin = false
if(checkInternet()){ if (checkInternet()) {
// requireActivity().sendBroadcast(Intent(CONSTANTS.INTENT_ACTION_NAVIGATE).putExtra(CONSTANTS.FRAGMENT_ID,R.id.billingFragment))
navController.navigate(R.id.billingFragment) navController.navigate(R.id.billingFragment)
} }
...@@ -127,12 +111,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -127,12 +111,12 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
if (!fromStart) { if (!fromStart) {
lastUpdateTime = System.currentTimeMillis() lastUpdateTime = System.currentTimeMillis()
} }
if (fromStart && overScrolledDistance > 140.52632 && (lastUpdateTime < System.currentTimeMillis() - 2000)) { if (fromStart && overScrolledDistance > 130.52632 && (lastUpdateTime < System.currentTimeMillis() - 1000)) {
if(checkInternet()){ if (checkInternet() && !isProgressing) {
viewModel.mainIndex() viewModel.mainIndex()
vibrate(requireContext()) vibrate(requireContext())
} }
lastUpdateTime = System.currentTimeMillis() lastUpdateTime = System.currentTimeMillis()
} }
...@@ -144,6 +128,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -144,6 +128,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
changedParam.width = homeImage.width - (overScroll - overScrolledDistance) changedParam.width = homeImage.width - (overScroll - overScrolledDistance)
changedParam.height = homeImage.height - (overScroll - overScrolledDistance) changedParam.height = homeImage.height - (overScroll - overScrolledDistance)
homeImage.layoutParams = matchParam homeImage.layoutParams = matchParam
// changeToParam()
} }
overScroll = overScrolledDistance overScroll = overScrolledDistance
...@@ -167,29 +152,43 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -167,29 +152,43 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
} }
} }
override fun collects() { override fun collects() {
viewLifecycleOwner.lifecycleScope.launchWhenStarted { viewLifecycleOwner.lifecycleScope.launchWhenStarted {
viewModel.mainIndexUiState.collect { viewModel.mainIndexUiState.collect {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
bn.shimmer.isVisible = false
bn.shimmer.stopShimmer()
bn.slider.isVisible = true
bn.tabIndicator.isVisible = true
bn.lottie.isVisible = false bn.lottie.isVisible = false
isFirstProgressing = false isProgressing = false
customer = it.data customer = it.data
loadData() loadData()
showProgressDialog(false) showProgressDialog(false)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
isFirstProgressing = false
bn.shimmer.isVisible = false
bn.shimmer.stopShimmer()
bn.slider.isVisible = false
bn.tabIndicator.isVisible = false
isProgressing = false
showProgressDialog(false) showProgressDialog(false)
bn.lottie.isVisible = false bn.lottie.isVisible = false
} }
is UiStateObject.LOADING -> { is UiStateObject.LOADING -> {
if (isFirstProgressing) showProgressDialog(true) if (sliderAdapter.itemCount == 0){
else { bn.shimmer.isVisible = true
bn.lottie.isVisible = true bn.shimmer.startShimmer()
isFirstProgressing = false bn.slider.isVisible = false
bn.tabIndicator.isVisible = false
} }
bn.lottie.isVisible = true
isProgressing = true
} }
else -> Unit else -> Unit
} }
...@@ -220,7 +219,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -220,7 +219,8 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
private fun loadData() { private fun loadData() {
try { try {
// sliderAdapter.submitList(customer?.events ?: emptyList()) sliderAdapter.submitList(customer?.events ?: emptyList())
bn.imagePlaceHolder.isVisible = customer?.events?.isEmpty() ?: false
customer?.customer?.info?.let { customer?.customer?.info?.let {
bn.apply { bn.apply {
...@@ -231,14 +231,13 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -231,14 +231,13 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
txtCountMb.text = it.BYTE?.value?.toMoneyFormat() ?: "0" txtCountMb.text = it.BYTE?.value?.toMoneyFormat() ?: "0"
txtTypeMb.text = it.BYTE?.unit ?: "mb" txtTypeMb.text = it.BYTE?.unit ?: "mb"
txtCountMinut.text = it.SECOND?.value?.toMoneyFormat() ?: "0" txtCountMinut.text = it.SECOND?.value?.toMoneyFormat() ?: "0"
txtTypeMinut.text = it.SECOND?.unit ?: "min" txtTypeMinut.text = it.SECOND?.unit ?: "min"
txtTarif.text = customer?.customer?.tariff?.name txtTarif.text = customer?.customer?.tariff?.name
val total_price = customer?.customer?.tariff?.total_price ?: 0 val priceTariff = customer?.customer?.tariff?.total_price ?: 0
if(total_price > 0){ if (priceTariff > 0) {
txtSumTariff.text = getString(R.string.sum_month, total_price.toMoneyFormat()) txtSumTariff.text = getString(R.string.sum_month, priceTariff.toMoneyFormat())
} }
txtTarifTo.text = customer?.customer?.tariff?.next_tariffication_date txtTarifTo.text = customer?.customer?.tariff?.next_tariffication_date
......
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
......
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.mobiuz.app.dev.network.model.Customer import uz.mobiuz.mobiservice.dev.network.model.Customer
import com.mobiuz.app.dev.network.model.Roaming import uz.mobiuz.mobiservice.dev.network.model.Roaming
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.network.repository.AuthRepository import uz.mobiuz.mobiservice.dev.network.repository.MainRepository
import com.mobiuz.app.dev.network.repository.MainRepository
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
......
package uz.mobiuz.mobiservice.dev.ui.home
import android.os.Bundle
import android.view.View
import android.widget.FrameLayout
import android.widget.LinearLayout
import androidx.fragment.app.viewModels
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import uz.mobiuz.mobiservice.dev.MainViewModel
import uz.mobiuz.mobiservice.dev.R
import uz.mobiuz.mobiservice.dev.databinding.FragmentMotionBinding
import uz.mobiuz.mobiservice.dev.model.SharedPref
import uz.mobiuz.mobiservice.dev.network.model.Customer
import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import javax.inject.Inject
@AndroidEntryPoint
class MotionFragment : BaseFragment(R.layout.fragment_motion) {
@Inject
lateinit var pref: SharedPref
private var _bn: FragmentMotionBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val viewModel: HomeViewModel by viewModels()
private lateinit var mainViewModel: MainViewModel
private var isProgressing = false
private var jobAutoSlide: Job? = null
private var jobToMatch: Job? = null
private var customer: Customer? = null
private var overScroll = 0
private val sliderAdapter = SliderAdapter()
private var lastUpdateTime = 0L
private lateinit var matchParam: FrameLayout.LayoutParams
private lateinit var changedParam: FrameLayout.LayoutParams
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java]
viewModel.mainIndex()
viewModel.mainRoaming()
matchParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
changedParam = FrameLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentMotionBinding.bind(view)
isProgressing = true
requireActivity().window.decorView.systemUiVisibility = View.VISIBLE
setUpUI()
collects()
}
override fun setUpUI() {
bn.btnMenu.setOnClickListener {
showMessage("click")
}
// bn.apply {
// slider.adapter = sliderAdapter
//
// sliderAdapter.setOnClickListener {
// pref.isShowPin = false
// val uri = Uri.parse(it.url)
// val intent = Intent(Intent.ACTION_VIEW)
// intent.data = uri
// startActivity(intent)
// }
//
// TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach()
//
// slider.offscreenPageLimit = 3
// slider.getChildAt(0).overScrollMode = RecyclerView.OVER_SCROLL_NEVER
//
// btnAddSum.setOnClickListener {
// pref.isShowPin = false
// if (checkInternet()) {
// navController.navigate(R.id.billingFragment)
// }
//
// }
//
// val number = pref.userPhone.customMasketHome().replace("-", " ")
// txtMyNumber.text = number
// toolbarMyNumber.text = number
//
// toolbar.setNavigationOnClickListener {
// mainViewModel.openDrawer(System.currentTimeMillis())
// }
//
// bounceScrollView.setOnOverScrollListener { fromStart, overScrolledDistance ->
// if (!fromStart) {
// lastUpdateTime = System.currentTimeMillis()
// }
// if (fromStart && overScrolledDistance > 140.52632 && (lastUpdateTime < System.currentTimeMillis() - 1000)) {
//
// if (checkInternet() && !isProgressing) {
// viewModel.mainIndex()
// vibrate(requireContext())
// }
// lastUpdateTime = System.currentTimeMillis()
// }
//
// if (fromStart) {
// changedParam.width = homeImage.width + (overScrolledDistance - overScroll)
// changedParam.height = homeImage.height + (overScrolledDistance - overScroll)
// homeImage.layoutParams = changedParam
// } else {
// changedParam.width = homeImage.width - (overScroll - overScrolledDistance)
// changedParam.height = homeImage.height - (overScroll - overScrolledDistance)
// homeImage.layoutParams = changedParam
// changeToParam()
// }
// overScroll = overScrolledDistance
//
//
// }
//
// bounceScrollView.setOnScrollListener { _, scrollY ->
// if (scrollY < 100) {
// toolbarInsideLayout.isVisible = false
// topDiv.setBackgroundColor(Color.TRANSPARENT)
// toolbar.setBackgroundColor(Color.TRANSPARENT)
// }
// if (scrollY > 20) {
// toolbar.setBackgroundColor(getColorCompat(R.color.primary100))
// topDiv.setBackgroundColor(getColorCompat(R.color.primary100))
// }
// if (scrollY > 90) {
// toolbarInsideLayout.isVisible = true
// }
// }
// }
}
override fun collects() {
// viewLifecycleOwner.lifecycleScope.launchWhenStarted {
// viewModel.mainIndexUiState.collect {
// when (it) {
// is UiStateObject.SUCCESS -> {
// bn.lottie.isVisible = false
// isProgressing = false
// customer = it.data
// loadData()
// showProgressDialog(false)
// }
// is UiStateObject.ERROR -> {
// isProgressing = false
// showProgressDialog(false)
// bn.lottie.isVisible = false
// }
// is UiStateObject.LOADING -> {
// bn.lottie.isVisible = true
// isProgressing = true
// }
// else -> Unit
// }
// }
// }
//
// viewLifecycleOwner.lifecycleScope.launchWhenStarted {
// viewModel.mainRoamingUiState.collect {
// when (it) {
// is UiStateObject.SUCCESS -> {
// showProgressDialog(false)
// bn.cardRoaming.isVisible = it.data.name != null
// bn.txtRoaming.text = it.data.name ?: ""
// }
// is UiStateObject.ERROR -> {
// showProgressDialog(false)
// bn.cardRoaming.isVisible = false
// }
// is UiStateObject.LOADING -> {
// bn.cardRoaming.isVisible = false
// }
// else -> Unit
// }
// }
// }
}
// @SuppressLint("SetTextI18n")
// private fun loadData() {
// try {
// sliderAdapter.submitList(customer?.events ?: emptyList())
// customer?.customer?.info?.let {
// bn.apply {
//
// txtBalance.text = "${it.balance?.amount?.toMoneyFormat()} ${it.balance?.currency}"
// pref.userBirthday = customer?.customer?.date_of_birth ?: ""
// it.counters?.let {
//
// txtCountMb.text = it.BYTE?.value?.toMoneyFormat() ?: "0"
// txtTypeMb.text = it.BYTE?.unit ?: "mb"
//
// txtCountMinut.text = it.SECOND?.value?.toMoneyFormat() ?: "0"
// txtTypeMinut.text = it.SECOND?.unit ?: "min"
//
// txtTarif.text = customer?.customer?.tariff?.name
// val priceTariff = customer?.customer?.tariff?.total_price ?: 0
// if (priceTariff > 0) {
// txtSumTariff.text = getString(R.string.sum_month, priceTariff.toMoneyFormat())
// }
//
// txtTarifTo.text = customer?.customer?.tariff?.next_tariffication_date
//
// txtCountSms.text = it.ITEM?.value?.toMoneyFormat() ?: "0"
// txtTypeSms.text = it.ITEM?.unit ?: "sms"
// }
// mainViewModel.setUserName(customer?.customer?.name ?: "Unnamed User")
// }
// }
// } catch (e: Exception) {
//// showSnackMessage(it.message)
// }
// }
override fun onResume() {
super.onResume()
mainViewModel.bottomSheet(true)
mainViewModel.swipeDrawer(true)
}
override fun onStop() {
super.onStop()
mainViewModel.bottomSheet(false)
mainViewModel.swipeDrawer(false)
}
override fun onDestroy() {
_bn = null
super.onDestroy()
}
}
\ No newline at end of file
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load import coil.load
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.ItemHomeBinding import uz.mobiuz.mobiservice.dev.databinding.ItemHomeBinding
import com.mobiuz.app.dev.network.model.Events import uz.mobiuz.mobiservice.dev.network.model.Events
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.SingleBlock
class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
private var listener: SingleBlock<String>? = null private var listener: SingleBlock<Events>? = null
private val sliderItems: ArrayList<String> = ArrayList() private val sliderItems: ArrayList<Events> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SliderViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SliderViewHolder {
return SliderViewHolder( return SliderViewHolder(
...@@ -26,20 +24,20 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { ...@@ -26,20 +24,20 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
override fun onBindViewHolder(holder: SliderViewHolder, position: Int) = holder.onBind(position) override fun onBindViewHolder(holder: SliderViewHolder, position: Int) = holder.onBind(position)
override fun getItemCount(): Int = 4 override fun getItemCount(): Int = sliderItems.size
inner class SliderViewHolder(val view: ItemHomeBinding) : RecyclerView.ViewHolder(view.root) { inner class SliderViewHolder(val view: ItemHomeBinding) : RecyclerView.ViewHolder(view.root) {
fun onBind(position: Int) { fun onBind(position: Int) {
val d = sliderItems[position]
view.apply { view.apply {
if(position % 2 != 0){ imageSlider.load(d.image) {
imageSlider.setImageResource(R.drawable.image_slider2) placeholder(R.drawable.ic_placeholder)
txtDescription.setTextColor(Color.WHITE) error(R.drawable.ic_placeholder)
txtDescription.text = itemView.context.getString(R.string.misic_all_with_you)
} }
btnSeeMore.setOnClickListener(object : ButtonClick() { btnSeeMore.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
listener?.invoke(CONSTANTS.HTTP_MOBI_UZ) listener?.invoke(d)
} }
}) })
...@@ -48,11 +46,11 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { ...@@ -48,11 +46,11 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
} }
fun setOnClickListener(block: SingleBlock<String>) { fun setOnClickListener(block: SingleBlock<Events>) {
listener = block listener = block
} }
fun submitList(ls: List<String>) { fun submitList(ls: List<Events>) {
sliderItems.clear() sliderItems.clear()
sliderItems.addAll(ls) sliderItems.addAll(ls)
notifyDataSetChanged() notifyDataSetChanged()
......
package uz.mobiuz.mobiservice.dev.ui.home
import android.content.Context
import android.util.AttributeSet
import com.makeramen.roundedimageview.RoundedImageView
class SliderImageView(context: Context, atr: AttributeSet) : RoundedImageView(context,atr) {
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
val width = measuredWidth
setMeasuredDimension(width, (width.toFloat() / 1.633333333).toInt())
}
}
\ No newline at end of file
package com.mobiuz.app.dev.ui.home package uz.mobiuz.mobiservice.dev.ui.home
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.View import android.view.View
import com.mobiuz.app.dev.utils.extensions.getStatusBarHeight import uz.mobiuz.mobiservice.dev.utils.extensions.getStatusBarHeight
class StatusBarSpacer @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : class StatusBarSpacer @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
View(context, attrs) { View(context, attrs) {
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.google.gson.Gson import com.google.gson.Gson
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainViewModel
import com.mobiuz.app.databinding.FragmentSendUssdBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainViewModel import uz.mobiuz.mobiservice.dev.databinding.FragmentSendUssdBinding
import com.mobiuz.app.dev.model.InnerData import uz.mobiuz.mobiservice.dev.model.InnerData
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
...@@ -48,8 +48,6 @@ class SendUssdFragment : BaseFragment(R.layout.fragment_send_ussd) { ...@@ -48,8 +48,6 @@ class SendUssdFragment : BaseFragment(R.layout.fragment_send_ussd) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
// OverScrollDecoratorHelper.setUpStaticOverScroll(bn.rvUssdCommand, OverScrollDecoratorHelper.ORIENTATION_VERTICAL)
rvUssdCommand.adapter = adapter rvUssdCommand.adapter = adapter
adapter.setOnClickListener { adapter.setOnClickListener {
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.mobiuz.app.databinding.ItemServiceBinding import uz.mobiuz.mobiservice.dev.databinding.ItemServiceBinding
import com.mobiuz.app.dev.model.ServiceData import uz.mobiuz.mobiservice.dev.model.ServiceData
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.SingleBlock import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.getCurrentName import uz.mobiuz.mobiservice.dev.utils.extensions.getCurrentName
class ServicesAdapter(val lang: String) : RecyclerView.Adapter<ServicesAdapter.VHolder>() { class ServicesAdapter(val lang: String) : RecyclerView.Adapter<ServicesAdapter.VHolder>() {
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -9,13 +9,13 @@ import androidx.navigation.NavController ...@@ -9,13 +9,13 @@ import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainViewModel
import com.mobiuz.app.databinding.FragmentServicesBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainViewModel import uz.mobiuz.mobiservice.dev.databinding.FragmentServicesBinding
import com.mobiuz.app.dev.model.ServiceData import uz.mobiuz.mobiservice.dev.model.ServiceData
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.gson.Gson import com.google.gson.Gson
import com.mobiuz.app.dev.model.ServiceData import uz.mobiuz.mobiservice.dev.model.ServiceData
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
class ServicesPagerAdapter(fragment: Fragment, private val service: ServiceData): FragmentStateAdapter(fragment) { class ServicesPagerAdapter(fragment: Fragment, private val service: ServiceData): FragmentStateAdapter(fragment) {
override fun getItemCount() = service.data.size override fun getItemCount() = service.data.size
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.mobiuz.app.databinding.ItemActionBinding import uz.mobiuz.mobiservice.dev.databinding.ItemActionBinding
import com.mobiuz.app.dev.model.UssdData import uz.mobiuz.mobiservice.dev.model.UssdData
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.SingleBlock import uz.mobiuz.mobiservice.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.getCurrentName import uz.mobiuz.mobiservice.dev.utils.extensions.getCurrentName
class UssdAdapter(val lang: String) : RecyclerView.Adapter<UssdAdapter.VHolder>() { class UssdAdapter(val lang: String) : RecyclerView.Adapter<UssdAdapter.VHolder>() {
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.Manifest import android.Manifest
import android.content.Intent import android.content.Intent
...@@ -9,12 +9,12 @@ import android.view.View ...@@ -9,12 +9,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.mobiuz.app.databinding.BottomSheetUssdBinding import uz.mobiuz.mobiservice.dev.databinding.BottomSheetUssdBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UssdData import uz.mobiuz.mobiservice.dev.model.UssdData
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.checkPermission import uz.mobiuz.mobiservice.dev.utils.extensions.checkPermission
import com.mobiuz.app.dev.utils.extensions.getCurrentName import uz.mobiuz.mobiservice.dev.utils.extensions.getCurrentName
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.service package uz.mobiuz.mobiservice.dev.ui.service
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -8,13 +8,13 @@ import androidx.navigation.fragment.NavHostFragment ...@@ -8,13 +8,13 @@ import androidx.navigation.fragment.NavHostFragment
import com.google.android.material.tabs.TabLayout.MODE_SCROLLABLE import com.google.android.material.tabs.TabLayout.MODE_SCROLLABLE
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.google.gson.Gson import com.google.gson.Gson
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentUssdBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentUssdBinding
import com.mobiuz.app.dev.model.ServiceData import uz.mobiuz.mobiservice.dev.model.ServiceData
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.extensions.getCurrentName import uz.mobiuz.mobiservice.dev.utils.extensions.getCurrentName
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.settings package uz.mobiuz.mobiservice.dev.ui.settings
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -6,14 +6,14 @@ import android.view.View ...@@ -6,14 +6,14 @@ import android.view.View
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.MainActivity
import com.mobiuz.app.databinding.FragmentLanguageBinding import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.MainActivity import uz.mobiuz.mobiservice.dev.databinding.FragmentLanguageBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.LocaleHelper import uz.mobiuz.mobiservice.dev.utils.LocaleHelper
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.settings package uz.mobiuz.mobiservice.dev.ui.settings
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentProfileBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentProfileBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.utils.extensions.customMasket
import com.mobiuz.app.dev.utils.extensions.customMasket
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.settings package uz.mobiuz.mobiservice.dev.ui.settings
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
...@@ -6,14 +6,13 @@ import android.os.Bundle ...@@ -6,14 +6,13 @@ import android.os.Bundle
import android.view.View import android.view.View
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentSupportBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentSupportBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import me.everything.android.ui.overscroll.OverScrollDecoratorHelper
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
package com.mobiuz.app.dev.ui.settings.security package uz.mobiuz.mobiservice.dev.ui.settings.security
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
...@@ -9,24 +9,24 @@ import androidx.fragment.app.viewModels ...@@ -9,24 +9,24 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentChangePasswordBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentChangePasswordBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.model.UserAuth
import com.mobiuz.app.dev.network.model.ChangePassword import uz.mobiuz.mobiservice.dev.network.model.ChangePassword
import com.mobiuz.app.dev.network.model.UiStateObject import uz.mobiuz.mobiservice.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.auth.AuthActivity import uz.mobiuz.mobiservice.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.auth.AuthViewModel import uz.mobiuz.mobiservice.dev.ui.auth.AuthViewModel
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.TextWatcherWrapper import uz.mobiuz.mobiservice.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.checkInternet import uz.mobiuz.mobiservice.dev.utils.extensions.checkInternet
import com.mobiuz.app.dev.utils.extensions.getColorCompat import uz.mobiuz.mobiservice.dev.utils.extensions.getColorCompat
import com.mobiuz.app.dev.utils.extensions.showCustomDialog import uz.mobiuz.mobiservice.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.extensions.showMessage import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import com.mobiuz.app.dev.utils.hideKeyboard import uz.mobiuz.mobiservice.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.ui.settings.security package uz.mobiuz.mobiservice.dev.ui.settings.security
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
...@@ -12,14 +12,14 @@ import androidx.core.os.bundleOf ...@@ -12,14 +12,14 @@ import androidx.core.os.bundleOf
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.databinding.FragmentSecurityBinding import uz.mobiuz.mobiservice.dev.databinding.FragmentSecurityBinding
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import uz.mobiuz.mobiservice.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.ButtonClick import uz.mobiuz.mobiservice.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.Utils import uz.mobiuz.mobiservice.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.showMessage import uz.mobiuz.mobiservice.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
......
package com.mobiuz.app.dev.utils package uz.mobiuz.mobiservice.dev.utils
import android.annotation.TargetApi import android.annotation.TargetApi
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.SharedPref
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import java.util.* import java.util.*
object LocaleHelper { object LocaleHelper {
......
package com.mobiuz.app.dev.utils package uz.mobiuz.mobiservice.dev.utils
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.util.Log import android.util.Log
import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
class NetworkChangeReceiver : BroadcastReceiver() { class NetworkChangeReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
val status = NetworkUtil.getConnectivityStatusString(context) val status = NetworkUtil.getConnectivityStatusString(context)
if ("android.net.conn.CONNECTIVITY_CHANGE" == intent.action) { if (CONSTANTS.CONNECTIVITY_CHANGE == intent.action) {
if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) { if (status == NetworkUtil.NETWORK_STATUS_NOT_CONNECTED) {
Log.e("AAA", "NETWORK_STATUS_NOT_CONNECTED") Log.e("AAA", "NETWORK_STATUS_NOT_CONNECTED")
} else { } else {
......
package com.mobiuz.app.dev.utils; package uz.mobiuz.mobiservice.dev.utils;
import android.content.Context; import android.content.Context;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
......
package com.mobiuz.app.dev.utils package uz.mobiuz.mobiservice.dev.utils
import android.content.Context import android.content.Context
import android.view.View import android.view.View
......
package com.mobiuz.app.dev.utils package uz.mobiuz.mobiservice.dev.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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import java.util.* import java.util.*
object Utils { object Utils {
......
...@@ -14,9 +14,8 @@ ...@@ -14,9 +14,8 @@
* limitations under the License. * limitations under the License.
*/ */
package com.mobiuz.app.dev.utils.extensions package uz.mobiuz.mobiservice.dev.utils.extensions
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.util.SparseArray import android.util.SparseArray
import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentManager
...@@ -25,8 +24,8 @@ import androidx.lifecycle.MutableLiveData ...@@ -25,8 +24,8 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.utils.extensions.BackButtonBehaviour.SHOW_STARTING_FRAGMENT import uz.mobiuz.mobiservice.dev.utils.extensions.BackButtonBehaviour.SHOW_STARTING_FRAGMENT
/** /**
* Manages the various graphs needed for a [BottomNavigationView]. * Manages the various graphs needed for a [BottomNavigationView].
......
package com.mobiuz.app.dev.utils.extensions package uz.mobiuz.mobiservice.dev.utils.extensions
import java.text.DecimalFormat import java.text.DecimalFormat
import java.text.DecimalFormatSymbols import java.text.DecimalFormatSymbols
......
...@@ -14,8 +14,9 @@ ...@@ -14,8 +14,9 @@
* limitations under the License. * limitations under the License.
*/ */
package com.mobiuz.app.dev.utils.extensions package uz.mobiuz.mobiservice.dev.utils.extensions
import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.util.SparseArray import android.util.SparseArray
import androidx.core.util.forEach import androidx.core.util.forEach
...@@ -25,13 +26,14 @@ import androidx.lifecycle.MutableLiveData ...@@ -25,13 +26,14 @@ 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 com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
/** /**
* Manages the various graphs needed for a [BottomNavigationView]. * Manages the various graphs needed for a [BottomNavigationView].
* *
* This sample is a workaround until the Navigation Component supports multiple back stacks. * This sample is a workaround until the Navigation Component supports multiple back stacks.
*/ */
@SuppressLint("NewApi")
fun BottomNavigationView.setupWithNavController( fun BottomNavigationView.setupWithNavController(
navGraphIds: List<Int>, navGraphIds: List<Int>,
fragmentManager: FragmentManager, fragmentManager: FragmentManager,
......
package com.mobiuz.app.dev.utils.extensions package uz.mobiuz.mobiservice.dev.utils.extensions
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
......
package com.mobiuz.app.dev.utils.extensions package uz.mobiuz.mobiservice.dev.utils.extensions
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
...@@ -21,17 +21,15 @@ import androidx.fragment.app.FragmentActivity ...@@ -21,17 +21,15 @@ import androidx.fragment.app.FragmentActivity
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputEditText
import com.google.gson.JsonSyntaxException import com.google.gson.JsonSyntaxException
import com.mobiuz.app.R import uz.mobiuz.mobiservice.dev.R
import com.mobiuz.app.dev.model.SharedPref import uz.mobiuz.mobiservice.dev.model.Translate
import com.mobiuz.app.dev.model.Translate import uz.mobiuz.mobiservice.dev.network.model.Errors
import com.mobiuz.app.dev.model.UserAuth import uz.mobiuz.mobiservice.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.network.model.Errors import uz.mobiuz.mobiservice.dev.ui.global.ExitDialog
import com.mobiuz.app.dev.ui.global.CONSTANTS import uz.mobiuz.mobiservice.dev.ui.global.OfflineBottomSheet
import com.mobiuz.app.dev.ui.global.ExitDialog import uz.mobiuz.mobiservice.dev.ui.global.SenderDialog
import com.mobiuz.app.dev.ui.global.OfflineBottomSheet
import com.mobiuz.app.dev.ui.global.SenderDialog
import com.mobiuz.app.dev.utils.NetworkUtil
import retrofit2.HttpException import retrofit2.HttpException
import uz.mobiuz.mobiservice.dev.utils.NetworkUtil
import java.io.IOException import java.io.IOException
import java.net.ConnectException import java.net.ConnectException
import java.sql.Timestamp import java.sql.Timestamp
...@@ -42,12 +40,12 @@ fun Fragment.showMessage(message: String) { ...@@ -42,12 +40,12 @@ fun Fragment.showMessage(message: String) {
Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
} }
fun Fragment.showCustomDialog(description:String,status:Boolean, block: () -> Unit){ fun Fragment.showCustomDialog(description: String, status: Boolean, block: () -> Unit) {
val dialog = SenderDialog(description,status) val dialog = SenderDialog(description, status)
dialog.setOnClickListener { dialog.setOnClickListener {
block() block()
} }
dialog.show(childFragmentManager,"tab") dialog.show(childFragmentManager, "tab")
} }
fun String.getDateTime(): String? { fun String.getDateTime(): String? {
...@@ -56,14 +54,15 @@ fun String.getDateTime(): String? { ...@@ -56,14 +54,15 @@ fun String.getDateTime(): String? {
val sdf = SimpleDateFormat("MM/dd/yyyy") val sdf = SimpleDateFormat("MM/dd/yyyy")
sdf.format(long) sdf.format(long)
} catch (e: Exception) { } catch (e: Exception) {
"" ""
} }
} }
fun FragmentActivity.showOfflineBottomSheetDialog(){ fun FragmentActivity.showOfflineBottomSheetDialog() {
val fragment = supportFragmentManager.findFragmentByTag(CONSTANTS.FULL_SCREEN_DIALOG) val fragment = supportFragmentManager.findFragmentByTag(CONSTANTS.FULL_SCREEN_DIALOG)
if(fragment == null) OfflineBottomSheet().show(supportFragmentManager,CONSTANTS.FULL_SCREEN_DIALOG) if (fragment == null) OfflineBottomSheet().show(supportFragmentManager, CONSTANTS.FULL_SCREEN_DIALOG)
} }
fun Activity.showMessage(message: String) { fun Activity.showMessage(message: String) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show() Toast.makeText(this, message, Toast.LENGTH_SHORT).show()
} }
...@@ -86,7 +85,10 @@ fun Throwable.userMessage(context: Context) = when (this) { ...@@ -86,7 +85,10 @@ fun Throwable.userMessage(context: Context) = when (this) {
is HttpException -> when (this.code()) { is HttpException -> when (this.code()) {
304 -> context.getString(R.string.ex304) 304 -> context.getString(R.string.ex304)
400 -> context.getString(R.string.ex400) 400 -> context.getString(R.string.ex400)
401 -> context.getString(R.string.ex401) 401 -> {
context.sendBroadcast(Intent(CONSTANTS.UNAUTHORIZED))
context.getString(R.string.ex401)
}
403 -> context.getString(R.string.ex403) 403 -> context.getString(R.string.ex403)
404 -> context.getString(R.string.ex404) 404 -> context.getString(R.string.ex404)
405 -> context.getString(R.string.ex405) 405 -> context.getString(R.string.ex405)
...@@ -120,18 +122,18 @@ fun FragmentActivity.showCustomExitDialog(block: () -> Unit) { ...@@ -120,18 +122,18 @@ fun FragmentActivity.showCustomExitDialog(block: () -> Unit) {
dialog.show(supportFragmentManager, "childFragmentManager") dialog.show(supportFragmentManager, "childFragmentManager")
} }
fun String.checkChangedPosition(new:String):Int{ fun String.checkChangedPosition(new: String): Int {
for (i in this.indices){ for (i in this.indices) {
if(i == new.length){ if (i == new.length) {
return new.length return new.length
}else if (this[i] != new[i]){ } else if (this[i] != new[i]) {
return i return i
} }
} }
return new.length return new.length
} }
fun View.getStatusBarHeight(): Int { fun View.getStatusBarHeight(): Int {
var result = 0 var result = 0
val resourceId = resources.getIdentifier("status_bar_height", "dimen", "android") val resourceId = resources.getIdentifier("status_bar_height", "dimen", "android")
if (resourceId > 0) { if (resourceId > 0) {
...@@ -141,7 +143,7 @@ fun String.checkChangedPosition(new:String):Int{ ...@@ -141,7 +143,7 @@ fun String.checkChangedPosition(new:String):Int{
return result return result
} }
fun String.maskedTextMobi():String{ fun String.maskedTextMobi(): String {
var newText = "" var newText = ""
for (i in this.indices){ for (i in this.indices){
if(i == 2 || i == 5 || i == 7){ if(i == 2 || i == 5 || i == 7){
...@@ -193,12 +195,12 @@ fun FragmentActivity.showCustomDialog(string: String, status: Boolean, block: () ...@@ -193,12 +195,12 @@ fun FragmentActivity.showCustomDialog(string: String, status: Boolean, block: ()
dialog.show(supportFragmentManager, "supportFragmentManager") dialog.show(supportFragmentManager, "supportFragmentManager")
} }
fun Fragment.checkInternet():Boolean{ fun Fragment.checkInternet(): Boolean {
val type = NetworkUtil.getConnectivityStatus(context) val type = NetworkUtil.getConnectivityStatus(context)
return if(type == 0){ return if (type == 0) {
requireActivity().sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE)) requireActivity().sendBroadcast(Intent(CONSTANTS.MY_CONNECTIVITY_CHANGE))
false false
}else{ } else {
true true
} }
} }
...@@ -237,18 +239,18 @@ fun TextInputEditText.clearText(): View { ...@@ -237,18 +239,18 @@ fun TextInputEditText.clearText(): View {
return this return this
} }
fun String.customMasket():String{ fun String.customMasket(): String {
val text = this.replace(" ","") val text = this.replace(" ", "")
var new = "" var new = ""
for (i in text.indices){ for (i in text.indices) {
if (i == 4){ if (i == 4) {
new += " (" new += " ("
} }
if (i == 6){ if (i == 6) {
new += ") " new += ") "
} }
if (i == 9 || i == 11){ if (i == 9 || i == 11) {
new += "-" new += "-"
} }
...@@ -257,18 +259,18 @@ fun String.customMasket():String{ ...@@ -257,18 +259,18 @@ fun String.customMasket():String{
return new return new
} }
fun String.customMasketHome():String{ fun String.customMasketHome(): String {
val text = this.replace(" ","") val text = this.replace(" ", "")
var new = "" var new = ""
for (i in text.indices){ for (i in text.indices) {
if (i == 4){ if (i == 4) {
new += " " new += " "
} }
if (i == 6){ if (i == 6) {
new += " " new += " "
} }
if (i == 9 || i == 11){ if (i == 9 || i == 11) {
new += "-" new += "-"
} }
new += text[i] new += text[i]
...@@ -282,7 +284,7 @@ fun vibrate(context: Context) { ...@@ -282,7 +284,7 @@ fun vibrate(context: Context) {
vibrate.vibrate(100) vibrate.vibrate(100)
} }
fun List<Errors>.getMessage():String{ fun List<Errors>.getMessage(): String {
var message = "" var message = ""
this.forEach { this.forEach {
message += "${it.message}\n" message += "${it.message}\n"
...@@ -290,8 +292,8 @@ fun List<Errors>.getMessage():String{ ...@@ -290,8 +292,8 @@ fun List<Errors>.getMessage():String{
return message return message
} }
fun Translate.getCurrentName(lang:String):String{ fun Translate.getCurrentName(lang: String): String {
return when(lang){ return when (lang) {
CONSTANTS.EN -> this.en CONSTANTS.EN -> this.en
CONSTANTS.RU -> this.ru CONSTANTS.RU -> this.ru
else -> this.uz else -> this.uz
......
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="375dp"
android:height="163dp"
android:viewportWidth="375"
android:viewportHeight="163">
<path
android:pathData="M0,0h375v163h-375z"
android:fillColor="#E1E8ED"/>
<path
android:pathData="M210.909,71.079V91.793C210.909,99.469 206.105,104.883 198.429,104.883H176.444C168.768,104.883 163.99,99.469 163.99,91.793V71.079C163.99,63.403 168.793,57.992 176.444,57.992H198.429C206.105,57.992 210.909,63.403 210.909,71.079Z"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#0080F6"
android:strokeLineCap="round"/>
<path
android:pathData="M170.423,92.765L174.309,88.665C175.71,87.186 178.061,87.178 179.474,88.645L181.723,90.94C183.241,92.488 185.765,92.376 187.14,90.701L192.805,83.811C194.432,81.831 197.416,81.709 199.197,83.546L204.474,88.991"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#0080F6"
android:strokeLineCap="round"/>
<path
android:pathData="M183.213,74.216C183.213,76.676 181.215,78.674 178.755,78.674C176.295,78.674 174.3,76.676 174.3,74.216C174.3,71.756 176.295,69.758 178.755,69.758C181.215,69.758 183.213,71.756 183.213,74.216Z"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:fillType="evenOdd"
android:strokeColor="#0080F6"
android:strokeLineCap="round"/>
</vector>
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
android:background="@color/white100" android:background="@color/white100"
tools:context=".dev.LanguageActivity"> tools:context=".dev.LanguageActivity">
<com.mobiuz.app.dev.ui.global.SquareImageView <uz.mobiuz.mobiservice.dev.ui.global.SquareImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_20sdp" android:layout_marginTop="@dimen/_20sdp"
......
...@@ -20,15 +20,6 @@ ...@@ -20,15 +20,6 @@
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" /> android:layout_weight="1" />
<Button
android:id="@+id/btn_try_again"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginVertical="4dp"
android:text="@string/to_offline"
android:visibility="gone" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav_view" android:id="@+id/bottom_nav_view"
android:layout_width="match_parent" android:layout_width="match_parent"
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<com.mobiuz.app.dev.ui.home.StatusBarSpacer <uz.mobiuz.mobiservice.dev.ui.home.StatusBarSpacer
android:id="@+id/top_div" android:id="@+id/top_div"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -78,10 +78,10 @@ ...@@ -78,10 +78,10 @@
<com.airbnb.lottie.LottieAnimationView <com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottie" android:id="@+id/lottie"
android:layout_width="@dimen/_90sdp" android:layout_width="@dimen/_70sdp"
android:layout_height="@dimen/_90sdp" android:layout_height="@dimen/_70sdp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/_24sdp" android:layout_marginTop="@dimen/_36sdp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:visibility="invisible" android:visibility="invisible"
app:lottie_autoPlay="true" app:lottie_autoPlay="true"
...@@ -146,7 +146,7 @@ ...@@ -146,7 +146,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:layout_marginTop="@dimen/_12sdp" android:layout_marginTop="@dimen/_22sdp"
android:paddingHorizontal="16dp"> android:paddingHorizontal="16dp">
<LinearLayout <LinearLayout
...@@ -411,10 +411,33 @@ ...@@ -411,10 +411,33 @@
</LinearLayout> </LinearLayout>
</com.google.android.material.card.MaterialCardView> </com.google.android.material.card.MaterialCardView>
<com.facebook.shimmer.ShimmerFrameLayout
android:layout_width="match_parent"
android:id="@+id/shimmer"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginHorizontal="16dp"
android:layout_height="wrap_content">
<com.makeramen.roundedimageview.RoundedImageView
android:layout_width="match_parent"
app:riv_corner_radius="6dp"
android:background="@color/grey100"
android:layout_height="200dp"/>
</com.facebook.shimmer.ShimmerFrameLayout>
<com.makeramen.roundedimageview.RoundedImageView
android:layout_width="match_parent"
android:id="@+id/image_place_holder"
android:visibility="gone"
android:layout_marginTop="@dimen/_16sdp"
android:layout_marginHorizontal="16dp"
android:src="@drawable/image_slider2"
android:layout_height="200dp"/>
<androidx.viewpager2.widget.ViewPager2 <androidx.viewpager2.widget.ViewPager2
android:id="@+id/slider" android:id="@+id/slider"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="180dp" android:layout_height="200dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="@dimen/_16sdp" /> android:layout_marginTop="@dimen/_16sdp" />
......
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/_6sdp" android:padding="@dimen/_6sdp"
android:textSize="13sp" android:textSize="13sp"
android:text="@string/helper_mobiuz" android:text="@string/helper_mobiuz_login"
android:textColor="@color/black100" android:textColor="@color/black100"
android:textStyle="bold" android:textStyle="bold"
android:textColorLink="@color/primary100" android:textColorLink="@color/primary100"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="false"
app:layoutDescription="@xml/fragment_motion_scene"
tools:context=".ui.home.MotionFragment">
<uz.mobiuz.mobiservice.dev.ui.home.StatusBarSpacer
android:id="@+id/spacer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary100"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/primary100"
app:layout_constraintTop_toBottomOf="@id/spacer"
app:navigationIcon="@drawable/ic_menu" />
<ImageView
android:id="@+id/home_image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/bgn_home" />
<ImageView
android:id="@+id/btn_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:background="?android:selectableItemBackgroundBorderless"
android:padding="5dp"
android:src="@drawable/ic_menu"
app:layout_constraintBottom_toBottomOf="@id/toolbar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/toolbar" />
<View
android:id="@+id/div"
android:layout_width="wrap_content"
android:layout_height="?actionBarSize"
android:layout_marginTop="10dp"
app:layout_constraintTop_toBottomOf="@id/toolbar" />
<TextView
android:id="@+id/balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/balance"
android:textColor="@color/white100"
app:layout_constraintBottom_toTopOf="@id/txt_summa"
app:layout_constraintStart_toStartOf="@id/txt_summa"
app:layout_constraintTop_toTopOf="@id/div"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/txt_summa"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:text="150 000 SUM"
android:textColor="@color/white100"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@id/div"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/balance" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/_16sdp"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
app:layout_constraintTop_toBottomOf="@id/home_image" />
</androidx.constraintlayout.motion.widget.MotionLayout>
\ No newline at end of file
...@@ -7,13 +7,14 @@ ...@@ -7,13 +7,14 @@
app:cardCornerRadius="@dimen/_10sdp" app:cardCornerRadius="@dimen/_10sdp"
app:cardUseCompatPadding="true" app:cardUseCompatPadding="true"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="18dp"> >
<com.airbnb.lottie.LottieAnimationView <com.airbnb.lottie.LottieAnimationView
android:layout_width="@dimen/_70sdp" android:layout_width="@dimen/_50sdp"
android:layout_height="@dimen/_70sdp" android:layout_height="@dimen/_50sdp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
app:lottie_autoPlay="true" app:lottie_autoPlay="true"
android:layout_margin="@dimen/_10sdp"
app:lottie_loop="true" app:lottie_loop="true"
app:lottie_rawRes="@raw/rifki_loading" app:lottie_rawRes="@raw/rifki_loading"
app:lottie_speed="1" app:lottie_speed="1"
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
android:fitsSystemWindows="false" android:fitsSystemWindows="false"
android:orientation="vertical"> android:orientation="vertical">
<com.mobiuz.app.dev.ui.home.StatusBarSpacer <uz.mobiuz.mobiservice.dev.ui.home.StatusBarSpacer
android:id="@+id/top_div" android:id="@+id/top_div"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/white100"> android:background="@color/white100">
<com.mobiuz.app.dev.ui.home.StatusBarSpacer <uz.mobiuz.mobiservice.dev.ui.home.StatusBarSpacer
android:id="@+id/top_div" android:id="@+id/top_div"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
...@@ -3,16 +3,18 @@ ...@@ -3,16 +3,18 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:id="@+id/btn_see_more"
android:layout_height="match_parent" android:layout_height="match_parent"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <uz.mobiuz.mobiservice.dev.ui.home.SliderImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:id="@+id/image_slider" android:id="@+id/image_slider"
app:riv_corner_radius="4dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:src="@drawable/image_slider1" android:src="@drawable/image_slider1"
android:layout_height="200dp"/> android:layout_height="wrap_content"/>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -24,6 +26,7 @@ ...@@ -24,6 +26,7 @@
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:visibility="invisible"
android:src="@drawable/ic_mobiuz_logo_red" android:src="@drawable/ic_mobiuz_logo_red"
android:textColor="@color/primary100" android:textColor="@color/primary100"
android:textSize="24sp" android:textSize="24sp"
...@@ -36,6 +39,7 @@ ...@@ -36,6 +39,7 @@
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:id="@+id/txt_description" android:id="@+id/txt_description"
android:maxWidth="@dimen/_120sdp" android:maxWidth="@dimen/_120sdp"
android:visibility="invisible"
android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dui, risus" android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Dui, risus"
android:textColor="@color/black80" android:textColor="@color/black80"
android:textSize="10sp" android:textSize="10sp"
...@@ -44,8 +48,8 @@ ...@@ -44,8 +48,8 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/btn_see_more"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:visibility="invisible"
app:cardCornerRadius="4dp"> app:cardCornerRadius="4dp">
<LinearLayout <LinearLayout
......
...@@ -7,39 +7,39 @@ ...@@ -7,39 +7,39 @@
<fragment <fragment
android:id="@+id/checkPhoneFragment" android:id="@+id/checkPhoneFragment"
android:name="com.mobiuz.app.dev.ui.auth.check.CheckPhoneFragment" android:name="uz.mobiuz.mobiservice.dev.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/registerFragment" android:id="@+id/registerFragment"
android:name="com.mobiuz.app.dev.ui.auth.register.RegisterFragment" android:name="uz.mobiuz.mobiservice.dev.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="com.mobiuz.app.dev.ui.auth.login.LoginFragment" android:name="uz.mobiuz.mobiservice.dev.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/installPinFragment" android:id="@+id/installPinFragment"
android:name="com.mobiuz.app.dev.ui.auth.pin.InstallPinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.auth.pin.InstallPinFragment"
android:label="PinFragment" android:label="PinFragment"
tools:layout="@layout/fragment_install_pin" /> tools:layout="@layout/fragment_install_pin" />
<fragment <fragment
android:id="@+id/biometricFragment" android:id="@+id/biometricFragment"
android:name="com.mobiuz.app.dev.ui.auth.biometric.BiometricFragment" android:name="uz.mobiuz.mobiservice.dev.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/verificationFragment" android:id="@+id/verificationFragment"
android:name="com.mobiuz.app.dev.ui.auth.verification.VerificationFragment" android:name="uz.mobiuz.mobiservice.dev.ui.auth.verification.VerificationFragment"
android:label="MyVerificationFragment" /> android:label="MyVerificationFragment" />
<fragment <fragment
android:id="@+id/mainFragment" android:id="@+id/mainFragment"
android:name="com.mobiuz.app.dev.MainFragment" android:name="uz.mobiuz.mobiservice.dev.MainFragment"
android:label="MainFragment" > android:label="MainFragment" >
<deepLink <deepLink
android:id="@+id/deepLink" android:id="@+id/deepLink"
......
...@@ -7,51 +7,57 @@ ...@@ -7,51 +7,57 @@
<fragment <fragment
android:id="@+id/homeFragment" android:id="@+id/homeFragment"
android:name="com.mobiuz.app.dev.ui.home.HomeFragment" android:name="uz.mobiuz.mobiservice.dev.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/installPinFragment" android:id="@+id/installPinFragment"
android:name="com.mobiuz.app.dev.ui.auth.pin.InstallPinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.auth.pin.InstallPinFragment"
android:label="PinFragment" android:label="PinFragment"
tools:layout="@layout/fragment_install_pin" /> tools:layout="@layout/fragment_install_pin" />
<fragment <fragment
android:id="@+id/languageFragment" android:id="@+id/languageFragment"
android:name="com.mobiuz.app.dev.ui.settings.LanguageFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.LanguageFragment"
android:label="fragment_language" android:label="fragment_language"
tools:layout="@layout/fragment_language" /> tools:layout="@layout/fragment_language" />
<fragment <fragment
android:id="@+id/supportFragment" android:id="@+id/supportFragment"
tools:layout="@layout/fragment_support" tools:layout="@layout/fragment_support"
android:name="com.mobiuz.app.dev.ui.settings.SupportFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.SupportFragment"
android:label="SupportFragment" /> android:label="SupportFragment" />
<fragment <fragment
android:id="@+id/securityFragment" android:id="@+id/securityFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.SecurityFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.SecurityFragment"
android:label="fragment_safety" android:label="fragment_safety"
tools:layout="@layout/fragment_security" /> tools:layout="@layout/fragment_security" />
<fragment <fragment
android:id="@+id/profileFragment" android:id="@+id/profileFragment"
android:name="com.mobiuz.app.dev.ui.settings.ProfileFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.ProfileFragment"
android:label="fragment_profile" android:label="fragment_profile"
tools:layout="@layout/fragment_profile" /> tools:layout="@layout/fragment_profile" />
<fragment <fragment
android:id="@+id/changePasswordFragment" android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.ChangePasswordFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.ChangePasswordFragment"
android:label="CurrentPasswordFragment" /> android:label="CurrentPasswordFragment" />
<fragment <fragment
android:id="@+id/billingFragment" android:id="@+id/billingFragment"
android:name="com.mobiuz.app.dev.ui.home.BillingFragment" android:name="uz.mobiuz.mobiservice.dev.ui.home.BillingFragment"
android:label="fragment_billing" android:label="fragment_billing"
tools:layout="@layout/fragment_billing" /> tools:layout="@layout/fragment_billing" />
<fragment <fragment
android:id="@+id/pinFragment" android:id="@+id/pinFragment"
tools:layout="@layout/fragment_pin" tools:layout="@layout/fragment_pin"
android:name="com.mobiuz.app.dev.ui.global.PinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.global.PinFragment"
android:label="FullScreenFragment" /> android:label="FullScreenFragment" />
<fragment
android:id="@+id/motionFragment"
android:name="uz.mobiuz.mobiservice.dev.ui.home.MotionFragment"
android:label="fragment_motion"
tools:layout="@layout/fragment_motion" />
</navigation> </navigation>
\ No newline at end of file
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
<fragment <fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_services" tools:layout="@layout/fragment_services"
android:name="com.mobiuz.app.dev.ui.service.ServicesFragment" android:name="uz.mobiuz.mobiservice.dev.ui.service.ServicesFragment"
android:label="MotionFragment" /> android:label="MotionFragment" />
<fragment <fragment
android:id="@+id/ussdFragment" android:id="@+id/ussdFragment"
android:name="com.mobiuz.app.dev.ui.service.UssdFragment" android:name="uz.mobiuz.mobiservice.dev.ui.service.UssdFragment"
android:label="ServicesFragmentActivity" /> android:label="ServicesFragmentActivity" />
</navigation> </navigation>
\ No newline at end of file
...@@ -8,48 +8,48 @@ ...@@ -8,48 +8,48 @@
<fragment <fragment
android:id="@+id/pinFragment" android:id="@+id/pinFragment"
tools:layout="@layout/fragment_pin" tools:layout="@layout/fragment_pin"
android:name="com.mobiuz.app.dev.ui.global.PinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.global.PinFragment"
android:label="FullScreenFragment" /> android:label="FullScreenFragment" />
<fragment <fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_services" tools:layout="@layout/fragment_services"
android:name="com.mobiuz.app.dev.ui.service.ServicesFragment" android:name="uz.mobiuz.mobiservice.dev.ui.service.ServicesFragment"
android:label="MotionFragment" /> android:label="MotionFragment" />
<fragment <fragment
android:id="@+id/ussdFragment" android:id="@+id/ussdFragment"
tools:layout="@layout/fragment_ussd" tools:layout="@layout/fragment_ussd"
android:name="com.mobiuz.app.dev.ui.service.UssdFragment" android:name="uz.mobiuz.mobiservice.dev.ui.service.UssdFragment"
android:label="ServicesFragmentActivity" /> android:label="ServicesFragmentActivity" />
<fragment <fragment
android:id="@+id/languageFragment" android:id="@+id/languageFragment"
android:name="com.mobiuz.app.dev.ui.settings.LanguageFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.LanguageFragment"
android:label="fragment_language" android:label="fragment_language"
tools:layout="@layout/fragment_language" /> tools:layout="@layout/fragment_language" />
<fragment <fragment
android:id="@+id/supportFragment" android:id="@+id/supportFragment"
tools:layout="@layout/fragment_support" tools:layout="@layout/fragment_support"
android:name="com.mobiuz.app.dev.ui.settings.SupportFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.SupportFragment"
android:label="SupportFragment" /> android:label="SupportFragment" />
<fragment <fragment
android:id="@+id/securityFragment" android:id="@+id/securityFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.SecurityFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.SecurityFragment"
android:label="fragment_safety" android:label="fragment_safety"
tools:layout="@layout/fragment_security" /> tools:layout="@layout/fragment_security" />
<fragment <fragment
android:id="@+id/profileFragment" android:id="@+id/profileFragment"
android:name="com.mobiuz.app.dev.ui.settings.ProfileFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.ProfileFragment"
android:label="fragment_profile" android:label="fragment_profile"
tools:layout="@layout/fragment_profile" /> tools:layout="@layout/fragment_profile" />
<fragment <fragment
android:id="@+id/changePasswordFragment" android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.ChangePasswordFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.ChangePasswordFragment"
android:label="CurrentPasswordFragment" /> android:label="CurrentPasswordFragment" />
<fragment <fragment
android:id="@+id/installPinFragment" android:id="@+id/installPinFragment"
android:name="com.mobiuz.app.dev.ui.auth.pin.InstallPinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.auth.pin.InstallPinFragment"
android:label="PinFragment" android:label="PinFragment"
tools:layout="@layout/fragment_install_pin" /> tools:layout="@layout/fragment_install_pin" />
......
...@@ -3,53 +3,54 @@ ...@@ -3,53 +3,54 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/nav_graph_test" android:id="@+id/nav_graph_test"
app:startDestination="@id/mainFragment2"> app:startDestination="@id/pinFragment">
<fragment <fragment
android:id="@+id/mainFragment2" android:id="@+id/mainFragment"
android:name="com.mobiuz.app.dev.MainFragment" android:name="uz.mobiuz.mobiservice.dev.MainFragment"
android:label="MainFragment" /> android:label="MainFragment" />
<fragment <fragment
android:id="@+id/installPinFragment" android:id="@+id/installPinFragment"
android:name="com.mobiuz.app.dev.ui.auth.pin.InstallPinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.auth.pin.InstallPinFragment"
android:label="PinFragment" android:label="PinFragment"
tools:layout="@layout/fragment_install_pin" /> tools:layout="@layout/fragment_install_pin" />
<fragment <fragment
android:id="@+id/languageFragment" android:id="@+id/languageFragment"
android:name="com.mobiuz.app.dev.ui.settings.LanguageFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.LanguageFragment"
android:label="fragment_language" android:label="fragment_language"
tools:layout="@layout/fragment_language" /> tools:layout="@layout/fragment_language" />
<fragment <fragment
android:id="@+id/supportFragment" android:id="@+id/supportFragment"
tools:layout="@layout/fragment_support" tools:layout="@layout/fragment_support"
android:name="com.mobiuz.app.dev.ui.settings.SupportFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.SupportFragment"
android:label="SupportFragment" /> android:label="SupportFragment" />
<fragment <fragment
android:id="@+id/securityFragment" android:id="@+id/securityFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.SecurityFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.SecurityFragment"
android:label="fragment_safety" android:label="fragment_safety"
tools:layout="@layout/fragment_security" /> tools:layout="@layout/fragment_security" />
<fragment <fragment
android:id="@+id/profileFragment" android:id="@+id/profileFragment"
android:name="com.mobiuz.app.dev.ui.settings.ProfileFragment" android:name="uz.mobiuz.mobiservice.dev.ui.settings.ProfileFragment"
android:label="fragment_profile" android:label="fragment_profile"
tools:layout="@layout/fragment_profile" /> tools:layout="@layout/fragment_profile" />
<fragment <fragment
android:id="@+id/changePasswordFragment" android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.ChangePasswordFragment" tools:layout="@layout/fragment_change_password"
android:name="uz.mobiuz.mobiservice.dev.ui.settings.security.ChangePasswordFragment"
android:label="CurrentPasswordFragment" /> android:label="CurrentPasswordFragment" />
<fragment <fragment
android:id="@+id/billingFragment" android:id="@+id/billingFragment"
android:name="com.mobiuz.app.dev.ui.home.BillingFragment" android:name="uz.mobiuz.mobiservice.dev.ui.home.BillingFragment"
android:label="fragment_billing" android:label="fragment_billing"
tools:layout="@layout/fragment_billing" /> tools:layout="@layout/fragment_billing" />
<fragment <fragment
android:id="@+id/pinFragment" android:id="@+id/pinFragment"
tools:layout="@layout/fragment_pin" tools:layout="@layout/fragment_pin"
android:name="com.mobiuz.app.dev.ui.global.PinFragment" android:name="uz.mobiuz.mobiservice.dev.ui.global.PinFragment"
android:label="FullScreenFragment" /> android:label="FullScreenFragment" />
</navigation> </navigation>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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