forked from dsutanto/bChot-android
refactoring to id.databisnis.bachot
This commit is contained in:
@@ -7,12 +7,12 @@
|
||||
*/
|
||||
|
||||
plugins {
|
||||
id("io.element.android-compose-library")
|
||||
id("id.databisnis.android.bachot-compose-library")
|
||||
id("kotlin-parcelize")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "io.element.android.features.messages.api"
|
||||
namespace = "id.databisnis.android.bachot.features.messages.api"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api
|
||||
package id.databisnis.android.bachot.features.messages.api
|
||||
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
|
||||
/**
|
||||
* Hoist-able state of the message composer.
|
||||
@@ -6,19 +6,19 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api
|
||||
package id.databisnis.android.bachot.features.messages.api
|
||||
|
||||
import android.os.Parcelable
|
||||
import com.bumble.appyx.core.modality.BuildContext
|
||||
import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
import io.element.android.libraries.architecture.FeatureEntryPoint
|
||||
import io.element.android.libraries.architecture.NodeInputs
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkData
|
||||
import id.databisnis.android.bachot.libraries.architecture.FeatureEntryPoint
|
||||
import id.databisnis.android.bachot.libraries.architecture.NodeInputs
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkData
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
interface MessagesEntryPoint : FeatureEntryPoint {
|
||||
@@ -6,8 +6,8 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.pinned
|
||||
package id.databisnis.android.bachot.features.messages.api.pinned
|
||||
|
||||
import io.element.android.libraries.matrix.api.timeline.TimelineProvider
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.TimelineProvider
|
||||
|
||||
interface PinnedEventsTimelineProvider : TimelineProvider
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.timeline
|
||||
package id.databisnis.android.bachot.features.messages.api.timeline
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import io.element.android.wysiwyg.utils.HtmlConverter
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.timeline.voicemessages.composer
|
||||
package id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer
|
||||
|
||||
import androidx.lifecycle.Lifecycle
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessagePlayerEvent
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessageRecorderEvent
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessagePlayerEvent
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessageRecorderEvent
|
||||
|
||||
sealed interface VoiceMessageComposerEvent {
|
||||
data class RecorderEvent(
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.timeline.voicemessages.composer
|
||||
package id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer
|
||||
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
|
||||
fun interface VoiceMessageComposerPresenter : Presenter<VoiceMessageComposerState> {
|
||||
interface Factory {
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.timeline.voicemessages.composer
|
||||
package id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessageState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessageState
|
||||
|
||||
@Stable
|
||||
data class VoiceMessageComposerState(
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.api.timeline.voicemessages.composer
|
||||
package id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.components.media.WaveFormSamples
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessageState
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.media.WaveFormSamples
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessageState
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
||||
open class VoiceMessageComposerStateProvider : PreviewParameterProvider<VoiceMessageComposerState> {
|
||||
@@ -10,12 +10,12 @@ import extension.testCommonDependencies
|
||||
*/
|
||||
|
||||
plugins {
|
||||
id("io.element.android-compose-library")
|
||||
id("id.databisnis.android.bachot-compose-library")
|
||||
id("kotlin-parcelize")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "io.element.android.features.messages.impl"
|
||||
namespace = "id.databisnis.android.bachot.features.messages.impl"
|
||||
testOptions {
|
||||
unitTests {
|
||||
isIncludeAndroidResources = true
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import com.bumble.appyx.core.modality.BuildContext
|
||||
import com.bumble.appyx.core.node.Node
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||
import io.element.android.libraries.architecture.createNode
|
||||
import io.element.android.libraries.di.SessionScope
|
||||
import id.databisnis.android.bachot.features.messages.api.MessagesEntryPoint
|
||||
import id.databisnis.android.bachot.libraries.architecture.createNode
|
||||
import id.databisnis.android.bachot.libraries.di.SessionScope
|
||||
|
||||
@ContributesBinding(SessionScope::class)
|
||||
class DefaultMessagesEntryPoint : MessagesEntryPoint {
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.EventOrTransactionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.user.MatrixUser
|
||||
|
||||
sealed interface MessagesEvents {
|
||||
data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : MessagesEvents
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import android.os.Parcelable
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -23,70 +23,70 @@ import com.bumble.appyx.navmodel.backstack.operation.push
|
||||
import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import im.vector.app.features.analytics.plan.Interaction
|
||||
import io.element.android.annotations.ContributesNode
|
||||
import io.element.android.features.call.api.CallType
|
||||
import io.element.android.features.call.api.ElementCallEntryPoint
|
||||
import io.element.android.features.forward.api.ForwardEntryPoint
|
||||
import io.element.android.features.knockrequests.api.list.KnockRequestsListEntryPoint
|
||||
import io.element.android.features.location.api.Location
|
||||
import io.element.android.features.location.api.LocationService
|
||||
import io.element.android.features.location.api.SendLocationEntryPoint
|
||||
import io.element.android.features.location.api.ShowLocationEntryPoint
|
||||
import io.element.android.features.messages.api.MessagesEntryPoint
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.preview.AttachmentsPreviewNode
|
||||
import io.element.android.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import io.element.android.features.messages.impl.pinned.list.PinnedMessagesListNode
|
||||
import io.element.android.features.messages.impl.report.ReportMessageNode
|
||||
import io.element.android.features.messages.impl.threads.ThreadedMessagesNode
|
||||
import io.element.android.features.messages.impl.timeline.TimelineController
|
||||
import io.element.android.features.messages.impl.timeline.debug.EventDebugInfoNode
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVideoContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.duration
|
||||
import io.element.android.features.poll.api.create.CreatePollEntryPoint
|
||||
import io.element.android.features.poll.api.create.CreatePollMode
|
||||
import io.element.android.libraries.architecture.BackstackWithOverlayBox
|
||||
import io.element.android.libraries.architecture.BaseFlowNode
|
||||
import io.element.android.libraries.architecture.callback
|
||||
import io.element.android.libraries.architecture.createNode
|
||||
import io.element.android.libraries.architecture.overlay.Overlay
|
||||
import io.element.android.libraries.architecture.overlay.operation.hide
|
||||
import io.element.android.libraries.architecture.overlay.operation.show
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.dateformatter.api.DateFormatter
|
||||
import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
||||
import io.element.android.libraries.dateformatter.api.toHumanReadableDuration
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
|
||||
import io.element.android.libraries.matrix.api.media.MediaSource
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkData
|
||||
import io.element.android.libraries.matrix.api.room.BaseRoom
|
||||
import io.element.android.libraries.matrix.api.room.alias.matches
|
||||
import io.element.android.libraries.matrix.api.room.joinedRoomMembers
|
||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import io.element.android.libraries.matrix.ui.messages.RoomMemberProfilesCache
|
||||
import io.element.android.libraries.matrix.ui.messages.RoomNamesCache
|
||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||
import io.element.android.libraries.mediaviewer.api.MediaViewerEntryPoint
|
||||
import io.element.android.libraries.textcomposer.mentions.LocalMentionSpanUpdater
|
||||
import io.element.android.libraries.textcomposer.mentions.MentionSpanTheme
|
||||
import io.element.android.libraries.textcomposer.mentions.MentionSpanUpdater
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import id.databisnis.android.bachot.annotations.ContributesNode
|
||||
import id.databisnis.android.bachot.features.call.api.CallType
|
||||
import id.databisnis.android.bachot.features.call.api.ElementCallEntryPoint
|
||||
import id.databisnis.android.bachot.features.forward.api.ForwardEntryPoint
|
||||
import id.databisnis.android.bachot.features.knockrequests.api.list.KnockRequestsListEntryPoint
|
||||
import id.databisnis.android.bachot.features.location.api.Location
|
||||
import id.databisnis.android.bachot.features.location.api.LocationService
|
||||
import id.databisnis.android.bachot.features.location.api.SendLocationEntryPoint
|
||||
import id.databisnis.android.bachot.features.location.api.ShowLocationEntryPoint
|
||||
import id.databisnis.android.bachot.features.messages.api.MessagesEntryPoint
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.preview.AttachmentsPreviewNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.list.PinnedMessagesListNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.report.ReportMessageNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.threads.ThreadedMessagesNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineController
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.debug.EventDebugInfoNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemVideoContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.duration
|
||||
import id.databisnis.android.bachot.features.poll.api.create.CreatePollEntryPoint
|
||||
import id.databisnis.android.bachot.features.poll.api.create.CreatePollMode
|
||||
import id.databisnis.android.bachot.libraries.architecture.BackstackWithOverlayBox
|
||||
import id.databisnis.android.bachot.libraries.architecture.BaseFlowNode
|
||||
import id.databisnis.android.bachot.libraries.architecture.callback
|
||||
import id.databisnis.android.bachot.libraries.architecture.createNode
|
||||
import id.databisnis.android.bachot.libraries.architecture.overlay.Overlay
|
||||
import id.databisnis.android.bachot.libraries.architecture.overlay.operation.hide
|
||||
import id.databisnis.android.bachot.libraries.architecture.overlay.operation.show
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
|
||||
import id.databisnis.android.bachot.libraries.dateformatter.api.DateFormatter
|
||||
import id.databisnis.android.bachot.libraries.dateformatter.api.DateFormatterMode
|
||||
import id.databisnis.android.bachot.libraries.dateformatter.api.toHumanReadableDuration
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.toRoomIdOrAlias
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.media.MediaSource
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkData
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.BaseRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.alias.matches
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.joinedRoomMembers
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.roomlist.RoomListService
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.RoomMemberProfilesCache
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.RoomNamesCache
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.MediaInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.MediaViewerEntryPoint
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.LocalMentionSpanUpdater
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.MentionSpanTheme
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.MentionSpanUpdater
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsService
|
||||
import id.databisnis.android.bachot.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
@@ -6,14 +6,14 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
interface MessagesNavigator {
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
@@ -27,50 +27,50 @@ import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import io.element.android.annotations.ContributesNode
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.features.knockrequests.api.banner.KnockRequestsBannerRenderer
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListPresenter
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerPresenter
|
||||
import io.element.android.features.messages.impl.timeline.TimelineController
|
||||
import io.element.android.features.messages.impl.timeline.TimelineEvents
|
||||
import io.element.android.features.messages.impl.timeline.TimelinePresenter
|
||||
import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
||||
import io.element.android.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.roommembermoderation.api.ModerationAction
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationRenderer
|
||||
import io.element.android.libraries.androidutils.browser.openUrlInChromeCustomTab
|
||||
import io.element.android.libraries.androidutils.system.openUrlInExternalApp
|
||||
import io.element.android.libraries.androidutils.system.toast
|
||||
import io.element.android.libraries.architecture.NodeInputs
|
||||
import io.element.android.libraries.architecture.callback
|
||||
import io.element.android.libraries.architecture.inputs
|
||||
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||
import io.element.android.libraries.matrix.api.analytics.toAnalyticsViewRoom
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.core.toRoomIdOrAlias
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkData
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.alias.matches
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import io.element.android.libraries.mediaplayer.api.MediaPlayer
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.analytics.api.AnalyticsLongRunningTransaction.LoadMessagesUi
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import io.element.android.services.analytics.api.finishLongRunningTransaction
|
||||
import id.databisnis.android.bachot.annotations.ContributesNode
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.features.knockrequests.api.banner.KnockRequestsBannerRenderer
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineController
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelinePresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.ModerationAction
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationRenderer
|
||||
import id.databisnis.android.bachot.libraries.androidutils.browser.openUrlInChromeCustomTab
|
||||
import id.databisnis.android.bachot.libraries.androidutils.system.openUrlInExternalApp
|
||||
import id.databisnis.android.bachot.libraries.androidutils.system.toast
|
||||
import id.databisnis.android.bachot.libraries.architecture.NodeInputs
|
||||
import id.databisnis.android.bachot.libraries.architecture.callback
|
||||
import id.databisnis.android.bachot.libraries.architecture.inputs
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.OnLifecycleEvent
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.SessionCoroutineScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.analytics.toAnalyticsViewRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.toRoomIdOrAlias
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkData
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkParser
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.alias.matches
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaplayer.api.MediaPlayer
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsLongRunningTransaction.LoadMessagesUi
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsService
|
||||
import id.databisnis.android.bachot.services.analytics.api.finishLongRunningTransaction
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import android.os.Build
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -27,70 +27,70 @@ import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import im.vector.app.features.analytics.plan.PinUnpinAction
|
||||
import io.element.android.appconfig.MessageComposerConfig
|
||||
import io.element.android.features.messages.api.timeline.HtmlConverterProvider
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListEvents
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import io.element.android.features.messages.impl.link.LinkState
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
|
||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import io.element.android.features.messages.impl.timeline.MarkAsFullyRead
|
||||
import io.element.android.features.messages.impl.timeline.TimelineController
|
||||
import io.element.android.features.messages.impl.timeline.TimelineEvents
|
||||
import io.element.android.features.messages.impl.timeline.TimelineState
|
||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItemThreadInfo
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.features.messages.impl.voicemessages.composer.DefaultVoiceMessageComposerPresenter
|
||||
import io.element.android.features.roomcall.api.RoomCallState
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationState
|
||||
import io.element.android.libraries.androidutils.clipboard.ClipboardHelper
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.core.extensions.flatMap
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.core.meta.BuildMeta
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
|
||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||
import io.element.android.libraries.matrix.api.core.toThreadId
|
||||
import io.element.android.libraries.matrix.api.encryption.EncryptionService
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.MessageEventType
|
||||
import io.element.android.libraries.matrix.api.room.RoomInfo
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembersState
|
||||
import io.element.android.libraries.matrix.api.room.isDm
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canPinUnpin
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canRedactOther
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canRedactOwn
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canSendMessage
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.EventOrTransactionId
|
||||
import io.element.android.libraries.matrix.ui.messages.reply.map
|
||||
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
||||
import io.element.android.libraries.matrix.ui.room.getDirectRoomMember
|
||||
import io.element.android.libraries.recentemojis.api.AddRecentEmoji
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import id.databisnis.android.bachot.appconfig.MessageComposerConfig
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.HtmlConverterProvider
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.MarkAsFullyRead
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineController
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItemThreadInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.voicemessages.composer.DefaultVoiceMessageComposerPresenter
|
||||
import id.databisnis.android.bachot.features.roomcall.api.RoomCallState
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationState
|
||||
import id.databisnis.android.bachot.libraries.androidutils.clipboard.ClipboardHelper
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.flatMap
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
|
||||
import id.databisnis.android.bachot.libraries.core.meta.BuildMeta
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.collectSnackbarMessageAsState
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.SessionCoroutineScope
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlagService
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlags
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.toThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.EncryptionService
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkParser
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.MessageEventType
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomInfo
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMembersState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.isDm
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canPinUnpin
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canRedactOther
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canRedactOwn
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canSendMessage
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.EventOrTransactionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.reply.map
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.model.getAvatarData
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.getDirectRoomMember
|
||||
import id.databisnis.android.bachot.libraries.recentemojis.api.AddRecentEmoji
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsService
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Element Creations Ltd.
|
||||
* Copyright 2023-2025 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.roomcall.api.RoomCallState
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationState
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.tombstone.SuccessorRoom
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class MessagesState(
|
||||
val roomId: RoomId,
|
||||
val roomName: String?,
|
||||
val roomAvatar: AvatarData,
|
||||
val heroes: ImmutableList<AvatarData>,
|
||||
val userEventPermissions: UserEventPermissions,
|
||||
val composerState: MessageComposerState,
|
||||
val voiceMessageComposerState: VoiceMessageComposerState,
|
||||
val timelineState: TimelineState,
|
||||
val timelineProtectionState: TimelineProtectionState,
|
||||
val identityChangeState: IdentityChangeState,
|
||||
val linkState: LinkState,
|
||||
val actionListState: ActionListState,
|
||||
val customReactionState: CustomReactionState,
|
||||
val reactionSummaryState: ReactionSummaryState,
|
||||
val readReceiptBottomSheetState: ReadReceiptBottomSheetState,
|
||||
val snackbarMessage: SnackbarMessage?,
|
||||
val inviteProgress: AsyncData<Unit>,
|
||||
val showReinvitePrompt: Boolean,
|
||||
val enableTextFormatting: Boolean,
|
||||
val roomCallState: RoomCallState,
|
||||
val appName: String,
|
||||
val pinnedMessagesBannerState: PinnedMessagesBannerState,
|
||||
val dmUserVerificationState: IdentityState?,
|
||||
val roomMemberModerationState: RoomMemberModerationState,
|
||||
val successorRoom: SuccessorRoom?,
|
||||
val eventSink: (MessagesEvents) -> Unit
|
||||
) {
|
||||
val isTombstoned = successorRoom != null
|
||||
}
|
||||
@@ -6,49 +6,49 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerState
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.aVoiceMessageComposerState
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.aVoiceMessagePreviewState
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||
import io.element.android.features.messages.impl.actionlist.anActionListState
|
||||
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import io.element.android.features.messages.impl.crypto.identity.anIdentityChangeState
|
||||
import io.element.android.features.messages.impl.link.LinkState
|
||||
import io.element.android.features.messages.impl.link.aLinkState
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerState
|
||||
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import io.element.android.features.messages.impl.pinned.banner.aLoadedPinnedMessagesBannerState
|
||||
import io.element.android.features.messages.impl.timeline.TimelineState
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemList
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineState
|
||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetEvents
|
||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.features.messages.impl.timeline.protection.aTimelineProtectionState
|
||||
import io.element.android.features.roomcall.api.RoomCallState
|
||||
import io.element.android.features.roomcall.api.aStandByCallState
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import io.element.android.features.roommembermoderation.api.RoomMemberModerationState
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import io.element.android.libraries.matrix.api.room.tombstone.SuccessorRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.aTextEditorStateRich
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.aVoiceMessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.aVoiceMessagePreviewState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.anActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.anIdentityChangeState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.aLinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.aMessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.aLoadedPinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemList
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.aTimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.roomcall.api.RoomCallState
|
||||
import id.databisnis.android.bachot.features.roomcall.api.aStandByCallState
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationEvents
|
||||
import id.databisnis.android.bachot.features.roommembermoderation.api.RoomMemberModerationState
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.tombstone.SuccessorRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.aTextEditorStateRich
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.persistentSetOf
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.expandVertically
|
||||
@@ -43,62 +43,62 @@ import androidx.compose.ui.text.font.FontStyle
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerEvent
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListEvents
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListView
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.crypto.identity.IdentityChangeStateView
|
||||
import io.element.android.features.messages.impl.link.LinkEvents
|
||||
import io.element.android.features.messages.impl.link.LinkView
|
||||
import io.element.android.features.messages.impl.messagecomposer.AttachmentsBottomSheet
|
||||
import io.element.android.features.messages.impl.messagecomposer.DisabledComposerView
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import io.element.android.features.messages.impl.messagecomposer.MessageComposerView
|
||||
import io.element.android.features.messages.impl.messagecomposer.suggestions.SuggestionsPickerView
|
||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerView
|
||||
import io.element.android.features.messages.impl.pinned.banner.PinnedMessagesBannerViewDefaults
|
||||
import io.element.android.features.messages.impl.timeline.FOCUS_ON_PINNED_EVENT_DEBOUNCE_DURATION_IN_MILLIS
|
||||
import io.element.android.features.messages.impl.timeline.TimelineEvents
|
||||
import io.element.android.features.messages.impl.timeline.TimelineView
|
||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionBottomSheet
|
||||
import io.element.android.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
||||
import io.element.android.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryView
|
||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheet
|
||||
import io.element.android.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetEvents
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.topbars.MessagesViewTopBar
|
||||
import io.element.android.features.messages.impl.topbars.ThreadTopBar
|
||||
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessagePermissionRationaleDialog
|
||||
import io.element.android.features.messages.impl.voicemessages.composer.VoiceMessageSendingFailedDialog
|
||||
import io.element.android.libraries.androidutils.ui.hideKeyboard
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
||||
import io.element.android.libraries.designsystem.components.ExpandableBottomSheetLayout
|
||||
import io.element.android.libraries.designsystem.components.ExpandableBottomSheetLayoutState
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import io.element.android.libraries.designsystem.components.rememberExpandableBottomSheetLayoutState
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.text.toAnnotatedString
|
||||
import io.element.android.libraries.designsystem.theme.components.BottomSheetDragHandle
|
||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.utils.HideKeyboardWhenDisposed
|
||||
import io.element.android.libraries.designsystem.utils.KeepScreenOn
|
||||
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarHost
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.rememberSnackbarHostState
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import io.element.android.libraries.matrix.api.room.tombstone.SuccessorRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListView
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeStateView
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkView
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.AttachmentsBottomSheet
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.DisabledComposerView
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.MessageComposerView
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions.SuggestionsPickerView
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerView
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerViewDefaults
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.FOCUS_ON_PINNED_EVENT_DEBOUNCE_DURATION_IN_MILLIS
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineView
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionBottomSheet
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryView
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheet
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.topbars.MessagesViewTopBar
|
||||
import id.databisnis.android.bachot.features.messages.impl.topbars.ThreadTopBar
|
||||
import id.databisnis.android.bachot.features.messages.impl.voicemessages.composer.VoiceMessagePermissionRationaleDialog
|
||||
import id.databisnis.android.bachot.features.messages.impl.voicemessages.composer.VoiceMessageSendingFailedDialog
|
||||
import id.databisnis.android.bachot.libraries.androidutils.ui.hideKeyboard
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.ExpandableBottomSheetLayout
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.ExpandableBottomSheetLayoutState
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.rememberExpandableBottomSheetLayoutState
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.text.toAnnotatedString
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.BottomSheetDragHandle
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Scaffold
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.HideKeyboardWhenDisposed
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.KeepScreenOn
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.OnLifecycleEvent
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarHost
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.rememberSnackbarHostState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.tombstone.SuccessorRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.user.MatrixUser
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
import timber.log.Timber
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl
|
||||
package id.databisnis.android.bachot.features.messages.impl
|
||||
|
||||
/**
|
||||
* Represents the permissions a user has in a room.
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist
|
||||
|
||||
import io.element.android.features.messages.impl.UserEventPermissions
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.UserEventPermissions
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
|
||||
sealed interface ActionListEvents {
|
||||
data object Clear : ActionListEvents
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.MutableState
|
||||
@@ -19,35 +19,35 @@ import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.features.messages.impl.UserEventPermissions
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionComparator
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailureFactory
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItemThreadInfo
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRtcNotificationContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.canBeCopied
|
||||
import io.element.android.features.messages.impl.timeline.model.event.canBeForwarded
|
||||
import io.element.android.features.messages.impl.timeline.model.event.canReact
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.dateformatter.api.DateFormatter
|
||||
import io.element.android.libraries.dateformatter.api.DateFormatterMode
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.room.BaseRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.preferences.api.store.AppPreferencesStore
|
||||
import io.element.android.libraries.recentemojis.api.GetRecentEmojis
|
||||
import id.databisnis.android.bachot.features.messages.impl.UserEventPermissions
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemActionComparator
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailureFactory
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItemThreadInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemEventContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemEventContentWithAttachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemRtcNotificationContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.canBeCopied
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.canBeForwarded
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.canReact
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.dateformatter.api.DateFormatter
|
||||
import id.databisnis.android.bachot.libraries.dateformatter.api.DateFormatterMode
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlagService
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlags
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.BaseRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.AppPreferencesStore
|
||||
import id.databisnis.android.bachot.libraries.recentemojis.api.GetRecentEmojis
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class ActionListState(
|
||||
@@ -6,23 +6,23 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionComparator
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.resolve.anUnsignedDeviceSendFailure
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemReactions
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemAudioContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemFileContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemImageContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemLocationContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemVideoContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemVoiceContent
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.MessageShield
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemActionComparator
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve.anUnsignedDeviceSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemReactions
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemAudioContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemFileContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemImageContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemLocationContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemVideoContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemVoiceContent
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.MessageShield
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
@@ -53,50 +53,50 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.ChangedIdentity
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.None
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.UnsignedDevice
|
||||
import io.element.android.features.messages.impl.timeline.a11y.a11yReactionAction
|
||||
import io.element.android.features.messages.impl.timeline.components.MessageShieldView
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemRtcNotificationContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemStickerContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemUnknownContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVideoContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
||||
import io.element.android.features.messages.impl.utils.messagesummary.DefaultMessageSummaryFormatter
|
||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.text.toSp
|
||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||
import io.element.android.libraries.designsystem.theme.components.IconSource
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
|
||||
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.theme.components.hide
|
||||
import io.element.android.libraries.matrix.ui.messages.sender.SenderName
|
||||
import io.element.android.libraries.matrix.ui.messages.sender.SenderNameMode
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.ChangedIdentity
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.None
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure.UnsignedDevice
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.a11y.a11yReactionAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.MessageShieldView
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemAudioContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemEncryptedContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemFileContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemImageContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemLegacyCallInviteContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemLocationContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemRedactedContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemRtcNotificationContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemStateContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemStickerContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemTextBasedContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemUnknownContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemVideoContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemVoiceContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.utils.messagesummary.DefaultMessageSummaryFormatter
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.Avatar
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarType
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.list.ListItemContent
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.text.toSp
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.HorizontalDivider
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Icon
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.IconSource
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ListItem
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ListItemStyle
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.hide
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.sender.SenderName
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.sender.SenderNameMode
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist.model
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist.model
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import io.element.android.libraries.designsystem.icons.CompoundDrawables
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.libraries.designsystem.icons.CompoundDrawables
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
|
||||
enum class TimelineItemAction(
|
||||
@StringRes val titleRes: Int,
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist.model
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist.model
|
||||
|
||||
import androidx.annotation.VisibleForTesting
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.actionlist.model
|
||||
package id.databisnis.android.bachot.features.messages.impl.actionlist.model
|
||||
|
||||
fun interface TimelineItemActionPostProcessor {
|
||||
fun process(actions: List<TimelineItemAction>): List<TimelineItemAction>
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments
|
||||
|
||||
import android.os.Parcelable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMedia
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
@Immutable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
sealed interface AttachmentsPreviewEvents {
|
||||
data object SendAttachment : AttachmentsPreviewEvents
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
@@ -18,18 +18,18 @@ import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import io.element.android.annotations.ContributesNode
|
||||
import io.element.android.compound.colors.SemanticColorsLightDark
|
||||
import io.element.android.compound.theme.ForcedDarkElementTheme
|
||||
import io.element.android.features.enterprise.api.EnterpriseService
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.libraries.architecture.NodeInputs
|
||||
import io.element.android.libraries.architecture.inputs
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMediaRenderer
|
||||
import id.databisnis.android.bachot.annotations.ContributesNode
|
||||
import id.databisnis.android.bachot.compound.colors.SemanticColorsLightDark
|
||||
import id.databisnis.android.bachot.compound.theme.ForcedDarkElementTheme
|
||||
import id.databisnis.android.bachot.features.enterprise.api.EnterpriseService
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.libraries.architecture.NodeInputs
|
||||
import id.databisnis.android.bachot.libraries.architecture.inputs
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.SessionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMediaRenderer
|
||||
|
||||
@ContributesNode(RoomScope::class)
|
||||
@AssistedInject
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -21,28 +21,28 @@ import androidx.compose.runtime.snapshotFlow
|
||||
import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.video.MediaOptimizationSelectorPresenter
|
||||
import io.element.android.libraries.androidutils.file.TemporaryUriDeleter
|
||||
import io.element.android.libraries.androidutils.file.safeDelete
|
||||
import io.element.android.libraries.androidutils.hash.hash
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.core.coroutine.firstInstanceOf
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeImage
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkBuilder
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfig
|
||||
import io.element.android.libraries.mediaupload.api.MediaSenderFactory
|
||||
import io.element.android.libraries.mediaupload.api.MediaUploadInfo
|
||||
import io.element.android.libraries.mediaupload.api.allFiles
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.libraries.textcomposer.model.rememberMarkdownTextEditorState
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.MediaOptimizationSelectorPresenter
|
||||
import id.databisnis.android.bachot.libraries.androidutils.file.TemporaryUriDeleter
|
||||
import id.databisnis.android.bachot.libraries.androidutils.file.safeDelete
|
||||
import id.databisnis.android.bachot.libraries.androidutils.hash.hash
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.firstInstanceOf
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.isMimeTypeImage
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.SessionCoroutineScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkBuilder
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaOptimizationConfig
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaSenderFactory
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaUploadInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.allFiles
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.rememberMarkdownTextEditorState
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Job
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import io.element.android.libraries.mediaupload.api.MediaUploadInfo
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaUploadInfo
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
|
||||
data class AttachmentsPreviewState(
|
||||
val attachment: Attachment,
|
||||
@@ -6,24 +6,24 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.core.net.toUri
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import io.element.android.features.messages.impl.attachments.video.VideoUploadEstimation
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||
import io.element.android.libraries.matrix.api.media.ImageInfo
|
||||
import io.element.android.libraries.mediaupload.api.MediaUploadInfo
|
||||
import io.element.android.libraries.mediaviewer.api.MediaInfo
|
||||
import io.element.android.libraries.mediaviewer.api.aVideoMediaInfo
|
||||
import io.element.android.libraries.mediaviewer.api.anImageMediaInfo
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.libraries.textcomposer.model.aTextEditorStateMarkdown
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.VideoUploadEstimation
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.media.ImageInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaUploadInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.MediaInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.aVideoMediaInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.anImageMediaInfo
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMedia
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.aTextEditorStateMarkdown
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import java.io.File
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.Image
|
||||
@@ -34,42 +34,42 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.messages.impl.R
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.preview.error.sendAttachmentError
|
||||
import io.element.android.features.messages.impl.attachments.video.MediaOptimizationSelectorEvent
|
||||
import io.element.android.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import io.element.android.features.messages.impl.attachments.video.VideoUploadEstimation
|
||||
import io.element.android.libraries.core.bool.orFalse
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeImage
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import io.element.android.libraries.designsystem.components.ProgressDialog
|
||||
import io.element.android.libraries.designsystem.components.ProgressDialogType
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.components.dialogs.AlertDialog
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ListDialog
|
||||
import io.element.android.libraries.designsystem.components.dialogs.RetryDialog
|
||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import io.element.android.libraries.designsystem.modifiers.niceClickable
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreviewDark
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||
import io.element.android.libraries.designsystem.theme.components.Switch
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMediaRenderer
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import io.element.android.libraries.textcomposer.TextComposer
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessageState
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.libraries.ui.utils.formatter.rememberFileSizeFormatter
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.features.messages.impl.R
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.preview.error.sendAttachmentError
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.MediaOptimizationSelectorEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.MediaOptimizationSelectorState
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.video.VideoUploadEstimation
|
||||
import id.databisnis.android.bachot.libraries.core.bool.orFalse
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.isMimeTypeImage
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.ProgressDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.ProgressDialogType
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.button.BackButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.AlertDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.ListDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.RetryDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.list.ListItemContent
|
||||
import id.databisnis.android.bachot.libraries.designsystem.modifiers.niceClickable
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreviewDark
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ListItem
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Scaffold
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Switch
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.TopAppBar
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.CommonDrawables
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMedia
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMediaRenderer
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.TextComposer
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessageState
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.libraries.ui.utils.formatter.rememberFileSizeFormatter
|
||||
import io.element.android.wysiwyg.display.TextDisplay
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview
|
||||
|
||||
fun interface OnDoneListener {
|
||||
operator fun invoke()
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.preview.error
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.preview.error
|
||||
|
||||
import io.element.android.features.messages.impl.R
|
||||
import io.element.android.libraries.mediaupload.api.MediaPreProcessor
|
||||
import id.databisnis.android.bachot.features.messages.impl.R
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaPreProcessor
|
||||
|
||||
fun sendAttachmentError(
|
||||
throwable: Throwable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.video
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.video
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -19,16 +19,16 @@ import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import io.element.android.libraries.di.SessionScope
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||
import io.element.android.libraries.mediaupload.api.MaxUploadSizeProvider
|
||||
import io.element.android.libraries.mediaupload.api.compressorHelper
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||
import io.element.android.libraries.preferences.api.store.SessionPreferencesStore
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
|
||||
import id.databisnis.android.bachot.libraries.di.SessionScope
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlagService
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlags
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MaxUploadSizeProvider
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.compressorHelper
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMedia
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.SessionPreferencesStore
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.flow.first
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.video
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.video
|
||||
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
|
||||
sealed interface MediaOptimizationSelectorEvent {
|
||||
data class SelectImageOptimization(val enabled: Boolean) : MediaOptimizationSelectorEvent
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.video
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.video
|
||||
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMedia
|
||||
|
||||
fun interface MediaOptimizationSelectorPresenter : Presenter<MediaOptimizationSelectorState> {
|
||||
interface Factory {
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.video
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.video
|
||||
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.VideoCompressionPreset
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class MediaOptimizationSelectorState(
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.attachments.video
|
||||
package id.databisnis.android.bachot.features.messages.impl.attachments.video
|
||||
|
||||
import android.content.Context
|
||||
import android.media.MediaMetadataRetriever
|
||||
@@ -17,8 +17,8 @@ import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.di.annotations.ApplicationContext
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.ApplicationContext
|
||||
import kotlin.time.Duration
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
|
||||
sealed interface IdentityChangeEvent {
|
||||
data class PinIdentity(val userId: UserId) : IdentityChangeEvent
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import io.element.android.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
data class IdentityChangeState(
|
||||
@@ -6,18 +6,18 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.produceState
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.encryption.EncryptionService
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.ui.room.roomMemberIdentityStateChange
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.EncryptionService
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.roomMemberIdentityStateChange
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -6,15 +6,15 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import io.element.android.libraries.matrix.ui.room.IdentityRoomMember
|
||||
import io.element.android.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.IdentityRoomMember
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
class IdentityChangeStateProvider : PreviewParameterProvider<IdentityChangeState> {
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.compose.runtime.Composable
|
||||
@@ -18,16 +18,16 @@ import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextDecoration
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.appconfig.LearnMoreConfig
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertLevel
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import io.element.android.libraries.matrix.api.encryption.identity.isAViolation
|
||||
import io.element.android.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.appconfig.LearnMoreConfig
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.ComposerAlertLevel
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.ComposerAlertMolecule
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.IdentityState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.encryption.identity.isAViolation
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.RoomMemberIdentityStateChange
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Composable
|
||||
fun IdentityChangeStateView(
|
||||
@@ -6,16 +6,16 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.identity
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.identity
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.features.messages.impl.MessagesView
|
||||
import io.element.android.features.messages.impl.aMessagesState
|
||||
import io.element.android.features.messages.impl.messagecomposer.aMessageComposerState
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.textcomposer.model.aTextEditorStateMarkdown
|
||||
import id.databisnis.android.bachot.features.messages.impl.MessagesView
|
||||
import id.databisnis.android.bachot.features.messages.impl.aMessagesState
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.aMessageComposerState
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.aTextEditorStateMarkdown
|
||||
|
||||
@PreviewsDayNight
|
||||
@Composable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure
|
||||
|
||||
import androidx.compose.runtime.Immutable
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure
|
||||
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.matrix.api.room.BaseRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.BaseRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
|
||||
@Inject
|
||||
class VerifiedUserSendFailureFactory(
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
|
||||
sealed interface ResolveVerifiedUserSendFailureEvents {
|
||||
data class ComputeForMessage(
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
@@ -16,13 +16,13 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.runtime.setValue
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailureFactory
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.architecture.runUpdatingState
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailureFactory
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.architecture.runUpdatingState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@Inject
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
|
||||
data class ResolveVerifiedUserSendFailureState(
|
||||
val verifiedUserSendFailure: VerifiedUserSendFailure,
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
|
||||
open class ResolveVerifiedUserSendFailureStateProvider : PreviewParameterProvider<ResolveVerifiedUserSendFailureState> {
|
||||
override val values: Sequence<ResolveVerifiedUserSendFailureState>
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.fillMaxWidth
|
||||
@@ -25,17 +25,17 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
|
||||
import io.element.android.libraries.designsystem.components.BigIcon
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.Button
|
||||
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import io.element.android.libraries.designsystem.theme.components.OutlinedButton
|
||||
import io.element.android.libraries.designsystem.theme.components.TextButton
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.VerifiedUserSendFailure
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.ButtonColumnMolecule
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.BigIcon
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Button
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.OutlinedButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.TextButton
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.crypto.sendfailure.resolve
|
||||
package id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve
|
||||
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import io.element.android.libraries.matrix.api.core.SendHandle
|
||||
import io.element.android.libraries.matrix.api.core.TransactionId
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.SendHandle
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.TransactionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.LocalEventSendState
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Element Creations Ltd.
|
||||
* Copyright 2024, 2025 New Vector Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package id.databisnis.android.bachot.features.messages.impl.di
|
||||
|
||||
import dev.zacsweers.metro.BindingContainer
|
||||
import dev.zacsweers.metro.Binds
|
||||
import dev.zacsweers.metro.ContributesTo
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeState
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.identity.IdentityChangeStatePresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve.ResolveVerifiedUserSendFailurePresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.crypto.sendfailure.resolve.ResolveVerifiedUserSendFailureState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.banner.PinnedMessagesBannerState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.customreaction.CustomReactionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.reactionsummary.ReactionSummaryState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.receipt.bottomsheet.ReadReceiptBottomSheetState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.typing.TypingNotificationPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.typing.TypingNotificationState
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
|
||||
@ContributesTo(RoomScope::class)
|
||||
@BindingContainer
|
||||
interface MessagesBindsModule {
|
||||
@Binds
|
||||
fun bindPinnedMessagesBannerPresenter(presenter: PinnedMessagesBannerPresenter): Presenter<PinnedMessagesBannerState>
|
||||
|
||||
@Binds
|
||||
fun bindResolveVerifiedUserSendFailurePresenter(presenter: ResolveVerifiedUserSendFailurePresenter): Presenter<ResolveVerifiedUserSendFailureState>
|
||||
|
||||
@Binds
|
||||
fun bindTypingNotificationPresenter(presenter: TypingNotificationPresenter): Presenter<TypingNotificationState>
|
||||
|
||||
@Binds
|
||||
fun bindTimelineProtectionPresenter(presenter: TimelineProtectionPresenter): Presenter<TimelineProtectionState>
|
||||
|
||||
@Binds
|
||||
fun bindLinkPresenter(presenter: LinkPresenter): Presenter<LinkState>
|
||||
|
||||
@Binds
|
||||
fun bindCustomReactionPresenter(presenter: CustomReactionPresenter): Presenter<CustomReactionState>
|
||||
|
||||
@Binds
|
||||
fun bindReactionSummaryPresenter(presenter: ReactionSummaryPresenter): Presenter<ReactionSummaryState>
|
||||
|
||||
@Binds
|
||||
fun bindReadReceiptBottomSheetPresenter(presenter: ReadReceiptBottomSheetPresenter): Presenter<ReadReceiptBottomSheetState>
|
||||
|
||||
@Binds
|
||||
fun bindIdentityChangeStatePresenter(presenter: IdentityChangeStatePresenter): Presenter<IdentityChangeState>
|
||||
}
|
||||
@@ -6,15 +6,15 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.di
|
||||
package id.databisnis.android.bachot.features.messages.impl.di
|
||||
|
||||
import dev.zacsweers.metro.BindingContainer
|
||||
import dev.zacsweers.metro.ContributesTo
|
||||
import dev.zacsweers.metro.Provides
|
||||
import io.element.android.features.messages.impl.timeline.di.LiveTimeline
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.di.LiveTimeline
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
|
||||
@ContributesTo(RoomScope::class)
|
||||
@BindingContainer
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.draft
|
||||
package id.databisnis.android.bachot.features.messages.impl.draft
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
|
||||
interface ComposerDraftService {
|
||||
suspend fun loadDraft(roomId: RoomId, threadRoot: ThreadId?, isVolatile: Boolean): ComposerDraft?
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.draft
|
||||
package id.databisnis.android.bachot.features.messages.impl.draft
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
|
||||
interface ComposerDraftStore {
|
||||
suspend fun loadDraft(roomId: RoomId, threadRoot: ThreadId?): ComposerDraft?
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.draft
|
||||
package id.databisnis.android.bachot.features.messages.impl.draft
|
||||
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
|
||||
@ContributesBinding(RoomScope::class)
|
||||
class DefaultComposerDraftService(
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.draft
|
||||
package id.databisnis.android.bachot.features.messages.impl.draft
|
||||
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.MatrixClient
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import timber.log.Timber
|
||||
|
||||
/**
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.draft
|
||||
package id.databisnis.android.bachot.features.messages.impl.draft
|
||||
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.ThreadId
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.ThreadId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
|
||||
/**
|
||||
* A volatile draft store that keeps drafts in memory only.
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
data class ConfirmingLinkClick(
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import dev.zacsweers.metro.AppScope
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.core.data.tryOrNull
|
||||
import io.element.android.libraries.core.extensions.containsRtLOverride
|
||||
import id.databisnis.android.bachot.libraries.core.data.tryOrNull
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.containsRtLOverride
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
import java.net.URI
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
@Inject
|
||||
@@ -6,9 +6,9 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
data class LinkState(
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
open class LinkStateProvider : PreviewParameterProvider<LinkState> {
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.link
|
||||
package id.databisnis.android.bachot.features.messages.impl.link
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -15,13 +15,13 @@ import androidx.compose.runtime.rememberUpdatedState
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import io.element.android.libraries.architecture.AsyncAction
|
||||
import io.element.android.libraries.core.extensions.ensureEndsLeftToRight
|
||||
import io.element.android.libraries.core.extensions.filterDirectionOverrides
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncAction
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.ensureEndsLeftToRight
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.filterDirectionOverrides
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.ConfirmationDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
@Composable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.foundation.clickable
|
||||
@@ -24,17 +24,17 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.messages.impl.R
|
||||
import io.element.android.libraries.androidutils.ui.hideKeyboard
|
||||
import io.element.android.libraries.designsystem.components.list.ListItemContent
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.IconSource
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||
import io.element.android.libraries.designsystem.theme.components.ListItemStyle
|
||||
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.features.messages.impl.R
|
||||
import id.databisnis.android.bachot.libraries.androidutils.ui.hideKeyboard
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.list.ListItemContent
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.IconSource
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ListItem
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ListItemStyle
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.ModalBottomSheet
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@@ -6,16 +6,16 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import io.element.android.features.messages.api.MessageComposerContext
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.features.messages.api.MessageComposerContext
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
|
||||
@SingleIn(RoomScope::class)
|
||||
@ContributesBinding(RoomScope::class)
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
@@ -27,14 +27,14 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||
import io.element.android.libraries.designsystem.theme.components.IconColorButton
|
||||
import io.element.android.libraries.designsystem.theme.components.IconColorButtonStyle
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Icon
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.IconButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.IconColorButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.IconColorButtonStyle
|
||||
|
||||
@Composable
|
||||
internal fun DisabledComposerView(
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import android.net.Uri
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.Suggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.Suggestion
|
||||
|
||||
sealed interface MessageComposerEvent {
|
||||
data object ToggleFullScreenState : MessageComposerEvent
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
@@ -30,53 +30,53 @@ import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import im.vector.app.features.analytics.plan.Composer
|
||||
import im.vector.app.features.analytics.plan.Interaction
|
||||
import io.element.android.features.location.api.LocationService
|
||||
import io.element.android.features.messages.impl.MessagesNavigator
|
||||
import io.element.android.features.messages.impl.attachments.Attachment
|
||||
import io.element.android.features.messages.impl.attachments.preview.error.sendAttachmentError
|
||||
import io.element.android.features.messages.impl.draft.ComposerDraftService
|
||||
import io.element.android.features.messages.impl.messagecomposer.suggestions.RoomAliasSuggestionsDataSource
|
||||
import io.element.android.features.messages.impl.messagecomposer.suggestions.SuggestionsProcessor
|
||||
import io.element.android.features.messages.impl.timeline.TimelineController
|
||||
import io.element.android.features.messages.impl.utils.TextPillificationHelper
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.extensions.runCatchingExceptions
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkBuilder
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
|
||||
import io.element.android.libraries.matrix.api.room.IntentionalMention
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import io.element.android.libraries.matrix.api.room.draft.ComposerDraftType
|
||||
import io.element.android.libraries.matrix.api.room.getDirectRoomMember
|
||||
import io.element.android.libraries.matrix.api.room.isDm
|
||||
import io.element.android.libraries.matrix.api.timeline.TimelineException
|
||||
import io.element.android.libraries.matrix.api.timeline.item.event.toEventOrTransactionId
|
||||
import io.element.android.libraries.matrix.ui.messages.reply.InReplyToDetails
|
||||
import io.element.android.libraries.matrix.ui.messages.reply.map
|
||||
import io.element.android.libraries.mediapickers.api.PickerProvider
|
||||
import io.element.android.libraries.mediaupload.api.MediaOptimizationConfigProvider
|
||||
import io.element.android.libraries.mediaupload.api.MediaSenderFactory
|
||||
import io.element.android.libraries.mediaviewer.api.local.LocalMediaFactory
|
||||
import io.element.android.libraries.permissions.api.PermissionsEvents
|
||||
import io.element.android.libraries.permissions.api.PermissionsPresenter
|
||||
import io.element.android.libraries.preferences.api.store.SessionPreferencesStore
|
||||
import io.element.android.libraries.push.api.notifications.conversations.NotificationConversationService
|
||||
import io.element.android.libraries.textcomposer.mentions.MentionSpanProvider
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.MarkdownTextEditorState
|
||||
import io.element.android.libraries.textcomposer.model.Message
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.Suggestion
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.libraries.textcomposer.model.rememberMarkdownTextEditorState
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import id.databisnis.android.bachot.features.location.api.LocationService
|
||||
import id.databisnis.android.bachot.features.messages.impl.MessagesNavigator
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.Attachment
|
||||
import id.databisnis.android.bachot.features.messages.impl.attachments.preview.error.sendAttachmentError
|
||||
import id.databisnis.android.bachot.features.messages.impl.draft.ComposerDraftService
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions.RoomAliasSuggestionsDataSource
|
||||
import id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions.SuggestionsProcessor
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineController
|
||||
import id.databisnis.android.bachot.features.messages.impl.utils.TextPillificationHelper
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.core.extensions.runCatchingExceptions
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.SessionCoroutineScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkBuilder
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkParser
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.IntentionalMention
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraft
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.draft.ComposerDraftType
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.getDirectRoomMember
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.isDm
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.TimelineException
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.event.toEventOrTransactionId
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.reply.InReplyToDetails
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.messages.reply.map
|
||||
import id.databisnis.android.bachot.libraries.mediapickers.api.PickerProvider
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaOptimizationConfigProvider
|
||||
import id.databisnis.android.bachot.libraries.mediaupload.api.MediaSenderFactory
|
||||
import id.databisnis.android.bachot.libraries.mediaviewer.api.local.LocalMediaFactory
|
||||
import id.databisnis.android.bachot.libraries.permissions.api.PermissionsEvents
|
||||
import id.databisnis.android.bachot.libraries.permissions.api.PermissionsPresenter
|
||||
import id.databisnis.android.bachot.libraries.preferences.api.store.SessionPreferencesStore
|
||||
import id.databisnis.android.bachot.libraries.push.api.notifications.conversations.NotificationConversationService
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.MentionSpanProvider
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MarkdownTextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.Message
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.Suggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.rememberMarkdownTextEditorState
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsService
|
||||
import id.databisnis.android.bachot.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import io.element.android.wysiwyg.compose.RichTextEditorState
|
||||
import io.element.android.wysiwyg.display.TextDisplay
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
@@ -96,7 +96,7 @@ import kotlinx.coroutines.flow.stateIn
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
import io.element.android.libraries.core.mimetype.MimeTypes.Any as AnyMimeTypes
|
||||
import id.databisnis.android.bachot.libraries.core.mimetype.MimeTypes.Any as AnyMimeTypes
|
||||
|
||||
@AssistedInject
|
||||
class MessageComposerPresenter(
|
||||
@@ -6,12 +6,12 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.wysiwyg.display.TextDisplay
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||
import io.element.android.libraries.textcomposer.model.TextEditorState
|
||||
import io.element.android.libraries.textcomposer.model.aTextEditorStateRich
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.MessageComposerMode
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.TextEditorState
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.aTextEditorStateRich
|
||||
import io.element.android.wysiwyg.display.TextDisplay
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import android.net.Uri
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@@ -18,16 +18,16 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerEvent
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerState
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerStateProvider
|
||||
import io.element.android.features.messages.api.timeline.voicemessages.composer.aVoiceMessageComposerState
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.textcomposer.TextComposer
|
||||
import io.element.android.libraries.textcomposer.model.Suggestion
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessagePlayerEvent
|
||||
import io.element.android.libraries.textcomposer.model.VoiceMessageRecorderEvent
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerEvent
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerState
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.VoiceMessageComposerStateProvider
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.voicemessages.composer.aVoiceMessageComposerState
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.TextComposer
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.Suggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessagePlayerEvent
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.VoiceMessageRecorderEvent
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
@Composable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import dev.zacsweers.metro.AppScope
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer.suggestions
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions
|
||||
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import io.element.android.libraries.di.SessionScope
|
||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||
import id.databisnis.android.bachot.libraries.di.SessionScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomAlias
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.roomlist.RoomListService
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer.suggestions
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
@@ -23,24 +23,24 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.features.messages.impl.R
|
||||
import io.element.android.libraries.designsystem.components.avatar.Avatar
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarType
|
||||
import io.element.android.libraries.designsystem.components.avatar.anAvatarData
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.HorizontalDivider
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipState
|
||||
import io.element.android.libraries.matrix.ui.model.getAvatarData
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.features.messages.impl.R
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.Avatar
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarSize
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.AvatarType
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.avatar.anAvatarData
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.HorizontalDivider
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomAlias
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.RoomId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMember
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMembershipState
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.model.getAvatarData
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.messagecomposer.suggestions
|
||||
package id.databisnis.android.bachot.features.messages.impl.messagecomposer.suggestions
|
||||
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.core.data.filterUpTo
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.room.RoomMember
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembersState
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipState
|
||||
import io.element.android.libraries.matrix.api.room.roomMembers
|
||||
import io.element.android.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import io.element.android.libraries.textcomposer.model.Suggestion
|
||||
import io.element.android.libraries.textcomposer.model.SuggestionType
|
||||
import id.databisnis.android.bachot.libraries.core.data.filterUpTo
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMember
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMembersState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.RoomMembershipState
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.roomMembers
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.mentions.ResolvedSuggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.Suggestion
|
||||
import id.databisnis.android.bachot.libraries.textcomposer.model.SuggestionType
|
||||
|
||||
/**
|
||||
* This class is responsible for processing suggestions when `@`, `/` or `#` are type in the composer.
|
||||
@@ -6,19 +6,19 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned
|
||||
|
||||
import dev.zacsweers.metro.ContributesBinding
|
||||
import dev.zacsweers.metro.SingleIn
|
||||
import io.element.android.features.messages.api.pinned.PinnedEventsTimelineProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.core.coroutine.mapState
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.room.CreateTimelineParams
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.sync.SyncService
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.features.messages.api.pinned.PinnedEventsTimelineProvider
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.mapState
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.CreateTimelineParams
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.sync.SyncService
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
sealed interface PinnedMessagesBannerEvents {
|
||||
data object MoveToNextPinned : PinnedMessagesBannerEvents
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
|
||||
data class PinnedMessagesBannerItem(
|
||||
val eventId: EventId,
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||
import io.element.android.libraries.eventformatter.api.PinnedMessagesBannerFormatter
|
||||
import io.element.android.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||
import id.databisnis.android.bachot.libraries.core.coroutine.CoroutineDispatchers
|
||||
import id.databisnis.android.bachot.libraries.eventformatter.api.PinnedMessagesBannerFormatter
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.MatrixTimelineItem
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
@Inject
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -19,10 +19,10 @@ import androidx.compose.runtime.rememberUpdatedState
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import dev.zacsweers.metro.Inject
|
||||
import io.element.android.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.matrix.api.room.BaseRoom
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.BaseRoom
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
@@ -6,13 +6,13 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import io.element.android.libraries.designsystem.text.toAnnotatedString
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.libraries.designsystem.text.toAnnotatedString
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
|
||||
@Immutable
|
||||
sealed interface PinnedMessagesBannerState {
|
||||
@@ -6,11 +6,11 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import kotlin.random.Random
|
||||
|
||||
internal class PinnedMessagesBannerStateProvider : PreviewParameterProvider<PinnedMessagesBannerState> {
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.banner
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.banner
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.background
|
||||
@@ -42,20 +42,20 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import im.vector.app.features.analytics.plan.Interaction
|
||||
import io.element.android.compound.theme.ElementTheme
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||
import io.element.android.libraries.designsystem.theme.components.Text
|
||||
import io.element.android.libraries.designsystem.theme.components.TextButton
|
||||
import io.element.android.libraries.designsystem.theme.pinnedMessageBannerBorder
|
||||
import io.element.android.libraries.designsystem.theme.pinnedMessageBannerIndicator
|
||||
import io.element.android.libraries.designsystem.utils.annotatedTextWithBold
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.analytics.compose.LocalAnalyticsService
|
||||
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import id.databisnis.android.bachot.compound.theme.ElementTheme
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Icon
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Text
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.TextButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.pinnedMessageBannerBorder
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.pinnedMessageBannerIndicator
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.annotatedTextWithBold
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.services.analytics.compose.LocalAnalyticsService
|
||||
import id.databisnis.android.bachot.services.analyticsproviders.api.trackers.captureInteraction
|
||||
|
||||
@Composable
|
||||
fun PinnedMessagesBannerView(
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
|
||||
sealed interface PinnedMessagesListEvents {
|
||||
data class HandleAction(val action: TimelineItemAction, val event: TimelineItem.Event) : PinnedMessagesListEvents
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
|
||||
interface PinnedMessagesListNavigator {
|
||||
fun viewInTimeline(eventId: EventId)
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import android.content.Context
|
||||
import android.view.HapticFeedbackConstants
|
||||
@@ -20,22 +20,22 @@ import com.bumble.appyx.core.node.Node
|
||||
import com.bumble.appyx.core.plugin.Plugin
|
||||
import dev.zacsweers.metro.Assisted
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import io.element.android.annotations.ContributesNode
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListPresenter
|
||||
import io.element.android.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
||||
import io.element.android.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.libraries.androidutils.system.copyToClipboard
|
||||
import io.element.android.libraries.androidutils.system.openUrlInExternalApp
|
||||
import io.element.android.libraries.architecture.callback
|
||||
import io.element.android.libraries.di.RoomScope
|
||||
import io.element.android.libraries.matrix.api.core.EventId
|
||||
import io.element.android.libraries.matrix.api.core.UserId
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkData
|
||||
import io.element.android.libraries.matrix.api.permalink.PermalinkParser
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.annotations.ContributesNode
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListPresenter
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.di.LocalTimelineItemPresenterFactories
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.di.TimelineItemPresenterFactories
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.libraries.androidutils.system.copyToClipboard
|
||||
import id.databisnis.android.bachot.libraries.androidutils.system.openUrlInExternalApp
|
||||
import id.databisnis.android.bachot.libraries.architecture.callback
|
||||
import id.databisnis.android.bachot.libraries.di.RoomScope
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.EventId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.core.UserId
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkData
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.permalink.PermalinkParser
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.item.TimelineItemDebugInfo
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
|
||||
@ContributesNode(RoomScope::class)
|
||||
@AssistedInject
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
@@ -23,35 +23,35 @@ import dev.zacsweers.metro.AssistedFactory
|
||||
import dev.zacsweers.metro.AssistedInject
|
||||
import im.vector.app.features.analytics.plan.Interaction
|
||||
import im.vector.app.features.analytics.plan.PinUnpinAction
|
||||
import io.element.android.features.messages.api.timeline.HtmlConverterProvider
|
||||
import io.element.android.features.messages.impl.UserEventPermissions
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.link.LinkState
|
||||
import io.element.android.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import io.element.android.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import io.element.android.features.messages.impl.timeline.factories.TimelineItemsFactory
|
||||
import io.element.android.features.messages.impl.timeline.factories.TimelineItemsFactoryConfig
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.features.messages.impl.typing.TypingNotificationState
|
||||
import io.element.android.features.roomcall.api.aStandByCallState
|
||||
import io.element.android.libraries.architecture.AsyncData
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import io.element.android.libraries.di.annotations.SessionCoroutineScope
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlagService
|
||||
import io.element.android.libraries.featureflag.api.FeatureFlags
|
||||
import io.element.android.libraries.matrix.api.room.JoinedRoom
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canPinUnpin
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canRedactOther
|
||||
import io.element.android.libraries.matrix.api.room.powerlevels.canRedactOwn
|
||||
import io.element.android.libraries.matrix.api.room.roomMembers
|
||||
import io.element.android.libraries.matrix.ui.room.isDmAsState
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.analytics.api.AnalyticsService
|
||||
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import id.databisnis.android.bachot.features.messages.api.timeline.HtmlConverterProvider
|
||||
import id.databisnis.android.bachot.features.messages.impl.UserEventPermissions
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.pinned.DefaultPinnedEventsTimelineProvider
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.factories.TimelineItemsFactory
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.factories.TimelineItemsFactoryConfig
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.typing.TypingNotificationState
|
||||
import id.databisnis.android.bachot.features.roomcall.api.aStandByCallState
|
||||
import id.databisnis.android.bachot.libraries.architecture.AsyncData
|
||||
import id.databisnis.android.bachot.libraries.architecture.Presenter
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarDispatcher
|
||||
import id.databisnis.android.bachot.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
import id.databisnis.android.bachot.libraries.di.annotations.SessionCoroutineScope
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlagService
|
||||
import id.databisnis.android.bachot.libraries.featureflag.api.FeatureFlags
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.JoinedRoom
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canPinUnpin
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canRedactOther
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.powerlevels.canRedactOwn
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.room.roomMembers
|
||||
import id.databisnis.android.bachot.libraries.matrix.ui.room.isDmAsState
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.services.analytics.api.AnalyticsService
|
||||
import id.databisnis.android.bachot.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -6,20 +6,20 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.ui.res.pluralStringResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import io.element.android.features.messages.impl.UserEventPermissions
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||
import io.element.android.features.messages.impl.link.LinkState
|
||||
import io.element.android.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.libraries.ui.strings.CommonPlurals
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.features.messages.impl.UserEventPermissions
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonPlurals
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
@Immutable
|
||||
@@ -6,27 +6,27 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import io.element.android.features.messages.impl.UserEventPermissions
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListState
|
||||
import io.element.android.features.messages.impl.actionlist.anActionListState
|
||||
import io.element.android.features.messages.impl.link.LinkState
|
||||
import io.element.android.features.messages.impl.link.aLinkState
|
||||
import io.element.android.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemDaySeparator
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemEvent
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineItemReactions
|
||||
import io.element.android.features.messages.impl.timeline.aTimelineRoomInfo
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItemGroupPosition
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemAudioContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemFileContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.features.messages.impl.timeline.protection.aTimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.UserEventPermissions
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.anActionListState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.aLinkState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.TimelineRoomInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemDaySeparator
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineItemReactions
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.aTimelineRoomInfo
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItemGroupPosition
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemAudioContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemFileContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.aTimelineItemTextContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.aTimelineProtectionState
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemActionPostProcessor
|
||||
|
||||
class PinnedMessagesListTimelineActionPostProcessor : TimelineItemActionPostProcessor {
|
||||
override fun process(actions: List<TimelineItemAction>): List<TimelineItemAction> {
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.pinned.list
|
||||
package id.databisnis.android.bachot.features.messages.impl.pinned.list
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
@@ -24,34 +24,34 @@ import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import im.vector.app.features.analytics.plan.Interaction
|
||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListEvents
|
||||
import io.element.android.features.messages.impl.actionlist.ActionListView
|
||||
import io.element.android.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import io.element.android.features.messages.impl.link.LinkEvents
|
||||
import io.element.android.features.messages.impl.link.LinkView
|
||||
import io.element.android.features.messages.impl.timeline.components.TimelineItemRow
|
||||
import io.element.android.features.messages.impl.timeline.components.event.TimelineItemEventContentView
|
||||
import io.element.android.features.messages.impl.timeline.components.layout.ContentAvoidingLayoutData
|
||||
import io.element.android.features.messages.impl.timeline.model.TimelineItem
|
||||
import io.element.android.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionEvent
|
||||
import io.element.android.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import io.element.android.features.poll.api.pollcontent.PollTitleView
|
||||
import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
|
||||
import io.element.android.libraries.designsystem.components.BigIcon
|
||||
import io.element.android.libraries.designsystem.components.button.BackButton
|
||||
import io.element.android.libraries.designsystem.components.dialogs.ErrorDialog
|
||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||
import io.element.android.libraries.designsystem.theme.components.Scaffold
|
||||
import io.element.android.libraries.designsystem.theme.components.TopAppBar
|
||||
import io.element.android.libraries.matrix.api.timeline.Timeline
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.ui.strings.CommonStrings
|
||||
import io.element.android.services.analytics.compose.LocalAnalyticsService
|
||||
import io.element.android.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import id.databisnis.android.bachot.compound.tokens.generated.CompoundIcons
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.ActionListView
|
||||
import id.databisnis.android.bachot.features.messages.impl.actionlist.model.TimelineItemAction
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkEvents
|
||||
import id.databisnis.android.bachot.features.messages.impl.link.LinkView
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.TimelineItemRow
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.event.TimelineItemEventContentView
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.components.layout.ContentAvoidingLayoutData
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.TimelineItem
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.model.event.TimelineItemPollContent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionEvent
|
||||
import id.databisnis.android.bachot.features.messages.impl.timeline.protection.TimelineProtectionState
|
||||
import id.databisnis.android.bachot.features.poll.api.pollcontent.PollTitleView
|
||||
import id.databisnis.android.bachot.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.BigIcon
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.button.BackButton
|
||||
import id.databisnis.android.bachot.libraries.designsystem.components.dialogs.ErrorDialog
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.ElementPreview
|
||||
import id.databisnis.android.bachot.libraries.designsystem.preview.PreviewsDayNight
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.Scaffold
|
||||
import id.databisnis.android.bachot.libraries.designsystem.theme.components.TopAppBar
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.timeline.Timeline
|
||||
import id.databisnis.android.bachot.libraries.matrix.api.user.MatrixUser
|
||||
import id.databisnis.android.bachot.libraries.ui.strings.CommonStrings
|
||||
import id.databisnis.android.bachot.services.analytics.compose.LocalAnalyticsService
|
||||
import id.databisnis.android.bachot.services.analyticsproviders.api.trackers.captureInteraction
|
||||
import io.element.android.wysiwyg.link.Link
|
||||
|
||||
@Composable
|
||||
@@ -6,7 +6,7 @@
|
||||
* Please see LICENSE files in the repository root for full details.
|
||||
*/
|
||||
|
||||
package io.element.android.features.messages.impl.report
|
||||
package id.databisnis.android.bachot.features.messages.impl.report
|
||||
|
||||
sealed interface ReportMessageEvents {
|
||||
data class UpdateReason(val reason: String) : ReportMessageEvents
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user