Make ContactsRepository findContactEmailByEmail a suspend method
MAILAND-1767
This commit is contained in:
parent
76b5f530f9
commit
c571544cba
|
@ -287,7 +287,7 @@ internal class ContactDaoTest {
|
|||
@Test
|
||||
fun findContactEmailByEmail() {
|
||||
val expected = contactEmails[2]
|
||||
val actual = database.findContactEmailByEmail(expected.email)
|
||||
val actual = database.findContactEmailByEmailBlocking(expected.email)
|
||||
Assert.assertEquals(expected, actual)
|
||||
assertDatabaseState()
|
||||
}
|
||||
|
|
|
@ -143,7 +143,7 @@ public class SendPreferencesFactory {
|
|||
Map<String, String> contactIDs = new HashMap<>();
|
||||
for (String email : emails) {
|
||||
Address address = getAddress(email);
|
||||
ContactEmail contactEmail = contactDao.findContactEmailByEmail(email);
|
||||
ContactEmail contactEmail = contactDao.findContactEmailByEmailBlocking(email);
|
||||
if (address != null || contactEmail == null ) {
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -22,8 +22,6 @@ import ch.protonmail.android.api.models.DatabaseProvider
|
|||
import ch.protonmail.android.core.UserManager
|
||||
import ch.protonmail.android.data.local.model.ContactEmail
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -37,14 +35,9 @@ class ContactsRepository @Inject constructor(
|
|||
databaseProvider.provideContactDao(userManager.requireCurrentUserId())
|
||||
}
|
||||
|
||||
fun findContactEmailByEmail(email: String): ContactEmail? =
|
||||
suspend fun findContactEmailByEmail(email: String): ContactEmail? =
|
||||
contactDao.findContactEmailByEmail(email)
|
||||
|
||||
fun findAllContactEmails(): Flow<List<ContactEmail>> = contactDao.findAllContactsEmails()
|
||||
|
||||
fun findAllContactEmailsBlocking(): List<ContactEmail> =
|
||||
runBlocking {
|
||||
findAllContactEmails().first()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -95,7 +95,10 @@ interface ContactDao {
|
|||
fun findContactEmailById(id: String): ContactEmail?
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CONTACT_EMAILS WHERE $COLUMN_CONTACT_EMAILS_EMAIL = :email")
|
||||
fun findContactEmailByEmail(email: String): ContactEmail?
|
||||
suspend fun findContactEmailByEmail(email: String): ContactEmail?
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CONTACT_EMAILS WHERE $COLUMN_CONTACT_EMAILS_EMAIL = :email")
|
||||
fun findContactEmailByEmailBlocking(email: String): ContactEmail?
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CONTACT_EMAILS WHERE $COLUMN_CONTACT_EMAILS_EMAIL = :email")
|
||||
fun findContactEmailByEmailLiveData(email: String): LiveData<ContactEmail>
|
||||
|
|
|
@ -625,7 +625,7 @@ internal class MessageDetailsActivity : BaseStoragePermissionActivity() {
|
|||
this@MessageDetailsActivity.lifecycleScope.launch {
|
||||
val showAttachmentsDelay = 200L
|
||||
delay(showAttachmentsDelay)
|
||||
showMessageAttachments(message.Attachments)
|
||||
showMessageAttachments(message.attachments)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -152,7 +152,7 @@ public class ResignContactJob extends ProtonMailEndlessJob {
|
|||
}
|
||||
//TODO move database to receiver after kotlin
|
||||
private String getContactId(ContactDao contactDao, String contactEmailText) {
|
||||
ContactEmail contactEmail = contactDao.findContactEmailByEmail(contactEmailText);
|
||||
ContactEmail contactEmail = contactDao.findContactEmailByEmailBlocking(contactEmailText);
|
||||
if (contactEmail == null) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ class FetchVerificationKeys @Inject constructor(
|
|||
return@withContext publicKeys
|
||||
}
|
||||
|
||||
val contactEmail = contactDao.findContactEmailByEmail(email)
|
||||
val contactEmail = contactDao.findContactEmailByEmailBlocking(email)
|
||||
contactEmail?.contactId?.let {
|
||||
|
||||
return@withContext runCatching {
|
||||
|
|
|
@ -125,7 +125,7 @@ public class RecipientDropDownClickListener implements View.OnClickListener {
|
|||
|
||||
@Override
|
||||
protected ContactEmail doInBackground(Void... voids) {
|
||||
return contactDao.findContactEmailByEmail(recipientEmail);
|
||||
return contactDao.findContactEmailByEmailBlocking(recipientEmail);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -80,7 +80,11 @@ class MessageDetailsViewModelTest : ArchTest, CoroutinesTest {
|
|||
|
||||
private val labelRepository: LabelRepository = mockk(relaxed = true)
|
||||
|
||||
private val contactsRepository: ContactsRepository = mockk(relaxed = true)
|
||||
private val contactsRepository: ContactsRepository = mockk(relaxed = true) {
|
||||
coEvery { findContactEmailByEmail(any()) } returns ContactEmail(
|
||||
"defaultMockContactEmailId", "defaultMockContactEmailAddress", "defaultMockContactName"
|
||||
)
|
||||
}
|
||||
|
||||
private val attachmentsHelper: AttachmentsHelper = mockk(relaxed = true)
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ class FetchVerificationKeysTest : CoroutinesTest {
|
|||
val testContactEmail = mockk<ContactEmail> {
|
||||
every { contactId } returns testContactId
|
||||
}
|
||||
every { contactDao.findContactEmailByEmail(testEmail) } returns testContactEmail
|
||||
every { contactDao.findContactEmailByEmailBlocking(testEmail) } returns testContactEmail
|
||||
coEvery { contactDao.insertFullContactDetails(any()) } returns Unit
|
||||
val fullContactDetailsResponse = mockk<FullContactDetailsResponse> {
|
||||
every { contact } returns mockk {
|
||||
|
@ -122,7 +122,7 @@ class FetchVerificationKeysTest : CoroutinesTest {
|
|||
val testContactEmail = mockk<ContactEmail> {
|
||||
every { contactId } returns testContactId
|
||||
}
|
||||
every { contactDao.findContactEmailByEmail(testEmail) } returns testContactEmail
|
||||
every { contactDao.findContactEmailByEmailBlocking(testEmail) } returns testContactEmail
|
||||
coEvery { contactDao.insertFullContactDetails(any()) } returns Unit
|
||||
val fullContactDetailsResponse = mockk<FullContactDetailsResponse> {
|
||||
every { contact } returns mockk {
|
||||
|
|
Loading…
Reference in New Issue