From 7432944313c70776f00626f40a2916dd68255c4d Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Thu, 16 Apr 2020 13:02:16 +0200 Subject: [PATCH] Fix issues with displaying skins. Fixes #1299 --- Habitica/build.gradle | 2 +- .../adapter/CustomizationRecyclerViewAdapter.kt | 9 +++++++++ .../customization/AvatarCustomizationFragment.kt | 2 +- .../fragments/social/InboxMessageListFragment.kt | 7 +++++++ .../ui/fragments/support/BugFixFragment.kt | 16 +++++++--------- .../ui/fragments/support/SupportMainFragment.kt | 5 ++--- .../habitica/ui/viewmodels/InboxViewModel.kt | 2 +- 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/Habitica/build.gradle b/Habitica/build.gradle index 980167836..5e4e1dce1 100644 --- a/Habitica/build.gradle +++ b/Habitica/build.gradle @@ -162,7 +162,7 @@ android { multiDexEnabled true resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW" - versionCode 2402 + versionCode 2404 versionName "2.5" } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt index cbf9704f0..b700afcf5 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/CustomizationRecyclerViewAdapter.kt @@ -30,6 +30,7 @@ class CustomizationRecyclerViewAdapter : androidx.recyclerview.widget.RecyclerVi var userSize: String? = null var hairColor: String? = null var gemBalance: Int = 0 + var unsortedCustomizations: List = ArrayList() var customizationList: MutableList = ArrayList() set(value) { field = value @@ -50,6 +51,7 @@ class CustomizationRecyclerViewAdapter : androidx.recyclerview.widget.RecyclerVi fun updateOwnership(ownedCustomizations: List) { this.ownedCustomiztations = ownedCustomizations + setCustomizations(unsortedCustomizations) notifyDataSetChanged() } @@ -90,9 +92,16 @@ class CustomizationRecyclerViewAdapter : androidx.recyclerview.widget.RecyclerVi } fun setCustomizations(newCustomizationList: List) { + unsortedCustomizations = newCustomizationList this.customizationList = ArrayList() var lastSet = CustomizationSet() + val today = Date() for (customization in newCustomizationList.reversed()) { + if (customization.availableFrom != null || customization.availableUntil != null) { + if ((customization.availableFrom?.compareTo(today) ?: 0 > 0 || customization.availableUntil?.compareTo(today) ?: 0 < 0) && !customization.isUsable(ownedCustomiztations.contains(customization.identifier))) { + continue + } + } if (customization.customizationSet != null && customization.customizationSet != lastSet.identifier) { val set = CustomizationSet() set.identifier = customization.customizationSet diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt index 0df324546..c155503c9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.kt @@ -118,7 +118,7 @@ class AvatarCustomizationFragment : BaseMainFragment() { private fun loadCustomizations() { val type = this.type ?: return - compositeSubscription.add(customizationRepository.getCustomizations(type, category, true).subscribe(Consumer> { adapter.setCustomizations(it) }, RxErrorHandler.handleEmptyError())) + compositeSubscription.add(customizationRepository.getCustomizations(type, category, false).subscribe(Consumer> { adapter.setCustomizations(it) }, RxErrorHandler.handleEmptyError())) if (type == "hair" && (category == "beard" || category == "mustache")) { val otherCategory = if (category == "mustache") "beard" else "mustache" compositeSubscription.add(customizationRepository.getCustomizations(type, otherCategory, true).subscribe(Consumer> { adapter.additionalSetItems = it }, RxErrorHandler.handleEmptyError())) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt index 444e2c706..165aef00b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt @@ -90,6 +90,13 @@ class InboxMessageListFragment : BaseMainFragment(), androidx.swiperefreshlayout communityGuidelinesView.visibility = View.GONE } + override fun onResume() { + if (replyToUserUUID?.isNotBlank() != true && chatRoomUser?.isNotBlank() != true) { + fragmentManager?.popBackStack() + } + super.onResume() + } + override fun onAttach(context: Context) { view?.invalidate() view?.forceLayout() diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt index bdf01e4ff..f5512c9ab 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/BugFixFragment.kt @@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.fragments.support import android.content.Intent import android.content.pm.PackageManager +import android.net.Uri import android.os.Build import android.os.Bundle import android.view.LayoutInflater @@ -97,16 +98,13 @@ class BugFixFragment: BaseMainFragment() { bodyOfEmail += " \nDetails:\n" activity?.let { - val email = Intent(Intent.ACTION_SEND) - email.putExtra(Intent.EXTRA_EMAIL, arrayOf(appConfigManager.supportEmail())) - email.putExtra(Intent.EXTRA_SUBJECT, subject) - email.putExtra(Intent.EXTRA_TEXT, bodyOfEmail) + val emailIntent = Intent(Intent.ACTION_SENDTO) + val mailto = "mailto:" + appConfigManager.supportEmail() + + "&subject=" + Uri.encode(subject) + + "&body=" + Uri.encode(bodyOfEmail) + emailIntent.data = Uri.parse(mailto); - //need this to prompts email client only - //need this to prompts email client only - email.type = "message/rfc822" - - startActivity(Intent.createChooser(email, "Choose an Email client :")) + startActivity(Intent.createChooser(emailIntent, "Choose an Email client :")) } } } \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/SupportMainFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/SupportMainFragment.kt index bc35a9e48..3b43d6b69 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/SupportMainFragment.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/support/SupportMainFragment.kt @@ -117,11 +117,10 @@ class SupportMainFragment : BaseMainFragment() { activity?.let { val emailIntent = Intent(Intent.ACTION_SENDTO) - val mailto = "mailto:bob@example.org" + - "?cc=" + "alice@example.com" + + val mailto = "mailto:" + appConfigManager.supportEmail() + "&subject=" + Uri.encode(subject) + "&body=" + Uri.encode(bodyOfEmail) - emailIntent.setData(Uri.parse(mailto)); + emailIntent.data = Uri.parse(mailto); startActivity(Intent.createChooser(emailIntent, "Choose an Email client :")) } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt index 9a893bd70..bb1f81a9b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/viewmodels/InboxViewModel.kt @@ -75,7 +75,7 @@ class InboxViewModel(recipientID: String?, recipientUsername: String?) : BaseVie if (recipientID?.isNotBlank() == true) { setMemberID(recipientID) loadMemberFromLocal() - } else { + } else if (recipientUsername?.isNotBlank() == true) { socialRepository.getMemberWithUsername(recipientUsername).subscribe(Consumer { setMemberID(it.id ?: "") member.value = it