show world boss state on tavern menu entry

This commit is contained in:
Phillip Thelen 2018-02-09 17:14:16 +01:00
parent da18a6b77d
commit 9d3bcc2525
4 changed files with 28 additions and 10 deletions

View file

@ -755,4 +755,5 @@
<string name="tavern_owner_long">Daniel the inn keeper</string> <string name="tavern_owner_long">Daniel the inn keeper</string>
<string name="stable_owner_long">Matt the beast master</string> <string name="stable_owner_long">Matt the beast master</string>
<string name="hide_boss_art">Hide Boss Art</string> <string name="hide_boss_art">Hide Boss Art</string>
<string name="active_world_boss">Active World Boss</string>
</resources> </resources>

View file

@ -1,5 +1,6 @@
package com.habitrpg.android.habitica.ui.adapter package com.habitrpg.android.habitica.ui.adapter
import android.content.Context
import android.graphics.PorterDuff import android.graphics.PorterDuff
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v7.widget.RecyclerView import android.support.v7.widget.RecyclerView
@ -114,17 +115,24 @@ class NavigationDrawerAdapter(tintColor: Int, backgroundTintColor: Int): Recycle
if (drawerItem.additionalInfo != null) { if (drawerItem.additionalInfo != null) {
additionalInfoView.visibility = View.VISIBLE additionalInfoView.visibility = View.VISIBLE
additionalInfoView.text = drawerItem.additionalInfo additionalInfoView.text = drawerItem.additionalInfo
val drawable = ContextCompat.getDrawable(itemView.context, R.drawable.pill_bg) if (drawerItem.additionalInfoAsPill) {
if (drawable != null) { val drawable = ContextCompat.getDrawable(itemView.context, R.drawable.pill_bg)
DrawableCompat.setTint(drawable, backgroundTintColor) if (drawable != null) {
DrawableCompat.setTint(drawable, backgroundTintColor)
val pL = additionalInfoView.paddingLeft val pL = additionalInfoView.paddingLeft
val pT = additionalInfoView.paddingTop val pT = additionalInfoView.paddingTop
val pR = additionalInfoView.paddingRight val pR = additionalInfoView.paddingRight
val pB = additionalInfoView.paddingBottom val pB = additionalInfoView.paddingBottom
additionalInfoView.backgroundCompat = drawable additionalInfoView.backgroundCompat = drawable
additionalInfoView.setPadding(pL, pT, pR, pB) additionalInfoView.setTextColor(ContextCompat.getColor(itemView.context, R.color.white))
additionalInfoView.setPadding(pL, pT, pR, pB)
}
} else {
additionalInfoView.setBackgroundColor(ContextCompat.getColor(itemView.context, R.color.transparent))
additionalInfoView.setTextColor(tintColor)
additionalInfoView.setPadding(0, 0, 0,0)
} }
} else { } else {
additionalInfoView.visibility = View.GONE additionalInfoView.visibility = View.GONE

View file

@ -97,6 +97,9 @@ class NavigationDrawerFragment : DialogFragment() {
adapter.tintColor = ContextCompat.getColor(it, R.color.brand_300) adapter.tintColor = ContextCompat.getColor(it, R.color.brand_300)
adapter.backgroundTintColor = ContextCompat.getColor(it, R.color.brand_200) adapter.backgroundTintColor = ContextCompat.getColor(it, R.color.brand_200)
} }
adapter.items.filter { it.identifier == SIDEBAR_TAVERN }.forEach {
it.additionalInfo = null
}
return return
} }
questMenuView.visibility = View.VISIBLE questMenuView.visibility = View.VISIBLE
@ -117,6 +120,12 @@ class NavigationDrawerFragment : DialogFragment() {
questMenuView.showBossArt() questMenuView.showBossArt()
}*/ }*/
questMenuView.hideBossArt() questMenuView.hideBossArt()
adapter.items.filter { it.identifier == SIDEBAR_TAVERN }.forEach {
it.additionalInfo = context?.getString(R.string.active_world_boss)
it.additionalInfoAsPill = false
}
adapter.notifyDataSetChanged()
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {

View file

@ -1,6 +1,6 @@
package com.habitrpg.android.habitica.ui.menu package com.habitrpg.android.habitica.ui.menu
class HabiticaDrawerItem(val identifier: String, val text: String, val isHeader: Boolean = false) { class HabiticaDrawerItem(val identifier: String, val text: String, val isHeader: Boolean = false, var additionalInfoAsPill: Boolean = true) {
var additionalInfo: String? = null var additionalInfo: String? = null
var isVisible: Boolean = true var isVisible: Boolean = true