Commit ae54b133 authored by shohboz's avatar shohboz

[UPD] MUS-266 Feature, updated clickable urls and other changes

parent 0cad9a91
...@@ -54,6 +54,7 @@ ...@@ -54,6 +54,7 @@
<entry key="app/src/main/res/layout/activity_settings.xml" value="0.25625" /> <entry key="app/src/main/res/layout/activity_settings.xml" value="0.25625" />
<entry key="app/src/main/res/layout/activity_splash.xml" value="0.29936594202898553" /> <entry key="app/src/main/res/layout/activity_splash.xml" value="0.29936594202898553" />
<entry key="app/src/main/res/layout/activity_splash2.xml" value="0.25625" /> <entry key="app/src/main/res/layout/activity_splash2.xml" value="0.25625" />
<entry key="app/src/main/res/layout/activity_test.xml" value="0.25625" />
<entry key="app/src/main/res/layout/bottom_sheet_ussd.xml" value="0.266796875" /> <entry key="app/src/main/res/layout/bottom_sheet_ussd.xml" value="0.266796875" />
<entry key="app/src/main/res/layout/button_selector.xml" value="0.33242753623188404" /> <entry key="app/src/main/res/layout/button_selector.xml" value="0.33242753623188404" />
<entry key="app/src/main/res/layout/fragment_action.xml" value="0.25625" /> <entry key="app/src/main/res/layout/fragment_action.xml" value="0.25625" />
......
...@@ -24,7 +24,11 @@ ...@@ -24,7 +24,11 @@
android:theme="@style/Theme.MobiUzAndroid" android:theme="@style/Theme.MobiUzAndroid"
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:targetApi="m"> tools:targetApi="m">
<activity
android:name=".dev.TestActivity"
android:exported="true" >
</activity>
<activity <activity
android:name=".dev.SplashActivity" android:name=".dev.SplashActivity"
android:configChanges="orientation" android:configChanges="orientation"
...@@ -37,7 +41,6 @@ ...@@ -37,7 +41,6 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity <activity
android:name=".dev.LanguageActivity" android:name=".dev.LanguageActivity"
android:configChanges="orientation" android:configChanges="orientation"
...@@ -63,12 +66,6 @@ ...@@ -63,12 +66,6 @@
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" /> android:windowSoftInputMode="adjustResize" />
<activity
android:name=".dev.BillingFragment"
android:configChanges="orientation"
android:exported="false"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" />
</application> </application>
</manifest> </manifest>
\ No newline at end of file
This diff is collapsed.
...@@ -5,7 +5,6 @@ import android.content.Context ...@@ -5,7 +5,6 @@ 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.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible import androidx.core.view.isVisible
...@@ -16,10 +15,9 @@ import com.mobiuz.app.databinding.ActivityOfflineBinding ...@@ -16,10 +15,9 @@ import com.mobiuz.app.databinding.ActivityOfflineBinding
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.auth.AuthActivity import com.mobiuz.app.dev.ui.auth.AuthActivity
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.service.ServiceAdapter import com.mobiuz.app.dev.ui.service.ServicesAdapter
import com.mobiuz.app.dev.utils.LocaleHelper import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.NetworkUtil import com.mobiuz.app.dev.utils.NetworkUtil
import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
...@@ -30,7 +28,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -30,7 +28,7 @@ class OfflineActivity : AppCompatActivity() {
private var _bn: ActivityOfflineBinding? = null private var _bn: ActivityOfflineBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private lateinit var adapter: ServiceAdapter private lateinit var adapter: ServicesAdapter
private lateinit var navController: NavController private lateinit var navController: NavController
private lateinit var receiver: BroadcastReceiver private lateinit var receiver: BroadcastReceiver
private val intentFilter = IntentFilter() private val intentFilter = IntentFilter()
...@@ -47,7 +45,7 @@ class OfflineActivity : AppCompatActivity() { ...@@ -47,7 +45,7 @@ class OfflineActivity : AppCompatActivity() {
_bn = ActivityOfflineBinding.inflate(layoutInflater) _bn = ActivityOfflineBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
adapter = ServiceAdapter(pref.language) adapter = ServicesAdapter(pref.language)
pref.isShowPin = false pref.isShowPin = false
......
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
...@@ -11,6 +11,8 @@ import com.mobiuz.app.dev.network.model.UiStateObject ...@@ -11,6 +11,8 @@ import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.utils.extensions.getMessage import com.mobiuz.app.dev.utils.extensions.getMessage
import com.mobiuz.app.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.withContext
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
...@@ -23,13 +25,16 @@ class AuthRepository @Inject constructor( ...@@ -23,13 +25,16 @@ class AuthRepository @Inject constructor(
suspend fun checkPhone(data: UserAuth): UiStateObject<Action> { suspend fun checkPhone(data: UserAuth): UiStateObject<Action> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.checkPhone(data) val res = apiService.checkPhone(data)
withContext(Dispatchers.Main){
when { when {
res.status -> UiStateObject.SUCCESS(res.data ?: Action()) res.status -> UiStateObject.SUCCESS(res.data ?: Action())
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -37,12 +42,16 @@ class AuthRepository @Inject constructor( ...@@ -37,12 +42,16 @@ class AuthRepository @Inject constructor(
suspend fun registerUser(data: UserAuth): UiStateObject<String> { suspend fun registerUser(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.register(data) val res = apiService.register(data)
withContext(Dispatchers.Main){
when { when {
res.status && res.data != null -> UiStateObject.SUCCESS(res.data!!) res.status && res.data != null -> UiStateObject.SUCCESS(res.data!!)
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
...@@ -51,8 +60,9 @@ class AuthRepository @Inject constructor( ...@@ -51,8 +60,9 @@ class AuthRepository @Inject constructor(
suspend fun checkSMSCode(data: UserAuth): UiStateObject<String> { suspend fun checkSMSCode(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.checkSMSCode(data) val res = apiService.checkSMSCode(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
pref.userToken = res.data?.token pref.userToken = res.data?.token
...@@ -62,6 +72,8 @@ class AuthRepository @Inject constructor( ...@@ -62,6 +72,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -69,8 +81,9 @@ class AuthRepository @Inject constructor( ...@@ -69,8 +81,9 @@ class AuthRepository @Inject constructor(
suspend fun loginUser(data: UserAuth): UiStateObject<String> { suspend fun loginUser(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.login(data) val res = apiService.login(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.data!!) UiStateObject.SUCCESS(res.data!!)
...@@ -78,6 +91,8 @@ class AuthRepository @Inject constructor( ...@@ -78,6 +91,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -85,8 +100,9 @@ class AuthRepository @Inject constructor( ...@@ -85,8 +100,9 @@ class AuthRepository @Inject constructor(
suspend fun checkResetCode(data: UserAuth): UiStateObject<String> { suspend fun checkResetCode(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.checkResetCode(data) val res = apiService.checkResetCode(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
...@@ -94,6 +110,8 @@ class AuthRepository @Inject constructor( ...@@ -94,6 +110,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -101,8 +119,9 @@ class AuthRepository @Inject constructor( ...@@ -101,8 +119,9 @@ class AuthRepository @Inject constructor(
suspend fun resetPassword(data: UserAuth): UiStateObject<String> { suspend fun resetPassword(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.resetPassword(data) val res = apiService.resetPassword(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
pref.isRegistered = true pref.isRegistered = true
...@@ -112,6 +131,8 @@ class AuthRepository @Inject constructor( ...@@ -112,6 +131,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -119,8 +140,9 @@ class AuthRepository @Inject constructor( ...@@ -119,8 +140,9 @@ class AuthRepository @Inject constructor(
suspend fun forgetPassword(data: UserAuth): UiStateObject<String> { suspend fun forgetPassword(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.forgetPassword(data) val res = apiService.forgetPassword(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.data?:"") UiStateObject.SUCCESS(res.data?:"")
...@@ -128,6 +150,8 @@ class AuthRepository @Inject constructor( ...@@ -128,6 +150,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -135,7 +159,9 @@ class AuthRepository @Inject constructor( ...@@ -135,7 +159,9 @@ class AuthRepository @Inject constructor(
suspend fun resetSmsCode(data: UserAuth): UiStateObject<String> { suspend fun resetSmsCode(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.reSendSms(data) val res = apiService.reSendSms(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.data ?: "") UiStateObject.SUCCESS(res.data ?: "")
...@@ -143,6 +169,8 @@ class AuthRepository @Inject constructor( ...@@ -143,6 +169,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -150,8 +178,9 @@ class AuthRepository @Inject constructor( ...@@ -150,8 +178,9 @@ class AuthRepository @Inject constructor(
suspend fun checkPassword(data: UserAuth): UiStateObject<String> { suspend fun checkPassword(data: UserAuth): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.checkPassword(data) val res = apiService.checkPassword(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
...@@ -159,6 +188,8 @@ class AuthRepository @Inject constructor( ...@@ -159,6 +188,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage(),true) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage(),true)
else -> UiStateObject.ERROR(res.message,true) else -> UiStateObject.ERROR(res.message,true)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
...@@ -166,8 +197,9 @@ class AuthRepository @Inject constructor( ...@@ -166,8 +197,9 @@ class AuthRepository @Inject constructor(
suspend fun installPassword(data: ChangePassword): UiStateObject<String> { suspend fun installPassword(data: ChangePassword): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.installPassword(data) val res = apiService.installPassword(data)
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.message) UiStateObject.SUCCESS(res.message)
...@@ -175,6 +207,8 @@ class AuthRepository @Inject constructor( ...@@ -175,6 +207,8 @@ class AuthRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
......
...@@ -12,6 +12,9 @@ import com.mobiuz.app.dev.network.model.UiStateObject ...@@ -12,6 +12,9 @@ import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.utils.extensions.getMessage import com.mobiuz.app.dev.utils.extensions.getMessage
import com.mobiuz.app.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.withContext
import uz.agr.mobiuz.AGRBilling
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
...@@ -23,8 +26,9 @@ class MainRepository @Inject constructor( ...@@ -23,8 +26,9 @@ class MainRepository @Inject constructor(
){ ){
suspend fun mainIndex(): UiStateObject<Customer> { suspend fun mainIndex(): UiStateObject<Customer> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.mainIndex() val res = apiService.mainIndex()
withContext(Dispatchers.Main){
when { when {
res.status && res.data != null -> { res.status && res.data != null -> {
UiStateObject.SUCCESS(res.data!!) UiStateObject.SUCCESS(res.data!!)
...@@ -32,31 +36,30 @@ class MainRepository @Inject constructor( ...@@ -32,31 +36,30 @@ class MainRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
} }
suspend fun logOut(): UiStateObject<String> { suspend fun logOut() {
return try { try {
val res = apiService.logOut() withContext(Dispatchers.IO){
AGRBilling.deleteAllCards()
when { AGRBilling.deleteAllMonitoring()
res.status -> { apiService.logOut()
UiStateObject.SUCCESS(res.message)
}
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message)
} }
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) e.printStackTrace()
} }
} }
suspend fun services(): UiStateObject<String> { suspend fun services(): UiStateObject<String> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.getServices() val res = apiService.getServices()
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
pref.services = Gson().toJson(res.data) pref.services = Gson().toJson(res.data)
...@@ -65,14 +68,17 @@ class MainRepository @Inject constructor( ...@@ -65,14 +68,17 @@ class MainRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
} }
suspend fun mainRoaming(): UiStateObject<Roaming> { suspend fun mainRoaming(): UiStateObject<Roaming> {
return try { return try {
withContext(Dispatchers.IO){
val res = apiService.mainRoaming() val res = apiService.mainRoaming()
withContext(Dispatchers.Main){
when { when {
res.status -> { res.status -> {
UiStateObject.SUCCESS(res.data!!) UiStateObject.SUCCESS(res.data!!)
...@@ -80,6 +86,8 @@ class MainRepository @Inject constructor( ...@@ -80,6 +86,8 @@ class MainRepository @Inject constructor(
res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage()) res.errors.isNotEmpty() -> UiStateObject.ERROR(res.errors.getMessage())
else -> UiStateObject.ERROR(res.message) else -> UiStateObject.ERROR(res.message)
} }
}
}
} catch (e: Exception) { } catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context)) UiStateObject.ERROR(e.userMessage(context))
} }
......
...@@ -79,7 +79,7 @@ class AuthActivity : AppCompatActivity() { ...@@ -79,7 +79,7 @@ class AuthActivity : AppCompatActivity() {
} }
CONSTANTS.TYPE_VERIFICATION -> { CONSTANTS.TYPE_VERIFICATION -> {
navController.popBackStack() navController.popBackStack()
navController.navigate(R.id.myVerificationFragment, bundleOf(CONSTANTS.PHONE to phone , CONSTANTS.PIN_CODE to verificationCode), Utils.navOptions()) navController.navigate(R.id.verificationFragment, bundleOf(CONSTANTS.PHONE to phone , CONSTANTS.PIN_CODE to verificationCode), Utils.navOptions())
} }
} }
} }
......
...@@ -54,7 +54,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -54,7 +54,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
toolbar.setNavigationOnClickListener { toolbar.setNavigationOnClickListener {
requireActivity().finish() requireActivity().onBackPressed()
} }
viewGroup.setOnClickListener(object : ButtonClick() { viewGroup.setOnClickListener(object : ButtonClick() {
...@@ -78,7 +78,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -78,7 +78,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
inputPhone.setText(newText) inputPhone.setText(newText)
inputPhone.setSelection(oldText.checkChangedPosition(newText)) inputPhone.setSelection(oldText.checkChangedPosition(newText))
inputPhone.addTextChangedListener(this) inputPhone.addTextChangedListener(this)
btnLogin.isEnabled = inputPhone.text.toString().trim().length == 12 btnCheckPhone.isEnabled = inputPhone.text.toString().trim().length == 12
}catch (e: Exception){ }catch (e: Exception){
inputPhone.text.clear() inputPhone.text.clear()
} }
...@@ -86,7 +86,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) { ...@@ -86,7 +86,7 @@ class CheckPhoneFragment : BaseFragment(R.layout.fragment_check_phone) {
} }
}) })
btnLogin.setOnClickListener(object : ButtonClick() { btnCheckPhone.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
phone = "+998" + inputPhone.text.toString().trim().replace(" ","") phone = "+998" + inputPhone.text.toString().trim().replace(" ","")
phoneRaw = "+998 " + inputPhone.text.toString().trim() phoneRaw = "+998 " + inputPhone.text.toString().trim()
......
package com.mobiuz.app.dev.ui.auth.login package com.mobiuz.app.dev.ui.auth.login
import android.content.Intent import android.content.Intent
import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.text.Spannable
import android.text.SpannableString
import android.text.style.ForegroundColorSpan
import android.view.View import android.view.View
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
import androidx.core.view.isVisible
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController import androidx.navigation.NavController
...@@ -26,7 +21,6 @@ import com.mobiuz.app.dev.ui.global.TextWatcherWrapper ...@@ -26,7 +21,6 @@ import com.mobiuz.app.dev.ui.global.TextWatcherWrapper
import com.mobiuz.app.dev.utils.Utils import com.mobiuz.app.dev.utils.Utils
import com.mobiuz.app.dev.utils.extensions.checkInternet import com.mobiuz.app.dev.utils.extensions.checkInternet
import com.mobiuz.app.dev.utils.extensions.makeLinks import com.mobiuz.app.dev.utils.extensions.makeLinks
import com.mobiuz.app.dev.utils.extensions.showCustomDialog
import com.mobiuz.app.dev.utils.hideKeyboard import com.mobiuz.app.dev.utils.hideKeyboard
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collect
...@@ -58,8 +52,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -58,8 +52,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
viewGroup.setOnClickListener(object : ButtonClick() {
viewGroup.setOnClickListener(object : ButtonClick(){
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
bn.viewGroup.hideKeyboard() bn.viewGroup.hideKeyboard()
} }
...@@ -100,7 +93,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -100,7 +93,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
) )
} }
else -> { else -> {
if(checkInternet()){ if (checkInternet()) {
viewModel.login(UserAuth(phone.filter { it.isDigit() }, password)) viewModel.login(UserAuth(phone.filter { it.isDigit() }, password))
} }
...@@ -122,7 +115,11 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -122,7 +115,11 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
navController.navigate(R.id.myVerificationFragment, bundleOf(CONSTANTS.PHONE to phone, CONSTANTS.PIN_CODE to it.data), Utils.navOptions()) navController.navigate(
R.id.verificationFragment,
bundleOf(CONSTANTS.PHONE to phone, CONSTANTS.PIN_CODE to it.data),
Utils.navOptions()
)
} }
is UiStateObject.ERROR -> { is UiStateObject.ERROR -> {
showProgressDialog(false) showProgressDialog(false)
...@@ -142,7 +139,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) { ...@@ -142,7 +139,7 @@ class LoginFragment : BaseFragment(R.layout.fragment_login) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
navController.navigate( navController.navigate(
R.id.myVerificationFragment, R.id.verificationFragment,
bundleOf( bundleOf(
CONSTANTS.PHONE to phone, CONSTANTS.PHONE to phone,
CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET, CONSTANTS.TYPE_VERIFICATION to CONSTANTS.TYPE_FORGET,
......
...@@ -34,13 +34,13 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) { ...@@ -34,13 +34,13 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) {
private var _bn: FragmentInstallPinBinding? = null private var _bn: FragmentInstallPinBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private val data = ArrayList<PinData>() private lateinit var biometricManager: BiometricManager
private val pinAdapter = InstallPinAdapter() private val pinAdapter = InstallPinAdapter()
private var type = "" private val data = ArrayList<PinData>()
private var titleText = "" private var titleText = ""
private var pinCode = "" private var pinCode = ""
private var type = ""
private var count = 3 private var count = 3
private lateinit var biometricManager: BiometricManager
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
...@@ -49,12 +49,12 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) { ...@@ -49,12 +49,12 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) {
type = it.getString(CONSTANTS.TYPE_PIN, "") ?: "" type = it.getString(CONSTANTS.TYPE_PIN, "") ?: ""
pinCode = it.getString(CONSTANTS.PIN_CODE, "") ?: "" pinCode = it.getString(CONSTANTS.PIN_CODE, "") ?: ""
} }
biometricManager = BiometricManager.from(requireContext())
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentInstallPinBinding.bind(view) _bn = FragmentInstallPinBinding.bind(view)
biometricManager = BiometricManager.from(requireContext())
setUpUI() setUpUI()
collects() collects()
...@@ -106,7 +106,8 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) { ...@@ -106,7 +106,8 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) {
pinAdapter.setOnDoneListener { pinAdapter.setOnDoneListener {
when (type) { when (type) {
CONSTANTS.NEW_PIN -> { CONSTANTS.NEW_PIN -> {
navController.navigate(R.id.installPinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_NEW_PIN, CONSTANTS.PIN_CODE to it), navController.navigate(R.id.installPinFragment,
bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_NEW_PIN, CONSTANTS.PIN_CODE to it),
Utils.navOptions()) Utils.navOptions())
} }
CONSTANTS.CONFIRM_NEW_PIN -> { CONSTANTS.CONFIRM_NEW_PIN -> {
...@@ -121,7 +122,8 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) { ...@@ -121,7 +122,8 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) {
} }
CONSTANTS.CURRENT_PIN -> { CONSTANTS.CURRENT_PIN -> {
if(pref.pinCode == it){ if(pref.pinCode == it){
navController.navigate(R.id.installPinFragment, bundleOf( CONSTANTS.TYPE_PIN to CONSTANTS.CHANGE_NEW_PIN), Utils.navOptions()) navController.navigate(R.id.installPinFragment,
bundleOf( CONSTANTS.TYPE_PIN to CONSTANTS.CHANGE_NEW_PIN), Utils.navOptions())
}else{ }else{
loadError() loadError()
} }
...@@ -130,8 +132,9 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) { ...@@ -130,8 +132,9 @@ class InstallPinFragment : BaseFragment(R.layout.fragment_install_pin) {
if(pref.pinCode == it){ if(pref.pinCode == it){
showMessage(getString(R.string.cannot_change_pin)) showMessage(getString(R.string.cannot_change_pin))
}else{ }else{
navController.navigate(R.id.installPinFragment, bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_CHANGE_NEW_PIN, CONSTANTS.PIN_CODE to it), Utils navController.navigate(R.id.installPinFragment,
.navOptions()) bundleOf(CONSTANTS.TYPE_PIN to CONSTANTS.CONFIRM_CHANGE_NEW_PIN, CONSTANTS.PIN_CODE to it),
Utils.navOptions())
} }
} }
CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> { CONSTANTS.CONFIRM_CHANGE_NEW_PIN -> {
......
...@@ -131,7 +131,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -131,7 +131,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
}) })
btnLogin.setOnClickListener(object : ButtonClick() { btnRegister.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
password = inputPassword.text.toString().trim() password = inputPassword.text.toString().trim()
confirmPassword = inputConfirm.text.toString().trim() confirmPassword = inputConfirm.text.toString().trim()
...@@ -157,7 +157,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -157,7 +157,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
bn.apply { bn.apply {
password = inputPassword.text.toString().trim() password = inputPassword.text.toString().trim()
confirmPassword = inputConfirm.text.toString().trim() confirmPassword = inputConfirm.text.toString().trim()
btnLogin.isEnabled = (password.length > 3) && (password == confirmPassword) btnRegister.isEnabled = (password.length > 3) && (password == confirmPassword)
txtCheckPassword.isVisible = password.length < 4 txtCheckPassword.isVisible = password.length < 4
if (password.isNotEmpty() && confirmPassword.isNotEmpty()){ if (password.isNotEmpty() && confirmPassword.isNotEmpty()){
if (password == confirmPassword){ if (password == confirmPassword){
...@@ -184,7 +184,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) { ...@@ -184,7 +184,7 @@ class RegisterFragment : BaseFragment(R.layout.fragment_register) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showProgressDialog(false) showProgressDialog(false)
navController.navigate( navController.navigate(
R.id.myVerificationFragment, R.id.verificationFragment,
bundleOf(CONSTANTS.PHONE to phone, CONSTANTS.PIN_CODE to it.data), bundleOf(CONSTANTS.PHONE to phone, CONSTANTS.PIN_CODE to it.data),
Utils.navOptions() Utils.navOptions()
) )
......
...@@ -44,8 +44,8 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -44,8 +44,8 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private val viewModel: AuthViewModel by viewModels() private val viewModel: AuthViewModel by viewModels()
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private var code = ""
private var verificationCode = "" private var verificationCode = ""
private var code = ""
private var phone = "" private var phone = ""
...@@ -88,7 +88,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -88,7 +88,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
setColorPins(getColorCompat(R.color.black100)) setColorPins(getColorCompat(R.color.black100))
} }
}) })
btnLogin.setOnClickListener(object : ButtonClick() { btnVerification.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
getLinePinCodes() getLinePinCodes()
val auth = UserAuth(phone.replace("+", "").replace(" ", ""), null, code) val auth = UserAuth(phone.replace("+", "").replace(" ", ""), null, code)
...@@ -107,7 +107,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -107,7 +107,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
coutdownView.setOnCountdownEndListener { coutdownView.setOnCountdownEndListener {
count(false) count(false)
} }
setVerificationCode() // setVerificationCode()
} }
} }
...@@ -121,7 +121,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -121,7 +121,7 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
pin5.setText(verificationCode[4].toString()) pin5.setText(verificationCode[4].toString())
pin6.setText(verificationCode[5].toString()) pin6.setText(verificationCode[5].toString())
pin6.requestFocus() pin6.requestFocus()
btnLogin.isEnabled = true btnVerification.isEnabled = true
} }
} }
} }
...@@ -186,12 +186,12 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -186,12 +186,12 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
if (s.toString().isNotEmpty()) { if (s.toString().isNotEmpty()) {
if (i == pinView.childCount - 1) { if (i == pinView.childCount - 1) {
pin6.hideKeyboard() pin6.hideKeyboard()
btnLogin.isEnabled = true btnVerification.isEnabled = true
} else pinView.getChildAt(i + 1).requestFocus() } else pinView.getChildAt(i + 1).requestFocus()
this@apply.setBackgroundResource(R.drawable.bgn_ver_checked) this@apply.setBackgroundResource(R.drawable.bgn_ver_checked)
} else { } else {
if (i == pinView.childCount - 1) { if (i == pinView.childCount - 1) {
btnLogin.isEnabled = false btnVerification.isEnabled = false
} }
this@apply.setBackgroundResource(R.drawable.bgn_ver_unchecked) this@apply.setBackgroundResource(R.drawable.bgn_ver_unchecked)
} }
...@@ -239,9 +239,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) { ...@@ -239,9 +239,9 @@ class VerificationFragment : BaseFragment(R.layout.fragment_verification) {
viewModel.resetSmsCodeUiState.collect { viewModel.resetSmsCodeUiState.collect {
when (it) { when (it) {
is UiStateObject.SUCCESS -> { is UiStateObject.SUCCESS -> {
showToastMessage(it.data) // showToastMessage(it.data)
verificationCode = it.data // verificationCode = it.data
setVerificationCode() // setVerificationCode()
count(true) count(true)
showProgressDialog(false) showProgressDialog(false)
} }
......
...@@ -50,7 +50,9 @@ object CONSTANTS { ...@@ -50,7 +50,9 @@ object CONSTANTS {
const val FROM_ONLINE = "FROM_ONLINE" const val FROM_ONLINE = "FROM_ONLINE"
const val FULL_SCREEN_DIALOG = "full_screen_dialog" const val FULL_SCREEN_DIALOG = "full_screen_dialog"
const val CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE" const val CONNECTIVITY_CHANGE = "android.net.conn.CONNECTIVITY_CHANGE"
const val INTENT_ACTION_NAVIGATE = "INTENT_ACTION_NAVIGATE"
const val MY_CONNECTIVITY_CHANGE = "MY_CONNECTIVITY_CHANGE" const val MY_CONNECTIVITY_CHANGE = "MY_CONNECTIVITY_CHANGE"
const val FRAGMENT_ID = "FRAGMENT_ID"
//password types //password types
......
...@@ -13,7 +13,7 @@ import dagger.hilt.android.AndroidEntryPoint ...@@ -13,7 +13,7 @@ import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class OfflineBottomSheet() : BottomSheetDialogFragment() { class OfflineBottomSheet: BottomSheetDialogFragment() {
@Inject @Inject
lateinit var pref: SharedPref lateinit var pref: SharedPref
...@@ -34,14 +34,14 @@ class OfflineBottomSheet() : BottomSheetDialogFragment() { ...@@ -34,14 +34,14 @@ class OfflineBottomSheet() : BottomSheetDialogFragment() {
private fun setUpUI() { private fun setUpUI() {
bn.apply { bn.apply {
lng = pref.language lng = pref.language
btnZapros.setOnClickListener(object : ButtonClick() { btnToOfflineActivity.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
pref.isShowPin = false pref.isShowPin = false
navigate() navigate()
} }
}) })
btnOtmena.setOnClickListener(object : ButtonClick() { btnCancel.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
dismiss() dismiss()
} }
......
package com.mobiuz.app.dev package com.mobiuz.app.dev.ui.home
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.NavHostFragment
import com.mobiuz.app.R import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentBillingBinding import com.mobiuz.app.databinding.FragmentBillingBinding
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.utils.LocaleHelper
import com.mobiuz.app.dev.utils.extensions.showMessage import com.mobiuz.app.dev.utils.extensions.showMessage
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import uz.agr.mobiuz.AGRBilling import uz.agr.mobiuz.AGRBilling
import uz.agr.sdk.coreui.extension.showMessage
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
......
...@@ -3,6 +3,7 @@ package com.mobiuz.app.dev.ui.home ...@@ -3,6 +3,7 @@ package com.mobiuz.app.dev.ui.home
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import android.widget.FrameLayout import android.widget.FrameLayout
...@@ -17,16 +18,15 @@ import androidx.recyclerview.widget.RecyclerView ...@@ -17,16 +18,15 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import com.mobiuz.app.R import com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentHomeBinding import com.mobiuz.app.databinding.FragmentHomeBinding
import com.mobiuz.app.dev.BillingFragment
import com.mobiuz.app.dev.MainViewModel import com.mobiuz.app.dev.MainViewModel
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.network.model.Customer import com.mobiuz.app.dev.network.model.Customer
import com.mobiuz.app.dev.network.model.UiStateObject import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.utils.extensions.* 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 javax.inject.Inject import javax.inject.Inject
...@@ -77,6 +77,13 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -77,6 +77,13 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
bn.apply { bn.apply {
slider.adapter = sliderAdapter slider.adapter = sliderAdapter
sliderAdapter.setOnClickListener {
val uri = Uri.parse(it)
val intent = Intent(Intent.ACTION_VIEW)
intent.data = uri
startActivity(intent)
}
TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach() TabLayoutMediator(tabIndicator, slider) { _, _ -> }.attach()
// lifecycleScope.launchWhenCreated { // lifecycleScope.launchWhenCreated {
...@@ -102,6 +109,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -102,6 +109,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
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)
} }
...@@ -212,10 +220,10 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -212,10 +220,10 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
private fun loadData() { private fun loadData() {
try { try {
// sliderAdapter.submitList(customer?.events ?: emptyList())
customer?.customer?.info?.let { customer?.customer?.info?.let {
bn.apply { bn.apply {
// loadSum(it.balance?.amount?.toDouble(),it.balance?.currency)
txtBalance.text = "${it.balance?.amount?.toMoneyFormat()} ${it.balance?.currency}" txtBalance.text = "${it.balance?.amount?.toMoneyFormat()} ${it.balance?.currency}"
pref.userBirthday = customer?.customer?.date_of_birth ?: "" pref.userBirthday = customer?.customer?.date_of_birth ?: ""
it.counters?.let { it.counters?.let {
...@@ -246,18 +254,6 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -246,18 +254,6 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
} }
} }
private fun loadSum(amount:Double?, currency:String?){
lifecycleScope.launchWhenCreated {
var i = 0.0
while (i < amount ?: 0.0){
delay(50)
i += 10000
bn.txtBalance.text = "${i.toMoneyFormat()} $currency"
}
}
}
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
mainViewModel.bottomSheet(true) mainViewModel.bottomSheet(true)
......
...@@ -4,21 +4,23 @@ import android.graphics.Color ...@@ -4,21 +4,23 @@ import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load
import com.mobiuz.app.R import com.mobiuz.app.R
import com.mobiuz.app.databinding.ItemHomeBinding import com.mobiuz.app.databinding.ItemHomeBinding
import com.mobiuz.app.dev.network.model.Events import com.mobiuz.app.dev.network.model.Events
import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.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<Events>? = null private var listener: SingleBlock<String>? = null
private val sliderItems: ArrayList<Events> = ArrayList() private val sliderItems: ArrayList<String> = ArrayList()
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SliderViewHolder { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SliderViewHolder {
return SliderViewHolder( return SliderViewHolder(
ItemHomeBinding.inflate(LayoutInflater.from(parent.context),parent,false) ItemHomeBinding.inflate(LayoutInflater.from(parent.context), parent, false)
) )
} }
...@@ -35,16 +37,22 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() { ...@@ -35,16 +37,22 @@ class SliderAdapter : RecyclerView.Adapter<SliderAdapter.SliderViewHolder>() {
txtDescription.setTextColor(Color.WHITE) txtDescription.setTextColor(Color.WHITE)
txtDescription.text = itemView.context.getString(R.string.misic_all_with_you) txtDescription.text = itemView.context.getString(R.string.misic_all_with_you)
} }
btnSeeMore.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) {
listener?.invoke(CONSTANTS.HTTP_MOBI_UZ)
}
})
} }
} }
} }
fun setOnClickListener(block: SingleBlock<Events>) { fun setOnClickListener(block: SingleBlock<String>) {
listener = block listener = block
} }
fun submitList(ls: List<Events>) { fun submitList(ls: List<String>) {
sliderItems.clear() sliderItems.clear()
sliderItems.addAll(ls) sliderItems.addAll(ls)
notifyDataSetChanged() notifyDataSetChanged()
......
...@@ -5,30 +5,29 @@ import android.view.View ...@@ -5,30 +5,29 @@ 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 com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentActionBinding import com.mobiuz.app.databinding.FragmentSendUssdBinding
import com.mobiuz.app.dev.MainViewModel import com.mobiuz.app.dev.MainViewModel
import com.mobiuz.app.dev.model.InnerData import com.mobiuz.app.dev.model.InnerData
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import me.everything.android.ui.overscroll.OverScrollDecoratorHelper
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class ActionFragment : BaseFragment(R.layout.fragment_action) { class SendUssdFragment : BaseFragment(R.layout.fragment_send_ussd) {
@Inject @Inject
lateinit var pref: SharedPref lateinit var pref: SharedPref
private lateinit var mainViewModel: MainViewModel private lateinit var mainViewModel: MainViewModel
private var _bn: FragmentActionBinding? = null private var _bn: FragmentSendUssdBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private lateinit var adapter : ActionAdapter private lateinit var adapter : UssdAdapter
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
adapter = ActionAdapter(pref.language) adapter = UssdAdapter(pref.language)
mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java] mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java]
arguments?.let { arguments?.let {
val arg = it.getString(CONSTANTS.SERVICE) ?: "" val arg = it.getString(CONSTANTS.SERVICE) ?: ""
...@@ -40,7 +39,7 @@ class ActionFragment : BaseFragment(R.layout.fragment_action) { ...@@ -40,7 +39,7 @@ class ActionFragment : BaseFragment(R.layout.fragment_action) {
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentActionBinding.bind(view) _bn = FragmentSendUssdBinding.bind(view)
setUpUI() setUpUI()
collects() collects()
......
...@@ -11,7 +11,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick ...@@ -11,7 +11,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.SingleBlock import com.mobiuz.app.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.getCurrentName import com.mobiuz.app.dev.utils.extensions.getCurrentName
class ServiceAdapter(val lang: String) : RecyclerView.Adapter<ServiceAdapter.VHolder>() { class ServicesAdapter(val lang: String) : RecyclerView.Adapter<ServicesAdapter.VHolder>() {
private val list: ArrayList<ServiceData> by lazy { ArrayList() } private val list: ArrayList<ServiceData> by lazy { ArrayList() }
private var listener: SingleBlock<ServiceData>? = null private var listener: SingleBlock<ServiceData>? = null
......
...@@ -10,32 +10,31 @@ import androidx.navigation.fragment.NavHostFragment ...@@ -10,32 +10,31 @@ 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 com.mobiuz.app.R
import com.mobiuz.app.databinding.FragmentServiceBinding import com.mobiuz.app.databinding.FragmentServicesBinding
import com.mobiuz.app.dev.MainViewModel import com.mobiuz.app.dev.MainViewModel
import com.mobiuz.app.dev.model.ServiceData import com.mobiuz.app.dev.model.ServiceData
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.ui.base.BaseFragment import com.mobiuz.app.dev.ui.base.BaseFragment
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import me.everything.android.ui.overscroll.OverScrollDecoratorHelper
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class ServiceFragment : BaseFragment(R.layout.fragment_service) { class ServicesFragment : BaseFragment(R.layout.fragment_services) {
@Inject @Inject
lateinit var pref: SharedPref lateinit var pref: SharedPref
private lateinit var mainViewModel: MainViewModel private lateinit var mainViewModel: MainViewModel
private var _bn: FragmentServiceBinding? = null private var _bn: FragmentServicesBinding? = null
private val bn get() = _bn ?: throw NullPointerException("cannot inflate") private val bn get() = _bn ?: throw NullPointerException("cannot inflate")
private lateinit var adapter: ServiceAdapter private lateinit var adapter: ServicesAdapter
private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) } private val navController: NavController by lazy(LazyThreadSafetyMode.NONE) { NavHostFragment.findNavController(this) }
private var type = "" private var type = ""
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java] mainViewModel = ViewModelProvider(requireActivity())[MainViewModel::class.java]
adapter = ServiceAdapter(pref.language) adapter = ServicesAdapter(pref.language)
arguments?.let { arguments?.let {
type = it.getString(CONSTANTS.TYPE_SERVICE) ?: "" type = it.getString(CONSTANTS.TYPE_SERVICE) ?: ""
...@@ -43,7 +42,7 @@ class ServiceFragment : BaseFragment(R.layout.fragment_service) { ...@@ -43,7 +42,7 @@ class ServiceFragment : BaseFragment(R.layout.fragment_service) {
} }
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
_bn = FragmentServiceBinding.bind(view) _bn = FragmentServicesBinding.bind(view)
setUpUI() setUpUI()
collects() collects()
......
...@@ -2,17 +2,16 @@ package com.mobiuz.app.dev.ui.service ...@@ -2,17 +2,16 @@ package com.mobiuz.app.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.fragment.app.FragmentActivity
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 com.mobiuz.app.dev.model.ServiceData
import com.mobiuz.app.dev.ui.global.CONSTANTS import com.mobiuz.app.dev.ui.global.CONSTANTS
class FragmentPagerAdapter(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
override fun createFragment(position: Int): Fragment { override fun createFragment(position: Int): Fragment {
return ActionFragment().apply { return SendUssdFragment().apply {
this.arguments = bundleOf(CONSTANTS.SERVICE to Gson().toJson(service.data[position])) this.arguments = bundleOf(CONSTANTS.SERVICE to Gson().toJson(service.data[position]))
} }
} }
......
...@@ -11,7 +11,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick ...@@ -11,7 +11,7 @@ import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.SingleBlock import com.mobiuz.app.dev.utils.extensions.SingleBlock
import com.mobiuz.app.dev.utils.extensions.getCurrentName import com.mobiuz.app.dev.utils.extensions.getCurrentName
class ActionAdapter(val lang: String) : RecyclerView.Adapter<ActionAdapter.VHolder>() { class UssdAdapter(val lang: String) : RecyclerView.Adapter<UssdAdapter.VHolder>() {
private val list: ArrayList<UssdData> by lazy { ArrayList() } private val list: ArrayList<UssdData> by lazy { ArrayList() }
private var listener: SingleBlock<UssdData>? = null private var listener: SingleBlock<UssdData>? = null
......
package com.mobiuz.app.dev.ui.service package com.mobiuz.app.dev.ui.service
import android.Manifest import android.Manifest
import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.telephony.PhoneStateListener
import android.telephony.TelephonyManager
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -17,11 +13,9 @@ import com.mobiuz.app.databinding.BottomSheetUssdBinding ...@@ -17,11 +13,9 @@ import com.mobiuz.app.databinding.BottomSheetUssdBinding
import com.mobiuz.app.dev.model.SharedPref import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.model.UssdData import com.mobiuz.app.dev.model.UssdData
import com.mobiuz.app.dev.ui.global.ButtonClick import com.mobiuz.app.dev.ui.global.ButtonClick
import com.mobiuz.app.dev.utils.extensions.getCurrentName
import com.mobiuz.app.dev.utils.extensions.checkPermission import com.mobiuz.app.dev.utils.extensions.checkPermission
import com.mobiuz.app.dev.utils.extensions.customLog import com.mobiuz.app.dev.utils.extensions.getCurrentName
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
...@@ -53,7 +47,7 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() { ...@@ -53,7 +47,7 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() {
txtDescription.text = dec txtDescription.text = dec
txtCode.text = this.code txtCode.text = this.code
} }
btnZapros.setOnClickListener(object : ButtonClick() { btnSent.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { override fun onSingleClick(v: View?) {
pref.isShowPin = false pref.isShowPin = false
checkPermission(Manifest.permission.CALL_PHONE) { checkPermission(Manifest.permission.CALL_PHONE) {
...@@ -62,8 +56,8 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() { ...@@ -62,8 +56,8 @@ class UssdBottomSheetDialog(val data: UssdData) : BottomSheetDialogFragment() {
pref.isShowPin = false pref.isShowPin = false
var ussd = "" var ussd = ""
data.code.forEach { data.code.forEach {
if(it == '#') ussd += Uri.encode("#") if (it == '#') ussd += Uri.encode("#")
else ussd+= it else ussd += it
} }
val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:$ussd")) val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:$ussd"))
startActivity(intent) startActivity(intent)
......
...@@ -27,7 +27,7 @@ class UssdFragment : BaseFragment(R.layout.fragment_ussd) { ...@@ -27,7 +27,7 @@ class UssdFragment : BaseFragment(R.layout.fragment_ussd) {
@Inject @Inject
lateinit var pref: SharedPref lateinit var pref: SharedPref
private var service: ServiceData? = null private var service: ServiceData? = null
private lateinit var adapter: FragmentPagerAdapter private lateinit var adapter: ServicesPagerAdapter
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?) {
...@@ -63,7 +63,7 @@ class UssdFragment : BaseFragment(R.layout.fragment_ussd) { ...@@ -63,7 +63,7 @@ class UssdFragment : BaseFragment(R.layout.fragment_ussd) {
tabLayout.tabMode = MODE_SCROLLABLE tabLayout.tabMode = MODE_SCROLLABLE
} }
adapter = FragmentPagerAdapter(this@UssdFragment, it) adapter = ServicesPagerAdapter(this@UssdFragment, it)
viewPager.adapter = adapter viewPager.adapter = adapter
TabLayoutMediator(bn.tabLayout, bn.viewPager) { tab, pos -> TabLayoutMediator(bn.tabLayout, bn.viewPager) { tab, pos ->
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white100"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:fitsSystemWindows="false">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/test_container"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph_test"
tools:context=".dev.ui.auth.AuthActivity"/>
</LinearLayout>
\ No newline at end of file
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
android:textSize="14sp" /> android:textSize="14sp" />
<Button <Button
android:id="@+id/btn_zapros" android:id="@+id/btn_sent"
style="@style/ButtonPrimary" style="@style/ButtonPrimary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
android:orientation="vertical" android:orientation="vertical"
tools:context=".dev.BillingFragment"> tools:context=".dev.ui.home.BillingFragment">
<com.google.android.material.appbar.MaterialToolbar <com.google.android.material.appbar.MaterialToolbar
......
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
android:layout_weight="1.5"> android:layout_weight="1.5">
<Button <Button
android:id="@+id/btn_login" android:id="@+id/btn_check_phone"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
......
This diff is collapsed.
...@@ -144,7 +144,7 @@ ...@@ -144,7 +144,7 @@
app:layout_constraintTop_toBottomOf="@id/txt_check_confirm" /> app:layout_constraintTop_toBottomOf="@id/txt_check_confirm" />
<Button <Button
android:id="@+id/btn_login" android:id="@+id/btn_register"
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"
...@@ -168,6 +168,6 @@ ...@@ -168,6 +168,6 @@
android:textColor="@color/grey80" android:textColor="@color/grey80"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn_login" /> app:layout_constraintTop_toBottomOf="@id/btn_register" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -172,12 +172,12 @@ ...@@ -172,12 +172,12 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_login" /> app:layout_constraintTop_toBottomOf="@+id/btn_verification" />
<Button <Button
android:id="@+id/btn_login" android:id="@+id/btn_verification"
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"
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
<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"
app:cardCornerRadius="4dp"> app:cardCornerRadius="4dp">
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<Button <Button
android:id="@+id/btn_zapros" android:id="@+id/btn_to_offline_activity"
style="@style/ButtonPrimary" style="@style/ButtonPrimary"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
android:textSize="14sp" /> android:textSize="14sp" />
<TextView <TextView
android:id="@+id/btn_otmena" android:id="@+id/btn_cancel"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
......
...@@ -34,8 +34,20 @@ ...@@ -34,8 +34,20 @@
tools:layout="@layout/fragment_biometric" /> tools:layout="@layout/fragment_biometric" />
<fragment <fragment
android:id="@+id/myVerificationFragment" android:id="@+id/verificationFragment"
android:name="com.mobiuz.app.dev.ui.auth.verification.VerificationFragment" android:name="com.mobiuz.app.dev.ui.auth.verification.VerificationFragment"
android:label="MyVerificationFragment" /> android:label="MyVerificationFragment" />
<fragment
android:id="@+id/mainFragment"
android:name="com.mobiuz.app.dev.MainFragment"
android:label="MainFragment" >
<deepLink
android:id="@+id/deepLink"
android:autoVerify="true"
app:uri="www.example.com/user/{userName}" />
<argument
android:name="userName"
app:argType="string" />
</fragment>
</navigation> </navigation>
\ No newline at end of file
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<fragment <fragment
android:id="@+id/billingFragment" android:id="@+id/billingFragment"
android:name="com.mobiuz.app.dev.BillingFragment" android:name="com.mobiuz.app.dev.ui.home.BillingFragment"
android:label="fragment_billing" android:label="fragment_billing"
tools:layout="@layout/fragment_billing" /> tools:layout="@layout/fragment_billing" />
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<fragment <fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_service" tools:layout="@layout/fragment_services"
android:name="com.mobiuz.app.dev.ui.service.ServiceFragment" android:name="com.mobiuz.app.dev.ui.service.ServicesFragment"
android:label="MotionFragment" /> android:label="MotionFragment" />
<fragment <fragment
android:id="@+id/ussdFragment" android:id="@+id/ussdFragment"
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
<fragment <fragment
android:id="@+id/serviceFragment" android:id="@+id/serviceFragment"
tools:layout="@layout/fragment_service" tools:layout="@layout/fragment_services"
android:name="com.mobiuz.app.dev.ui.service.ServiceFragment" android:name="com.mobiuz.app.dev.ui.service.ServicesFragment"
android:label="MotionFragment" /> android:label="MotionFragment" />
<fragment <fragment
android:id="@+id/ussdFragment" android:id="@+id/ussdFragment"
......
<?xml version="1.0" encoding="utf-8"?>
<navigation 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:id="@+id/nav_graph_test"
app:startDestination="@id/mainFragment2">
<fragment
android:id="@+id/mainFragment2"
android:name="com.mobiuz.app.dev.MainFragment"
android:label="MainFragment" />
<fragment
android:id="@+id/installPinFragment"
android:name="com.mobiuz.app.dev.ui.auth.pin.InstallPinFragment"
android:label="PinFragment"
tools:layout="@layout/fragment_install_pin" />
<fragment
android:id="@+id/languageFragment"
android:name="com.mobiuz.app.dev.ui.settings.LanguageFragment"
android:label="fragment_language"
tools:layout="@layout/fragment_language" />
<fragment
android:id="@+id/supportFragment"
tools:layout="@layout/fragment_support"
android:name="com.mobiuz.app.dev.ui.settings.SupportFragment"
android:label="SupportFragment" />
<fragment
android:id="@+id/securityFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.SecurityFragment"
android:label="fragment_safety"
tools:layout="@layout/fragment_security" />
<fragment
android:id="@+id/profileFragment"
android:name="com.mobiuz.app.dev.ui.settings.ProfileFragment"
android:label="fragment_profile"
tools:layout="@layout/fragment_profile" />
<fragment
android:id="@+id/changePasswordFragment"
android:name="com.mobiuz.app.dev.ui.settings.security.ChangePasswordFragment"
android:label="CurrentPasswordFragment" />
<fragment
android:id="@+id/billingFragment"
android:name="com.mobiuz.app.dev.ui.home.BillingFragment"
android:label="fragment_billing"
tools:layout="@layout/fragment_billing" />
<fragment
android:id="@+id/pinFragment"
tools:layout="@layout/fragment_pin"
android:name="com.mobiuz.app.dev.ui.global.PinFragment"
android:label="FullScreenFragment" />
</navigation>
\ No newline at end of file
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