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:
13
.idea/deploymentTargetDropDown.xml
generated
13
.idea/deploymentTargetDropDown.xml
generated
@@ -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" />
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user