mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-19 12:18:59 +00:00
Fixes #1382
This commit is contained in:
parent
6780486617
commit
1b0bf4aef1
7 changed files with 26 additions and 3 deletions
|
|
@ -1126,4 +1126,5 @@
|
|||
<string name="congratulations">Congratulations!</string>
|
||||
<string name="won_achievement_description">%s selected you as the winner! Your win has been recorded in your Achievements.</string>
|
||||
<string name="won_achievement_description_noname">You were selected as the winner! Your win has been recorded in your Achievements.</string>
|
||||
<string name="claim_x_gems">Claim %d Gems</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,5 @@
|
|||
package com.habitrpg.android.habitica.events
|
||||
|
||||
class ShowWonChallengeDialog(val id: String)
|
||||
import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
|
||||
|
||||
class ShowWonChallengeDialog(val id: String, val data: ChallengeWonData?)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.habitrpg.android.habitica.data.ApiClient
|
|||
import com.habitrpg.android.habitica.events.*
|
||||
import com.habitrpg.android.habitica.models.Notification
|
||||
import com.habitrpg.android.habitica.models.notifications.AchievementData
|
||||
import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
|
||||
import com.habitrpg.android.habitica.models.notifications.FirstDropData
|
||||
import com.habitrpg.android.habitica.models.notifications.LoginIncentiveData
|
||||
import com.habitrpg.android.habitica.models.user.User
|
||||
|
|
@ -89,7 +90,7 @@ class NotificationsManager (private val context: Context) {
|
|||
}
|
||||
|
||||
private fun displayWonChallengeNotificaiton(notification: Notification): Any {
|
||||
EventBus.getDefault().post(ShowWonChallengeDialog(notification.id))
|
||||
EventBus.getDefault().post(ShowWonChallengeDialog(notification.id, notification.data as? ChallengeWonData))
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ class Notification {
|
|||
Type.QUEST_INVITATION.type -> QuestInvitationData::class.java
|
||||
Type.FIRST_DROP.type -> FirstDropData::class.java
|
||||
Type.ACHIEVEMENT_GENERIC.type -> AchievementData::class.java
|
||||
Type.WON_CHALLENGE.type -> ChallengeWonData::class.java
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,6 @@
|
|||
package com.habitrpg.android.habitica.models.notifications
|
||||
|
||||
open class ChallengeWonData : NotificationData {
|
||||
var name: String? = null
|
||||
var prize: Int? = null
|
||||
}
|
||||
|
|
@ -835,6 +835,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
.subscribe({
|
||||
retrieveUser(true)
|
||||
val dialog = WonChallengeDialog(this)
|
||||
dialog.configure(event.data)
|
||||
dialog.enqueue()
|
||||
apiClient.readNotification(event.id)
|
||||
.subscribe({ }, RxErrorHandler.handleEmptyError())
|
||||
|
|
|
|||
|
|
@ -2,11 +2,23 @@ package com.habitrpg.android.habitica.ui.views.dialogs
|
|||
|
||||
import android.content.Context
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.TextView
|
||||
import com.facebook.drawee.view.SimpleDraweeView
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.models.notifications.ChallengeWonData
|
||||
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
|
||||
|
||||
class WonChallengeDialog(context: Context) : HabiticaAlertDialog(context) {
|
||||
fun configure(data: ChallengeWonData?) {
|
||||
if (data != null) {
|
||||
additionalContentView?.findViewById<TextView>(R.id.description_view)?.text = context.getString(R.string.won_achievement_description, data.name)
|
||||
|
||||
addButton(context.getString(R.string.claim_x_gems, data.prize), true)
|
||||
} else {
|
||||
addButton(R.string.hurray, true)
|
||||
}
|
||||
}
|
||||
|
||||
init {
|
||||
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as? LayoutInflater
|
||||
val view = inflater?.inflate(R.layout.dialog_won_challenge, null)
|
||||
|
|
@ -15,6 +27,5 @@ class WonChallengeDialog(context: Context) : HabiticaAlertDialog(context) {
|
|||
DataBindingUtils.loadImage(view?.findViewById<SimpleDraweeView>(R.id.hatchingPotion_view), "achievement-karaoke2x")
|
||||
|
||||
setAdditionalContentView(view)
|
||||
addButton(R.string.hurray, true)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue