mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
fix notification display issue
This commit is contained in:
parent
c083deef26
commit
0f05045d2d
6 changed files with 24 additions and 15 deletions
|
|
@ -162,7 +162,7 @@ android {
|
||||||
multiDexEnabled true
|
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"
|
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 2450
|
versionCode 2459
|
||||||
versionName "2.7"
|
versionName "2.7"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,12 +15,17 @@ import com.habitrpg.android.habitica.models.notifications.FirstDropData
|
||||||
import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData
|
import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData
|
||||||
import com.habitrpg.android.habitica.models.user.User
|
import com.habitrpg.android.habitica.models.user.User
|
||||||
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
|
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
|
||||||
|
import com.habitrpg.android.habitica.ui.views.dialogs.AchievementDialog
|
||||||
import io.reactivex.BackpressureStrategy
|
import io.reactivex.BackpressureStrategy
|
||||||
|
import io.reactivex.Completable
|
||||||
import io.reactivex.Flowable
|
import io.reactivex.Flowable
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
|
import io.reactivex.functions.Action
|
||||||
import io.reactivex.functions.Consumer
|
import io.reactivex.functions.Consumer
|
||||||
import io.reactivex.subjects.BehaviorSubject
|
import io.reactivex.subjects.BehaviorSubject
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
|
||||||
class NotificationsManager (private val context: Context) {
|
class NotificationsManager (private val context: Context) {
|
||||||
private val seenNotifications: MutableMap<String, Boolean>
|
private val seenNotifications: MutableMap<String, Boolean>
|
||||||
|
|
@ -74,7 +79,7 @@ class NotificationsManager (private val context: Context) {
|
||||||
Notification.Type.ACHIEVEMENT_GUILD_JOINED.type -> displayAchievementNotification(it)
|
Notification.Type.ACHIEVEMENT_GUILD_JOINED.type -> displayAchievementNotification(it)
|
||||||
Notification.Type.ACHIEVEMENT_CHALLENGE_JOINED.type -> displayAchievementNotification(it)
|
Notification.Type.ACHIEVEMENT_CHALLENGE_JOINED.type -> displayAchievementNotification(it)
|
||||||
Notification.Type.ACHIEVEMENT_INVITED_FRIEND.type -> displayAchievementNotification(it)
|
Notification.Type.ACHIEVEMENT_INVITED_FRIEND.type -> displayAchievementNotification(it)
|
||||||
Notification.Type.ACHIEVEMENT_GENERIC.type -> displayGenericAchievementNotification(it, notifications.find { notif ->
|
Notification.Type.ACHIEVEMENT_GENERIC.type -> displayAchievementNotification(it, notifications.find { notif ->
|
||||||
notif.type == Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type
|
notif.type == Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type
|
||||||
} != null)
|
} != null)
|
||||||
Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type -> displayAchievementNotification(it)
|
Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type -> displayAchievementNotification(it)
|
||||||
|
|
@ -117,15 +122,18 @@ class NotificationsManager (private val context: Context) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun displayAchievementNotification(notification: Notification): Boolean {
|
private fun displayAchievementNotification(notification: Notification, isLastOnboardingAchievement: Boolean = false): Boolean {
|
||||||
EventBus.getDefault().post(ShowAchievementDialog(notification.type ?: "", notification.id))
|
val achievement = (notification.data as? AchievementData)?.achievement ?: notification.type ?: ""
|
||||||
logOnboardingEvents(notification.type ?: "")
|
val delay: Long = if (achievement == "createdTask" || achievement == Notification.Type.ACHIEVEMENT_ONBOARDING_COMPLETE.type) {
|
||||||
return true
|
1000
|
||||||
}
|
} else {
|
||||||
|
200
|
||||||
private fun displayGenericAchievementNotification(notification: Notification, isLastOnboardingAchievement: Boolean): Boolean {
|
}
|
||||||
val achievement = (notification.data as? AchievementData)?.achievement ?: ""
|
val sub = Completable.complete()
|
||||||
EventBus.getDefault().post(ShowAchievementDialog(achievement, notification.id, isLastOnboardingAchievement))
|
.delay(delay, TimeUnit.MILLISECONDS)
|
||||||
|
.subscribe(Action {
|
||||||
|
EventBus.getDefault().post(ShowAchievementDialog(achievement, notification.id, isLastOnboardingAchievement))
|
||||||
|
}, RxErrorHandler.handleEmptyError())
|
||||||
logOnboardingEvents(achievement)
|
logOnboardingEvents(achievement)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ import io.realm.Realm
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ class MountDetailRecyclerAdapter(data: OrderedRealmCollection<Mount>?, autoUpdat
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val menu = BottomSheetMenu(itemView.context)
|
val menu = BottomSheetMenu(itemView.context)
|
||||||
menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.use_animal)))
|
menu.addMenuItem(BottomSheetMenuItem(resources.getString(R.string.equip)))
|
||||||
menu.setSelectionRunnable {
|
menu.setSelectionRunnable {
|
||||||
animal?.let { equipEvents.onNext(it.key) }
|
animal?.let { equipEvents.onNext(it.key) }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,7 +131,7 @@ class PetDetailRecyclerAdapter(data: OrderedRealmCollection<Pet>?, autoUpdate: B
|
||||||
}
|
}
|
||||||
val context = context ?: return
|
val context = context ?: return
|
||||||
val menu = BottomSheetMenu(context)
|
val menu = BottomSheetMenu(context)
|
||||||
menu.addMenuItem(BottomSheetMenuItem(itemView.resources.getString(R.string.use_animal)))
|
menu.addMenuItem(BottomSheetMenuItem(itemView.resources.getString(R.string.equip)))
|
||||||
if (canRaiseToMount) {
|
if (canRaiseToMount) {
|
||||||
menu.addMenuItem(BottomSheetMenuItem(itemView.resources.getString(R.string.feed)))
|
menu.addMenuItem(BottomSheetMenuItem(itemView.resources.getString(R.string.feed)))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@
|
||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"properties": [],
|
"properties": [],
|
||||||
"versionCode": 2450,
|
"versionCode": 2459,
|
||||||
"versionName": "2450",
|
"versionName": "2459",
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"outputFile": "Habitica-staff-release.apk"
|
"outputFile": "Habitica-staff-release.apk"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue