mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-21 21:29:00 +00:00
display pet name in menu popup
This commit is contained in:
parent
241599a785
commit
2dbbac0b41
3 changed files with 31 additions and 8 deletions
|
|
@ -1,7 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical" android:layout_width="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/BottomMenu"
|
||||
android:clickable="false">
|
||||
<TextView
|
||||
android:id="@+id/title_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
tools:text="Title"
|
||||
android:gravity="center"
|
||||
style="@style/Subheader1"
|
||||
android:background="@color/gray_700"
|
||||
android:padding="8dp"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/menu_items"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"/>
|
||||
</LinearLayout>
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
<dimen name="row_title_bottommargin">2dp</dimen>
|
||||
<dimen name="pet_width">84dp</dimen>
|
||||
<dimen name="mount_width">120dp</dimen>
|
||||
<dimen name="bottom_menu_padding">28dp</dimen>
|
||||
<dimen name="bottom_menu_padding">20dp</dimen>
|
||||
<dimen name="pet_image_width">68dp</dimen>
|
||||
<dimen name="pet_image_height">65dp</dimen>
|
||||
<dimen name="mount_image_width">81dp</dimen>
|
||||
|
|
|
|||
|
|
@ -5,13 +5,15 @@ import android.view.View
|
|||
import android.widget.LinearLayout
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.databinding.MenuBottomSheetBinding
|
||||
|
||||
class BottomSheetMenu(context: Context) : BottomSheetDialog(context), View.OnClickListener {
|
||||
private var contentView = layoutInflater.inflate(R.layout.menu_bottom_sheet, null) as LinearLayout
|
||||
private var binding = MenuBottomSheetBinding.inflate(layoutInflater)
|
||||
private var runnable: ((Int) -> Unit)? = null
|
||||
|
||||
init {
|
||||
setContentView(contentView)
|
||||
setContentView(binding.root)
|
||||
binding.titleView.visibility = View.GONE
|
||||
}
|
||||
|
||||
fun setSelectionRunnable(runnable: (Int) -> Unit) {
|
||||
|
|
@ -24,19 +26,24 @@ class BottomSheetMenu(context: Context) : BottomSheetDialog(context), View.OnCli
|
|||
}
|
||||
}
|
||||
|
||||
override fun setTitle(title: CharSequence?) {
|
||||
binding.titleView.text = title
|
||||
binding.titleView.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
fun addMenuItem(menuItem: BottomSheetMenuItem) {
|
||||
val item = menuItem.inflate(this.context, layoutInflater, this.contentView)
|
||||
val item = menuItem.inflate(this.context, layoutInflater, this.binding.menuItems)
|
||||
item.setOnClickListener(this)
|
||||
this.contentView.addView(item)
|
||||
this.binding.menuItems.addView(item)
|
||||
}
|
||||
|
||||
fun removeMenuItem(index: Int) {
|
||||
this.contentView.removeViewAt(index)
|
||||
this.binding.menuItems.removeViewAt(index)
|
||||
}
|
||||
|
||||
override fun onClick(v: View) {
|
||||
if (this.runnable != null) {
|
||||
val index = this.contentView.indexOfChild(v)
|
||||
val index = this.binding.menuItems.indexOfChild(v)
|
||||
if (index != -1) {
|
||||
runnable?.let { it(index) }
|
||||
this.dismiss()
|
||||
|
|
|
|||
Loading…
Reference in a new issue