Code quality
Code quality
This commit is contained in:
parent
c040e18431
commit
a4fd7bab4f
30 changed files with 44 additions and 51 deletions
|
|
@ -4,4 +4,4 @@ plugins {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(libs.inject)
|
api(libs.inject)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,4 +14,4 @@ import kotlin.reflect.KClass
|
||||||
@Target(AnnotationTarget.CLASS)
|
@Target(AnnotationTarget.CLASS)
|
||||||
annotation class ContributesViewModel(
|
annotation class ContributesViewModel(
|
||||||
val scope: KClass<*>,
|
val scope: KClass<*>,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -11,4 +11,4 @@ dependencies {
|
||||||
implementation(libs.dagger)
|
implementation(libs.dagger)
|
||||||
compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
|
compileOnly("com.google.auto.service:auto-service-annotations:1.0.1")
|
||||||
kapt("com.google.auto.service:auto-service:1.0.1")
|
kapt("com.google.auto.service:auto-service:1.0.1")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,10 @@ import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import dagger.multibindings.IntoMap
|
import dagger.multibindings.IntoMap
|
||||||
import io.element.android.x.anvilannotations.ContributesViewModel
|
import io.element.android.x.anvilannotations.ContributesViewModel
|
||||||
|
import java.io.File
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
import java.io.File
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is an anvil plugin that allows ViewModels to use [ContributesViewModel] alone and let this plugin automatically
|
* This is an anvil plugin that allows ViewModels to use [ContributesViewModel] alone and let this plugin automatically
|
||||||
|
|
@ -69,7 +69,12 @@ class ContributesViewModelCodeGenerator : CodeGenerator {
|
||||||
.returns(assistedViewModelFactoryFqName.asClassName(module).parameterizedBy(STAR, STAR))
|
.returns(assistedViewModelFactoryFqName.asClassName(module).parameterizedBy(STAR, STAR))
|
||||||
.addAnnotation(Binds::class)
|
.addAnnotation(Binds::class)
|
||||||
.addAnnotation(IntoMap::class)
|
.addAnnotation(IntoMap::class)
|
||||||
.addAnnotation(AnnotationSpec.Companion.builder(viewModelKeyFqName.asClassName(module)).addMember("%T::class", vmClass.asClassName()).build())
|
.addAnnotation(
|
||||||
|
AnnotationSpec.Companion
|
||||||
|
.builder(viewModelKeyFqName.asClassName(module))
|
||||||
|
.addMember("%T::class", vmClass.asClassName())
|
||||||
|
.build()
|
||||||
|
)
|
||||||
.build(),
|
.build(),
|
||||||
)
|
)
|
||||||
.build(),
|
.build(),
|
||||||
|
|
@ -119,4 +124,4 @@ class ContributesViewModelCodeGenerator : CodeGenerator {
|
||||||
private val assistedViewModelFactoryFqName = FqName("io.element.android.x.core.di.AssistedViewModelFactory")
|
private val assistedViewModelFactoryFqName = FqName("io.element.android.x.core.di.AssistedViewModelFactory")
|
||||||
private val viewModelKeyFqName = FqName("io.element.android.x.core.di.ViewModelKey")
|
private val viewModelKeyFqName = FqName("io.element.android.x.core.di.ViewModelKey")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,6 @@
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
tools:node="remove"/>
|
tools:node="remove"/>
|
||||||
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
|
</manifest>
|
||||||
</manifest>
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ package io.element.android.x
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.activity.ComponentActivity
|
import androidx.activity.ComponentActivity
|
||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.activity.viewModels
|
|
||||||
import androidx.compose.animation.AnimatedContentScope
|
import androidx.compose.animation.AnimatedContentScope
|
||||||
import androidx.compose.animation.ExperimentalAnimationApi
|
import androidx.compose.animation.ExperimentalAnimationApi
|
||||||
import androidx.compose.animation.core.tween
|
import androidx.compose.animation.core.tween
|
||||||
|
|
@ -38,16 +37,12 @@ import androidx.core.view.WindowCompat
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.airbnb.android.showkase.models.Showkase
|
import com.airbnb.android.showkase.models.Showkase
|
||||||
import com.airbnb.mvrx.compose.mavericksActivityViewModel
|
import com.airbnb.mvrx.compose.mavericksActivityViewModel
|
||||||
import com.airbnb.mvrx.compose.mavericksViewModel
|
|
||||||
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
|
import com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi
|
||||||
import com.ramcosta.composedestinations.DestinationsNavHost
|
import com.ramcosta.composedestinations.DestinationsNavHost
|
||||||
import com.ramcosta.composedestinations.animations.defaults.RootNavGraphDefaultAnimations
|
import com.ramcosta.composedestinations.animations.defaults.RootNavGraphDefaultAnimations
|
||||||
import com.ramcosta.composedestinations.animations.rememberAnimatedNavHostEngine
|
import com.ramcosta.composedestinations.animations.rememberAnimatedNavHostEngine
|
||||||
import com.ramcosta.composedestinations.manualcomposablecalls.animatedComposable
|
|
||||||
import com.ramcosta.composedestinations.navigation.dependency
|
|
||||||
import com.ramcosta.composedestinations.spec.Route
|
import com.ramcosta.composedestinations.spec.Route
|
||||||
import io.element.android.x.core.compose.OnLifecycleEvent
|
import io.element.android.x.core.compose.OnLifecycleEvent
|
||||||
import io.element.android.x.core.di.DaggerComponentOwner
|
|
||||||
import io.element.android.x.designsystem.ElementXTheme
|
import io.element.android.x.designsystem.ElementXTheme
|
||||||
import io.element.android.x.destinations.OnBoardingScreenNavigationDestination
|
import io.element.android.x.destinations.OnBoardingScreenNavigationDestination
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
|
@ -160,7 +155,6 @@ class MainActivity : ComponentActivity() {
|
||||||
navGraph = NavGraphs.root,
|
navGraph = NavGraphs.root,
|
||||||
startRoute = startRoute,
|
startRoute = startRoute,
|
||||||
dependenciesContainerBuilder = {
|
dependenciesContainerBuilder = {
|
||||||
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,4 @@ interface AppBindings {
|
||||||
fun coroutineScope(): CoroutineScope
|
fun coroutineScope(): CoroutineScope
|
||||||
fun matrix(): Matrix
|
fun matrix(): Matrix
|
||||||
fun sessionComponentsOwner(): SessionComponentsOwner
|
fun sessionComponentsOwner(): SessionComponentsOwner
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,10 @@ import io.element.android.x.core.di.DaggerMavericksBindings
|
||||||
|
|
||||||
@SingleIn(AppScope::class)
|
@SingleIn(AppScope::class)
|
||||||
@MergeComponent(AppScope::class)
|
@MergeComponent(AppScope::class)
|
||||||
interface AppComponent: DaggerMavericksBindings {
|
interface AppComponent : DaggerMavericksBindings {
|
||||||
|
|
||||||
@Component.Factory
|
@Component.Factory
|
||||||
interface Factory {
|
interface Factory {
|
||||||
fun create(@ApplicationContext @BindsInstance context: Context): AppComponent
|
fun create(@ApplicationContext @BindsInstance context: Context): AppComponent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,4 +17,4 @@ object AppModule {
|
||||||
fun providesAppCoroutineScope(): CoroutineScope {
|
fun providesAppCoroutineScope(): CoroutineScope {
|
||||||
return MainScope() + CoroutineName("ElementX Scope")
|
return MainScope() + CoroutineName("ElementX Scope")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import io.element.android.x.matrix.MatrixClient
|
||||||
|
|
||||||
@SingleIn(SessionScope::class)
|
@SingleIn(SessionScope::class)
|
||||||
@MergeSubcomponent(SessionScope::class)
|
@MergeSubcomponent(SessionScope::class)
|
||||||
interface SessionComponent: DaggerMavericksBindings {
|
interface SessionComponent : DaggerMavericksBindings {
|
||||||
|
|
||||||
fun matrixClient(): MatrixClient
|
fun matrixClient(): MatrixClient
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,5 +41,4 @@ class SessionComponentsOwner @Inject constructor(@ApplicationContext private val
|
||||||
activeSessionComponent = null
|
activeSessionComponent = null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,4 @@ private class ElementImageLoaderFactory(
|
||||||
}
|
}
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package io.element.android.x.initializer
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.startup.Initializer
|
import androidx.startup.Initializer
|
||||||
import com.airbnb.mvrx.Mavericks
|
|
||||||
import io.element.android.x.matrix.tracing.TracingConfigurations
|
import io.element.android.x.matrix.tracing.TracingConfigurations
|
||||||
import io.element.android.x.matrix.tracing.setupTracing
|
import io.element.android.x.matrix.tracing.setupTracing
|
||||||
import io.element.android.x.sdk.matrix.BuildConfig
|
import io.element.android.x.sdk.matrix.BuildConfig
|
||||||
|
|
@ -18,6 +17,4 @@ class MatrixInitializer : Initializer<Unit> {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dependencies(): List<Class<out Initializer<*>>> = emptyList()
|
override fun dependencies(): List<Class<out Initializer<*>>> = emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,4 @@ class MavericksInitializer : Initializer<Unit> {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun dependencies(): List<Class<out Initializer<*>>> = listOf()
|
override fun dependencies(): List<Class<out Initializer<*>>> = listOf()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -12,4 +12,4 @@ class TimberInitializer : Initializer<Unit> {
|
||||||
|
|
||||||
override fun dependencies(): List<Class<out Initializer<*>>> =
|
override fun dependencies(): List<Class<out Initializer<*>>> =
|
||||||
listOf(TimberInitializer::class.java)
|
listOf(TimberInitializer::class.java)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ anvil {
|
||||||
generateDaggerFactories.set(true)
|
generateDaggerFactories.set(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":anvilannotations"))
|
implementation(project(":anvilannotations"))
|
||||||
anvil(project(":anvilcodegen"))
|
anvil(project(":anvilcodegen"))
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ anvil {
|
||||||
generateDaggerFactories.set(true)
|
generateDaggerFactories.set(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":anvilannotations"))
|
implementation(project(":anvilannotations"))
|
||||||
anvil(project(":anvilcodegen"))
|
anvil(project(":anvilcodegen"))
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ import io.element.android.x.anvilannotations.ContributesViewModel
|
||||||
import io.element.android.x.core.di.daggerMavericksViewModelFactory
|
import io.element.android.x.core.di.daggerMavericksViewModelFactory
|
||||||
import io.element.android.x.designsystem.components.avatar.AvatarData
|
import io.element.android.x.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.x.designsystem.components.avatar.AvatarSize
|
import io.element.android.x.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.x.di.AppScope
|
|
||||||
import io.element.android.x.di.SessionScope
|
import io.element.android.x.di.SessionScope
|
||||||
import io.element.android.x.features.messages.model.MessagesItemAction
|
import io.element.android.x.features.messages.model.MessagesItemAction
|
||||||
import io.element.android.x.features.messages.model.MessagesItemActionsSheetState
|
import io.element.android.x.features.messages.model.MessagesItemActionsSheetState
|
||||||
|
|
@ -17,7 +16,6 @@ import io.element.android.x.features.messages.model.MessagesTimelineItemState
|
||||||
import io.element.android.x.features.messages.model.MessagesViewState
|
import io.element.android.x.features.messages.model.MessagesViewState
|
||||||
import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent
|
import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent
|
||||||
import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent
|
import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent
|
||||||
import io.element.android.x.matrix.Matrix
|
|
||||||
import io.element.android.x.matrix.MatrixClient
|
import io.element.android.x.matrix.MatrixClient
|
||||||
import io.element.android.x.matrix.media.MediaResolver
|
import io.element.android.x.matrix.media.MediaResolver
|
||||||
import io.element.android.x.matrix.timeline.MatrixTimeline
|
import io.element.android.x.matrix.timeline.MatrixTimeline
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
package io.element.android.x.features.roomlist
|
package io.element.android.x.features.roomlist
|
||||||
|
|
||||||
import com.airbnb.mvrx.*
|
import com.airbnb.mvrx.Loading
|
||||||
|
import com.airbnb.mvrx.MavericksViewModel
|
||||||
|
import com.airbnb.mvrx.MavericksViewModelFactory
|
||||||
|
import com.airbnb.mvrx.Success
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import io.element.android.x.anvilannotations.ContributesViewModel
|
import io.element.android.x.anvilannotations.ContributesViewModel
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ inline fun <reified T : Any> Context.bindings() = bindings(T::class.java)
|
||||||
*/
|
*/
|
||||||
inline fun <reified T : Any> Fragment.bindings() = bindings(T::class.java)
|
inline fun <reified T : Any> Fragment.bindings() = bindings(T::class.java)
|
||||||
|
|
||||||
/** Use no-arg extension function instead: [Context.bindings] */
|
/** Use no-arg extension function instead: [Context.bindings]. */
|
||||||
fun <T : Any> Context.bindings(klass: Class<T>): T {
|
fun <T : Any> Context.bindings(klass: Class<T>): T {
|
||||||
// search dagger components in the context hierarchy
|
// search dagger components in the context hierarchy
|
||||||
return generateSequence(this) { (it as? ContextWrapper)?.baseContext }
|
return generateSequence(this) { (it as? ContextWrapper)?.baseContext }
|
||||||
|
|
@ -40,7 +40,7 @@ fun <T : Any> Context.bindings(klass: Class<T>): T {
|
||||||
?: error("Unable to find bindings for ${klass.name}")
|
?: error("Unable to find bindings for ${klass.name}")
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Use no-arg extension function instead: [Fragment.bindings] */
|
/** Use no-arg extension function instead: [Fragment.bindings]. */
|
||||||
fun <T : Any> Fragment.bindings(klass: Class<T>): T {
|
fun <T : Any> Fragment.bindings(klass: Class<T>): T {
|
||||||
// search dagger components in fragment hierarchy, then fallback to activity and application
|
// search dagger components in fragment hierarchy, then fallback to activity and application
|
||||||
return generateSequence(this, Fragment::getParentFragment)
|
return generateSequence(this, Fragment::getParentFragment)
|
||||||
|
|
@ -50,4 +50,4 @@ fun <T : Any> Fragment.bindings(klass: Class<T>): T {
|
||||||
.filterIsInstance(klass)
|
.filterIsInstance(klass)
|
||||||
.firstOrNull()
|
.firstOrNull()
|
||||||
?: requireActivity().bindings(klass)
|
?: requireActivity().bindings(klass)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,4 +7,4 @@ package io.element.android.x.core.di
|
||||||
interface DaggerComponentOwner {
|
interface DaggerComponentOwner {
|
||||||
/** This is either a component, or a list of components. */
|
/** This is either a component, or a list of components. */
|
||||||
val daggerComponent: Any
|
val daggerComponent: Any
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@ inline fun <reified VM : MavericksViewModel<S>, S : MavericksState> daggerMaveri
|
||||||
* using its AssistedInject Factory. This class should be implemented by the companion object
|
* using its AssistedInject Factory. This class should be implemented by the companion object
|
||||||
* of every ViewModel which uses AssistedInject via [daggerMavericksViewModelFactory].
|
* of every ViewModel which uses AssistedInject via [daggerMavericksViewModelFactory].
|
||||||
*
|
*
|
||||||
|
* @param VM The ViewModel type
|
||||||
|
* @param S The ViewState type
|
||||||
* @param viewModelClass The [Class] of the ViewModel being requested for creation
|
* @param viewModelClass The [Class] of the ViewModel being requested for creation
|
||||||
*
|
*
|
||||||
* This class accesses the map of ViewModel class to [AssistedViewModelFactory]s from the nearest [DaggerComponentOwner] and
|
* This class accesses the map of ViewModel class to [AssistedViewModelFactory]s from the nearest [DaggerComponentOwner] and
|
||||||
|
|
@ -57,4 +59,4 @@ class DaggerMavericksViewModelFactory<VM : MavericksViewModel<S>, S : MavericksS
|
||||||
|
|
||||||
interface DaggerMavericksBindings {
|
interface DaggerMavericksBindings {
|
||||||
fun viewModelFactories(): Map<Class<out MavericksViewModel<*>>, AssistedViewModelFactory<*, *>>
|
fun viewModelFactories(): Map<Class<out MavericksViewModel<*>>, AssistedViewModelFactory<*, *>>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,4 @@ plugins {
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
api(libs.inject)
|
api(libs.inject)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,4 @@ package io.element.android.x.di
|
||||||
|
|
||||||
import javax.inject.Qualifier
|
import javax.inject.Qualifier
|
||||||
|
|
||||||
@Qualifier annotation class ApplicationContext
|
@Qualifier annotation class ApplicationContext
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ import kotlin.reflect.KClass
|
||||||
|
|
||||||
@Scope
|
@Scope
|
||||||
@Retention(AnnotationRetention.RUNTIME)
|
@Retention(AnnotationRetention.RUNTIME)
|
||||||
annotation class SingleIn(val clazz: KClass<*>)
|
annotation class SingleIn(val clazz: KClass<*>)
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,9 @@ import io.element.android.x.matrix.media.MediaFetcher
|
||||||
import io.element.android.x.matrix.media.MediaKeyer
|
import io.element.android.x.matrix.media.MediaKeyer
|
||||||
import io.element.android.x.matrix.session.SessionStore
|
import io.element.android.x.matrix.session.SessionStore
|
||||||
import io.element.android.x.matrix.util.logError
|
import io.element.android.x.matrix.util.logError
|
||||||
|
import java.io.File
|
||||||
|
import java.util.concurrent.Executors
|
||||||
|
import javax.inject.Inject
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.asCoroutineDispatcher
|
import kotlinx.coroutines.asCoroutineDispatcher
|
||||||
|
|
@ -19,10 +22,6 @@ import org.matrix.rustcomponents.sdk.AuthenticationService
|
||||||
import org.matrix.rustcomponents.sdk.Client
|
import org.matrix.rustcomponents.sdk.Client
|
||||||
import org.matrix.rustcomponents.sdk.ClientBuilder
|
import org.matrix.rustcomponents.sdk.ClientBuilder
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.File
|
|
||||||
import java.util.*
|
|
||||||
import java.util.concurrent.Executors
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
@SingleIn(AppScope::class)
|
@SingleIn(AppScope::class)
|
||||||
class Matrix @Inject constructor(
|
class Matrix @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package io.element.android.x.matrix
|
package io.element.android.x.matrix
|
||||||
|
|
||||||
import io.element.android.x.core.coroutine.CoroutineDispatchers
|
import io.element.android.x.core.coroutine.CoroutineDispatchers
|
||||||
import io.element.android.x.di.SingleIn
|
|
||||||
import io.element.android.x.matrix.core.UserId
|
import io.element.android.x.matrix.core.UserId
|
||||||
import io.element.android.x.matrix.media.MediaResolver
|
import io.element.android.x.matrix.media.MediaResolver
|
||||||
import io.element.android.x.matrix.media.RustMediaResolver
|
import io.element.android.x.matrix.media.RustMediaResolver
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,8 @@ fun CommonExtension<*, *, *, *>.composeConfig() {
|
||||||
|
|
||||||
lint {
|
lint {
|
||||||
// Extra rules for compose
|
// Extra rules for compose
|
||||||
error.add("ComposableLambdaParameterNaming")
|
// Disabled until lint stops inspecting generated ksp files...
|
||||||
|
// error.add("ComposableLambdaParameterNaming")
|
||||||
error.add("ComposableLambdaParameterPosition")
|
error.add("ComposableLambdaParameterPosition")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,7 @@ comments:
|
||||||
active: true
|
active: true
|
||||||
OutdatedDocumentation:
|
OutdatedDocumentation:
|
||||||
active: true
|
active: true
|
||||||
|
allowParamOnConstructorProperties: true
|
||||||
UndocumentedPublicClass:
|
UndocumentedPublicClass:
|
||||||
active: false
|
active: false
|
||||||
UndocumentedPublicFunction:
|
UndocumentedPublicFunction:
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,9 @@
|
||||||
<!-- Notification -->
|
<!-- Notification -->
|
||||||
<issue id="LaunchActivityFromNotification" severity="error" />
|
<issue id="LaunchActivityFromNotification" severity="error" />
|
||||||
|
|
||||||
|
<!-- We handle them manually -->
|
||||||
|
<issue id="EnsureInitializerMetadata" severity="ignore" />
|
||||||
|
|
||||||
<!-- DI -->
|
<!-- DI -->
|
||||||
<!-- issue id="JvmStaticProvidesInObjectDetector" severity="error" /-->
|
<!-- issue id="JvmStaticProvidesInObjectDetector" severity="error" /-->
|
||||||
</lint>
|
</lint>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue