mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-18 19:19:33 +01:00
add extra space at bottom of conversations list
by adding a SpacerItem (legacy code...-> migrate to Compose!) Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
b014ebc3da
commit
a74ffcf2eb
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* Nextcloud Talk - Android Client
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: 2025 Marcel Hibbe <dev@mhibbe.de>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*/
|
||||||
|
package com.nextcloud.talk.adapters.items
|
||||||
|
|
||||||
|
import android.view.View
|
||||||
|
import com.nextcloud.talk.R
|
||||||
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
|
import eu.davidea.flexibleadapter.items.AbstractFlexibleItem
|
||||||
|
import eu.davidea.flexibleadapter.items.IFlexible
|
||||||
|
import eu.davidea.viewholders.FlexibleViewHolder
|
||||||
|
|
||||||
|
class SpacerItem(private val height: Int) : AbstractFlexibleItem<SpacerItem.ViewHolder>() {
|
||||||
|
|
||||||
|
override fun getLayoutRes(): Int = R.layout.item_spacer
|
||||||
|
|
||||||
|
override fun createViewHolder(view: View?, adapter: FlexibleAdapter<IFlexible<*>?>?): ViewHolder {
|
||||||
|
return ViewHolder(view!!, adapter!!)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun bindViewHolder(
|
||||||
|
adapter: FlexibleAdapter<IFlexible<*>?>?,
|
||||||
|
holder: ViewHolder,
|
||||||
|
position: Int,
|
||||||
|
payloads: MutableList<Any>?
|
||||||
|
) {
|
||||||
|
holder.itemView.layoutParams.height = height
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun equals(other: Any?) = other is SpacerItem
|
||||||
|
|
||||||
|
override fun hashCode(): Int {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
class ViewHolder(view: View, adapter: FlexibleAdapter<*>) :
|
||||||
|
FlexibleViewHolder(view, adapter)
|
||||||
|
}
|
@ -79,6 +79,7 @@ import com.nextcloud.talk.adapters.items.GenericTextHeaderItem
|
|||||||
import com.nextcloud.talk.adapters.items.LoadMoreResultsItem
|
import com.nextcloud.talk.adapters.items.LoadMoreResultsItem
|
||||||
import com.nextcloud.talk.adapters.items.MessageResultItem
|
import com.nextcloud.talk.adapters.items.MessageResultItem
|
||||||
import com.nextcloud.talk.adapters.items.MessagesTextHeaderItem
|
import com.nextcloud.talk.adapters.items.MessagesTextHeaderItem
|
||||||
|
import com.nextcloud.talk.adapters.items.SpacerItem
|
||||||
import com.nextcloud.talk.api.NcApi
|
import com.nextcloud.talk.api.NcApi
|
||||||
import com.nextcloud.talk.application.NextcloudTalkApplication
|
import com.nextcloud.talk.application.NextcloudTalkApplication
|
||||||
import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager
|
import com.nextcloud.talk.arbitrarystorage.ArbitraryStorageManager
|
||||||
@ -291,10 +292,9 @@ class ConversationsListActivity :
|
|||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
|
|
||||||
// actionBar?.show()
|
|
||||||
if (adapter == null) {
|
if (adapter == null) {
|
||||||
adapter = FlexibleAdapter(conversationItems, this, true)
|
adapter = FlexibleAdapter(conversationItems, this, true)
|
||||||
|
addEmptyItemForEdgeToEdgeIfNecessary()
|
||||||
} else {
|
} else {
|
||||||
binding.loadingContent.visibility = View.GONE
|
binding.loadingContent.visibility = View.GONE
|
||||||
}
|
}
|
||||||
@ -340,6 +340,14 @@ class ConversationsListActivity :
|
|||||||
showSearchOrToolbar()
|
showSearchOrToolbar()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if edge to edge is used, add an empty item at the bottom of the list
|
||||||
|
@Suppress("MagicNumber")
|
||||||
|
private fun addEmptyItemForEdgeToEdgeIfNecessary() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.VANILLA_ICE_CREAM) {
|
||||||
|
adapter?.addScrollableFooter(SpacerItem(200))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Suppress("LongMethod")
|
@Suppress("LongMethod")
|
||||||
private fun initObservers() {
|
private fun initObservers() {
|
||||||
this.lifecycleScope.launch {
|
this.lifecycleScope.launch {
|
||||||
|
10
app/src/main/res/layout/item_spacer.xml
Normal file
10
app/src/main/res/layout/item_spacer.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><!--
|
||||||
|
~ Nextcloud Talk - Android Client
|
||||||
|
~
|
||||||
|
~ SPDX-FileCopyrightText: 2025 Marcel Hibbe <dev@mhibbe.de>
|
||||||
|
~ SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"/>
|
Loading…
Reference in New Issue
Block a user