diff --git a/app/build.gradle b/app/build.gradle index ff5669879..3f6bee124 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -272,8 +272,6 @@ dependencies { implementation "com.github.nextcloud-deps.hwsecurity:hwsecurity-fido:${fidoVersion}" implementation "com.github.nextcloud-deps.hwsecurity:hwsecurity-fido2:${fidoVersion}" - implementation 'com.github.nextcloud:PopupBubble:2.0.0' - implementation "com.afollestad.material-dialogs:core:${materialDialogsVersion}" implementation "com.afollestad.material-dialogs:datetime:${materialDialogsVersion}" implementation "com.afollestad.material-dialogs:bottomsheets:${materialDialogsVersion}" diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index 6712bbb54..8bebb0719 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -33,6 +33,7 @@ import android.view.Menu import android.view.MenuItem import android.view.MotionEvent import android.view.View +import android.view.animation.AnimationUtils import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.widget.Toast @@ -148,6 +149,7 @@ import java.util.Objects import java.util.concurrent.TimeUnit import javax.inject.Inject +@SuppressLint("StringFormatInvalid") @AutoInjector(NextcloudTalkApplication::class) class ConversationsListActivity : BaseActivity(), @@ -1035,13 +1037,14 @@ class ConversationsListActivity : newFragment.show(supportFragmentManager, FilterConversationFragment.TAG) } - binding.newMentionPopupBubble.hide() - binding.newMentionPopupBubble.setPopupBubbleListener { + binding.newMentionPopupBubble.visibility = View.GONE + binding.newMentionPopupBubble.setOnClickListener { val layoutManager = binding.recyclerView.layoutManager as SmoothScrollLinearLayoutManager? layoutManager?.scrollToPositionWithOffset( nextUnreadConversationScrollPosition, binding.recyclerView.height / OFFSET_HEIGHT_DIVIDER ) + binding.newMentionPopupBubble.visibility = View.GONE } binding.newMentionPopupBubble.let { viewThemeUtils.material.colorMaterialButtonPrimaryFilled(it) } } @@ -1058,7 +1061,7 @@ class ConversationsListActivity : searchBehaviorSubject.subscribe { value -> if (value) { nextUnreadConversationScrollPosition = 0 - binding.newMentionPopupBubble.hide() + binding.newMentionPopupBubble.visibility = View.GONE } else { try { val lastVisibleItem = layoutManager!!.findLastCompletelyVisibleItemPosition() @@ -1068,13 +1071,15 @@ class ConversationsListActivity : if (hasUnreadItems(conversation) && position > lastVisibleItem) { nextUnreadConversationScrollPosition = position if (!binding.newMentionPopupBubble.isShown) { - binding.newMentionPopupBubble.show() + binding.newMentionPopupBubble.visibility = View.VISIBLE + val popupAnimation = AnimationUtils.loadAnimation(this, R.anim.popup_animation) + binding.newMentionPopupBubble.startAnimation(popupAnimation) } return@subscribe } } nextUnreadConversationScrollPosition = 0 - binding.newMentionPopupBubble.hide() + binding.newMentionPopupBubble.visibility = View.GONE } catch (e: NullPointerException) { Log.d( TAG, diff --git a/app/src/main/res/anim/popup_animation.xml b/app/src/main/res/anim/popup_animation.xml new file mode 100644 index 000000000..246ce1b11 --- /dev/null +++ b/app/src/main/res/anim/popup_animation.xml @@ -0,0 +1,21 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_conversations.xml b/app/src/main/res/layout/activity_conversations.xml index 7cf3800b6..42206fbc3 100644 --- a/app/src/main/res/layout/activity_conversations.xml +++ b/app/src/main/res/layout/activity_conversations.xml @@ -251,11 +251,10 @@ app:tint="@color/white" app:backgroundTint="@color/colorPrimary"/> - + app:icon="@drawable/ic_baseline_arrow_downward_24px" + app:iconPadding="@dimen/standard_padding" + style="@style/Widget.AppTheme.Button.ElevatedButton"/> diff --git a/scripts/analysis/lint-results.txt b/scripts/analysis/lint-results.txt index 048cacf2e..56aa77762 100644 --- a/scripts/analysis/lint-results.txt +++ b/scripts/analysis/lint-results.txt @@ -1,2 +1,2 @@ DO NOT TOUCH; GENERATED BY DRONE - Lint Report: 71 errors and 158 warnings + Lint Report: 66 errors and 158 warnings