Reshape entry point for V3 media screens.

This commit is contained in:
Alex Hart
2026-02-05 14:10:23 -04:00
committed by Greyson Parrelli
parent 6d944c0f8c
commit 5c415139fd
28 changed files with 291 additions and 285 deletions
@@ -1,87 +0,0 @@
/*
* Copyright 2026 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.mediasend.v3
import androidx.compose.runtime.Composable
import io.reactivex.rxjava3.core.Flowable
import org.signal.core.models.media.Media
import org.signal.mediasend.MediaSendActivity
import org.thoughtcrime.securesms.mediasend.CameraFragment
import org.thoughtcrime.securesms.mms.MediaConstraints
import java.io.FileDescriptor
import java.util.Optional
/**
* App-layer implementation of the feature module media send activity.
*/
class MediaSendV3Activity : MediaSendActivity(), CameraFragment.Controller {
override val preUploadCallback = MediaSendV3PreUploadCallback()
override val repository by lazy { MediaSendV3Repository(applicationContext) }
@Composable
override fun CameraSlot() {
MediaSendV3CameraSlot()
}
@Composable
override fun TextStoryEditorSlot() {
MediaSendV3PlaceholderScreen(text = "Text Story Editor")
}
@Composable
override fun VideoEditorSlot() {
MediaSendV3PlaceholderScreen(text = "Video Editor")
}
@Composable
override fun SendSlot() {
MediaSendV3PlaceholderScreen(text = "Send Review")
}
// region Camera Callbacks
override fun onCameraError() {
error("Not yet implemented")
}
override fun onImageCaptured(data: ByteArray, width: Int, height: Int) {
error("Not yet implemented")
}
override fun onVideoCaptured(fd: FileDescriptor) {
error("Not yet implemented")
}
override fun onVideoCaptureError() {
error("Not yet implemented")
}
override fun onGalleryClicked() {
error("Not yet implemented")
}
override fun onCameraCountButtonClicked() {
error("Not yet implemented")
}
override fun onQrCodeFound(data: String) {
error("Not yet implemented")
}
override fun getMostRecentMediaItem(): Flowable<Optional<Media?>> {
error("Not yet implemented")
}
override fun getMediaConstraints(): MediaConstraints {
return MediaConstraints.getPushMediaConstraints()
}
override fun getMaxVideoDuration(): Int {
error("Not yet implemented")
}
// endregion
}
@@ -1,13 +0,0 @@
/*
* Copyright 2026 Signal Messenger, LLC
* SPDX-License-Identifier: AGPL-3.0-only
*/
package org.thoughtcrime.securesms.mediasend.v3
import org.signal.mediasend.MediaSendActivityContract
/**
* Activity result contract bound to [MediaSendV3Activity].
*/
class MediaSendV3ActivityContract : MediaSendActivityContract(MediaSendV3Activity::class.java)
@@ -9,7 +9,7 @@ import android.content.Context
import androidx.annotation.WorkerThread
import org.signal.core.models.media.Media
import org.signal.mediasend.MediaRecipientId
import org.signal.mediasend.preupload.PreUploadManager
import org.signal.mediasend.preupload.PreUploadRepository
import org.signal.mediasend.preupload.PreUploadResult
import org.thoughtcrime.securesms.attachments.AttachmentId
import org.thoughtcrime.securesms.database.SignalDatabase
@@ -19,7 +19,7 @@ import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.sms.MessageSender
class MediaSendV3PreUploadCallback : PreUploadManager.Callback {
object MediaSendV3PreUploadRepository : PreUploadRepository {
@WorkerThread
override fun preUpload(context: Context, media: Media, recipientId: MediaRecipientId?): PreUploadResult? {
@@ -5,7 +5,6 @@
package org.thoughtcrime.securesms.mediasend.v3
import android.content.Context
import android.net.Uri
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
@@ -48,11 +47,9 @@ import kotlin.time.Duration.Companion.seconds
/**
* App-layer implementation of [MediaSendRepository] that bridges to legacy v2 infrastructure.
*/
class MediaSendV3Repository(
context: Context
) : MediaSendRepository {
object MediaSendV3Repository : MediaSendRepository {
private val appContext = context.applicationContext
private val appContext = AppDependencies.application
private val legacyRepository = MediaSelectionRepository(appContext)
private val mediaRepository = MediaRepository()