Bug fixes:

User type spinner in GetEmailFragment hint text color changes.

Handled reloading live streaming w.r.t. network availability on Home screen.

No selection of gender on UserProfileActivity

Empty password check in SignUpFragment
This commit is contained in:
2024-08-28 20:41:02 +05:30
parent 234d0af32e
commit b3df2689d9
8 changed files with 101 additions and 32 deletions

View File

@@ -4,19 +4,6 @@
<value>
<entry key="app">
<State>
<runningDeviceTargetSelectedWithDropDown>
<Target>
<type value="RUNNING_DEVICE_TARGET" />
<deviceKey>
<Key>
<type value="SERIAL_NUMBER" />
<value value="adb-RZCW41EJRPN-wiByj3._adb-tls-connect._tcp." />
</Key>
</deviceKey>
</Target>
</runningDeviceTargetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-08-27T13:50:53.152663Z" />
<multipleDevicesSelectedInDropDown value="true" />
<targetsSelectedWithDialog>
<Target>
<type value="QUICK_BOOT_TARGET" />

View File

@@ -195,8 +195,11 @@ class UserProfileActivity : WokaBaseActivity() {
email.text = userData.email
selectGender(
if (userData.gender_data?.id == 2) Gender.MALE
else Gender.FEMALE
when (userData.gender_data?.id) {
2 -> Gender.MALE
1 -> Gender.FEMALE
else -> Gender.NONE
}
)
birthdate.text = userData.birthdate

View File

@@ -42,9 +42,11 @@ class HomeViewModel : ViewModel() {
var playerReadyCallback: (() -> Unit)? = null
var player: Player? = null
private var errorRetryCount = ERROR_RETRY_COUNT
var errorRetryCount = ERROR_RETRY_COUNT
private var liveUrl: String? = null
fun initPlayer(context: Context, liveUrl: String) {
this.liveUrl = liveUrl
player = ExoPlayer.Builder(context).build()
player?.volume = 0f
@@ -90,6 +92,15 @@ class HomeViewModel : ViewModel() {
player?.playWhenReady = true
player?.prepare()
}
fun reloadPlayer(){
liveUrl?.let {
Log.d(TAG, "reloadPlayer: ")
player?.setMediaItem(MediaItem.fromUri(it))
player?.playWhenReady = true
player?.prepare()
}
}
fun sendLocaleChangeEvent(locale: String) {
_localeChangeLiveData.postValue(locale)

View File

@@ -9,6 +9,10 @@ import android.content.res.ColorStateList
import android.graphics.Color
import android.graphics.RenderEffect
import android.graphics.Shader
import android.net.ConnectivityManager
import android.net.ConnectivityManager.NetworkCallback
import android.net.Network
import android.net.NetworkRequest
import android.os.Build
import android.os.Bundle
import android.view.HapticFeedbackConstants
@@ -89,6 +93,8 @@ class HomeActivity : WokaBaseActivity(),
private val clickHelper = ClicksHelper
private lateinit var networkCallback: NetworkCallback
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
@@ -108,6 +114,23 @@ class HomeActivity : WokaBaseActivity(),
progressView = ProgressView(this)
decisionDialog = DecisionDialog(this)
networkCallback = object : NetworkCallback(){
override fun onAvailable(network: Network) {
super.onAvailable(network)
runOnUiThread {
if (viewModel.errorRetryCount == 0){
viewModel.reloadPlayer()
}
}
}
}
(getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager).registerNetworkCallback(
NetworkRequest.Builder()
.build(),
networkCallback
)
setObservers()
initViews()
@@ -163,6 +186,8 @@ class HomeActivity : WokaBaseActivity(),
}catch (e: Exception){
// do nothing
}
(getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager).unregisterNetworkCallback(networkCallback)
}
private fun setObservers(){
@@ -512,10 +537,10 @@ class HomeActivity : WokaBaseActivity(),
if (!init){
binding.homeDrawer.closeDrawer(GravityCompat.END)
viewModel.sendLocaleChangeEvent(locale)
binding.root.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY)
}
viewModel.sendLocaleChangeEvent(locale)
}
}
}

View File

@@ -1,12 +1,16 @@
package com.woka.onboard.fragments
import android.graphics.Color
import android.os.Bundle
import android.util.Patterns
import android.view.LayoutInflater
import android.view.View
import android.view.View.VISIBLE
import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter
import android.widget.TextView
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController
@@ -199,17 +203,59 @@ class GetEmailFragment : Fragment() {
private fun initViews() {
binding.apply {
if (isForgotUserName){
ArrayAdapter.createFromResource(
requireContext(),
R.array.user_type_selection,
android.R.layout.simple_spinner_item
).also { adapter ->
object : ArrayAdapter<String>(requireContext(),
android.R.layout.simple_spinner_item, mutableListOf(
"Select a user type",
"I am above 16 years",
"I am below 16 years"
)
){
override fun getDropDownView(
position: Int,
convertView: View?,
parent: ViewGroup
): View {
val view = super.getDropDownView(position, convertView, parent)
if (view is TextView){
view.setTextColor(
if (position == 0){
Color.GRAY
}else{
Color.BLACK
}
)
}
return view
}
}.also {adapter ->
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
userTypeSpinner.adapter = adapter
}
title.text = getString(R.string.forgot_user_name)
userTypeSelectionView.show()
userTypeSpinner.onItemSelectedListener = object : OnItemSelectedListener{
override fun onItemSelected(
parent: AdapterView<*>?,
view: View?,
position: Int,
id: Long
) {
if (view is TextView){
view.setTextColor(
if (position == 0){
Color.GRAY
}else{
Color.BLACK
}
)
}
}
override fun onNothingSelected(parent: AdapterView<*>?) {}
}
}
else if (isResetPasswordIntent) {
// scenario 3

View File

@@ -176,7 +176,11 @@ class SignUpFragment : Fragment() {
name.error = getString(R.string.required)
}
if (password.text != null && password.text!!.length < 6) {
if (password.text != null && password.text!!.toString().trim().isEmpty()){
allOkay = false
toast(getString(R.string.password_is_required))
}
else if (password.text != null && password.text!!.length < 6) {
allOkay = false
toast(getString(R.string.password_must_be_at_least_6_characters))
}

View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="user_type_selection" >
<item>Select a user type</item>
<item>I am above 16 years</item>
<item>I am below 16 years</item>
</string-array>
</resources>

View File

@@ -312,4 +312,5 @@
<string name="unlock_enhanced_features_and_improved_performance_with_our_latest_app_update">Unlock enhanced features and improved performance with our latest app update.</string>
<string name="please_select_a_subject">Please select a subject</string>
<string name="blogs_all_caps">BLOGS</string>
<string name="password_is_required">Password is required</string>
</resources>