Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f649f593 authored by moezbhatti's avatar moezbhatti
Browse files

Allow clicking anywhere in row to click through to conversation

parent 2b510e7b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.moez.QKSMS.mapper.CursorToRecipient
import com.moez.QKSMS.model.Contact
import com.moez.QKSMS.model.Conversation
import com.moez.QKSMS.model.Message
import com.moez.QKSMS.model.Recipient
import com.moez.QKSMS.model.SearchResult
import com.moez.QKSMS.util.tryOrNull
import io.realm.Case
@@ -153,6 +154,13 @@ class ConversationRepositoryImpl @Inject constructor(
                .findAll()
    }

    override fun getRecipient(recipientId: Long): Recipient? {
        return Realm.getDefaultInstance()
                .where(Recipient::class.java)
                .equalTo("id", recipientId)
                .findFirst()
    }

    override fun getThreadId(recipient: String): Long? {
        return getThreadId(listOf(recipient))
    }
+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
package com.moez.QKSMS.repository

import com.moez.QKSMS.model.Conversation
import com.moez.QKSMS.model.Recipient
import com.moez.QKSMS.model.SearchResult
import io.realm.RealmResults

@@ -50,6 +51,8 @@ interface ConversationRepository {
     */
    fun getConversations(vararg threadIds: Long): RealmResults<Conversation>

    fun getRecipient(recipientId: Long): Recipient?

    fun getThreadId(recipient: String): Long?

    fun getThreadId(recipients: Collection<String>): Long?
+7 −0
Original line number Diff line number Diff line
@@ -238,6 +238,13 @@ class Navigator @Inject constructor(
        startActivityExternal(intent)
    }

    fun showContact(lookupKey: String) {
        val intent = Intent(Intent.ACTION_VIEW)
                .setData(Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey))

        startActivityExternal(intent)
    }

    fun saveVcard(uri: Uri) {
        val intent = Intent(Intent.ACTION_VIEW)
                .setDataAndType(uri, "text/x-vcard")
+0 −24
Original line number Diff line number Diff line
@@ -19,8 +19,6 @@
package com.moez.QKSMS.common.widget

import android.content.Context
import android.net.Uri
import android.provider.ContactsContract
import android.telephony.PhoneNumberUtils
import android.util.AttributeSet
import android.view.View
@@ -32,19 +30,15 @@ import com.moez.QKSMS.common.util.Colors
import com.moez.QKSMS.common.util.extensions.setBackgroundTint
import com.moez.QKSMS.common.util.extensions.setTint
import com.moez.QKSMS.injection.appComponent
import com.moez.QKSMS.listener.ContactAddedListener
import com.moez.QKSMS.model.Contact
import com.moez.QKSMS.model.Recipient
import com.moez.QKSMS.util.GlideApp
import com.uber.autodispose.android.ViewScopeProvider
import com.uber.autodispose.autoDisposable
import kotlinx.android.synthetic.main.avatar_view.view.*
import javax.inject.Inject

class AvatarView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : FrameLayout(context, attrs) {

    @Inject lateinit var colors: Colors
    @Inject lateinit var contactAddedListener: ContactAddedListener
    @Inject lateinit var navigator: Navigator

    /**
@@ -71,24 +65,6 @@ class AvatarView @JvmOverloads constructor(context: Context, attrs: AttributeSet

        setBackgroundResource(R.drawable.circle)
        clipToOutline = true

        setOnClickListener {
            if (lookupKey.isNullOrEmpty()) {
                address?.let { address ->
                    // Allow the user to add the contact
                    navigator.addContact(address)

                    // Listen for contact changes
                    contactAddedListener.listen(address)
                            .autoDisposable(ViewScopeProvider.from(this))
                            .subscribe()
                }
            } else {
                val uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey)
                ContactsContract.QuickContact.showQuickContact(context, this@AvatarView, uri,
                        ContactsContract.QuickContact.MODE_MEDIUM, null)
            }
        }
    }

    /**
+2 −0
Original line number Diff line number Diff line
@@ -91,6 +91,8 @@ class ConversationInfoController(
        showBackButton(true)
    }

    override fun recipientClicks(): Observable<Long> = recipientAdapter.clicks

    override fun nameClicks(): Observable<*> = name.clicks()

    override fun nameChanges(): Observable<String> = nameChangeSubject
Loading