mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 11:39:42 +01:00
Merge pull request #4748 from nextcloud/bugfix/noid/fixNpeWhenAdapterNull
avoid Npe for adapter in ConversationsListActivity
This commit is contained in:
commit
56c119a004
@ -470,7 +470,7 @@ class ConversationsListActivity :
|
|||||||
// Filter Conversations
|
// Filter Conversations
|
||||||
if (!hasFilterEnabled()) filterableConversationItems = conversationItems
|
if (!hasFilterEnabled()) filterableConversationItems = conversationItems
|
||||||
filterConversation()
|
filterConversation()
|
||||||
adapter!!.updateDataSet(filterableConversationItems, false)
|
adapter?.updateDataSet(filterableConversationItems, false)
|
||||||
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
|
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
|
||||||
|
|
||||||
// Fetch Open Conversations
|
// Fetch Open Conversations
|
||||||
@ -534,7 +534,7 @@ class ConversationsListActivity :
|
|||||||
binding.noArchivedConversationLayout.visibility = View.GONE
|
binding.noArchivedConversationLayout.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter!!.updateDataSet(newItems, true)
|
adapter?.updateDataSet(newItems, true)
|
||||||
setFilterableItems(newItems)
|
setFilterableItems(newItems)
|
||||||
if (archiveFilterOn) {
|
if (archiveFilterOn) {
|
||||||
// Never a notification from archived conversations
|
// Never a notification from archived conversations
|
||||||
@ -735,9 +735,9 @@ class ConversationsListActivity :
|
|||||||
supportActionBar?.setTitle(R.string.nc_forward_to_three_dots)
|
supportActionBar?.setTitle(R.string.nc_forward_to_three_dots)
|
||||||
} else {
|
} else {
|
||||||
searchItem!!.isVisible = conversationItems.size > 0
|
searchItem!!.isVisible = conversationItems.size > 0
|
||||||
if (adapter!!.hasFilter()) {
|
if (adapter?.hasFilter() == true) {
|
||||||
showSearchView(searchView, searchItem)
|
showSearchView(searchView, searchItem)
|
||||||
searchView!!.setQuery(adapter!!.getFilter(String::class.java), false)
|
searchView!!.setQuery(adapter?.getFilter(String::class.java), false)
|
||||||
}
|
}
|
||||||
binding.searchText.setOnClickListener {
|
binding.searchText.setOnClickListener {
|
||||||
showSearchView(searchView, searchItem)
|
showSearchView(searchView, searchItem)
|
||||||
@ -768,20 +768,20 @@ class ConversationsListActivity :
|
|||||||
searchItem!!.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
|
searchItem!!.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
|
||||||
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
|
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
|
||||||
initSearchDisposable()
|
initSearchDisposable()
|
||||||
adapter!!.setHeadersShown(true)
|
adapter?.setHeadersShown(true)
|
||||||
if (!hasFilterEnabled()) filterableConversationItems = searchableConversationItems
|
if (!hasFilterEnabled()) filterableConversationItems = searchableConversationItems
|
||||||
adapter!!.updateDataSet(filterableConversationItems, false)
|
adapter?.updateDataSet(filterableConversationItems, false)
|
||||||
adapter!!.showAllHeaders()
|
adapter?.showAllHeaders()
|
||||||
binding.swipeRefreshLayoutView?.isEnabled = false
|
binding.swipeRefreshLayoutView?.isEnabled = false
|
||||||
searchBehaviorSubject.onNext(true)
|
searchBehaviorSubject.onNext(true)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
|
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
|
||||||
adapter!!.setHeadersShown(false)
|
adapter?.setHeadersShown(false)
|
||||||
if (!hasFilterEnabled()) filterableConversationItems = conversationItemsWithHeader
|
if (!hasFilterEnabled()) filterableConversationItems = conversationItemsWithHeader
|
||||||
adapter!!.updateDataSet(filterableConversationItems, false)
|
adapter?.updateDataSet(filterableConversationItems, false)
|
||||||
adapter!!.hideAllHeaders()
|
adapter?.hideAllHeaders()
|
||||||
if (searchHelper != null) {
|
if (searchHelper != null) {
|
||||||
// cancel any pending searches
|
// cancel any pending searches
|
||||||
searchHelper!!.cancelSearch()
|
searchHelper!!.cancelSearch()
|
||||||
@ -1158,8 +1158,8 @@ class ConversationsListActivity :
|
|||||||
val lastVisibleItem = layoutManager!!.findLastCompletelyVisibleItemPosition()
|
val lastVisibleItem = layoutManager!!.findLastCompletelyVisibleItemPosition()
|
||||||
for (flexItem in conversationItems) {
|
for (flexItem in conversationItems) {
|
||||||
val conversation: ConversationModel = (flexItem as ConversationItem).model
|
val conversation: ConversationModel = (flexItem as ConversationItem).model
|
||||||
val position = adapter!!.getGlobalPositionOf(flexItem)
|
val position = adapter?.getGlobalPositionOf(flexItem)
|
||||||
if (hasUnreadItems(conversation) && position > lastVisibleItem) {
|
if (position != null && hasUnreadItems(conversation) && position > lastVisibleItem) {
|
||||||
nextUnreadConversationScrollPosition = position
|
nextUnreadConversationScrollPosition = position
|
||||||
if (!binding.newMentionPopupBubble.isShown) {
|
if (!binding.newMentionPopupBubble.isShown) {
|
||||||
binding.newMentionPopupBubble.visibility = View.VISIBLE
|
binding.newMentionPopupBubble.visibility = View.VISIBLE
|
||||||
@ -1239,7 +1239,7 @@ class ConversationsListActivity :
|
|||||||
val filter = searchQuery
|
val filter = searchQuery
|
||||||
searchQuery = ""
|
searchQuery = ""
|
||||||
performFilterAndSearch(filter)
|
performFilterAndSearch(filter)
|
||||||
} else if (adapter!!.hasNewFilter(newText)) {
|
} else if (adapter?.hasNewFilter(newText) == true) {
|
||||||
performFilterAndSearch(newText)
|
performFilterAndSearch(newText)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1250,12 +1250,12 @@ class ConversationsListActivity :
|
|||||||
|
|
||||||
if (hasFilterEnabled()) {
|
if (hasFilterEnabled()) {
|
||||||
adapter?.updateDataSet(conversationItems)
|
adapter?.updateDataSet(conversationItems)
|
||||||
adapter!!.setFilter(filter)
|
adapter?.setFilter(filter)
|
||||||
adapter!!.filterItems()
|
adapter?.filterItems()
|
||||||
adapter?.updateDataSet(filterableConversationItems)
|
adapter?.updateDataSet(filterableConversationItems)
|
||||||
} else {
|
} else {
|
||||||
adapter!!.setFilter(filter)
|
adapter?.setFilter(filter)
|
||||||
adapter!!.filterItems()
|
adapter?.filterItems()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isUnifiedSearchAvailable(currentUser!!.capabilities!!.spreedCapability!!)) {
|
if (isUnifiedSearchAvailable(currentUser!!.capabilities!!.spreedCapability!!)) {
|
||||||
@ -1268,18 +1268,18 @@ class ConversationsListActivity :
|
|||||||
|
|
||||||
private fun resetSearchResults() {
|
private fun resetSearchResults() {
|
||||||
clearMessageSearchResults()
|
clearMessageSearchResults()
|
||||||
adapter!!.setFilter("")
|
adapter?.setFilter("")
|
||||||
adapter!!.filterItems()
|
adapter?.filterItems()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun clearMessageSearchResults() {
|
private fun clearMessageSearchResults() {
|
||||||
val firstHeader = adapter!!.getSectionHeader(0)
|
val firstHeader = adapter?.getSectionHeader(0)
|
||||||
if (firstHeader != null && firstHeader.itemViewType == MessagesTextHeaderItem.VIEW_TYPE) {
|
if (firstHeader != null && firstHeader.itemViewType == MessagesTextHeaderItem.VIEW_TYPE) {
|
||||||
adapter!!.removeSection(firstHeader)
|
adapter?.removeSection(firstHeader)
|
||||||
} else {
|
} else {
|
||||||
adapter!!.removeItemsOfType(MessageResultItem.VIEW_TYPE)
|
adapter?.removeItemsOfType(MessageResultItem.VIEW_TYPE)
|
||||||
}
|
}
|
||||||
adapter!!.removeItemsOfType(LoadMoreResultsItem.VIEW_TYPE)
|
adapter?.removeItemsOfType(LoadMoreResultsItem.VIEW_TYPE)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("CheckResult") // handled by helper
|
@SuppressLint("CheckResult") // handled by helper
|
||||||
@ -1308,7 +1308,7 @@ class ConversationsListActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onItemClick(view: View, position: Int): Boolean {
|
override fun onItemClick(view: View, position: Int): Boolean {
|
||||||
val item = adapter!!.getItem(position)
|
val item = adapter?.getItem(position)
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
when (item.itemViewType) {
|
when (item.itemViewType) {
|
||||||
MessageResultItem.VIEW_TYPE -> {
|
MessageResultItem.VIEW_TYPE -> {
|
||||||
@ -1461,7 +1461,7 @@ class ConversationsListActivity :
|
|||||||
if (showShareToScreen || !networkMonitor.isOnline.value) {
|
if (showShareToScreen || !networkMonitor.isOnline.value) {
|
||||||
Log.d(TAG, "sharing to multiple rooms not yet implemented. onItemLongClick is ignored.")
|
Log.d(TAG, "sharing to multiple rooms not yet implemented. onItemLongClick is ignored.")
|
||||||
} else {
|
} else {
|
||||||
val clickedItem: Any? = adapter!!.getItem(position)
|
val clickedItem: Any? = adapter?.getItem(position)
|
||||||
if (clickedItem != null && clickedItem is ConversationItem) {
|
if (clickedItem != null && clickedItem is ConversationItem) {
|
||||||
val conversation = clickedItem.model
|
val conversation = clickedItem.model
|
||||||
conversationsListBottomDialog = ConversationsListBottomDialog(
|
conversationsListBottomDialog = ConversationsListBottomDialog(
|
||||||
@ -2012,7 +2012,7 @@ class ConversationsListActivity :
|
|||||||
adapterItems.add(LoadMoreResultsItem)
|
adapterItems.add(LoadMoreResultsItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
adapter!!.addItems(0, adapterItems)
|
adapter?.addItems(0, adapterItems)
|
||||||
binding.recyclerView?.scrollToPosition(0)
|
binding.recyclerView?.scrollToPosition(0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user