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)