1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-1568 App | Tech | Moving calls off main thread when needed (#228)

This commit is contained in:
Evgenii Kozlov 2023-07-19 14:54:48 +02:00 committed by GitHub
parent afdd5bc4f1
commit fb2a2d4429
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 157 additions and 136 deletions

View file

@ -1,6 +1,5 @@
package com.anytypeio.anytype.middleware.interactor
import androidx.annotation.WorkerThread
import anytype.Rpc
import anytype.model.Block
import anytype.model.Range
@ -30,7 +29,7 @@ import com.anytypeio.anytype.core_models.SearchResult
import com.anytypeio.anytype.core_models.Struct
import com.anytypeio.anytype.core_models.Url
import com.anytypeio.anytype.core_models.WidgetLayout
import com.anytypeio.anytype.core_utils.ext.isOnMainThread
import com.anytypeio.anytype.core_utils.tools.ThreadInfo
import com.anytypeio.anytype.middleware.BuildConfig
import com.anytypeio.anytype.middleware.auth.toAccountSetup
import com.anytypeio.anytype.middleware.const.Constants
@ -46,14 +45,15 @@ import com.anytypeio.anytype.middleware.mappers.toMiddlewareModel
import com.anytypeio.anytype.middleware.mappers.toPayload
import com.anytypeio.anytype.middleware.model.CreateWalletResponse
import com.anytypeio.anytype.middleware.service.MiddlewareService
import javax.inject.Inject
import timber.log.Timber
@WorkerThread
class Middleware(
class Middleware @Inject constructor(
private val service: MiddlewareService,
private val factory: MiddlewareFactory,
private val logger: MiddlewareProtobufLogger,
private val protobufConverter: ProtobufConverterProvider,
private val threadInfo: ThreadInfo
) {
@Throws(Exception::class)
@ -2210,7 +2210,7 @@ class Middleware(
private fun logRequest(any: Any) {
logger.logRequest(any).also {
if (BuildConfig.DEBUG && isOnMainThread()) {
if (BuildConfig.DEBUG && threadInfo.isOnMainThread()) {
Timber.w("Main thread is used for operation: ${any::class.qualifiedName}")
}
}

View file

@ -1,6 +1,5 @@
package com.anytypeio.anytype.middleware.service
import androidx.annotation.WorkerThread
import anytype.Rpc
import com.anytypeio.anytype.core_models.exceptions.AccountIsDeletedException
import com.anytypeio.anytype.core_models.exceptions.CreateAccountException
@ -13,7 +12,6 @@ import com.anytypeio.anytype.data.auth.exception.UndoRedoExhaustedException
import javax.inject.Inject
import service.Service
@WorkerThread
class MiddlewareServiceImplementation @Inject constructor(
featureToggles: FeatureToggles
) : MiddlewareService {

View file

@ -12,6 +12,8 @@ import com.anytypeio.anytype.middleware.interactor.Middleware
import com.anytypeio.anytype.middleware.interactor.MiddlewareFactory
import com.anytypeio.anytype.middleware.service.MiddlewareService
import com.anytypeio.anytype.test_utils.MockDataFactory
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import org.junit.Before
import org.junit.Test
import org.mockito.Mock
@ -23,8 +25,6 @@ import org.mockito.kotlin.stub
import org.mockito.kotlin.times
import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoMoreInteractions
import kotlin.test.assertEquals
import kotlin.test.assertTrue
typealias CBlock = com.anytypeio.anytype.core_models.Block
typealias CFields = com.anytypeio.anytype.core_models.Block.Fields
@ -44,7 +44,13 @@ class MiddlewareTest {
@Before
fun setup() {
MockitoAnnotations.openMocks(this)
middleware = Middleware(service, factory, mock(), mock())
middleware = Middleware(
service = service,
factory = factory,
logger = mock(),
protobufConverter = mock(),
threadInfo = mock()
)
}
@Test