From b3df2689d96a3ea5325fdbde94f3da5689450e8d Mon Sep 17 00:00:00 2001 From: AdityaGaikwad Date: Wed, 28 Aug 2024 20:41:02 +0530 Subject: [PATCH] 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 --- .idea/deploymentTargetDropDown.xml | 13 ----- .../sidebar/profile/UserProfileActivity.kt | 7 ++- .../com/woka/home/viewmodels/HomeViewModel.kt | 13 ++++- .../java/com/woka/home/views/HomeActivity.kt | 29 +++++++++- .../onboard/fragments/GetEmailFragment.kt | 56 +++++++++++++++++-- .../woka/onboard/fragments/SignUpFragment.kt | 6 +- app/src/main/res/values/arrays.xml | 8 --- app/src/main/res/values/strings.xml | 1 + 8 files changed, 101 insertions(+), 32 deletions(-) delete mode 100644 app/src/main/res/values/arrays.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index ff98105..7b6e97d 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -4,19 +4,6 @@ - - - - - - - - - - - - - diff --git a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt index ef6391b..7767517 100644 --- a/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt +++ b/app/src/main/java/com/woka/home/sidebar/profile/UserProfileActivity.kt @@ -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 diff --git a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt index 5063834..14ca837 100644 --- a/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt +++ b/app/src/main/java/com/woka/home/viewmodels/HomeViewModel.kt @@ -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) diff --git a/app/src/main/java/com/woka/home/views/HomeActivity.kt b/app/src/main/java/com/woka/home/views/HomeActivity.kt index fda6eec..0574878 100644 --- a/app/src/main/java/com/woka/home/views/HomeActivity.kt +++ b/app/src/main/java/com/woka/home/views/HomeActivity.kt @@ -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) } } } diff --git a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt index 8c01366..35bec77 100644 --- a/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/GetEmailFragment.kt @@ -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(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 diff --git a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt index ed933c1..a1f2f40 100644 --- a/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt +++ b/app/src/main/java/com/woka/onboard/fragments/SignUpFragment.kt @@ -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)) } diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml deleted file mode 100644 index f2acf57..0000000 --- a/app/src/main/res/values/arrays.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - Select a user type - I am above 16 years - I am below 16 years - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d278728..e6f1626 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -312,4 +312,5 @@ Unlock enhanced features and improved performance with our latest app update. Please select a subject BLOGS + Password is required \ No newline at end of file