From 205a23bb2da32eb72ceb497140c27d7726138b35 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 30 Jul 2020 13:06:35 +0200 Subject: [PATCH] fix some minor crashes --- Habitica/res/layout/pet_detail_item.xml | 6 +++--- .../com/habitrpg/android/habitica/helpers/Keyhelper.kt | 3 +++ .../habitrpg/android/habitica/helpers/PurchaseHandler.kt | 7 ++++++- .../notifications/HabiticaFirebaseMessagingService.kt | 6 ++++-- .../ui/fragments/tasks/TaskRecyclerViewFragment.kt | 3 +++ 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Habitica/res/layout/pet_detail_item.xml b/Habitica/res/layout/pet_detail_item.xml index 82285c2cc..67776ae04 100644 --- a/Habitica/res/layout/pet_detail_item.xml +++ b/Habitica/res/layout/pet_detail_item.xml @@ -10,12 +10,12 @@ diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Keyhelper.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Keyhelper.kt index 52fec9c52..3de8006b0 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Keyhelper.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/Keyhelper.kt @@ -12,6 +12,7 @@ import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.io.IOException import java.io.UnsupportedEncodingException +import java.lang.IllegalStateException import java.math.BigInteger import java.security.* import java.util.* @@ -188,6 +189,8 @@ constructor(ctx: Context, var sharedPreferences: SharedPreferences, var keyStore null } catch (e: GeneralSecurityException) { null + } catch (e: IllegalStateException) { + null } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt index 296dc705e..35713840b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/PurchaseHandler.kt @@ -5,6 +5,7 @@ import android.content.Intent import com.habitrpg.android.habitica.HabiticaBaseApplication import com.habitrpg.android.habitica.proxy.CrashlyticsProxy import org.solovyev.android.checkout.* +import java.lang.NullPointerException import java.util.* import javax.annotation.Nonnull @@ -92,7 +93,11 @@ class PurchaseHandler(activity: Activity, val crashlyticsProxy: CrashlyticsProxy private fun loadInventory(type: String, skus: List, callback: Inventory.Callback) { val request = Inventory.Request.create().loadAllPurchases().loadSkus(type, skus) if (request != null) { - inventory?.load(request, callback) + try { + inventory?.load(request, callback) + } catch (e: NullPointerException) { + return + } } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.kt index c8cc4127e..a895ba525 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/notifications/HabiticaFirebaseMessagingService.kt @@ -19,14 +19,16 @@ class HabiticaFirebaseMessagingService : FirebaseMessagingService() { override fun onMessageReceived(remoteMessage: RemoteMessage) { userComponent?.inject(this) - pushNotificationManager.displayNotification(remoteMessage) + if (this::pushNotificationManager.isInitialized) { + pushNotificationManager.displayNotification(remoteMessage) + } } override fun onNewToken(s: String) { super.onNewToken(s) userComponent?.inject(this) val refreshedToken = FirebaseInstanceId.getInstance().token - if (refreshedToken != null) { + if (refreshedToken != null && this::pushNotificationManager.isInitialized) { pushNotificationManager.refreshedToken = refreshedToken } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt index f513ef811..5e9e0c175 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.kt @@ -291,6 +291,9 @@ open class TaskRecyclerViewFragment : BaseFragment(), androidx.swiperefreshlayou protected fun showBrokenChallengeDialog(task: Task) { context?.let { + if (!task.isValid) { + return + } taskRepository.getTasksForChallenge(task.challengeID).subscribe(Consumer { tasks -> val taskCount = tasks.size val dialog = HabiticaAlertDialog(it)