diff --git a/Habitica/res/layout/dialog_habitica_base.xml b/Habitica/res/layout/dialog_habitica_base.xml
new file mode 100644
index 000000000..47f88b81f
--- /dev/null
+++ b/Habitica/res/layout/dialog_habitica_base.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/values/colors.xml b/Habitica/res/values/colors.xml
index 9f243164d..3feca2261 100644
--- a/Habitica/res/values/colors.xml
+++ b/Habitica/res/values/colors.xml
@@ -160,4 +160,5 @@
#4cfedead
#331960
@color/gray_500
+ #000
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 5b9543c48..8ede54478 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -741,4 +741,10 @@
Boss Art
World Boss Description
Rage Strikes: %d/%d
+ This Strike hasn’t happened yet!\nThe World Boss will lash out and attack one of our friendly shopkeepers once its rage bar fills. Keep up with your Dailies to try and prevent it from happening!
+ Pending Strike
+ What’s a Rage Strike?
+ There are 3 potential Rage Strikes
+ This gauge fills when Habiticans miss their Dailies. If it fills up, the DysHeartener will unleash its Shattering Heartbreak attack on one of Habitica\'s shopkeepers, so be sure to do your tasks!
+ This Strike hasn’t happened yet!
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaAlertDialog.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaAlertDialog.kt
new file mode 100644
index 000000000..8cfe6e2fa
--- /dev/null
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/HabiticaAlertDialog.kt
@@ -0,0 +1,66 @@
+package com.habitrpg.android.habitica.ui.views
+
+import android.content.Context
+import android.os.Bundle
+import android.support.v4.content.ContextCompat
+import android.support.v7.app.AlertDialog
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.LinearLayout
+import android.widget.TextView
+import com.habitrpg.android.habitica.R
+import com.habitrpg.android.habitica.extensions.bindView
+
+/**
+ * Created by phillip on 01.02.18.
+ */
+
+open class HabiticaAlertDialog(context: Context) : AlertDialog(context) {
+
+ private val view: LinearLayout = LayoutInflater.from(context).inflate(R.layout.dialog_habitica_base, null) as LinearLayout
+ private val titleTextView: TextView by bindView(view, R.id.titleTextView)
+ private val subtitleTextView: TextView by bindView(view, R.id.subtitleTextView)
+ private val messageTextView: TextView by bindView(view, R.id.messageTextView)
+
+ init {
+ setView(view)
+ }
+
+ override fun setTitle(title: CharSequence?) {
+ titleTextView.text = title
+ }
+
+ override fun setTitle(titleId: Int) {
+ setTitle(context.getString(titleId))
+ }
+
+ fun setTitleBackground(colorId: Int) {
+ titleTextView.setBackgroundColor(ContextCompat.getColor(context, colorId))
+ }
+
+ fun setSubtitle(subtitle: CharSequence?) {
+ if (subtitle != null) {
+ subtitleTextView.visibility = View.VISIBLE
+ } else {
+ subtitleTextView.visibility = View.GONE
+ }
+ subtitleTextView.text = subtitle
+ }
+
+ fun setSubtitle(subtitleId: Int) {
+ setSubtitle(context.getString(subtitleId))
+ }
+
+ override fun setMessage(message: CharSequence?) {
+ if (message != null) {
+ messageTextView.visibility = View.VISIBLE
+ } else {
+ messageTextView.visibility = View.GONE
+ }
+ messageTextView.text = message
+ }
+
+ fun setMessage(messageId: Int) {
+ setMessage(context.getString(messageId))
+ }
+}
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
index 046313f87..4b56bc2b8 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/QuestProgressView.kt
@@ -1,11 +1,13 @@
package com.habitrpg.android.habitica.ui.views.social
import android.content.Context
+import android.content.DialogInterface
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.RectF
import android.support.v4.content.ContextCompat
import android.support.v4.content.res.ResourcesCompat
+import android.support.v7.app.AlertDialog
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
@@ -17,16 +19,16 @@ import android.widget.TextView
import com.facebook.drawee.view.SimpleDraweeView
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.extensions.bindView
+import com.habitrpg.android.habitica.helpers.RxErrorHandler
+import com.habitrpg.android.habitica.interactors.CheckClassSelectionUseCase
import com.habitrpg.android.habitica.models.inventory.Quest
import com.habitrpg.android.habitica.models.inventory.QuestContent
import com.habitrpg.android.habitica.models.inventory.QuestProgress
import com.habitrpg.android.habitica.models.inventory.QuestProgressCollect
import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
-import com.habitrpg.android.habitica.ui.views.CollapsibleSectionView
-import com.habitrpg.android.habitica.ui.views.HabiticaIcons
-import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
-import com.habitrpg.android.habitica.ui.views.ValueBar
+import com.habitrpg.android.habitica.ui.views.*
import io.realm.RealmList
+import org.greenrobot.eventbus.EventBus
class QuestProgressView : LinearLayout {
@@ -79,6 +81,8 @@ class QuestProgressView : LinearLayout {
showQuestImage()
}
}
+
+ rageStrikeDescriptionView.setOnClickListener { showStrikeDescriptionAlert() }
}
override fun onDraw(canvas: Canvas?) {
@@ -164,9 +168,11 @@ class QuestProgressView : LinearLayout {
val height = it.height * displayDensity
val scaledImage = Bitmap.createScaledBitmap(it, width.toInt(), height.toInt(), false)
iconView.setImageBitmap(HabiticaIconsHelper.imageOfRageStrikeActive(context, scaledImage))
+ iconView.setOnClickListener { showActiveStrikeAlert(strike.key) }
})
} else {
iconView.setImageBitmap(HabiticaIconsHelper.imageOfRageStrikeInactive())
+ iconView.setOnClickListener { showPendingStrikeAlert() }
}
val params = LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
val spacing = context.resources.getDimension(R.dimen.spacing_medium).toInt()
@@ -175,6 +181,34 @@ class QuestProgressView : LinearLayout {
}
}
+ private fun showActiveStrikeAlert(key: String) {
+
+ }
+
+ private fun showPendingStrikeAlert() {
+ val alert = HabiticaAlertDialog(context)
+ alert.setTitle(R.string.pending_strike_title)
+ alert.setTitleBackground(R.color.orange_10)
+ alert.setSubtitle(R.string.pending_strike_subtitle)
+ alert.setMessage(R.string.pending_strike_description)
+ alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close), { dialog, _ ->
+ dialog.dismiss()
+ })
+ alert.show()
+ }
+
+ private fun showStrikeDescriptionAlert() {
+ val alert = HabiticaAlertDialog(context)
+ alert.setTitle(R.string.strike_description_title)
+ alert.setTitleBackground(R.color.orange_10)
+ alert.setSubtitle(R.string.strike_description_subtitle)
+ alert.setMessage(R.string.strike_description_description)
+ alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close), { dialog, _ ->
+ dialog.dismiss()
+ })
+ alert.show()
+ }
+
private fun setCollectionViews(collection: RealmList, quest: QuestContent) {
val inflater = LayoutInflater.from(context)
for (collect in collection) {