Merge pull request #1730 from vector-im/feature/bma/uselessByLazy

Remove useless by lazy wrapping
This commit is contained in:
Benoit Marty 2023-11-02 17:07:14 +01:00 committed by GitHub
commit b1ee914173
5 changed files with 33 additions and 45 deletions

View file

@ -27,20 +27,18 @@ import io.element.android.libraries.usersearch.api.UserRepository
import javax.inject.Inject import javax.inject.Inject
class AddPeoplePresenter @Inject constructor( class AddPeoplePresenter @Inject constructor(
private val userListPresenterFactory: UserListPresenter.Factory, userListPresenterFactory: UserListPresenter.Factory,
private val userRepository: UserRepository, userRepository: UserRepository,
private val dataStore: CreateRoomDataStore, dataStore: CreateRoomDataStore,
) : Presenter<UserListState> { ) : Presenter<UserListState> {
private val userListPresenter by lazy { private val userListPresenter = userListPresenterFactory.create(
userListPresenterFactory.create( UserListPresenterArgs(
UserListPresenterArgs( selectionMode = SelectionMode.Multiple,
selectionMode = SelectionMode.Multiple, ),
), userRepository,
userRepository, dataStore.selectedUserListDataStore,
dataStore.selectedUserListDataStore, )
)
}
@Composable @Composable
override fun present(): UserListState { override fun present(): UserListState {

View file

@ -40,23 +40,21 @@ import kotlinx.coroutines.launch
import javax.inject.Inject import javax.inject.Inject
class CreateRoomRootPresenter @Inject constructor( class CreateRoomRootPresenter @Inject constructor(
private val presenterFactory: UserListPresenter.Factory, presenterFactory: UserListPresenter.Factory,
private val userRepository: UserRepository, userRepository: UserRepository,
private val userListDataStore: UserListDataStore, userListDataStore: UserListDataStore,
private val matrixClient: MatrixClient, private val matrixClient: MatrixClient,
private val analyticsService: AnalyticsService, private val analyticsService: AnalyticsService,
private val buildMeta: BuildMeta, private val buildMeta: BuildMeta,
) : Presenter<CreateRoomRootState> { ) : Presenter<CreateRoomRootState> {
private val presenter by lazy { private val presenter = presenterFactory.create(
presenterFactory.create( UserListPresenterArgs(
UserListPresenterArgs( selectionMode = SelectionMode.Single,
selectionMode = SelectionMode.Single, ),
), userRepository,
userRepository, userListDataStore,
userListDataStore, )
)
}
@Composable @Composable
override fun present(): CreateRoomRootState { override fun present(): CreateRoomRootState {

View file

@ -32,18 +32,16 @@ import io.element.android.libraries.di.AppScope
class NotificationsOptInNode @AssistedInject constructor( class NotificationsOptInNode @AssistedInject constructor(
@Assisted buildContext: BuildContext, @Assisted buildContext: BuildContext,
@Assisted plugins: List<Plugin>, @Assisted plugins: List<Plugin>,
private val presenterFactory: NotificationsOptInPresenter.Factory, presenterFactory: NotificationsOptInPresenter.Factory,
) : Node(buildContext, plugins = plugins) { ) : Node(buildContext, plugins = plugins) {
interface Callback: NodeInputs { interface Callback : NodeInputs {
fun onNotificationsOptInFinished() fun onNotificationsOptInFinished()
} }
private val callback = inputs<Callback>() private val callback = inputs<Callback>()
private val presenter: NotificationsOptInPresenter by lazy { private val presenter: NotificationsOptInPresenter = presenterFactory.create(callback)
presenterFactory.create(callback)
}
@Composable @Composable
override fun View(modifier: Modifier) { override fun View(modifier: Modifier) {

View file

@ -34,7 +34,7 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
class NotificationsOptInPresenter @AssistedInject constructor( class NotificationsOptInPresenter @AssistedInject constructor(
private val permissionsPresenterFactory: PermissionsPresenter.Factory, permissionsPresenterFactory: PermissionsPresenter.Factory,
@Assisted private val callback: NotificationsOptInNode.Callback, @Assisted private val callback: NotificationsOptInNode.Callback,
private val appCoroutineScope: CoroutineScope, private val appCoroutineScope: CoroutineScope,
private val permissionStateProvider: PermissionStateProvider, private val permissionStateProvider: PermissionStateProvider,
@ -46,14 +46,13 @@ class NotificationsOptInPresenter @AssistedInject constructor(
fun create(callback: NotificationsOptInNode.Callback): NotificationsOptInPresenter fun create(callback: NotificationsOptInNode.Callback): NotificationsOptInPresenter
} }
private val postNotificationPermissionsPresenter by lazy { private val postNotificationPermissionsPresenter: PermissionsPresenter =
// Ask for POST_NOTIFICATION PERMISSION on Android 13+ // Ask for POST_NOTIFICATION PERMISSION on Android 13+
if (buildVersionSdkIntProvider.isAtLeast(Build.VERSION_CODES.TIRAMISU)) { if (buildVersionSdkIntProvider.isAtLeast(Build.VERSION_CODES.TIRAMISU)) {
permissionsPresenterFactory.create(Manifest.permission.POST_NOTIFICATIONS) permissionsPresenterFactory.create(Manifest.permission.POST_NOTIFICATIONS)
} else { } else {
NoopPermissionsPresenter() NoopPermissionsPresenter()
} }
}
@Composable @Composable
override fun present(): NotificationsOptInState { override fun present(): NotificationsOptInState {

View file

@ -40,7 +40,6 @@ import io.element.android.libraries.matrix.api.room.StateEventType
import io.element.android.libraries.matrix.api.room.location.AssetType import io.element.android.libraries.matrix.api.room.location.AssetType
import io.element.android.libraries.matrix.api.room.roomMembers import io.element.android.libraries.matrix.api.room.roomMembers
import io.element.android.libraries.matrix.api.room.roomNotificationSettings import io.element.android.libraries.matrix.api.room.roomNotificationSettings
import io.element.android.libraries.matrix.api.timeline.MatrixTimeline
import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver import io.element.android.libraries.matrix.api.widget.MatrixWidgetDriver
import io.element.android.libraries.matrix.api.widget.MatrixWidgetSettings import io.element.android.libraries.matrix.api.widget.MatrixWidgetSettings
import io.element.android.libraries.matrix.impl.core.toProgressWatcher import io.element.android.libraries.matrix.impl.core.toProgressWatcher
@ -126,23 +125,19 @@ class RustMatrixRoom(
private val _roomNotificationSettingsStateFlow = MutableStateFlow<MatrixRoomNotificationSettingsState>(MatrixRoomNotificationSettingsState.Unknown) private val _roomNotificationSettingsStateFlow = MutableStateFlow<MatrixRoomNotificationSettingsState>(MatrixRoomNotificationSettingsState.Unknown)
override val roomNotificationSettingsStateFlow: StateFlow<MatrixRoomNotificationSettingsState> = _roomNotificationSettingsStateFlow override val roomNotificationSettingsStateFlow: StateFlow<MatrixRoomNotificationSettingsState> = _roomNotificationSettingsStateFlow
private val _timeline by lazy { override val timeline = RustMatrixTimeline(
RustMatrixTimeline( matrixRoom = this,
matrixRoom = this, innerRoom = innerRoom,
innerRoom = innerRoom, roomCoroutineScope = roomCoroutineScope,
roomCoroutineScope = roomCoroutineScope, dispatcher = roomDispatcher,
dispatcher = roomDispatcher, lastLoginTimestamp = sessionData.loginTimestamp,
lastLoginTimestamp = sessionData.loginTimestamp, onNewSyncedEvent = { _syncUpdateFlow.value = systemClock.epochMillis() }
onNewSyncedEvent = { _syncUpdateFlow.value = systemClock.epochMillis() } )
)
}
override val membersStateFlow: StateFlow<MatrixRoomMembersState> = _membersStateFlow.asStateFlow() override val membersStateFlow: StateFlow<MatrixRoomMembersState> = _membersStateFlow.asStateFlow()
override val syncUpdateFlow: StateFlow<Long> = _syncUpdateFlow.asStateFlow() override val syncUpdateFlow: StateFlow<Long> = _syncUpdateFlow.asStateFlow()
override val timeline: MatrixTimeline = _timeline
override suspend fun subscribeToSync() = roomSyncSubscriber.subscribe(roomId) override suspend fun subscribeToSync() = roomSyncSubscriber.subscribe(roomId)
override suspend fun unsubscribeFromSync() = roomSyncSubscriber.unsubscribe(roomId) override suspend fun unsubscribeFromSync() = roomSyncSubscriber.unsubscribe(roomId)