Completed flow for update screen. Implemented skipped version by user. Tested the flow.

Resolved bugs by client : Issue 1 to 19

Resolved bugs on Freeds-camp :
Ui and functionality bugs : TC 01 to 41
This commit is contained in:
2024-08-21 21:02:56 +05:30
parent 812d8c19c1
commit fbce3f22fa
33 changed files with 226 additions and 104 deletions

View File

@@ -414,6 +414,7 @@ class AudioBooksActivity : WokaBaseActivity() {
}
fav.isSelected = audioBookData.mark_as_favourite == true
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
like.isSelected = audioBookData.is_liked == true
likeCount.text = "${audioBookData.likes_count}"
@@ -537,6 +538,7 @@ class AudioBooksActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
ClicksHelper.upsertClickEvent(ContentType.AUDIO, audioBookData.id)
}

View File

@@ -329,7 +329,7 @@ class Home1Fragment : Fragment() {
"translationX",
resources.displayMetrics.widthPixels - binding.tvView.width - (2 * endMargin)
).apply {
duration = 12000
duration = 7000
repeatCount = ValueAnimator.INFINITE
repeatMode = ValueAnimator.REVERSE
start()
@@ -348,7 +348,7 @@ class Home1Fragment : Fragment() {
"translationX",
-cloud1Width + resources.displayMetrics.widthPixels
).apply {
duration = 120_000
duration = 90_000
repeatCount = ValueAnimator.INFINITE
repeatMode = ValueAnimator.REVERSE
start()
@@ -367,7 +367,7 @@ class Home1Fragment : Fragment() {
"translationX",
cloud2Width - resources.displayMetrics.widthPixels
).apply {
duration = 120_000
duration = 90_000
repeatCount = ValueAnimator.INFINITE
repeatMode = ValueAnimator.REVERSE
start()

View File

@@ -151,6 +151,8 @@ class UserProfileActivity : WokaBaseActivity() {
gender_data = genderData
)
userPrefs?.updateUserData(userData)
binding.fullName.clearFocus()
}
}
}
@@ -161,7 +163,7 @@ class UserProfileActivity : WokaBaseActivity() {
var allOkay = true
binding.apply {
if (fullName.text.isEmpty()){
if (fullName.text.trim().isEmpty()){
allOkay = false
fullName.error = getString(R.string.required)
}

View File

@@ -191,23 +191,27 @@ class SupportActivity : WokaBaseActivity() {
message.error = null
if (userPrefs?.userType == UserType.GUEST){
if (name.text.isEmpty()){
if (name.text.trim().isEmpty()){
name.error = getString(R.string.required)
allOkay = false
}
if (!Patterns.EMAIL_ADDRESS.matcher(email.text).matches()){
if (email.text.trim().isEmpty()){
allOkay = false
email.error = getString(R.string.required)
}
else if (!Patterns.EMAIL_ADDRESS.matcher(email.text).matches()){
email.error = getString(R.string.invalid_email)
allOkay = false
}
}
if (subjectSpinner.selectedItemId == 0L){
toast("Please select a subject")
toast(getString(R.string.please_select_a_subject))
allOkay = false
}
if (message.text.isEmpty()){
if (message.text.trim().isEmpty()){
message.error = getString(R.string.required)
allOkay = false
}

View File

@@ -279,6 +279,7 @@ class KaraokeActivity : WokaBaseActivity() {
}
fav.isSelected = karaokeData.mark_as_favourite == true
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
like.isSelected = karaokeData.is_liked == true
likeCount.text = "${karaokeData.likes_count}"
@@ -401,6 +402,7 @@ class KaraokeActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
ClicksHelper.upsertClickEvent(ContentType.KARAOKE_VIDEO, karaokeData.id)
}

View File

@@ -2,6 +2,7 @@ package com.woka.onboard.fragments
import android.os.Bundle
import android.util.Log
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.View.GONE
@@ -24,6 +25,7 @@ import com.woka.onboard.mvvm.OnboardViewModel
import com.woka.utils.CHILD_TYPE
import com.woka.utils.PARENT_TYPE
import com.woka.utils.ProgressView
import com.woka.utils.TAG
import com.woka.utils.closeKeyboard
import com.woka.utils.toast
import kotlinx.coroutines.launch
@@ -231,7 +233,6 @@ class GetCodeFragment : Fragment() {
val time = "%02d:%02d".format(rms / 60, rms % 60)
val text =
"${getString(R.string.otp_is_valid_for)} $time ${getString(R.string.min)}"
Log.d("aditya_testing", "onTick: $it")
binding.countdown.text = text
}
}
@@ -257,35 +258,55 @@ class GetCodeFragment : Fragment() {
}
et1.addTextChangedListener {
if (it?.isEmpty() == false) {
if (it?.length == 1) {
et2.requestFocus()
}
}
et2.addTextChangedListener {
if (it?.isEmpty() == false) {
if (it?.length == 1) {
et3.requestFocus()
} else {
et1.requestFocus()
}
}
et2.setOnKeyListener { _, keyCode, event ->
if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL && et2.text.isEmpty()) {
et1.text = null
et1.requestFocus()
return@setOnKeyListener true
}
false
}
et3.addTextChangedListener {
if (it?.isEmpty() == false) {
if (it?.length == 1) {
et4.requestFocus()
} else {
et2.requestFocus()
}
}
et3.setOnKeyListener { _, keyCode, event ->
if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL && et3.text.isEmpty()) {
et2.text = null
et2.requestFocus()
return@setOnKeyListener true
}
false
}
et4.addTextChangedListener {
if (it?.isEmpty() == false) {
// close keyboard
if (it?.length == 1) {
activity?.closeKeyboard()
} else {
et3.requestFocus()
}
}
et4.setOnKeyListener { _, keyCode, event ->
if (event.action == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DEL && et4.text.isEmpty()) {
et3.text = null
et3.requestFocus()
return@setOnKeyListener true
}
false
}
}
}

View File

@@ -242,7 +242,10 @@ class GetEmailFragment : Fragment() {
}
}else{
// email check
if (!Patterns.EMAIL_ADDRESS.matcher(binding.email.text.toString()).matches()) {
if (binding.email.text.trim().isEmpty()){
binding.email.error = getString(R.string.required)
return@setOnClickListener
} else if (!Patterns.EMAIL_ADDRESS.matcher(binding.email.text.toString()).matches()) {
binding.email.error = getString(R.string.invalid_email)
return@setOnClickListener
}

View File

@@ -143,9 +143,6 @@ class GetMoreInfoFragment : Fragment() {
name.text = viewModel.name
// selecting the max date
viewModel.selectedDOB = Calendar.getInstance().apply { timeInMillis = datePicker.maxDate }
datePicker.init(
viewModel.selectedDOB.get(Calendar.YEAR),
viewModel.selectedDOB.get(Calendar.MONTH),

View File

@@ -1,13 +1,22 @@
package com.woka.onboard.fragments
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.navigation.fragment.FragmentNavigatorExtras
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
import com.woka.BuildConfig
import com.woka.R
import com.woka.WokaApp.Companion.userPrefs
import com.woka.databinding.FragmentNewUpdateBinding
import com.woka.home.views.HomeActivity
import com.woka.userPreference.UserType
import com.woka.utils.PLAY_STORE_URL
import com.woka.utils.setVisibility
class NewUpdateFragment : Fragment() {
@@ -16,6 +25,7 @@ class NewUpdateFragment : Fragment() {
private val args: NewUpdateFragmentArgs by navArgs()
private val newVersion by lazy { args.newVersion }
private val forceNewVersion by lazy { args.forceNewVersion }
private val currentVersion by lazy { BuildConfig.VERSION_CODE }
@@ -32,6 +42,8 @@ class NewUpdateFragment : Fragment() {
initViews()
clickEvents()
}
private fun initViews(){
@@ -39,4 +51,41 @@ class NewUpdateFragment : Fragment() {
skip.setVisibility(currentVersion >= forceNewVersion)
}
}
private fun clickEvents(){
binding.apply {
skip.setOnClickListener {
userPrefs?.skippedVersion = newVersion
goForward()
}
update.setOnClickListener {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(PLAY_STORE_URL)))
}
}
}
private fun goForward() {
if (userPrefs?.userType == UserType.NONE) {
// none of the user is logged in
// going through normal onboard process
try {
val extras = FragmentNavigatorExtras(binding.logo to "logo")
findNavController().navigate(
R.id.action_newUpdateFragment_to_languageFragment,
null, null, extras
)
} catch (e: Exception) {
// do nothing
}
} else {
// going to home activity as any of the user is logged in
activity?.let {
startActivity(Intent(it, HomeActivity::class.java).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
})
it.finish()
}
}
}
}

View File

@@ -163,7 +163,10 @@ class SignUpFragment : Fragment() {
var allOkay = true
binding.apply {
if (username.text.length < 2) {
if (username.text.trim().isEmpty()){
allOkay = false
username.error = getString(R.string.required)
}else if (username.text.length < 2) {
allOkay = false
username.error = getString(R.string.must_be_at_least_3_characters)
}

View File

@@ -108,7 +108,12 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
override fun onAnimationEnd(animation: Animator) {
lifecycleScope.launch {
delay(2000)
listenVersionHistory()
if (userPrefs?.userType == UserType.CHILD || userPrefs?.userType == UserType.GUARDIAN) {
// listening to user data
userPrefs?.userLiveData?.observe(viewLifecycleOwner, this@SplashFragment)
}else{
listenVersionHistory()
}
}
}
@@ -151,26 +156,19 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
it.data?.`0`?.new_version?.let { newVersion ->
if (BuildConfig.VERSION_CODE < newVersion) {
// a new update is available
// to be implemented
it.data.`0`.force_update_version?.let { forceVersion ->
findNavController().navigate(SplashFragmentDirections.actionSplashFragmentToNewUpdateFragment(1))
}
} else {
// no new update available
if (userPrefs?.userType == UserType.NONE || userPrefs?.userType == UserType.GUEST) {
// no user or guest is logged in
goForward()
} else {
// some user is logged in listening to user data
userPrefs?.userLiveData?.removeObserver(this@SplashFragment)
userPrefs?.userLiveData?.observe(
viewLifecycleOwner,
this@SplashFragment
)
userPrefs?.skippedVersion?.let {skippedVersion ->
if (newVersion > skippedVersion){
it.data.`0`.force_update_version?.let { forceVersion ->
findNavController().navigate(SplashFragmentDirections.actionSplashFragmentToNewUpdateFragment(newVersion, 1))
return@observe
}
}
}
}
}
// going forward as there is no new update or the user has already skipped the new update
goForward()
}
}
}
@@ -209,11 +207,14 @@ class SplashFragment : Fragment(), Observer<ApiResult<UserDataResponse>?> {
binding.progressBar.hide()
}
is ApiResult.Loading -> {}
is ApiResult.Loading -> {
binding.retryBtn.hide()
binding.progressBar.show()
}
is ApiResult.Success -> {
binding.retryBtn.hide()
binding.progressBar.hide()
goForward()
listenVersionHistory()
}
null -> {}

View File

@@ -28,6 +28,7 @@ class UserPreference(val context: Context) {
private const val ACCESS_TOKEN = "access_token"
private const val USER_TYPE = "user_type"
private const val GUEST_USER_NAME = "guest_user_name"
private const val SKIPPED_VERSION = "skipped_version"
}
private val userPrefs: SharedPreferences =
@@ -78,6 +79,10 @@ class UserPreference(val context: Context) {
get() = userPrefs.getString(GUEST_USER_NAME, null)
set(value) = userPrefs.edit().putString(GUEST_USER_NAME, value).apply()
var skippedVersion: Int
get() = userPrefs.getInt(SKIPPED_VERSION, 0)
set(value) = userPrefs.edit().putInt(SKIPPED_VERSION, value).apply()
private val _userLiveData = MutableLiveData<ApiResult<UserDataResponse>?>()
val userLiveData: LiveData<ApiResult<UserDataResponse>?>
get() = _userLiveData

View File

@@ -142,6 +142,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
likeCount.text = "${showData.likes_count}"
favSeason.isSelected = showData.isBookMarked(categoryId)
favText.text = if (favSeason.isSelected) getString(R.string.added) else getString(R.string.add)
likeSeason.isSelected = showData.is_liked ?: false
@@ -249,6 +250,7 @@ class WebShowFragment : Fragment(), TabLayout.OnTabSelectedListener {
showData.mark_as_favourite = !favSeason.isSelected
favSeason.isSelected = !favSeason.isSelected
favText.text = if (favSeason.isSelected) getString(R.string.added) else getString(R.string.add)
activity?.setResult(RESULT_OK, Intent().apply {
putExtra(EXTRA_SHOW_CATEGORY, if (!favSeason.isSelected) categoryId else null)

View File

@@ -222,6 +222,7 @@ class GamesActivity : WokaBaseActivity() {
}
fav.isSelected = gameData.mark_as_favourite == true
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
like.isSelected = gameData.is_liked == true
likeCount.text = "${gameData.likes_count}"
@@ -346,6 +347,7 @@ class GamesActivity : WokaBaseActivity() {
}
fav.isSelected = !fav.isSelected
favText.text = if (fav.isSelected) getString(R.string.added) else getString(R.string.add)
ClicksHelper.upsertClickEvent(ContentType.GAME, gameData.id)
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

After

Width:  |  Height:  |  Size: 566 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 828 KiB

View File

@@ -162,7 +162,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
android:orientation="horizontal">
<TextView
@@ -253,9 +253,11 @@
>
<androidx.cardview.widget.CardView
android:layout_width="80dp"
android:layout_height="120dp"
app:cardCornerRadius="3dp"
android:layout_width="90dp"
android:layout_height="140dp"
app:strokeWidth="2dp"
app:strokeColor="@color/white"
app:cardCornerRadius="5dp"
android:layout_marginEnd="12dp"
>
@@ -265,6 +267,7 @@
android:layout_height="match_parent"
android:contentDescription="@string/image"
android:src="@drawable/theme_1"
android:scaleType="fitXY"
/>
<RelativeLayout
@@ -278,7 +281,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/image"
android:src="@drawable/theme_selected_tint"/>
android:src="@drawable/theme_selected_tint"
android:scaleType="fitXY"
/>
<ImageView
android:layout_width="30dp"
@@ -286,6 +291,7 @@
android:layout_centerInParent="true"
android:contentDescription="@string/image"
android:src="@drawable/ic_green_tick"
android:scaleType="fitXY"
/>
</RelativeLayout>
@@ -304,11 +310,11 @@
>
<androidx.cardview.widget.CardView
android:layout_width="80dp"
android:layout_height="120dp"
app:strokeWidth="1dp"
android:layout_width="90dp"
android:layout_height="140dp"
app:strokeWidth="2dp"
app:strokeColor="@color/white"
app:cardCornerRadius="3dp"
app:cardCornerRadius="5dp"
android:layout_marginStart="12dp"
>
@@ -318,6 +324,7 @@
android:layout_height="match_parent"
android:contentDescription="@string/image"
android:src="@drawable/theme_2"
android:scaleType="fitXY"
/>
<RelativeLayout
@@ -331,7 +338,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@string/image"
android:src="@drawable/theme_selected_tint"/>
android:src="@drawable/theme_selected_tint"
android:scaleType="fitXY"
/>
<ImageView
android:layout_width="30dp"
@@ -339,6 +348,7 @@
android:layout_centerInParent="true"
android:contentDescription="@string/image"
android:src="@drawable/ic_green_tick"
android:scaleType="fitXY"
/>
</RelativeLayout>
@@ -354,8 +364,8 @@
android:layout_height="0.5dp"
android:background="@color/woka_sky_blue"
android:layout_marginTop="10dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
/>
<androidx.cardview.widget.CardView
@@ -419,8 +429,8 @@
android:layout_height="0.5dp"
android:background="@color/woka_sky_blue"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
/>
<com.woka.utils.PressableCard
@@ -436,11 +446,11 @@
android:layout_height="wrap_content"
android:text="@string/about_woka"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -458,11 +468,11 @@
android:layout_height="wrap_content"
android:text="@string/faqs"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -480,11 +490,11 @@
android:layout_height="wrap_content"
android:text="@string/woka_support"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -504,11 +514,11 @@
android:visibility="gone"
android:text="@string/my_profile"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -528,11 +538,11 @@
android:visibility="gone"
android:text="@string/my_orders"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -552,11 +562,11 @@
android:visibility="gone"
android:text="@string/add_child_account_eng"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -576,11 +586,11 @@
android:visibility="gone"
android:text="@string/de_activate_account"
android:fontFamily="@font/exo_2_bold"
android:fontFamily="@font/exo_2_semibold"
android:textColor="@color/white"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_13ssp"
android:paddingVertical="5dp"
android:paddingVertical="10dp"
android:paddingHorizontal="5dp"
/>
@@ -591,7 +601,7 @@
android:layout_height="0.5dp"
android:background="@color/woka_sky_blue"
android:layout_marginTop="10dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="8dp"
/>

View File

@@ -178,6 +178,8 @@
android:fontFamily="@font/exo_2"
android:textSize="@dimen/_13ssp"
android:digits="@string/alphabets_with_space"
/>
</LinearLayout>

View File

@@ -149,7 +149,9 @@
android:textColor="@color/black"
android:textColorHint="@android:color/darker_gray"
android:textSize="@dimen/_13ssp" />
android:textSize="@dimen/_13ssp"
android:digits="@string/alphabets_with_space"/>
<TextView
android:layout_width="wrap_content"

View File

@@ -23,6 +23,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scrollbars="none"
>
<LinearLayout

View File

@@ -297,6 +297,7 @@
/>
<TextView
android:id="@+id/fav_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -184,7 +184,7 @@
android:autofillHints="postalAddress"
android:inputType="textPostalAddress"
android:digits="@string/alphanumeric_special_characters_with_space"
android:digits="@string/alphabets_with_space"
android:singleLine="true"
android:background="@drawable/round_25_shadow"
@@ -226,7 +226,7 @@
android:autofillHints="postalAddress"
android:inputType="textPostalAddress"
android:digits="@string/alphanumeric_special_characters_with_space"
android:digits="@string/alphabets_with_space"
android:singleLine="true"
android:background="@drawable/round_25_shadow"
@@ -313,7 +313,7 @@
android:autofillHints="postalAddress"
android:inputType="textPostalAddress"
android:digits="@string/alphanumeric_special_characters_with_space"
android:digits="@string/alphabets_with_space"
android:singleLine="true"
android:background="@drawable/round_25_shadow"

View File

@@ -178,8 +178,8 @@
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="@dimen/_190sdp"
android:layout_height="@dimen/_130sdp"
android:layout_width="@dimen/_185sdp"
android:layout_height="@dimen/_125sdp"
android:layout_marginTop="@dimen/_22sdp"
@@ -200,8 +200,8 @@
<ImageView
android:id="@+id/black_image"
android:layout_width="@dimen/_125sdp"
android:layout_height="@dimen/_84sdp"
android:layout_width="@dimen/_120sdp"
android:layout_height="@dimen/_81sdp"
android:contentDescription="@string/image"
@@ -218,8 +218,8 @@
<androidx.media3.ui.PlayerView
android:id="@+id/player_view"
android:layout_width="@dimen/_125sdp"
android:layout_height="@dimen/_84sdp"
android:layout_width="@dimen/_120sdp"
android:layout_height="@dimen/_81sdp"
app:resize_mode="fill"
@@ -282,7 +282,7 @@
android:translationZ="1dp"
android:layout_marginTop="@dimen/_25sdp"
android:layout_marginTop="@dimen/_35sdp"
android:contentDescription="@string/image"
android:src="@drawable/img_grass_d"
@@ -313,7 +313,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.25">
app:layout_constraintVertical_bias="0.28">
<com.woka.utils.PressableImageView
android:id="@+id/web_series"
@@ -355,7 +355,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.2">
app:layout_constraintVertical_bias="0.22">
<com.woka.utils.PressableImageView
android:id="@+id/live_tv"
@@ -398,7 +398,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.05">
app:layout_constraintVertical_bias="0.09">
<com.woka.utils.PressableImageView
android:id="@+id/shop"
@@ -441,7 +441,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.59">
app:layout_constraintVertical_bias="0.62">
<com.woka.utils.PressableImageView
android:id="@+id/karaoke"
@@ -484,7 +484,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.6">
app:layout_constraintVertical_bias="0.63">
<com.woka.utils.PressableImageView
android:id="@+id/audio_books"
@@ -527,7 +527,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/g1"
app:layout_constraintVertical_bias="0.39">
app:layout_constraintVertical_bias="0.42">
<com.woka.utils.PressableImageView
android:id="@+id/play"

View File

@@ -29,11 +29,12 @@
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginVertical="25dp"
android:contentDescription="@string/image"
android:src="@drawable/img_update"
android:layout_marginVertical="@dimen/_50sdp"
app:layout_constraintBottom_toTopOf="@+id/title"
app:layout_constraintTop_toBottomOf="@id/logo" />
@@ -53,7 +54,7 @@
android:fontFamily="@font/exo_2_bold"
android:maxLines="2"
android:textSize="@dimen/_16ssp"
android:textSize="@dimen/_18ssp"
android:textColor="@color/color_primary"
android:text="@string/new_update_available"
@@ -70,7 +71,7 @@
android:layout_marginBottom="35dp"
android:fontFamily="@font/exo_2_medium"
android:textSize="@dimen/_14ssp"
android:textSize="@dimen/_16ssp"
android:textAlignment="center"
android:textColor="@color/color_primary"

View File

@@ -162,7 +162,7 @@
android:maxLength="50"
android:digits="@string/alphanumeric_with_space"
android:digits="@string/alphabets_with_space"
/>

View File

@@ -390,6 +390,7 @@
android:src="@drawable/ic_heart_select" />
<TextView
android:id="@+id/fav_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -6,6 +6,7 @@
android:paddingVertical="@dimen/_25sdp"
android:paddingHorizontal="@dimen/_30sdp"
android:background="@drawable/round_25"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

View File

@@ -32,8 +32,16 @@
android:name="com.woka.onboard.fragments.NewUpdateFragment"
android:label="fragment_new_update"
tools:layout="@layout/fragment_new_update" >
<argument
android:name="newVersion"
app:argType="integer" />
<argument
android:name="forceNewVersion"
app:argType="integer" />
<action
android:id="@+id/action_newUpdateFragment_to_languageFragment"
app:destination="@id/languageFragment"
app:popUpTo="@id/newUpdateFragment"
app:popUpToInclusive="true"/>
</fragment>
</navigation>

View File

@@ -89,8 +89,8 @@
<string name="loading_avatars">Loading avatars...</string>
<string name="otp_hint" translatable="false">*</string>
<string name="please_select_your_interests">Please select your interests</string>
<string name="alphanumeric_special_characters_without_space" translatable="false"><![CDATA[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!#$%&\'*+/-=^_`{|}~.@]]></string>
<string name="alphanumeric_special_characters_with_space" translatable="false"><![CDATA[ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz1234567890!#$%&\'*+/-=^_`{|}~.@]]></string>
<string name="alphanumeric_special_characters_without_space" translatable="false"><![CDATA[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!#$%&\'*+/-=^_`{|}~.,@]]></string>
<string name="alphanumeric_special_characters_with_space" translatable="false"><![CDATA[ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz1234567890!#$%&\'*+/-=^_`{|}~.,@]]></string>
<string name="already_logged_in">Already logged in</string>
<string name="do_you_want_to_continue_log_in">Do you want to continue log in?</string>
<string name="yes">Yes</string>
@@ -183,6 +183,7 @@
<string name="continue_watching">Continue watching</string>
<string name="watch">WATCH</string>
<string name="add">ADD</string>
<string name="added">ADDED</string>
<string name="rate">RATE</string>
<string name="share">SHARE</string>
<string name="couldnt_play_video">Couldn\'t play video</string>
@@ -309,4 +310,5 @@
<string name="update_app">UPDATE APP</string>
<string name="new_update_available">New update available</string>
<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>
</resources>