Commit f4f34ec5 authored by Leonardo Aramaki's avatar Leonardo Aramaki

Layout adjustments on commands

parent f1b43573
...@@ -31,7 +31,7 @@ class CommandSuggestionsAdapter : SuggestionsAdapter<CommandSuggestionsViewHolde ...@@ -31,7 +31,7 @@ class CommandSuggestionsAdapter : SuggestionsAdapter<CommandSuggestionsViewHolde
val res = context.resources val res = context.resources
val id = res.getIdentifier(item.description, "string", context.packageName) val id = res.getIdentifier(item.description, "string", context.packageName)
val description = if (id > 0) res.getString(id) else "" val description = if (id > 0) res.getString(id) else ""
descriptionTextView.text = description descriptionTextView.text = description.toLowerCase()
setOnClickListener { setOnClickListener {
itemClickListener?.onClick(item) itemClickListener?.onClick(item)
} }
......
...@@ -499,6 +499,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR ...@@ -499,6 +499,7 @@ class ChatRoomFragment : Fragment(), ChatRoomView, EmojiKeyboardListener, EmojiR
private fun setupSuggestionsView() { private fun setupSuggestionsView() {
suggestions_view.anchorTo(text_message) suggestions_view.anchorTo(text_message)
.setMaximumHeight(resources.getDimensionPixelSize(R.dimen.suggestions_box_max_height))
.addTokenAdapter(PeopleSuggestionsAdapter()) .addTokenAdapter(PeopleSuggestionsAdapter())
.addTokenAdapter(CommandSuggestionsAdapter()) .addTokenAdapter(CommandSuggestionsAdapter())
.addTokenAdapter(RoomSuggestionsAdapter()) .addTokenAdapter(RoomSuggestionsAdapter())
......
...@@ -40,6 +40,7 @@ class SuggestionsView : FrameLayout, TextWatcher { ...@@ -40,6 +40,7 @@ class SuggestionsView : FrameLayout, TextWatcher {
private val localProvidersByToken = hashMapOf<String, HashMap<String, List<SuggestionModel>>>() private val localProvidersByToken = hashMapOf<String, HashMap<String, List<SuggestionModel>>>()
private var editor: WeakReference<EditText>? = null private var editor: WeakReference<EditText>? = null
private var completionStartIndex = AtomicInteger(NO_STATE_INDEX) private var completionStartIndex = AtomicInteger(NO_STATE_INDEX)
private var maxHeight: Int = 0
companion object { companion object {
private val SLIDE_TRANSITION = Slide(Gravity.BOTTOM).setDuration(200) private val SLIDE_TRANSITION = Slide(Gravity.BOTTOM).setDuration(200)
...@@ -117,6 +118,15 @@ class SuggestionsView : FrameLayout, TextWatcher { ...@@ -117,6 +118,15 @@ class SuggestionsView : FrameLayout, TextWatcher {
} }
} }
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
if (maxHeight > 0) {
val hSpec = MeasureSpec.makeMeasureSpec(maxHeight, MeasureSpec.AT_MOST)
super.onMeasure(widthMeasureSpec, hSpec)
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
}
private fun swapAdapter(adapter: SuggestionsAdapter<*>): SuggestionsView { private fun swapAdapter(adapter: SuggestionsAdapter<*>): SuggestionsView {
recyclerView.adapter = adapter recyclerView.adapter = adapter
// Don't override if user has set an item click listener already // Don't override if user has set an item click listener already
...@@ -153,6 +163,13 @@ class SuggestionsView : FrameLayout, TextWatcher { ...@@ -153,6 +163,13 @@ class SuggestionsView : FrameLayout, TextWatcher {
return this return this
} }
fun setMaximumHeight(height: Int): SuggestionsView {
check(height > 0)
this.maxHeight = height
requestLayout()
return this
}
fun setOnItemClickListener(tokenAdapter: SuggestionsAdapter<*>, fun setOnItemClickListener(tokenAdapter: SuggestionsAdapter<*>,
clickListener: (item: SuggestionModel) -> Unit): SuggestionsView { clickListener: (item: SuggestionModel) -> Unit): SuggestionsView {
tokenAdapter.setOnClickListener(object : SuggestionsAdapter.ItemClickListener { tokenAdapter.setOnClickListener(object : SuggestionsAdapter.ItemClickListener {
......
...@@ -3,9 +3,11 @@ ...@@ -3,9 +3,11 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_margin="2dp" android:layout_marginBottom="4dp"
android:layout_marginTop="4dp"
android:background="@color/suggestion_background_color" android:background="@color/suggestion_background_color"
android:orientation="horizontal"> android:orientation="horizontal"
android:paddingTop="2dp">
<TextView <TextView
android:id="@+id/text_command_name" android:id="@+id/text_command_name"
...@@ -13,23 +15,25 @@ ...@@ -13,23 +15,25 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
android:layout_marginStart="16dp" android:layout_marginStart="8dp"
android:ellipsize="end" android:ellipsize="end"
android:maxLines="1" android:maxLines="1"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="14sp"
tools:text="/leave" /> tools:text="/leave" />
<TextView <TextView
android:id="@+id/text_command_description" android:id="@+id/text_command_description"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_toRightOf="@id/text_command_name" android:layout_toRightOf="@id/text_command_name"
android:gravity="end" android:ellipsize="end"
android:gravity="start"
android:maxLines="1"
android:textColor="@color/gray_material" android:textColor="@color/gray_material"
android:layout_marginEnd="16dp" android:textSize="14sp"
android:textSize="16sp"
tools:text="Leave a channel" /> tools:text="Leave a channel" />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -34,5 +34,6 @@ ...@@ -34,5 +34,6 @@
<!-- Autocomplete Popup --> <!-- Autocomplete Popup -->
<dimen name="popup_max_height">150dp</dimen> <dimen name="popup_max_height">150dp</dimen>
<dimen name="suggestions_box_max_height">250dp</dimen>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment