srctree

Robin Linden parent c5874fb5 73b0703d
Provide a content resolver via dagger

inlinesplit
atox/src/androidTest/kotlin/IntegrationTest.kt added: 26, removed: 16, total 10
@@ -17,6 +17,7 @@ import dagger.Module
import dagger.Provides
import io.mockk.every
import io.mockk.mockk
import ltd.evilcorp.atox.di.AndroidModule
import ltd.evilcorp.atox.di.AppComponent
import ltd.evilcorp.atox.di.ViewModelModule
import ltd.evilcorp.core.db.Database
@@ -52,7 +53,7 @@ class TestModule {
}
 
@Singleton
@Component(modules = [TestModule::class, DaoModule::class, ViewModelModule::class])
@Component(modules = [AndroidModule::class, TestModule::class, DaoModule::class, ViewModelModule::class])
interface TestComponent : AppComponent {
@Component.Factory
interface Factory {
 
filename was Deleted added: 26, removed: 16, total 10
@@ -0,0 +1,12 @@
package ltd.evilcorp.atox.di
 
import android.content.ContentResolver
import android.content.Context
import dagger.Module
import dagger.Provides
 
@Module
class AndroidModule {
@Provides
fun provideContentResolver(context: Context): ContentResolver = context.contentResolver
}
 
atox/src/main/kotlin/di/AppComponent.kt added: 26, removed: 16, total 10
@@ -10,7 +10,7 @@ import ltd.evilcorp.core.di.DatabaseModule
import javax.inject.Singleton
 
@Singleton
@Component(modules = [DatabaseModule::class, DaoModule::class, ViewModelModule::class])
@Component(modules = [AndroidModule::class, DatabaseModule::class, DaoModule::class, ViewModelModule::class])
interface AppComponent {
@Component.Factory
interface Factory {
 
atox/src/main/kotlin/ui/contactlist/ContactListViewModel.kt added: 26, removed: 16, total 10
@@ -1,14 +1,13 @@
package ltd.evilcorp.atox.ui.contactlist
 
import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.widget.Toast
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.*
import ltd.evilcorp.atox.R
import ltd.evilcorp.atox.ToxService
import ltd.evilcorp.atox.tox.ToxStarter
import ltd.evilcorp.core.vo.FriendRequest
import ltd.evilcorp.core.vo.User
@@ -22,6 +21,7 @@ import javax.inject.Inject
 
class ContactListViewModel @Inject constructor(
private val context: Context,
private val resolver: ContentResolver,
private val contactManager: ContactManager,
private val friendRequestManager: FriendRequestManager,
private val userManager: UserManager,
@@ -44,7 +44,7 @@ class ContactListViewModel @Inject constructor(
fun deleteContact(publicKey: PublicKey) = contactManager.delete(publicKey)
 
fun saveToxBackupTo(uri: Uri) = launch(Dispatchers.IO) {
context.contentResolver.openFileDescriptor(uri, "w")!!.let { fd ->
resolver.openFileDescriptor(uri, "w")!!.let { fd ->
FileOutputStream(fd.fileDescriptor).let { out ->
val saveData = tox.getSaveData().await()
out.write(saveData)
 
atox/src/main/kotlin/ui/create_profile/CreateProfileViewModel.kt added: 26, removed: 16, total 10
@@ -1,6 +1,6 @@
package ltd.evilcorp.atox.ui.create_profile
 
import android.content.Context
import android.content.ContentResolver
import android.net.Uri
import androidx.lifecycle.ViewModel
import ltd.evilcorp.atox.tox.ToxStarter
@@ -11,7 +11,7 @@ import ltd.evilcorp.domain.tox.Tox
import javax.inject.Inject
 
class CreateProfileViewModel @Inject constructor(
private val context: Context,
private val resolver: ContentResolver,
private val userManager: UserManager,
private val tox: Tox,
private val toxStarter: ToxStarter
@@ -19,10 +19,7 @@ class CreateProfileViewModel @Inject constructor(
val publicKey: PublicKey by lazy { tox.publicKey }
 
fun startTox(save: ByteArray? = null): Boolean = toxStarter.startTox(save)
 
fun tryImportToxSave(uri: Uri): ByteArray? =
context.contentResolver.openInputStream(uri)?.readBytes()
 
fun tryImportToxSave(uri: Uri): ByteArray? = resolver.openInputStream(uri)?.readBytes()
fun create(user: User) = userManager.create(user)
fun verifyUserExists(publicKey: PublicKey) = userManager.verifyExists(publicKey)
}