diff --git a/Habitica/res/values/dimens.xml b/Habitica/res/values/dimens.xml
index c8d580874..dd366c548 100644
--- a/Habitica/res/values/dimens.xml
+++ b/Habitica/res/values/dimens.xml
@@ -48,8 +48,8 @@
16sp
14sp
2dp
- 92dp
- 120dp
+ 82dp
+ 110dp
20dp
68dp
65dp
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
index 752999001..f8af1b80a 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/ApiClientImpl.kt
@@ -99,7 +99,6 @@ class ApiClientImpl(
override var languageCode: String? = null
private var lastAPICallURL: String? = null
- private var hadError = false
init {
buildRetrofit()
@@ -144,6 +143,7 @@ class ApiClientImpl(
lastAPICallURL = original.url.toString()
val response = chain.proceed(request)
if (response.isSuccessful) {
+ hideConnectionProblemDialog()
return@addNetworkInterceptor response
} else {
// Modify cache control for 4xx or 5xx range - effectively "do not cache", preventing caching of 4xx and 5xx responses
@@ -311,19 +311,21 @@ class ApiClientImpl(
showConnectionProblemDialog(context.getString(resourceTitleString), context.getString(resourceMessageString))
}
+ private var erroredRequestCount = 0
private fun showConnectionProblemDialog(
resourceTitleString: String?,
resourceMessageString: String
) {
- hadError = true
+ erroredRequestCount += 1
val application = (context as? HabiticaBaseApplication)
?: (context.applicationContext as? HabiticaBaseApplication)
application?.currentActivity?.get()
- ?.showConnectionProblem(resourceTitleString, resourceMessageString)
+ ?.showConnectionProblem(erroredRequestCount, resourceTitleString, resourceMessageString)
}
private fun hideConnectionProblemDialog() {
- hadError = false
+ if (erroredRequestCount == 0) return
+ erroredRequestCount = 0
val application = (context as? HabiticaBaseApplication)
?: (context.applicationContext as? HabiticaBaseApplication)
application?.currentActivity?.get()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
index 71ab29bd2..042a1d0ef 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/BaseActivity.kt
@@ -223,7 +223,7 @@ abstract class BaseActivity : AppCompatActivity() {
}
}
- open fun showConnectionProblem(title: String?, message: String) {
+ open fun showConnectionProblem(errorCount: Int, title: String?, message: String) {
val alert = HabiticaAlertDialog(this)
alert.setTitle(title)
alert.setMessage(message)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
index cb36d2fcc..a9fa504f2 100755
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
@@ -81,6 +81,7 @@ import com.habitrpg.android.habitica.ui.views.AppHeaderView
import com.habitrpg.android.habitica.ui.views.ComposableAvatarView
import com.habitrpg.android.habitica.ui.views.GroupPlanMemberList
import com.habitrpg.android.habitica.ui.views.HabiticaButton
+import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.SnackbarActivity
import com.habitrpg.android.habitica.ui.views.dialogs.QuestCompletedDialog
import com.habitrpg.android.habitica.ui.views.showAsBottomSheet
@@ -767,9 +768,11 @@ open class MainActivity : BaseActivity(), SnackbarActivity {
private var errorJob: Job? = null
- override fun showConnectionProblem(title: String?, message: String) {
- if (title != null) {
- super.showConnectionProblem(title, message)
+ override fun showConnectionProblem(errorCount: Int, title: String?, message: String) {
+ if (errorCount == 1) {
+ showSnackbar(title = title, content = message, displayType = HabiticaSnackbar.SnackbarDisplayType.FAILURE)
+ } else if (title != null) {
+ super.showConnectionProblem(errorCount, title, message)
} else {
if (errorJob?.isCancelled == false) {
// a new error resets the timer to hide the error message
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt
index 6849cdb4d..555bba7b3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountBottomSheet.kt
@@ -109,13 +109,13 @@ fun MountBottomSheet(
) {
BackgroundScene()
- val regularPosition = 40f
- val highJump = 28f
- val lowJump = 35f
+ val regularPosition = 12f
+ val highJump = 0f
+ val lowJump = 8f
val position by if (isAnimalFlying(mount)) {
infiniteTransition.animateFloat(
- initialValue = 24f,
- targetValue = 16f,
+ initialValue = 4f,
+ targetValue = 0f,
animationSpec = infiniteRepeatable(
tween(
2500,
@@ -145,7 +145,7 @@ fun MountBottomSheet(
}
MountView(mount, modifier = Modifier
.offset(0.dp, position.dp)
- .size(72.dp)
+ .size(81.dp, 99.dp)
.align(Alignment.TopCenter)
.zIndex(2f)
)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt
index d6045af30..cc669d2a9 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/stable/MountView.kt
@@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.views.stable
import android.content.Context
import android.util.AttributeSet
+import android.view.ViewGroup
import android.widget.FrameLayout
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
@@ -29,8 +30,11 @@ class MountView @JvmOverloads constructor(
init {
addView(bodyView)
+ bodyView.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
addView(headView)
+ headView.layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)
}
+
}
@Composable
diff --git a/version.properties b/version.properties
index fb122a80e..280b01c79 100644
--- a/version.properties
+++ b/version.properties
@@ -1,2 +1,2 @@
NAME=4.3
-CODE=6631
\ No newline at end of file
+CODE=6661
\ No newline at end of file