mirror of
https://github.com/nextcloud/talk-android.git
synced 2024-11-26 06:55:42 +03:00
Merge pull request #2741 from nextcloud/feature/noid/optimzeScrollToBottom
Optimize scroll-to-bottom
This commit is contained in:
commit
ee9407588f
6 changed files with 45 additions and 30 deletions
|
@ -673,7 +673,8 @@ class ChatController(args: Bundle) :
|
|||
}
|
||||
}
|
||||
|
||||
binding?.scrollDownButton?.setOnClickListener { binding?.messagesListView?.smoothScrollToPosition(0) }
|
||||
binding?.scrollDownButton?.setOnClickListener { binding?.messagesListView?.scrollToPosition(0) }
|
||||
binding?.let { viewThemeUtils.material.colorMaterialButtonPrimaryTonal(it.scrollDownButton) }
|
||||
|
||||
binding?.let { viewThemeUtils.material.colorMaterialButtonPrimaryFilled(it.popupBubbleView) }
|
||||
|
||||
|
@ -688,7 +689,7 @@ class ChatController(args: Bundle) :
|
|||
if (layoutManager!!.findFirstCompletelyVisibleItemPosition() > 0) {
|
||||
binding?.scrollDownButton?.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding?.scrollDownButton?.visibility = View.INVISIBLE
|
||||
binding?.scrollDownButton?.visibility = View.GONE
|
||||
}
|
||||
|
||||
if (newMessagesCount != 0 && layoutManager != null) {
|
||||
|
@ -2445,6 +2446,7 @@ class ChatController(args: Bundle) :
|
|||
if (!shouldAddNewMessagesNotice && !shouldScroll) {
|
||||
if (!binding?.popupBubbleView?.isShown!!) {
|
||||
newMessagesCount = 1
|
||||
binding?.scrollDownButton?.visibility = View.GONE
|
||||
binding?.popupBubbleView?.show()
|
||||
} else if (binding?.popupBubbleView?.isShown!!) {
|
||||
newMessagesCount++
|
||||
|
|
|
@ -1,21 +1,26 @@
|
|||
<!--
|
||||
@author Google LLC
|
||||
Copyright (C) 2023 Google LLC
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<vector android:height="24dp" android:tint="#000"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/black"
|
||||
android:pathData="M18,6.41l-1.41,-1.41l-4.59,4.58l-4.59,-4.58l-1.41,1.41l6,6z"/>
|
||||
<path android:fillColor="@android:color/black"
|
||||
android:pathData="M18,13l-1.41,-1.41l-4.59,4.58l-4.59,-4.58l-1.41,1.41l6,6z"/>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,19.275 L5.8,13.1 7.4,11.5 12,16.075 16.6,11.5 18.2,13.1ZM12,13.1 L5.8,6.9 7.4,5.325 12,9.9 16.6,5.325 18.2,6.9Z" />
|
||||
</vector>
|
|
@ -76,8 +76,8 @@
|
|||
app:incomingImageTimeTextSize="12sp"
|
||||
app:incomingTextColor="@color/nc_incoming_text_default"
|
||||
app:incomingTextLinkColor="@color/nc_incoming_text_default"
|
||||
app:incomingTimeTextColor="@color/no_emphasis_text"
|
||||
app:incomingTextSize="@dimen/chat_text_size"
|
||||
app:incomingTimeTextColor="@color/no_emphasis_text"
|
||||
app:incomingTimeTextSize="12sp"
|
||||
app:outcomingBubblePaddingBottom="@dimen/message_bubble_corners_vertical_padding"
|
||||
app:outcomingBubblePaddingLeft="@dimen/message_bubble_corners_horizontal_padding"
|
||||
|
@ -100,30 +100,36 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginStart="@dimen/dialog_padding"
|
||||
android:layout_marginStart="64dp"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="@dimen/dialog_padding"
|
||||
android:layout_marginEnd="64dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:minHeight="@dimen/min_size_clickable_area"
|
||||
android:layout_toStartOf="@+id/scrollDownButton"
|
||||
android:text="@string/nc_new_messages"
|
||||
app:background="@color/colorPrimary"
|
||||
android:ellipsize="middle"
|
||||
app:cornerRadius="@dimen/button_corner_radius"
|
||||
app:icon="@drawable/ic_baseline_arrow_downward_24px" />
|
||||
|
||||
<ImageButton
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/scrollDownButton"
|
||||
android:layout_width="44dp"
|
||||
android:layout_height="44dp"
|
||||
style="@style/Widget.AppTheme.Button.ElevatedButton"
|
||||
android:layout_width="@dimen/min_size_clickable_area"
|
||||
android:layout_height="@dimen/min_size_clickable_area"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:background="@drawable/shape_oval"
|
||||
android:backgroundTint="@color/scroll_down_chat_button"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginEnd="@dimen/standard_margin"
|
||||
android:layout_marginBottom="@dimen/standard_margin"
|
||||
android:contentDescription="@string/scroll_to_bottom"
|
||||
android:src="@drawable/ic_baseline_keyboard_double_arrow_down_24"
|
||||
android:visibility="invisible"
|
||||
app:tint="@color/scroll_down_chat_button_icon" />
|
||||
android:paddingStart="@dimen/standard_padding"
|
||||
android:paddingEnd="@dimen/standard_padding"
|
||||
android:visibility="gone"
|
||||
app:cornerRadius="@dimen/button_corner_radius"
|
||||
app:icon="@drawable/ic_keyboard_double_arrow_down"
|
||||
app:iconPadding="0dp"
|
||||
app:iconSize="24dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
|
|
|
@ -76,8 +76,4 @@
|
|||
|
||||
<color name="dialog_background">#353535</color>
|
||||
|
||||
<!-- scroll down chat button -->
|
||||
<color name="scroll_down_chat_button">#141F25</color>
|
||||
<color name="scroll_down_chat_button_icon">#99C3DA</color>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -102,10 +102,6 @@
|
|||
<color name="list_divider_background">#1F121212</color>
|
||||
<color name="grey_200">#EEEEEE</color>
|
||||
|
||||
<!-- scroll down chat button -->
|
||||
<color name="scroll_down_chat_button">#E5F0F5</color>
|
||||
<color name="scroll_down_chat_button_icon">#002A41</color>
|
||||
|
||||
<!-- this is just a helper for status icon background because getting the background color of a dialog is not
|
||||
possible?! don't use this to set the background of dialogs -->
|
||||
<color name="dialog_background">#FFFFFF</color>
|
||||
|
|
|
@ -163,6 +163,16 @@
|
|||
<item name="iconPadding">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Widget.AppTheme.Button.ElevatedButton" parent="Widget.Material3.Button.ElevatedButton">
|
||||
<item name="android:minWidth">0dp</item>
|
||||
<item name="android:insetLeft">0dp</item>
|
||||
<item name="android:insetTop">0dp</item>
|
||||
<item name="android:insetRight">0dp</item>
|
||||
<item name="android:insetBottom">0dp</item>
|
||||
<item name="iconGravity">textStart</item>
|
||||
<item name="iconPadding">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="Button.Borderless" parent="Widget.Material3.Button.TextButton">
|
||||
<item name="android:textColor">@drawable/borderless_btn</item>
|
||||
<item name="android:textAllCaps">false</item>
|
||||
|
|
Loading…
Reference in a new issue