mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-19 08:09:12 +01:00
Reshape entry point for V3 media screens.
This commit is contained in:
committed by
Greyson Parrelli
parent
6d944c0f8c
commit
5c415139fd
@@ -157,7 +157,6 @@ import org.thoughtcrime.securesms.main.rememberMainNavigationDetailLocation
|
||||
import org.thoughtcrime.securesms.main.storiesNavGraphBuilder
|
||||
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil
|
||||
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionActivity
|
||||
import org.thoughtcrime.securesms.mediasend.v3.MediaSendV3ActivityContract
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphone
|
||||
import org.thoughtcrime.securesms.megaphone.MegaphoneActionController
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphones
|
||||
@@ -280,7 +279,7 @@ class MainActivity : PassphraseRequiredActivity(), VoiceNoteMediaControllerOwner
|
||||
super.onCreate(savedInstanceState, ready)
|
||||
navigator = MainNavigator(this, mainNavigationViewModel)
|
||||
|
||||
mediaActivityLauncher = registerForActivityResult(MediaSendV3ActivityContract()) { }
|
||||
mediaActivityLauncher = registerForActivityResult(MediaSendActivityContract()) { }
|
||||
|
||||
AppForegroundObserver.addListener(object : AppForegroundObserver.Listener {
|
||||
override fun onForeground() {
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
||||
import android.app.Application
|
||||
import io.reactivex.rxjava3.subjects.BehaviorSubject
|
||||
import okhttp3.OkHttpClient
|
||||
import org.signal.core.ui.CoreUiDependencies
|
||||
import org.signal.core.util.billing.BillingApi
|
||||
import org.signal.core.util.concurrent.DeadlockDetector
|
||||
import org.signal.core.util.concurrent.LatestValueObservable
|
||||
@@ -13,6 +14,7 @@ import org.signal.glide.SignalGlideDependencies
|
||||
import org.signal.libsignal.net.Network
|
||||
import org.signal.libsignal.zkgroup.profiles.ClientZkProfileOperations
|
||||
import org.signal.libsignal.zkgroup.receipts.ClientZkReceiptOperations
|
||||
import org.signal.mediasend.MediaSendDependencies
|
||||
import org.thoughtcrime.securesms.components.TypingStatusRepository
|
||||
import org.thoughtcrime.securesms.components.TypingStatusSender
|
||||
import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl
|
||||
@@ -97,7 +99,9 @@ object AppDependencies {
|
||||
_application = application
|
||||
AppDependencies.provider = provider
|
||||
|
||||
CoreUiDependencies.init(CoreUiDependenciesProvider)
|
||||
SignalGlideDependencies.init(application, SignalGlideDependenciesProvider)
|
||||
MediaSendDependencies.init(application, MediaSendDependenciesProvider)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2026 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.dependencies
|
||||
|
||||
import org.signal.core.ui.CoreUiDependencies
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
|
||||
object CoreUiDependenciesProvider : CoreUiDependencies.Provider {
|
||||
override fun provideIsIncognitoKeyboardEnabled(): Boolean {
|
||||
return TextSecurePreferences.isIncognitoKeyboardEnabled(AppDependencies.application)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright 2026 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.dependencies
|
||||
|
||||
import org.signal.mediasend.MediaSendDependencies
|
||||
import org.signal.mediasend.MediaSendRepository
|
||||
import org.signal.mediasend.preupload.PreUploadRepository
|
||||
import org.thoughtcrime.securesms.mediasend.v3.MediaSendV3PreUploadRepository
|
||||
import org.thoughtcrime.securesms.mediasend.v3.MediaSendV3Repository
|
||||
|
||||
object MediaSendDependenciesProvider : MediaSendDependencies.Provider {
|
||||
override fun provideMediaSendRepository(): MediaSendRepository = MediaSendV3Repository
|
||||
|
||||
override fun providePreUploadRepository(): PreUploadRepository = MediaSendV3PreUploadRepository
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user