Make ContactsRepository findContactEmailByEmail a suspend method

MAILAND-1767
This commit is contained in:
Marino Meneghel 2021-05-28 15:09:59 +02:00
parent 76b5f530f9
commit c571544cba
10 changed files with 18 additions and 18 deletions

View File

@ -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()
}

View File

@ -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;
}

View File

@ -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()
}
}

View File

@ -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>

View File

@ -625,7 +625,7 @@ internal class MessageDetailsActivity : BaseStoragePermissionActivity() {
this@MessageDetailsActivity.lifecycleScope.launch {
val showAttachmentsDelay = 200L
delay(showAttachmentsDelay)
showMessageAttachments(message.Attachments)
showMessageAttachments(message.attachments)
}
}
}

View File

@ -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;
}

View File

@ -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 {

View File

@ -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

View File

@ -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)

View File

@ -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 {