Optimize import
This commit is contained in:
parent
636e4c0da9
commit
b4fbe77581
45 changed files with 82 additions and 85 deletions
|
|
@ -26,8 +26,8 @@ import androidx.core.view.WindowCompat
|
||||||
import com.bumble.appyx.core.integration.NodeHost
|
import com.bumble.appyx.core.integration.NodeHost
|
||||||
import com.bumble.appyx.core.integrationpoint.NodeComponentActivity
|
import com.bumble.appyx.core.integrationpoint.NodeComponentActivity
|
||||||
import io.element.android.libraries.architecture.bindings
|
import io.element.android.libraries.architecture.bindings
|
||||||
import io.element.android.libraries.di.DaggerComponentOwner
|
|
||||||
import io.element.android.libraries.designsystem.ElementXTheme
|
import io.element.android.libraries.designsystem.ElementXTheme
|
||||||
|
import io.element.android.libraries.di.DaggerComponentOwner
|
||||||
import io.element.android.x.di.AppBindings
|
import io.element.android.x.di.AppBindings
|
||||||
import io.element.android.x.node.RootFlowNode
|
import io.element.android.x.node.RootFlowNode
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,8 @@ package io.element.android.x.info
|
||||||
import io.element.android.x.BuildConfig
|
import io.element.android.x.BuildConfig
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.Date
|
||||||
|
import java.util.Locale
|
||||||
|
|
||||||
fun logApplicationInfo() {
|
fun logApplicationInfo() {
|
||||||
val appVersion = buildString {
|
val appVersion = buildString {
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,9 @@ package io.element.android.x.initializer
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.startup.Initializer
|
import androidx.startup.Initializer
|
||||||
import io.element.android.x.BuildConfig
|
|
||||||
import io.element.android.libraries.matrix.tracing.TracingConfigurations
|
import io.element.android.libraries.matrix.tracing.TracingConfigurations
|
||||||
import io.element.android.libraries.matrix.tracing.setupTracing
|
import io.element.android.libraries.matrix.tracing.setupTracing
|
||||||
|
import io.element.android.x.BuildConfig
|
||||||
|
|
||||||
class MatrixInitializer : Initializer<Unit> {
|
class MatrixInitializer : Initializer<Unit> {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ package io.element.android.x.initializer
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.startup.Initializer
|
import androidx.startup.Initializer
|
||||||
import io.element.android.x.BuildConfig
|
|
||||||
import io.element.android.features.rageshake.logs.VectorFileLogger
|
import io.element.android.features.rageshake.logs.VectorFileLogger
|
||||||
|
import io.element.android.x.BuildConfig
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
class TimberInitializer : Initializer<Unit> {
|
class TimberInitializer : Initializer<Unit> {
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,10 @@ package io.element.android.x.root
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.rageshake.bugreport.BugReportPresenter
|
import io.element.android.features.rageshake.bugreport.BugReportPresenter
|
||||||
import io.element.android.features.rageshake.crash.ui.CrashDetectionPresenter
|
import io.element.android.features.rageshake.crash.ui.CrashDetectionPresenter
|
||||||
import io.element.android.features.rageshake.detection.RageshakeDetectionPresenter
|
import io.element.android.features.rageshake.detection.RageshakeDetectionPresenter
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class RootPresenter @Inject constructor(
|
class RootPresenter @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -24,12 +24,12 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.LocalContext
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import io.element.android.x.component.ShowkaseButton
|
|
||||||
import io.element.android.features.rageshake.crash.ui.CrashDetectionEvents
|
import io.element.android.features.rageshake.crash.ui.CrashDetectionEvents
|
||||||
import io.element.android.features.rageshake.crash.ui.CrashDetectionView
|
import io.element.android.features.rageshake.crash.ui.CrashDetectionView
|
||||||
import io.element.android.features.rageshake.detection.RageshakeDetectionEvents
|
import io.element.android.features.rageshake.detection.RageshakeDetectionEvents
|
||||||
import io.element.android.features.rageshake.detection.RageshakeDetectionView
|
import io.element.android.features.rageshake.detection.RageshakeDetectionView
|
||||||
import io.element.android.tests.uitests.openShowkase
|
import io.element.android.tests.uitests.openShowkase
|
||||||
|
import io.element.android.x.component.ShowkaseButton
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun RootView(
|
fun RootView(
|
||||||
|
|
|
||||||
|
|
@ -52,11 +52,11 @@ import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import io.element.android.libraries.architecture.Async
|
|
||||||
import io.element.android.libraries.designsystem.components.form.textFieldState
|
|
||||||
import io.element.android.libraries.designsystem.components.VectorIcon
|
|
||||||
import io.element.android.features.login.R
|
import io.element.android.features.login.R
|
||||||
import io.element.android.features.login.error.changeServerError
|
import io.element.android.features.login.error.changeServerError
|
||||||
|
import io.element.android.libraries.architecture.Async
|
||||||
|
import io.element.android.libraries.designsystem.components.VectorIcon
|
||||||
|
import io.element.android.libraries.designsystem.components.form.textFieldState
|
||||||
import io.element.android.libraries.testtags.TestTags
|
import io.element.android.libraries.testtags.TestTags
|
||||||
import io.element.android.libraries.testtags.testTag
|
import io.element.android.libraries.testtags.testTag
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,8 @@ package io.element.android.features.login.error
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import io.element.android.libraries.core.uri.isValidUrl
|
|
||||||
import io.element.android.features.login.root.LoginFormState
|
import io.element.android.features.login.root.LoginFormState
|
||||||
|
import io.element.android.libraries.core.uri.isValidUrl
|
||||||
import io.element.android.libraries.ui.strings.R as StringR
|
import io.element.android.libraries.ui.strings.R as StringR
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,11 @@ import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import io.element.android.libraries.designsystem.components.form.textFieldState
|
|
||||||
import io.element.android.features.login.error.loginError
|
import io.element.android.features.login.error.loginError
|
||||||
|
import io.element.android.libraries.designsystem.components.form.textFieldState
|
||||||
|
import io.element.android.libraries.matrix.core.SessionId
|
||||||
import io.element.android.libraries.testtags.TestTags
|
import io.element.android.libraries.testtags.TestTags
|
||||||
import io.element.android.libraries.testtags.testTag
|
import io.element.android.libraries.testtags.testTag
|
||||||
import io.element.android.libraries.matrix.core.SessionId
|
|
||||||
import io.element.android.libraries.ui.strings.R as StringR
|
import io.element.android.libraries.ui.strings.R as StringR
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@ import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|
||||||
import io.element.android.features.messages.actionlist.ActionListPresenter
|
import io.element.android.features.messages.actionlist.ActionListPresenter
|
||||||
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
||||||
import io.element.android.features.messages.textcomposer.MessageComposerEvents
|
import io.element.android.features.messages.textcomposer.MessageComposerEvents
|
||||||
|
|
@ -36,6 +33,9 @@ import io.element.android.features.messages.timeline.TimelineEvents
|
||||||
import io.element.android.features.messages.timeline.TimelinePresenter
|
import io.element.android.features.messages.timeline.TimelinePresenter
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.matrix.MatrixClient
|
import io.element.android.libraries.matrix.MatrixClient
|
||||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||||
import io.element.android.libraries.matrix.ui.MatrixItemHelper
|
import io.element.android.libraries.matrix.ui.MatrixItemHelper
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@
|
||||||
package io.element.android.features.messages
|
package io.element.android.features.messages
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.features.messages.actionlist.ActionListState
|
import io.element.android.features.messages.actionlist.ActionListState
|
||||||
import io.element.android.features.messages.textcomposer.MessageComposerState
|
import io.element.android.features.messages.textcomposer.MessageComposerState
|
||||||
import io.element.android.features.messages.timeline.TimelineState
|
import io.element.android.features.messages.timeline.TimelineState
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.matrix.core.RoomId
|
import io.element.android.libraries.matrix.core.RoomId
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
|
|
|
||||||
|
|
@ -56,14 +56,14 @@ import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.features.messages.actionlist.ActionListEvents
|
import io.element.android.features.messages.actionlist.ActionListEvents
|
||||||
import io.element.android.features.messages.actionlist.ActionListView
|
import io.element.android.features.messages.actionlist.ActionListView
|
||||||
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
|
||||||
import io.element.android.features.messages.textcomposer.MessageComposerView
|
import io.element.android.features.messages.textcomposer.MessageComposerView
|
||||||
import io.element.android.features.messages.timeline.TimelineView
|
import io.element.android.features.messages.timeline.TimelineView
|
||||||
|
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.designsystem.utils.LogCompositions
|
import io.element.android.libraries.designsystem.utils.LogCompositions
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
|
||||||
|
|
@ -41,9 +41,9 @@ import androidx.compose.runtime.snapshotFlow
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.components.VectorIcon
|
|
||||||
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
import io.element.android.features.messages.actionlist.model.TimelineItemAction
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||||
|
import io.element.android.libraries.designsystem.components.VectorIcon
|
||||||
import kotlinx.coroutines.flow.filter
|
import kotlinx.coroutines.flow.filter
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ package io.element.android.features.messages.actionlist.model
|
||||||
|
|
||||||
import androidx.annotation.DrawableRes
|
import androidx.annotation.DrawableRes
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import io.element.android.libraries.designsystem.VectorIcons
|
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
sealed class TimelineItemAction(
|
sealed class TimelineItemAction(
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@
|
||||||
package io.element.android.features.messages.timeline
|
package io.element.android.features.messages.timeline
|
||||||
|
|
||||||
import androidx.recyclerview.widget.DiffUtil
|
import androidx.recyclerview.widget.DiffUtil
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|
||||||
import io.element.android.features.messages.timeline.diff.CacheInvalidator
|
import io.element.android.features.messages.timeline.diff.CacheInvalidator
|
||||||
import io.element.android.features.messages.timeline.diff.MatrixTimelineItemsDiffCallback
|
import io.element.android.features.messages.timeline.diff.MatrixTimelineItemsDiffCallback
|
||||||
import io.element.android.features.messages.timeline.model.AggregatedReaction
|
import io.element.android.features.messages.timeline.model.AggregatedReaction
|
||||||
|
|
@ -33,6 +32,7 @@ import io.element.android.features.messages.timeline.model.content.TimelineItemR
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemTextContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemTextContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent
|
||||||
import io.element.android.features.messages.timeline.util.invalidateLast
|
import io.element.android.features.messages.timeline.util.invalidateLast
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.matrix.core.EventId
|
import io.element.android.libraries.matrix.core.EventId
|
||||||
import io.element.android.libraries.matrix.media.MediaResolver
|
import io.element.android.libraries.matrix.media.MediaResolver
|
||||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||||
|
|
|
||||||
|
|
@ -58,28 +58,28 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.zIndex
|
import androidx.compose.ui.zIndex
|
||||||
import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter
|
import io.element.android.features.messages.timeline.components.MessageEventBubble
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
import io.element.android.features.messages.timeline.components.TimelineItemEncryptedView
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
import io.element.android.features.messages.timeline.components.TimelineItemImageView
|
||||||
|
import io.element.android.features.messages.timeline.components.TimelineItemReactionsView
|
||||||
|
import io.element.android.features.messages.timeline.components.TimelineItemRedactedView
|
||||||
|
import io.element.android.features.messages.timeline.components.TimelineItemTextView
|
||||||
|
import io.element.android.features.messages.timeline.components.TimelineItemUnknownView
|
||||||
import io.element.android.features.messages.timeline.model.AggregatedReaction
|
import io.element.android.features.messages.timeline.model.AggregatedReaction
|
||||||
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
|
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
|
||||||
|
import io.element.android.features.messages.timeline.model.TimelineItem
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItemGroupPositionProvider
|
import io.element.android.features.messages.timeline.model.TimelineItemGroupPositionProvider
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItemReactions
|
import io.element.android.features.messages.timeline.model.TimelineItemReactions
|
||||||
import io.element.android.features.messages.timeline.model.TimelineItem
|
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
|
||||||
import io.element.android.features.messages.timeline.model.content.MessagesTimelineItemContentProvider
|
import io.element.android.features.messages.timeline.model.content.MessagesTimelineItemContentProvider
|
||||||
|
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemEncryptedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemEncryptedContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemImageContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemImageContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemRedactedContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemUnknownContent
|
||||||
import io.element.android.features.messages.timeline.components.MessageEventBubble
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemReactionsView
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemEncryptedView
|
import io.element.android.libraries.designsystem.utils.PairCombinedPreviewParameter
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemImageView
|
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemRedactedView
|
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemTextView
|
|
||||||
import io.element.android.features.messages.timeline.components.TimelineItemUnknownView
|
|
||||||
import io.element.android.libraries.matrix.core.EventId
|
import io.element.android.libraries.matrix.core.EventId
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
import androidx.compose.ui.graphics.Shape
|
import androidx.compose.ui.graphics.Shape
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
|
||||||
import io.element.android.libraries.designsystem.LocalIsDarkTheme
|
import io.element.android.libraries.designsystem.LocalIsDarkTheme
|
||||||
import io.element.android.libraries.designsystem.MessageHighlightDark
|
import io.element.android.libraries.designsystem.MessageHighlightDark
|
||||||
import io.element.android.libraries.designsystem.MessageHighlightLight
|
import io.element.android.libraries.designsystem.MessageHighlightLight
|
||||||
|
|
@ -36,7 +37,6 @@ import io.element.android.libraries.designsystem.SystemGrey5Dark
|
||||||
import io.element.android.libraries.designsystem.SystemGrey5Light
|
import io.element.android.libraries.designsystem.SystemGrey5Light
|
||||||
import io.element.android.libraries.designsystem.SystemGrey6Dark
|
import io.element.android.libraries.designsystem.SystemGrey6Dark
|
||||||
import io.element.android.libraries.designsystem.SystemGrey6Light
|
import io.element.android.libraries.designsystem.SystemGrey6Light
|
||||||
import io.element.android.features.messages.timeline.model.MessagesItemGroupPosition
|
|
||||||
|
|
||||||
private val BUBBLE_RADIUS = 16.dp
|
private val BUBBLE_RADIUS = 16.dp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,10 +28,10 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.text.SpanStyle
|
import androidx.compose.ui.text.SpanStyle
|
||||||
import androidx.compose.ui.text.buildAnnotatedString
|
import androidx.compose.ui.text.buildAnnotatedString
|
||||||
import androidx.core.text.util.LinkifyCompat
|
import androidx.core.text.util.LinkifyCompat
|
||||||
import io.element.android.libraries.designsystem.LinkColor
|
|
||||||
import io.element.android.libraries.designsystem.components.ClickableLinkText
|
|
||||||
import io.element.android.features.messages.timeline.components.html.HtmlDocument
|
import io.element.android.features.messages.timeline.components.html.HtmlDocument
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemTextBasedContent
|
||||||
|
import io.element.android.libraries.designsystem.LinkColor
|
||||||
|
import io.element.android.libraries.designsystem.components.ClickableLinkText
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TimelineItemTextView(
|
fun TimelineItemTextView(
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,8 @@
|
||||||
package io.element.android.features.messages.timeline.model
|
package io.element.android.features.messages.timeline.model
|
||||||
|
|
||||||
import androidx.compose.runtime.Immutable
|
import androidx.compose.runtime.Immutable
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
import io.element.android.features.messages.timeline.model.content.TimelineItemContent
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.matrix.core.EventId
|
import io.element.android.libraries.matrix.core.EventId
|
||||||
|
|
||||||
@Immutable
|
@Immutable
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,10 @@
|
||||||
package io.element.android.features.preferences.root
|
package io.element.android.features.preferences.root
|
||||||
|
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import io.element.android.libraries.architecture.Async
|
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.logout.LogoutPreferencePresenter
|
import io.element.android.features.logout.LogoutPreferencePresenter
|
||||||
import io.element.android.features.rageshake.preferences.RageshakePreferencesPresenter
|
import io.element.android.features.rageshake.preferences.RageshakePreferencesPresenter
|
||||||
|
import io.element.android.libraries.architecture.Async
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class PreferencesRootPresenter @Inject constructor(
|
class PreferencesRootPresenter @Inject constructor(
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,9 @@
|
||||||
|
|
||||||
package io.element.android.features.preferences.root
|
package io.element.android.features.preferences.root
|
||||||
|
|
||||||
import io.element.android.libraries.architecture.Async
|
|
||||||
import io.element.android.features.logout.LogoutPreferenceState
|
import io.element.android.features.logout.LogoutPreferenceState
|
||||||
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
|
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
|
||||||
|
import io.element.android.libraries.architecture.Async
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
|
|
||||||
data class PreferencesRootState(
|
data class PreferencesRootState(
|
||||||
|
|
|
||||||
|
|
@ -20,13 +20,13 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import io.element.android.libraries.architecture.Async
|
|
||||||
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
|
||||||
import io.element.android.features.logout.LogoutPreferenceState
|
import io.element.android.features.logout.LogoutPreferenceState
|
||||||
import io.element.android.features.logout.LogoutPreferenceView
|
import io.element.android.features.logout.LogoutPreferenceView
|
||||||
import io.element.android.features.preferences.user.UserPreferences
|
import io.element.android.features.preferences.user.UserPreferences
|
||||||
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
|
import io.element.android.features.rageshake.preferences.RageshakePreferencesState
|
||||||
import io.element.android.features.rageshake.preferences.RageshakePreferencesView
|
import io.element.android.features.rageshake.preferences.RageshakePreferencesView
|
||||||
|
import io.element.android.libraries.architecture.Async
|
||||||
|
import io.element.android.libraries.designsystem.components.preferences.PreferenceView
|
||||||
import io.element.android.libraries.ui.strings.R as StringR
|
import io.element.android.libraries.ui.strings.R as StringR
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -24,13 +24,13 @@ import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
import io.element.android.libraries.architecture.Async
|
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.rageshake.crash.CrashDataStore
|
import io.element.android.features.rageshake.crash.CrashDataStore
|
||||||
import io.element.android.features.rageshake.logs.VectorFileLogger
|
import io.element.android.features.rageshake.logs.VectorFileLogger
|
||||||
import io.element.android.features.rageshake.reporter.BugReporter
|
import io.element.android.features.rageshake.reporter.BugReporter
|
||||||
import io.element.android.features.rageshake.reporter.ReportType
|
import io.element.android.features.rageshake.reporter.ReportType
|
||||||
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
|
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
|
||||||
|
import io.element.android.libraries.architecture.Async
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,9 @@ import androidx.compose.ui.unit.sp
|
||||||
import coil.compose.AsyncImage
|
import coil.compose.AsyncImage
|
||||||
import coil.request.ImageRequest
|
import coil.request.ImageRequest
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
import io.element.android.libraries.designsystem.components.form.textFieldState
|
|
||||||
import io.element.android.libraries.designsystem.components.LabelledCheckbox
|
import io.element.android.libraries.designsystem.components.LabelledCheckbox
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
||||||
|
import io.element.android.libraries.designsystem.components.form.textFieldState
|
||||||
import io.element.android.libraries.designsystem.utils.LogCompositions
|
import io.element.android.libraries.designsystem.utils.LogCompositions
|
||||||
import io.element.android.libraries.ui.strings.R as StringR
|
import io.element.android.libraries.ui.strings.R as StringR
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@ import androidx.datastore.preferences.core.stringPreferencesKey
|
||||||
import androidx.datastore.preferences.preferencesDataStore
|
import androidx.datastore.preferences.preferencesDataStore
|
||||||
import io.element.android.libraries.core.bool.orFalse
|
import io.element.android.libraries.core.bool.orFalse
|
||||||
import io.element.android.libraries.di.ApplicationContext
|
import io.element.android.libraries.di.ApplicationContext
|
||||||
import javax.inject.Inject
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_crash")
|
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_crash")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ package io.element.android.features.rageshake.crash
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import io.element.android.libraries.core.data.tryOrNull
|
import io.element.android.libraries.core.data.tryOrNull
|
||||||
|
import timber.log.Timber
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.io.StringWriter
|
import java.io.StringWriter
|
||||||
import timber.log.Timber
|
|
||||||
|
|
||||||
class VectorUncaughtExceptionHandler(
|
class VectorUncaughtExceptionHandler(
|
||||||
context: Context
|
context: Context
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ package io.element.android.features.rageshake.crash.ui
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.rageshake.crash.CrashDataStore
|
import io.element.android.features.rageshake.crash.CrashDataStore
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,9 @@ import androidx.lifecycle.Lifecycle
|
||||||
import io.element.android.features.rageshake.screenshot.ImageResult
|
import io.element.android.features.rageshake.screenshot.ImageResult
|
||||||
import io.element.android.features.rageshake.screenshot.screenshot
|
import io.element.android.features.rageshake.screenshot.screenshot
|
||||||
import io.element.android.libraries.androidutils.hardware.vibrate
|
import io.element.android.libraries.androidutils.hardware.vibrate
|
||||||
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
|
||||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||||
import io.element.android.libraries.designsystem.utils.LogCompositions
|
import io.element.android.libraries.designsystem.utils.LogCompositions
|
||||||
|
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||||
import io.element.android.libraries.ui.strings.R as StringR
|
import io.element.android.libraries.ui.strings.R as StringR
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.features.rageshake.rageshake.RageShake
|
import io.element.android.features.rageshake.rageshake.RageShake
|
||||||
import io.element.android.features.rageshake.rageshake.RageshakeDataStore
|
import io.element.android.features.rageshake.rageshake.RageshakeDataStore
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,9 @@ import androidx.datastore.preferences.core.floatPreferencesKey
|
||||||
import androidx.datastore.preferences.preferencesDataStore
|
import androidx.datastore.preferences.preferencesDataStore
|
||||||
import io.element.android.libraries.core.bool.orTrue
|
import io.element.android.libraries.core.bool.orTrue
|
||||||
import io.element.android.libraries.di.ApplicationContext
|
import io.element.android.libraries.di.ApplicationContext
|
||||||
import javax.inject.Inject
|
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.map
|
import kotlinx.coroutines.flow.map
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_rageshake")
|
private val Context.dataStore: DataStore<Preferences> by preferencesDataStore(name = "elementx_rageshake")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,20 +18,14 @@ package io.element.android.features.rageshake.reporter
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import io.element.android.libraries.core.extensions.toOnOff
|
|
||||||
import io.element.android.libraries.androidutils.file.compressFile
|
|
||||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
|
||||||
import io.element.android.libraries.di.ApplicationContext
|
|
||||||
import io.element.android.features.rageshake.R
|
import io.element.android.features.rageshake.R
|
||||||
import io.element.android.features.rageshake.crash.CrashDataStore
|
import io.element.android.features.rageshake.crash.CrashDataStore
|
||||||
import io.element.android.features.rageshake.logs.VectorFileLogger
|
import io.element.android.features.rageshake.logs.VectorFileLogger
|
||||||
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
|
import io.element.android.features.rageshake.screenshot.ScreenshotHolder
|
||||||
import java.io.File
|
import io.element.android.libraries.androidutils.file.compressFile
|
||||||
import java.io.IOException
|
import io.element.android.libraries.core.extensions.toOnOff
|
||||||
import java.io.OutputStreamWriter
|
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||||
import java.net.HttpURLConnection
|
import io.element.android.libraries.di.ApplicationContext
|
||||||
import java.util.Locale
|
|
||||||
import javax.inject.Inject
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.first
|
import kotlinx.coroutines.flow.first
|
||||||
|
|
@ -46,6 +40,12 @@ import okhttp3.Response
|
||||||
import org.json.JSONException
|
import org.json.JSONException
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import java.io.File
|
||||||
|
import java.io.IOException
|
||||||
|
import java.io.OutputStreamWriter
|
||||||
|
import java.net.HttpURLConnection
|
||||||
|
import java.util.Locale
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BugReporter creates and sends the bug reports.
|
* BugReporter creates and sends the bug reports.
|
||||||
|
|
|
||||||
|
|
@ -25,14 +25,14 @@ import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.saveable.rememberSaveable
|
import androidx.compose.runtime.saveable.rememberSaveable
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import io.element.android.libraries.architecture.Presenter
|
|
||||||
import io.element.android.libraries.core.coroutine.parallelMap
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
|
||||||
import io.element.android.features.roomlist.model.RoomListEvents
|
import io.element.android.features.roomlist.model.RoomListEvents
|
||||||
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
||||||
import io.element.android.features.roomlist.model.RoomListRoomSummaryPlaceholders
|
import io.element.android.features.roomlist.model.RoomListRoomSummaryPlaceholders
|
||||||
import io.element.android.features.roomlist.model.RoomListState
|
import io.element.android.features.roomlist.model.RoomListState
|
||||||
|
import io.element.android.libraries.architecture.Presenter
|
||||||
|
import io.element.android.libraries.core.coroutine.parallelMap
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.matrix.MatrixClient
|
import io.element.android.libraries.matrix.MatrixClient
|
||||||
import io.element.android.libraries.matrix.media.MediaResolver
|
import io.element.android.libraries.matrix.media.MediaResolver
|
||||||
import io.element.android.libraries.matrix.room.RoomSummary
|
import io.element.android.libraries.matrix.room.RoomSummary
|
||||||
|
|
|
||||||
|
|
@ -36,13 +36,13 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
|
||||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.Velocity
|
import androidx.compose.ui.unit.Velocity
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|
||||||
import io.element.android.features.roomlist.components.RoomListTopBar
|
import io.element.android.features.roomlist.components.RoomListTopBar
|
||||||
import io.element.android.features.roomlist.components.RoomSummaryRow
|
import io.element.android.features.roomlist.components.RoomSummaryRow
|
||||||
import io.element.android.features.roomlist.model.RoomListEvents
|
import io.element.android.features.roomlist.model.RoomListEvents
|
||||||
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
||||||
import io.element.android.features.roomlist.model.RoomListState
|
import io.element.android.features.roomlist.model.RoomListState
|
||||||
import io.element.android.features.roomlist.model.stubbedRoomSummaries
|
import io.element.android.features.roomlist.model.stubbedRoomSummaries
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.designsystem.utils.LogCompositions
|
import io.element.android.libraries.designsystem.utils.LogCompositions
|
||||||
import io.element.android.libraries.matrix.core.RoomId
|
import io.element.android.libraries.matrix.core.RoomId
|
||||||
import io.element.android.libraries.matrix.core.UserId
|
import io.element.android.libraries.matrix.core.UserId
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@ import androidx.compose.ui.unit.LayoutDirection
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import com.google.accompanist.placeholder.material.placeholder
|
import com.google.accompanist.placeholder.material.placeholder
|
||||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
|
||||||
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
import io.element.android.features.roomlist.model.RoomListRoomSummary
|
||||||
|
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||||
|
|
||||||
private val minHeight = 72.dp
|
private val minHeight = 72.dp
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,8 @@ import app.cash.molecule.RecompositionClock
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.libraries.matrixtest.FakeMatrixClient
|
|
||||||
import io.element.android.libraries.matrix.core.SessionId
|
import io.element.android.libraries.matrix.core.SessionId
|
||||||
import io.element.android.features.roomlist.LastMessageFormatter
|
import io.element.android.libraries.matrixtest.FakeMatrixClient
|
||||||
import io.element.android.features.roomlist.RoomListPresenter
|
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,6 @@
|
||||||
~ limitations under the License.
|
~ limitations under the License.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
<manifest>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ import com.bumble.appyx.core.node.Node
|
||||||
import com.bumble.appyx.core.plugin.Plugin
|
import com.bumble.appyx.core.plugin.Plugin
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import io.element.android.libraries.architecture.presenterConnector
|
|
||||||
import io.element.android.anvilannotations.ContributesNode
|
import io.element.android.anvilannotations.ContributesNode
|
||||||
|
import io.element.android.libraries.architecture.presenterConnector
|
||||||
import io.element.android.libraries.di.AppScope
|
import io.element.android.libraries.di.AppScope
|
||||||
|
|
||||||
// TODO Change to use the right Scope for your feature. For now it can be AppScope, SessionScope or RoomScope
|
// TODO Change to use the right Scope for your feature. For now it can be AppScope, SessionScope or RoomScope
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ package io.element.android.libraries.matrix.permalink
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.net.UrlQuerySanitizer
|
import android.net.UrlQuerySanitizer
|
||||||
import io.element.android.libraries.matrix.core.MatrixPatterns
|
import io.element.android.libraries.matrix.core.MatrixPatterns
|
||||||
import java.net.URLDecoder
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import java.net.URLDecoder
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class turns a uri to a [PermalinkData].
|
* This class turns a uri to a [PermalinkData].
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,6 @@ package io.element.android.libraries.matrix.room
|
||||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||||
import io.element.android.libraries.matrix.sync.roomListDiff
|
import io.element.android.libraries.matrix.sync.roomListDiff
|
||||||
import io.element.android.libraries.matrix.sync.state
|
import io.element.android.libraries.matrix.sync.state
|
||||||
import java.io.Closeable
|
|
||||||
import java.util.Collections
|
|
||||||
import java.util.UUID
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.FlowPreview
|
import kotlinx.coroutines.FlowPreview
|
||||||
import kotlinx.coroutines.SupervisorJob
|
import kotlinx.coroutines.SupervisorJob
|
||||||
|
|
@ -41,6 +38,9 @@ import org.matrix.rustcomponents.sdk.SlidingSyncView
|
||||||
import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsListDiff
|
import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsListDiff
|
||||||
import org.matrix.rustcomponents.sdk.UpdateSummary
|
import org.matrix.rustcomponents.sdk.UpdateSummary
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
import java.io.Closeable
|
||||||
|
import java.util.Collections
|
||||||
|
import java.util.UUID
|
||||||
|
|
||||||
interface RoomSummaryDataSource {
|
interface RoomSummaryDataSource {
|
||||||
fun roomSummaries(): Flow<List<RoomSummary>>
|
fun roomSummaries(): Flow<List<RoomSummary>>
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,12 @@ import io.element.android.libraries.matrix.MatrixClient
|
||||||
import io.element.android.libraries.matrix.core.RoomId
|
import io.element.android.libraries.matrix.core.RoomId
|
||||||
import io.element.android.libraries.matrix.core.SessionId
|
import io.element.android.libraries.matrix.core.SessionId
|
||||||
import io.element.android.libraries.matrix.core.UserId
|
import io.element.android.libraries.matrix.core.UserId
|
||||||
import io.element.android.libraries.matrixtest.media.FakeMediaResolver
|
|
||||||
import io.element.android.libraries.matrix.media.MediaResolver
|
import io.element.android.libraries.matrix.media.MediaResolver
|
||||||
import io.element.android.libraries.matrixtest.room.FakeMatrixRoom
|
|
||||||
import io.element.android.libraries.matrixtest.room.InMemoryRoomSummaryDataSource
|
|
||||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||||
import io.element.android.libraries.matrix.room.RoomSummaryDataSource
|
import io.element.android.libraries.matrix.room.RoomSummaryDataSource
|
||||||
|
import io.element.android.libraries.matrixtest.media.FakeMediaResolver
|
||||||
|
import io.element.android.libraries.matrixtest.room.FakeMatrixRoom
|
||||||
|
import io.element.android.libraries.matrixtest.room.InMemoryRoomSummaryDataSource
|
||||||
import org.matrix.rustcomponents.sdk.MediaSource
|
import org.matrix.rustcomponents.sdk.MediaSource
|
||||||
|
|
||||||
class FakeMatrixClient(override val sessionId: SessionId) : MatrixClient {
|
class FakeMatrixClient(override val sessionId: SessionId) : MatrixClient {
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ package io.element.android.libraries.matrixtest.room
|
||||||
import io.element.android.libraries.matrix.core.EventId
|
import io.element.android.libraries.matrix.core.EventId
|
||||||
import io.element.android.libraries.matrix.core.RoomId
|
import io.element.android.libraries.matrix.core.RoomId
|
||||||
import io.element.android.libraries.matrix.room.MatrixRoom
|
import io.element.android.libraries.matrix.room.MatrixRoom
|
||||||
import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline
|
|
||||||
import io.element.android.libraries.matrix.timeline.MatrixTimeline
|
import io.element.android.libraries.matrix.timeline.MatrixTimeline
|
||||||
|
import io.element.android.libraries.matrixtest.timeline.FakeMatrixTimeline
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.emptyFlow
|
import kotlinx.coroutines.flow.emptyFlow
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.semantics.semantics
|
import androidx.compose.ui.semantics.semantics
|
||||||
import androidx.compose.ui.semantics.testTag
|
import androidx.compose.ui.semantics.testTag
|
||||||
import androidx.compose.ui.semantics.testTagsAsResourceId
|
import androidx.compose.ui.semantics.testTagsAsResourceId
|
||||||
import io.element.android.libraries.testtags.TestTag
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a testTag to a Modifier, to be used by external tool, like TrafficLight for instance.
|
* Add a testTag to a Modifier, to be used by external tool, like TrafficLight for instance.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources>
|
||||||
<string name="notice_room_invite_no_invitee">دعوت %s</string>
|
<string name="notice_room_invite_no_invitee">دعوت %s</string>
|
||||||
<string name="notice_room_invite">%1$s، %2$s را دعوت کرد</string>
|
<string name="notice_room_invite">%1$s، %2$s را دعوت کرد</string>
|
||||||
<string name="notice_room_invite_you">%1$s دعوتتان کرد</string>
|
<string name="notice_room_invite_you">%1$s دعوتتان کرد</string>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
<resources>
|
||||||
<string name="notice_room_invite_no_invitee">%s 的邀请</string>
|
<string name="notice_room_invite_no_invitee">%s 的邀请</string>
|
||||||
<string name="notice_room_invite">%1$s 邀请了 %2$s</string>
|
<string name="notice_room_invite">%1$s 邀请了 %2$s</string>
|
||||||
<string name="notice_room_invite_you">%1$s 邀请了你</string>
|
<string name="notice_room_invite_you">%1$s 邀请了你</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue