diff --git a/Habitica/res/values-tr/strings.xml b/Habitica/res/values-tr/strings.xml
index 33e402cbe..5c8986894 100644
--- a/Habitica/res/values-tr/strings.xml
+++ b/Habitica/res/values-tr/strings.xml
@@ -759,7 +759,7 @@
Özel eşyalar
Ayrıl & Görevleri Koru
Bir Görev Oluştur
- %%d% Tamamlandı
+ %d%% Tamamlandı
Haydi başlayalım
Senin İlerlemen
Sil…
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 f928bf449..d51097cb8 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
@@ -222,7 +222,7 @@ class ApiClientImpl(
@Suppress("DEPRECATION")
if (SocketException::class.java.isAssignableFrom(throwableClass) || SSLException::class.java.isAssignableFrom(throwableClass)) {
this.showConnectionProblemDialog(R.string.internal_error_api)
- } else if (throwableClass == SocketTimeoutException::class.java || UnknownHostException::class.java == throwableClass) {
+ } else if (throwableClass == SocketTimeoutException::class.java || UnknownHostException::class.java == throwableClass || IOException::class.java == throwableClass) {
this.showConnectionProblemDialog(R.string.network_error_no_network_body)
} else if (throwableClass == retrofit2.adapter.rxjava3.HttpException::class.java) {
val error = throwable as HttpException
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt
index bafe156f4..006653824 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/AdHandler.kt
@@ -39,6 +39,14 @@ enum class AdType {
FAINT -> "ca-app-pub-5911973472413421/1738504765"
}
}
+
+ val cooldownTime: Date?
+ get() {
+ return when (this) {
+ SPELL -> Date(Date().time + 1.toDuration(DurationUnit.HOURS).inWholeMilliseconds)
+ else -> null
+ }
+ }
}
fun String.md5(): String? {
@@ -83,10 +91,18 @@ class AdHandler(val activity: Activity, val type: AdType, val rewardAction: (Boo
return nextAdAllowedDate(type)?.after(Date()) == true
}
- fun setNextAllowedDate(type: AdType, date: Date) {
- nextAdAllowed[type] = date
- sharedPreferences.edit {
- putLong("nextAd${type.name}", date.time)
+ fun setNextAllowedDate(type: AdType) {
+ val date = type.cooldownTime
+ if (date != null) {
+ nextAdAllowed[type] = date
+ sharedPreferences.edit {
+ putLong("nextAd${type.name}", date.time)
+ }
+ } else {
+ nextAdAllowed.remove(type)
+ sharedPreferences.edit {
+ remove("nextAd${type.name}")
+ }
}
}
@@ -203,7 +219,7 @@ class AdHandler(val activity: Activity, val type: AdType, val rewardAction: (Boo
}
if (rewardedAd != null) {
rewardedAd?.show(activity, this)
- setNextAllowedDate(type, Date(Date().time + 1.toDuration(DurationUnit.HOURS).inWholeMilliseconds))
+ setNextAllowedDate(type)
} else {
Log.d(TAG, "The rewarded ad wasn't ready yet.")
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
index 49a438d2b..bd37bb2af 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/ArmoireActivity.kt
@@ -86,7 +86,8 @@ class ArmoireActivity: BaseActivity() {
it.armoire["dropKey"] ?: "",
it.armoire["dropText"] ?: "",
it.armoire["value"] ?: "")
- binding.adButton.updateForAdType(AdType.ARMOIRE, lifecycleScope)
+ binding.adButton.state = AdButton.State.UNAVAILABLE
+ binding.adButton.visibility = View.INVISIBLE
hasAnimatedChanges = false
gold = null
}, RxErrorHandler.handleEmptyError()))
@@ -214,7 +215,7 @@ class ArmoireActivity: BaseActivity() {
}
}
- fun showDropRateDialog() {
+ private fun showDropRateDialog() {
val dialog = HabiticaBottomSheetDialog(this)
dialog.setContentView(R.layout.armoire_drop_rate_dialog)
dialog.show()
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
index db3ef38cb..7925ca84e 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/equipment/EquipmentOverviewFragment.kt
@@ -70,7 +70,9 @@ class EquipmentOverviewFragment : BaseMainFragment