This commit is contained in:
Phillip Thelen 2020-11-10 18:24:35 +01:00
parent 6780486617
commit 1b0bf4aef1
7 changed files with 26 additions and 3 deletions

View file

@ -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>

View file

@ -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?)

View file

@ -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
}

View file

@ -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
}
}

View file

@ -0,0 +1,6 @@
package com.habitrpg.android.habitica.models.notifications
open class ChallengeWonData : NotificationData {
var name: String? = null
var prize: Int? = null
}

View file

@ -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())

View file

@ -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)
}
}