From d882328398ac6f8da40563242b1f4a524d47ac02 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 13 May 2022 14:00:34 +0200 Subject: [PATCH] Fix minor issues and crashes --- Habitica/res/values-tr/strings.xml | 2 +- .../data/implementation/ApiClientImpl.kt | 2 +- .../android/habitica/helpers/AdHandler.kt | 26 +++++++++++++++---- .../habitica/ui/activities/ArmoireActivity.kt | 5 ++-- .../equipment/EquipmentOverviewFragment.kt | 4 ++- .../android/habitica/ui/views/ads/AdButton.kt | 4 +-- 6 files changed, 31 insertions(+), 12 deletions(-) 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