mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-20 04:39:04 +00:00
Begin implementing new modals
This commit is contained in:
parent
1d2f3ab1bb
commit
7a1ef8a7cc
19 changed files with 214 additions and 111 deletions
BIN
Habitica/res/drawable-hdpi/avatar_border.png
Normal file
BIN
Habitica/res/drawable-hdpi/avatar_border.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Habitica/res/drawable-mdpi/avatar_border.png
Normal file
BIN
Habitica/res/drawable-mdpi/avatar_border.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
Habitica/res/drawable-xhdpi/avatar_border.png
Normal file
BIN
Habitica/res/drawable-xhdpi/avatar_border.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
BIN
Habitica/res/drawable-xxhdpi/avatar_border.png
Normal file
BIN
Habitica/res/drawable-xxhdpi/avatar_border.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4 KiB |
BIN
Habitica/res/drawable-xxxhdpi/avatar_border.png
Normal file
BIN
Habitica/res/drawable-xxxhdpi/avatar_border.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.9 KiB |
7
Habitica/res/drawable/alert_dialog_background.xml
Normal file
7
Habitica/res/drawable/alert_dialog_background.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="?colorContentBackground" />
|
||||
<corners android:radius="16dp"/>
|
||||
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
|
||||
<stroke android:width="1dp" android:color="#19000000" />
|
||||
</shape>
|
||||
7
Habitica/res/drawable/alert_dialog_button_divider.xml
Normal file
7
Habitica/res/drawable/alert_dialog_button_divider.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<size
|
||||
android:height="4dp"
|
||||
android:width="4dp"/>
|
||||
</shape>
|
||||
7
Habitica/res/drawable/button_background_primary.xml
Normal file
7
Habitica/res/drawable/button_background_primary.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="@color/brand_400" />
|
||||
<corners android:radius="8dp"/>
|
||||
<padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
|
||||
<stroke android:width="1dp" android:color="#19000000" />
|
||||
</shape>
|
||||
|
|
@ -2,46 +2,68 @@
|
|||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<TextView
|
||||
android:id="@+id/titleTextView"
|
||||
android:layout_width="320dp"
|
||||
android:layout_height="wrap_content"
|
||||
tools:background="@color/black"
|
||||
android:minWidth="300dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:layout_gravity="center_horizontal">
|
||||
<LinearLayout
|
||||
android:minWidth="300dp"
|
||||
android:layout_width="320dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@drawable/alert_dialog_background"
|
||||
android:paddingBottom="28dp"
|
||||
android:paddingTop="44dp"
|
||||
android:paddingEnd="26dp"
|
||||
android:paddingStart="26dp"
|
||||
android:gravity="center_horizontal">
|
||||
<TextView
|
||||
android:id="@+id/titleTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:paddingBottom="@dimen/spacing_large"
|
||||
style="@style/Headline6"
|
||||
tools:text="This is the title"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/messageTextView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
android:textColor="?textColorSecondary"
|
||||
style="@style/Body2"
|
||||
tools:text="This is the message"
|
||||
/>
|
||||
<FrameLayout
|
||||
android:id="@+id/content_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content" />
|
||||
<LinearLayout
|
||||
android:id="@+id/buttons_wrapper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="26dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_horizontal"
|
||||
android:divider="@drawable/alert_dialog_button_divider"
|
||||
android:showDividers="middle"/>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/close_button"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@color/white"
|
||||
android:paddingTop="@dimen/spacing_large"
|
||||
android:paddingBottom="@dimen/spacing_large"
|
||||
android:textSize="18sp"
|
||||
android:paddingLeft="@dimen/spacing_large"
|
||||
android:paddingRight="@dimen/spacing_large"
|
||||
tools:text="This is the title!"
|
||||
tools:background="@color/brand_300"
|
||||
/>
|
||||
<TextView
|
||||
android:text="@string/close"
|
||||
android:textColor="@color/brand_400"
|
||||
android:background="@drawable/alert_dialog_background"
|
||||
android:layout_marginTop="@dimen/spacing_large"
|
||||
android:id="@+id/subtitleTextView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@color/black"
|
||||
android:textSize="18sp"
|
||||
android:visibility="gone"
|
||||
android:layout_marginBottom="@dimen/spacing_small"
|
||||
tools:text="This is a subtitle"
|
||||
android:paddingLeft="@dimen/spacing_large"
|
||||
android:paddingRight="@dimen/spacing_large"
|
||||
tools:visibility="visible"/>
|
||||
<TextView
|
||||
android:id="@+id/messageTextView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@color/black_50_alpha"
|
||||
android:textSize="14sp"
|
||||
android:visibility="gone"
|
||||
android:paddingLeft="@dimen/spacing_large"
|
||||
android:paddingRight="@dimen/spacing_large"
|
||||
tools:text="This is an example message"
|
||||
tools:visibility="visible"/>
|
||||
</LinearLayout>
|
||||
tools:visibility="visible"
|
||||
android:textSize="16sp"
|
||||
android:textAllCaps="false"/>
|
||||
</LinearLayout>
|
||||
|
|
|
|||
|
|
@ -1,25 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="24dip"
|
||||
android:paddingEnd="24dip"
|
||||
android:paddingStart="24dip"
|
||||
android:paddingRight="24dip">
|
||||
<com.habitrpg.android.habitica.ui.AvatarView
|
||||
android:layout_width="@dimen/avatar_width"
|
||||
android:layout_height="@dimen/avatar_height"
|
||||
android:id="@+id/avatarView"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="@dimen/spacing_large"
|
||||
android:layout_marginBottom="@dimen/spacing_large"/>
|
||||
android:orientation="vertical" android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_horizontal">
|
||||
<FrameLayout
|
||||
android:layout_width="111dp"
|
||||
android:layout_height="114dp"
|
||||
android:layout_marginBottom="@dimen/spacing_large"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/avatar_border"
|
||||
android:layout_marginTop="@dimen/spacing_large">
|
||||
<com.habitrpg.android.habitica.ui.AvatarView
|
||||
android:layout_width="94dp"
|
||||
android:layout_height="98dp"
|
||||
android:id="@+id/avatarView"
|
||||
android:layout_gravity="center"/>
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/levelupDetail"
|
||||
android:text="@string/levelup_detail"
|
||||
style="@style/Body2"
|
||||
android:gravity="center_horizontal"
|
||||
android:textColor="@color/gray_200"/>
|
||||
</LinearLayout>
|
||||
6
Habitica/res/values-w360dp/styles.xml
Normal file
6
Habitica/res/values-w360dp/styles.xml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<style name="AlertDialogContainer">
|
||||
<item name="android:layout_width">300dp</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
@ -139,4 +139,5 @@
|
|||
<dimen name="bb_default_elevation">8dp</dimen>
|
||||
<dimen name="bb_fake_shadow_height">4dp</dimen>
|
||||
<dimen name="button_height">38dp</dimen>
|
||||
<dimen name="button_text_size">16sp</dimen>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@
|
|||
|
||||
<string name="levelup_header">You Reached Level %1$d!</string>
|
||||
<string name="levelup_detail">By accomplishing your real life goals, you leveled up and are now fully healed!</string>
|
||||
<string name="levelup_button">Huzzah!</string>
|
||||
<string name="levelup_button">Onwards!</string>
|
||||
|
||||
<string name="faint_subtitle">Don\'t despair!</string>
|
||||
<string name="faint_penalty_body">You lost a Level, your Gold, and a piece of Equipment, but you can get them all back with hard work! Good luck—you\'ll do great.</string>
|
||||
|
|
|
|||
|
|
@ -12,15 +12,16 @@
|
|||
<style name="Title1">
|
||||
<item name="android:fontFamily">@string/font_family_medium</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:letterSpacing">0.051</item>
|
||||
<item name="android:letterSpacing">0.07</item>
|
||||
<item name="android:textColor">?textColorPrimary</item>
|
||||
</style>
|
||||
|
||||
<style name="Title1_WideLetterSpacing" parent="@style/Title1">
|
||||
<item name="android:letterSpacing">0.133</item>
|
||||
</style>
|
||||
|
||||
<style name="Title2">
|
||||
<item name="android:fontFamily">@string/font_family_condensed</item>
|
||||
<style name="Title2" parent="@style/Title1">
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">28sp</item>
|
||||
<item name="android:letterSpacing">0.05</item>
|
||||
</style>
|
||||
|
|
@ -28,27 +29,37 @@
|
|||
<!-- Headline -->
|
||||
|
||||
<style name="Headline">
|
||||
<item name="android:fontFamily">@string/font_family_condensed</item>
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">18sp</item>
|
||||
<item name="android:letterSpacing">0.03</item>
|
||||
</style>
|
||||
|
||||
<style name="Headline6">
|
||||
<item name="android:fontFamily">sans-serif-medium</item>
|
||||
<item name="android:textSize">20sp</item>
|
||||
<item name="android:letterSpacing">0.01</item>
|
||||
<item name="android:textColor">?textColorPrimary</item>
|
||||
</style>
|
||||
|
||||
<!-- Subheader -->
|
||||
<style name="Subheader1">
|
||||
<item name="android:fontFamily">@string/font_family_medium</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:textColor">?textColorSecondary</item>
|
||||
</style>
|
||||
|
||||
<style name="Subheader2">
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:letterSpacing">0.08</item>
|
||||
<item name="android:textColor">?textColorSecondary</item>
|
||||
</style>
|
||||
|
||||
<style name="Subheader3">
|
||||
<item name="android:fontFamily">@string/font_family_condensed</item>
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">16sp</item>
|
||||
<item name="android:letterSpacing">0.04</item>
|
||||
<item name="android:textColor">?textColorSecondary</item>
|
||||
</style>
|
||||
|
||||
<!-- Body -->
|
||||
|
|
@ -65,9 +76,10 @@
|
|||
</style>
|
||||
|
||||
<style name="Body2">
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:fontFamily">sans-serif</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:letterSpacing">0.035</item>
|
||||
<item name="android:letterSpacing">0.02</item>
|
||||
<item name="android:lineSpacingExtra">6sp</item>
|
||||
</style>
|
||||
|
||||
<style name="Body2_Wide" parent="Body2">
|
||||
|
|
@ -75,7 +87,7 @@
|
|||
</style>
|
||||
|
||||
<style name="Body3">
|
||||
<item name="android:fontFamily">@string/font_family_condensed</item>
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">14sp</item>
|
||||
<item name="android:letterSpacing">0.035</item>
|
||||
</style>
|
||||
|
|
@ -105,7 +117,7 @@
|
|||
</style>
|
||||
|
||||
<style name="Caption4">
|
||||
<item name="android:fontFamily">@string/font_family_condensed</item>
|
||||
<item name="android:fontFamily">@string/font_family_regular</item>
|
||||
<item name="android:textSize">12sp</item>
|
||||
<item name="android:letterSpacing">0.035</item>
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@
|
|||
<item name="windowNoTitle">true</item>
|
||||
|
||||
<!-- ...and here we setting appcompat’s color theming attrs -->
|
||||
<item name="colorPrimary">@color/brand</item>
|
||||
<item name="colorPrimaryDark">@color/brand_50</item>
|
||||
<item name="colorAccent">@color/brand</item>
|
||||
<item name="android:colorPrimary">@color/brand</item>
|
||||
<item name="android:colorPrimaryDark">@color/brand_50</item>
|
||||
<item name="android:colorAccent">@color/brand_400</item>
|
||||
<item name="colorPrimaryOffset">@color/brand_200</item>
|
||||
<item name="colorPrimaryDistinct">@color/brand_500</item>
|
||||
<item name="colorBadgeBackground">@color/brand_400</item>
|
||||
|
|
@ -196,6 +196,12 @@
|
|||
|
||||
<style name="AlertDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
|
||||
<item name="colorAccent">@color/brand_100</item>
|
||||
<item name="android:windowFrame">@null</item>
|
||||
<item name="android:windowIsFloating">true</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
|
||||
<item name="android:windowBackground">@color/transparent</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
</style>
|
||||
|
||||
<style name="SectionTitle">
|
||||
|
|
@ -599,4 +605,8 @@
|
|||
</style>
|
||||
|
||||
<color name="taskform_gray">#99edecee</color>
|
||||
|
||||
<style name="AlertDialogContainer">
|
||||
<item name="android:layout_width">320dp</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
@ -58,6 +58,7 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils
|
|||
import com.habitrpg.android.habitica.ui.helpers.KeyboardUtil
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindOptionalView
|
||||
import com.habitrpg.android.habitica.ui.helpers.bindView
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaAlertDialog
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
|
||||
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar.SnackbarDisplayType
|
||||
|
|
@ -181,7 +182,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
val themeID = sharedPreferences.getInt("theme", R.style.AppTheme_NoActionBar)
|
||||
setTheme(themeID)
|
||||
sharedPreferences.edit {
|
||||
this.putInt("theme", R.style.AppTheme_NoActionBar_Blue)
|
||||
this.putInt("theme", R.style.AppTheme_NoActionBar)
|
||||
}
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
|
|
@ -269,6 +270,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
|
||||
override fun injectActivity(component: AppComponent?) {
|
||||
component?.inject(this)
|
||||
component?.inject(this)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
|
|
@ -305,6 +307,22 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
|
||||
launchTrace?.stop()
|
||||
launchTrace = null
|
||||
|
||||
val customView = layoutInflater.inflate(R.layout.dialog_levelup, null)
|
||||
if (customView != null) {
|
||||
val dialogAvatarView = customView.findViewById<AvatarView>(R.id.avatarView)
|
||||
user?.let { dialogAvatarView.setAvatar(it) }
|
||||
}
|
||||
|
||||
val alert = HabiticaAlertDialog(this)
|
||||
alert.setTitle(getString(R.string.levelup_header, 5))
|
||||
alert.setAdditionalContentView(customView)
|
||||
alert.addButton(R.string.levelup_button, true) { dialog -> dialog.dismiss() }
|
||||
alert.addButton(R.string.share, false) {
|
||||
|
||||
}
|
||||
|
||||
alert.show()
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
|
|
|
|||
|
|
@ -4,14 +4,14 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.graphics.PorterDuff
|
||||
import android.os.Bundle
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.net.toUri
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.AppComponent
|
||||
|
|
@ -19,8 +19,8 @@ import com.habitrpg.android.habitica.data.InventoryRepository
|
|||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.extensions.notNull
|
||||
import com.habitrpg.android.habitica.helpers.MainNavigationController
|
||||
import com.habitrpg.android.habitica.helpers.AppConfigManager
|
||||
import com.habitrpg.android.habitica.helpers.MainNavigationController
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.models.inventory.QuestContent
|
||||
import com.habitrpg.android.habitica.models.members.PlayerTier
|
||||
|
|
@ -180,8 +180,7 @@ class TavernDetailFragment : BaseFragment() {
|
|||
val alert = HabiticaAlertDialog(context)
|
||||
val bossName = quest.boss?.name ?: ""
|
||||
alert.setTitle(R.string.world_boss_description_title)
|
||||
alert.setTitleBackgroundColor(quest.colors?.lightColor ?: 0)
|
||||
alert.setSubtitle(context.getString(R.string.world_boss_description_subtitle, bossName))
|
||||
//alert.setSubtitle(context.getString(R.string.world_boss_description_subtitle, bossName))
|
||||
alert.setAdditionalContentView(R.layout.world_boss_description_view)
|
||||
|
||||
val descriptionView = alert.getContentView()
|
||||
|
|
|
|||
|
|
@ -1,29 +1,38 @@
|
|||
package com.habitrpg.android.habitica.ui.views
|
||||
|
||||
import android.content.Context
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.extensions.dpToPx
|
||||
import com.habitrpg.android.habitica.extensions.getThemeColor
|
||||
import com.habitrpg.android.habitica.extensions.layoutInflater
|
||||
import com.habitrpg.android.habitica.extensions.setScaledPadding
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
open class HabiticaAlertDialog(context: Context) : AlertDialog(context) {
|
||||
|
||||
private val view: LinearLayout = LayoutInflater.from(context).inflate(R.layout.dialog_habitica_base, null) as LinearLayout
|
||||
private var titleTextView: TextView
|
||||
private var subtitleTextView: TextView
|
||||
private var messageTextView: TextView
|
||||
private var contentView: ViewGroup
|
||||
private var buttonsWrapper: LinearLayout
|
||||
|
||||
private var additionalContentView: View? = null
|
||||
|
||||
init {
|
||||
setView(view)
|
||||
titleTextView = view.findViewById(R.id.titleTextView)
|
||||
subtitleTextView = view.findViewById(R.id.subtitleTextView)
|
||||
messageTextView = view.findViewById(R.id.messageTextView)
|
||||
contentView = view.findViewById(R.id.content_view)
|
||||
buttonsWrapper = view.findViewById(R.id.buttons_wrapper)
|
||||
}
|
||||
|
||||
override fun setTitle(title: CharSequence?) {
|
||||
|
|
@ -34,27 +43,6 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context) {
|
|||
setTitle(context.getString(titleId))
|
||||
}
|
||||
|
||||
fun setTitleBackground(colorId: Int) {
|
||||
titleTextView.setBackgroundColor(ContextCompat.getColor(context, colorId))
|
||||
}
|
||||
|
||||
fun setTitleBackgroundColor(color: Int) {
|
||||
titleTextView.setBackgroundColor(color)
|
||||
}
|
||||
|
||||
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
|
||||
|
|
@ -73,15 +61,39 @@ open class HabiticaAlertDialog(context: Context) : AlertDialog(context) {
|
|||
setAdditionalContentView(inflater.inflate(layoutResID, view, false))
|
||||
}
|
||||
|
||||
fun setAdditionalContentView(view: View?, index: Int = -1) {
|
||||
fun setAdditionalContentView(view: View?) {
|
||||
this.view.removeView(additionalContentView)
|
||||
additionalContentView = view
|
||||
if (index >= 0) {
|
||||
this.view.addView(view, index)
|
||||
} else {
|
||||
this.view.addView(view)
|
||||
}
|
||||
this.contentView.addView(view)
|
||||
val layoutParams = view?.layoutParams
|
||||
layoutParams?.width = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
layoutParams?.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
view?.layoutParams = layoutParams
|
||||
contentView.forceLayout()
|
||||
}
|
||||
|
||||
|
||||
|
||||
fun getContentView(): View? = additionalContentView
|
||||
|
||||
fun addButton(stringRes: Int, isPrimary: Boolean, function: (HabiticaAlertDialog) -> Unit) {
|
||||
val button = Button(context)
|
||||
button.text = context.getString(stringRes)
|
||||
button.transformationMethod = null
|
||||
button.textSize = context.resources.getDimension(R.dimen.button_text_size)
|
||||
if (isPrimary) {
|
||||
button.background = context.getDrawable(R.drawable.button_background_primary)
|
||||
button.setTextColor(context.getThemeColor(R.attr.textColorPrimaryDark))
|
||||
} else {
|
||||
button.background = ColorDrawable(ContextCompat.getColor(context, R.color.transparent))
|
||||
button.setTextColor(ContextCompat.getColor(context, R.color.brand_400))
|
||||
}
|
||||
val weakThis = WeakReference<HabiticaAlertDialog>(this)
|
||||
button.setOnClickListener { weakThis.get()?.let { it1 -> function(it1) } }
|
||||
val layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 38.dpToPx(context))
|
||||
button.setScaledPadding(context, 26, 0, 26, 0)
|
||||
button.minWidth = 147.dpToPx(context)
|
||||
button.layoutParams = layoutParams
|
||||
buttonsWrapper.addView(button)
|
||||
}
|
||||
}
|
||||
|
|
@ -223,14 +223,13 @@ class QuestProgressView : LinearLayout {
|
|||
private fun showActiveStrikeAlert(key: String) {
|
||||
val alert = HabiticaAlertDialog(context)
|
||||
alert.setTitle(context.getString(R.string.strike_active_title, getLocationName(key)))
|
||||
alert.setTitleBackground(R.color.orange_10)
|
||||
alert.setSubtitle(context.getString(R.string.strike_active_subtitle, getNpcName(key)))
|
||||
// alert.setSubtitle(context.getString(R.string.strike_active_subtitle, getNpcName(key)))
|
||||
alert.setMessage(context.getString(R.string.strike_active_description, getLongNPCName(key), quest?.boss?.name ?: "", getLocationName(key)))
|
||||
|
||||
val npcBannerView = NPCBannerView(context, null)
|
||||
npcBannerView.shopSpriteSuffix = quest?.key ?: ""
|
||||
npcBannerView.identifier = key
|
||||
alert.setAdditionalContentView(npcBannerView, 1)
|
||||
alert.setAdditionalContentView(npcBannerView)
|
||||
|
||||
alert.setButton(AlertDialog.BUTTON_POSITIVE, context.getString(R.string.close)) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
|
|
@ -241,9 +240,8 @@ class QuestProgressView : LinearLayout {
|
|||
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.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()
|
||||
}
|
||||
|
|
@ -253,9 +251,8 @@ class QuestProgressView : LinearLayout {
|
|||
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.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()
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue