mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-30 13:35:18 +00:00
link event listener
This commit is contained in:
parent
c294262ff3
commit
628477f2fd
@ -13,6 +13,8 @@ import android.util.TypedValue
|
||||
import android.view.*
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.lifecycle.Observer
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.ViewModelProviders
|
||||
import androidx.loader.app.LoaderManager
|
||||
import androidx.loader.content.Loader
|
||||
@ -47,6 +49,8 @@ import org.thoughtcrime.securesms.conversation.v2.input_bar.mentions.MentionCand
|
||||
import org.thoughtcrime.securesms.conversation.v2.menus.ConversationActionModeCallback
|
||||
import org.thoughtcrime.securesms.conversation.v2.menus.ConversationMenuHelper
|
||||
import org.thoughtcrime.securesms.conversation.v2.messages.VisibleMessageView
|
||||
import org.thoughtcrime.securesms.conversation.v2.search.SearchBottomBar
|
||||
import org.thoughtcrime.securesms.conversation.v2.search.SearchViewModel
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||
import org.thoughtcrime.securesms.database.DraftDatabase
|
||||
import org.thoughtcrime.securesms.database.DraftDatabase.Drafts
|
||||
@ -70,8 +74,9 @@ import kotlin.math.*
|
||||
// price we pay is a bit of back and forth between the input bar and the conversation activity.
|
||||
|
||||
class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDelegate,
|
||||
InputBarRecordingViewDelegate, AttachmentManager.AttachmentListener {
|
||||
InputBarRecordingViewDelegate, AttachmentManager.AttachmentListener, SearchBottomBar.EventListener {
|
||||
private val screenWidth = Resources.getSystem().displayMetrics.widthPixels
|
||||
private var searchViewModel: SearchViewModel? = null
|
||||
private var linkPreviewViewModel: LinkPreviewViewModel? = null
|
||||
private var threadID: Long = -1
|
||||
private var actionMode: ActionMode? = null
|
||||
@ -151,6 +156,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
|
||||
getLatestOpenGroupInfoIfNeeded()
|
||||
setUpBlockedBanner()
|
||||
setUpLinkPreviewObserver()
|
||||
searchBottomBar.setEventListener(this)
|
||||
setUpSearchResultObserver()
|
||||
scrollToFirstUnreadMessageIfNeeded()
|
||||
markAllAsRead()
|
||||
}
|
||||
@ -751,9 +758,34 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
|
||||
// endregion
|
||||
|
||||
// region Search
|
||||
private fun setUpSearchResultObserver() {
|
||||
val searchViewModel = ViewModelProvider(this).get(SearchViewModel::class.java)
|
||||
this.searchViewModel = searchViewModel
|
||||
searchViewModel.searchResults.observe(this, Observer { result: SearchViewModel.SearchResult? ->
|
||||
if (result == null) return@Observer
|
||||
if (result.getResults().isNotEmpty()) {
|
||||
conversationRecyclerView.scrollToPosition(result.position)
|
||||
val messageResult = result.getResults()[result.position]
|
||||
// fragment.jumpToMessage(messageResult.messageRecipient.address, messageResult.receivedTimestampMs, Runnable { searchViewModel.onMissingResult() })
|
||||
}
|
||||
this.searchBottomBar.setData(result.position, result.getResults().size)
|
||||
})
|
||||
}
|
||||
|
||||
fun getSearchViewModel(): SearchViewModel? {
|
||||
return this.searchViewModel
|
||||
}
|
||||
|
||||
fun onSearchQueryUpdated(query: String?) {
|
||||
adapter.onSearchQueryUpdated(query)
|
||||
}
|
||||
|
||||
override fun onSearchMoveUpPressed() {
|
||||
this.searchViewModel?.onMoveUp()
|
||||
}
|
||||
|
||||
override fun onSearchMoveDownPressed() {
|
||||
this.searchViewModel?.onMoveDown()
|
||||
}
|
||||
// endregion
|
||||
}
|
@ -18,7 +18,6 @@ import kotlinx.android.synthetic.main.session_logo_action_bar_content.*
|
||||
import network.loki.messenger.R
|
||||
import org.session.libsession.utilities.ExpirationUtil
|
||||
import org.session.libsession.utilities.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.components.ConversationSearchBottomBar
|
||||
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
||||
import org.thoughtcrime.securesms.conversation.v2.search.SearchViewModel
|
||||
import org.thoughtcrime.securesms.loki.utilities.getColorWithID
|
||||
@ -73,7 +72,7 @@ object ConversationMenuHelper {
|
||||
// Search
|
||||
val searchViewItem = menu.findItem(R.id.menu_search)
|
||||
val searchView = searchViewItem.actionView as SearchView
|
||||
val searchViewModel:SearchViewModel = ViewModelProvider(context as ConversationActivityV2).get(SearchViewModel::class.java)
|
||||
val searchViewModel = (context as ConversationActivityV2).getSearchViewModel()!!
|
||||
val queryListener = object : OnQueryTextListener {
|
||||
override fun onQueryTextSubmit(query: String): Boolean {
|
||||
searchViewModel.onQueryUpdated(query, threadId)
|
||||
|
@ -5,8 +5,6 @@ import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import kotlinx.android.synthetic.main.view_search_bottom_bar.view.*
|
||||
import network.loki.messenger.R
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user