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
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 -> {}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 265 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 144 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 131 KiB |
|
Before Width: | Height: | Size: 157 KiB After Width: | Height: | Size: 566 KiB |
|
Before Width: | Height: | Size: 247 KiB After Width: | Height: | Size: 828 KiB |
@@ -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"
|
||||
/>
|
||||
|
||||
|
||||
@@ -178,6 +178,8 @@
|
||||
android:fontFamily="@font/exo_2"
|
||||
android:textSize="@dimen/_13ssp"
|
||||
|
||||
android:digits="@string/alphabets_with_space"
|
||||
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:scrollbars="none"
|
||||
>
|
||||
|
||||
<LinearLayout
|
||||
|
||||
@@ -297,6 +297,7 @@
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/fav_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
|
||||
android:maxLength="50"
|
||||
|
||||
android:digits="@string/alphanumeric_with_space"
|
||||
android:digits="@string/alphabets_with_space"
|
||||
|
||||
/>
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||