Commit a4a65342 authored by shohboz's avatar shohboz

[UPD] MUS-107 Feature, updated home page add drawer

parent a353d31c
package com.mobiuz.app.dev package com.mobiuz.app.dev
import android.Manifest
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.os.Bundle
...@@ -17,6 +18,7 @@ import com.mobiuz.app.dev.ui.global.CONSTANTS ...@@ -17,6 +18,7 @@ import com.mobiuz.app.dev.ui.global.CONSTANTS
import com.mobiuz.app.dev.ui.global.FullScreenDialog import com.mobiuz.app.dev.ui.global.FullScreenDialog
import com.mobiuz.app.dev.utils.extensions.customLog import com.mobiuz.app.dev.utils.extensions.customLog
import com.mobiuz.app.dev.utils.extensions.setupWithNavController import com.mobiuz.app.dev.utils.extensions.setupWithNavController
import com.mobiuz.app.utils.checkPermission
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject import javax.inject.Inject
...@@ -40,7 +42,7 @@ class MainActivity : AppCompatActivity() { ...@@ -40,7 +42,7 @@ class MainActivity : AppCompatActivity() {
_bn = ActivityMainBinding.inflate(layoutInflater) _bn = ActivityMainBinding.inflate(layoutInflater)
setContentView(bn.root) setContentView(bn.root)
window.statusBarColor = Color.TRANSPARENT // window.statusBarColor = Color.RED
FirebaseApp.initializeApp(this) FirebaseApp.initializeApp(this)
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this) mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)
...@@ -54,22 +56,22 @@ class MainActivity : AppCompatActivity() { ...@@ -54,22 +56,22 @@ class MainActivity : AppCompatActivity() {
setupBottomNavigationBar() setupBottomNavigationBar()
} }
intent?.let { // intent?.let {
val arg = it.getStringExtra(CONSTANTS.FIRST) ?: "" // val arg = it.getStringExtra(CONSTANTS.FIRST) ?: ""
if (arg.isEmpty()) { // if (arg.isEmpty()) {
val dialog = FullScreenDialog() // val dialog = FullScreenDialog()
dialog.setOnPinDoneListener { // dialog.setOnPinDoneListener {
pref.setUserToken("") // pref.setUserToken("")
pref.isRegistered = false // pref.isRegistered = false
pref.pin_code = "" // pref.pin_code = ""
val intent = Intent(this, AuthActivity::class.java) // val intent = Intent(this, AuthActivity::class.java)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME // intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
startActivity(intent) // startActivity(intent)
finish() // finish()
} // }
dialog.show(supportFragmentManager, "tag") // dialog.show(supportFragmentManager, "tag")
} // }
} // }
customLog("token: ${pref.getUserToken()}") customLog("token: ${pref.getUserToken()}")
} }
......
package com.mobiuz.app.dev.network.repository package com.mobiuz.app.dev.network.repository
import android.content.Context
import com.mobiuz.app.dev.model.SharedPref
import com.mobiuz.app.dev.network.api.ApiService import com.mobiuz.app.dev.network.api.ApiService
import com.mobiuz.app.dev.network.model.Customer
import com.mobiuz.app.dev.network.model.UiStateObject
import com.mobiuz.app.dev.utils.extensions.userMessage
import dagger.hilt.android.qualifiers.ApplicationContext
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
@Singleton @Singleton
class MainRepository @Inject constructor( class MainRepository @Inject constructor(
private val apiService: ApiService private val apiService: ApiService,
) private val pref: SharedPref,
\ No newline at end of file @ApplicationContext val context: Context
){
suspend fun mainIndex(): UiStateObject<Customer> {
return try {
val res = apiService.mainIndex()
when {
res.status && res.data != null -> {
UiStateObject.SUCCESS(res.data!!)
}
res.errors.isNotEmpty() -> {
var message = ""
res.errors.forEach {
message += "${it.message}\n"
}
UiStateObject.ERROR(message)
}
else -> UiStateObject.ERROR(res.message)
}
} catch (e: Exception) {
UiStateObject.ERROR(e.userMessage(context))
}
}
}
\ No newline at end of file
package com.mobiuz.app.dev.ui.auth.pin
import android.content.Context
import android.util.AttributeSet
import com.makeramen.roundedimageview.RoundedImageView
class HomeImageView(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() * 0.794666667).toInt())
}
}
\ No newline at end of file
...@@ -2,8 +2,15 @@ package com.mobiuz.app.dev.ui.home ...@@ -2,8 +2,15 @@ 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.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.ScrollCaptureCallback
import android.view.View import android.view.View
import android.view.ViewTreeObserver
import androidx.core.view.GravityCompat
import androidx.core.view.isVisible
import androidx.core.widget.NestedScrollView
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.mobiuz.app.R import com.mobiuz.app.R
...@@ -46,22 +53,53 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -46,22 +53,53 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
} }
override fun setUpUI() { override fun setUpUI() {
bn.apply { bn.apply {
btnMenu.setOnClickListener(object : ButtonClick() { btnExit.setOnClickListener {
override fun onSingleClick(v: View?) { showCustomExitDialog {
showCustomExitDialog { pref.setUserToken("")
pref.setUserToken("") pref.isRegistered = false
pref.isRegistered = false pref.pin_code = ""
pref.pin_code = "" val intent = Intent(requireContext(), AuthActivity::class.java)
val intent = Intent(requireContext(), AuthActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_TASK_ON_HOME startActivity(intent)
startActivity(intent) requireActivity().finish()
requireActivity().finish()
}
} }
}) }
btnAddSum.setOnClickListener(object : ButtonClick() {
override fun onSingleClick(v: View?) { btnLanguage.setOnClickListener {
}
btnSafety.setOnClickListener {
}
btnSupport.setOnClickListener {
}
}
bn.content.apply {
toolbar.setNavigationOnClickListener {
bn.drawerLayout.openDrawer(GravityCompat.START)
}
nestedScrollView.setOnScrollChangeListener(object : NestedScrollView.OnScrollChangeListener{
override fun onScrollChange(v: NestedScrollView?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int) {
Log.e("SSS","scrollX_"+scrollX+"_scrollY_"+scrollY+"_oldScrollX_"+oldScrollX+"_oldScrollY_"+oldScrollY)
if(scrollY > 100){
toolbarInsideLayout.isVisible = true
// requireActivity().window.statusBarColor = Color.RED
// toolbar.setBackgroundColor(resources.getColor(R.color.primary100))
}
if(scrollY < 90){
toolbarInsideLayout.isVisible = false
// requireActivity().window.statusBarColor = Color.TRANSPARENT
// toolbar.setBackgroundColor(Color.TRANSPARENT)
}
} }
}) })
...@@ -81,10 +119,6 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -81,10 +119,6 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
showProgressDialog(false) showProgressDialog(false)
// showCustomDialog(it.message,false){} // showCustomDialog(it.message,false){}
} }
is UiStateObject.ERRORS -> {
showProgressDialog(false)
}
is UiStateObject.LOADING -> { is UiStateObject.LOADING -> {
showProgressDialog(true) showProgressDialog(true)
} }
...@@ -99,7 +133,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -99,7 +133,7 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
try { try {
customLog("customer:$customer") customLog("customer:$customer")
customer?.customer?.info?.let { customer?.customer?.info?.let {
bn.apply { bn.content.apply {
txtBalance.text = "${it.balance?.amount?.toMoneyFormat()} ${it.balance?.currency}" txtBalance.text = "${it.balance?.amount?.toMoneyFormat()} ${it.balance?.currency}"
it.counters.let { it.counters.let {
txtCountMb.text = it?.BYTE?.value?.toMoneyFormat() ?: "0" txtCountMb.text = it?.BYTE?.value?.toMoneyFormat() ?: "0"
...@@ -111,11 +145,15 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) { ...@@ -111,11 +145,15 @@ class HomeFragment : BaseFragment(R.layout.fragment_home) {
txtCountSms.text = it?.ITEM?.value?.toMoneyFormat() ?: "0" txtCountSms.text = it?.ITEM?.value?.toMoneyFormat() ?: "0"
txtTypeSms.text = it?.ITEM?.unit ?: "sms" txtTypeSms.text = it?.ITEM?.unit ?: "sms"
} }
bn.header.txtUserName.text = customer?.customer?.name ?: ""
txtTarif.text = customer?.customer?.tarifi?.name ?: getString(R.string.my_tarif)
txtMyNumber.text = pref.userPhone txtMyNumber.text = pref.userPhone
toolbarMyNumber.text = pref.userPhone
bn.header.txtUserPhone.text = pref.userPhone
} }
} }
} catch (e: Exception) { } catch (e: Exception) {
showCustomDialog(e.userMessage(requireContext()), false) {} // showSnackMessage(it.message)
} }
......
...@@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope ...@@ -5,6 +5,7 @@ import androidx.lifecycle.viewModelScope
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.network.repository.AuthRepository import com.mobiuz.app.dev.network.repository.AuthRepository
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
...@@ -13,7 +14,7 @@ import javax.inject.Inject ...@@ -13,7 +14,7 @@ import javax.inject.Inject
@HiltViewModel @HiltViewModel
class HomeViewModel @Inject constructor( class HomeViewModel @Inject constructor(
private val repository: AuthRepository private val repository: MainRepository
) : ViewModel() { ) : ViewModel() {
private val _mainIndexUiState = MutableStateFlow<UiStateObject<Customer>>(UiStateObject.EMPTY) private val _mainIndexUiState = MutableStateFlow<UiStateObject<Customer>>(UiStateObject.EMPTY)
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:background="@color/light" android:background="@color/grey20"
android:layout_height="1dp"/> android:layout_height="1dp"/>
<TextView <TextView
......
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