From e420dad48f241a8ef2a2333ecd2795a1fa4f5da5 Mon Sep 17 00:00:00 2001 From: SessionHero01 <180888785+SessionHero01@users.noreply.github.com> Date: Wed, 4 Mar 2026 11:07:42 +1100 Subject: [PATCH] Explicit types in hilt/dagger enabled classes --- .../thoughtcrime/securesms/DeviceModule.kt | 3 ++- .../DisappearingMessagesViewModel.kt | 5 ++-- .../conversation/v2/ConversationViewModel.kt | 4 ++- .../v2/MessageDetailsViewModel.kt | 4 +-- .../conversation/v2/input_bar/InputBar.kt | 2 +- .../v2/messages/AttachmentControlView.kt | 2 +- .../v2/messages/VisibleMessageView.kt | 6 ++--- .../securesms/dependencies/AppModule.kt | 2 +- .../securesms/dependencies/CallModule.kt | 2 +- .../securesms/dependencies/DatabaseModule.kt | 26 +++++++++---------- .../securesms/groups/GroupManagerV2Impl.kt | 2 +- .../securesms/home/HomeViewModel.kt | 5 ++-- .../newmessage/NewMessageViewModel.kt | 6 +++-- .../loadaccount/LoadAccountViewModel.kt | 9 ++++--- .../onboarding/loading/LoadingViewModel.kt | 6 +++-- .../pickname/PickDisplayNameViewModel.kt | 6 +++-- .../preferences/SettingsViewModel.kt | 8 +++--- .../RecoveryPasswordViewModel.kt | 2 +- .../securesms/webrtc/CallViewModel.kt | 22 ++++++++-------- 19 files changed, 68 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt b/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt index bdfa9b6088..b260f89d83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/DeviceModule.kt @@ -5,6 +5,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import network.loki.messenger.BuildConfig +import org.session.libsession.utilities.Device import javax.inject.Singleton @Module @@ -12,5 +13,5 @@ import javax.inject.Singleton object DeviceModule { @Provides @Singleton - fun provides() = BuildConfig.DEVICE + fun provides(): Device = BuildConfig.DEVICE } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt index 7423b8ecdb..5ed874d83a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/disappearingmessages/DisappearingMessagesViewModel.kt @@ -11,6 +11,7 @@ import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharingStarted +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.stateIn @@ -43,9 +44,9 @@ class DisappearingMessagesViewModel @AssistedInject constructor( showDebugOptions = showDebugOptions ) ) - val state = _state.asStateFlow() + val state: StateFlow = _state.asStateFlow() - val uiState = _state + val uiState: StateFlow = _state .map(State::toUiState) .stateIn(viewModelScope, SharingStarted.Eagerly, UiState()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt index 4d94bb1dd8..d8d1f18d58 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/ConversationViewModel.kt @@ -94,6 +94,7 @@ import org.session.libsignal.utilities.IdPrefix import org.session.libsignal.utilities.Log import org.thoughtcrime.securesms.InputbarViewModel import org.thoughtcrime.securesms.audio.AudioPlaybackManager +import org.thoughtcrime.securesms.audio.model.AudioPlaybackState import org.thoughtcrime.securesms.auth.LoginStateRepository import org.thoughtcrime.securesms.database.AttachmentDatabase import org.thoughtcrime.securesms.database.BlindMappingRepository @@ -183,7 +184,8 @@ class ConversationViewModel @AssistedInject constructor( private val _dialogsState = MutableStateFlow(DialogsState()) val dialogsState: StateFlow = _dialogsState - val audioPlaybackState = audioPlaybackManager.playbackState + val audioPlaybackState: StateFlow = audioPlaybackManager.playbackState + val threadIdFlow: StateFlow = storage.getThreadId(address) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt index 1fecece9dd..85e31c6bb7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/MessageDetailsViewModel.kt @@ -80,10 +80,10 @@ class MessageDetailsViewModel @AssistedInject constructor( attachmentDownloadHandlerFactory: AttachmentDownloadHandler.Factory, ) : ViewModel() { private val state = MutableStateFlow(MessageDetailsState()) - val stateFlow = state.asStateFlow() + val stateFlow: StateFlow = state.asStateFlow() private val event = Channel() - val eventFlow = event.receiveAsFlow() + val eventFlow: Flow = event.receiveAsFlow() private val _dialogState: MutableStateFlow = MutableStateFlow(DialogsState()) val dialogState: StateFlow = _dialogState diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt index 52e14b8220..84553fe26d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/input_bar/InputBar.kt @@ -93,7 +93,7 @@ class InputBar @JvmOverloads constructor( binding.inputBarEditText.setText(text, type) } - var voiceRecorderState = VoiceRecorderState.Idle + var voiceRecorderState: VoiceRecorderState = VoiceRecorderState.Idle @Inject lateinit var recipientRepository: RecipientRepository diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/AttachmentControlView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/AttachmentControlView.kt index 4e268ec09c..5f2425a61d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/AttachmentControlView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/AttachmentControlView.kt @@ -43,7 +43,7 @@ class AttachmentControlView: LinearLayout { // endregion @Inject lateinit var storage: StorageProtocol - val separator = " • " + val separator: String = " • " // region Updating private fun getAttachmentData(attachmentType: AttachmentType, messageTotalAttachment: Int): Pair { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt index ea026b16f6..5b7e022b17 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/v2/messages/VisibleMessageView.kt @@ -106,7 +106,7 @@ class VisibleMessageView : FrameLayout { private var onDoubleTap: (() -> Unit)? = null private var isOutgoing: Boolean = false - var isMessageSelected = false + var isMessageSelected: Boolean = false set(value) { field = value handleIsSelectedChanged() @@ -117,8 +117,8 @@ class VisibleMessageView : FrameLayout { val messageContentView: VisibleMessageContentView get() = binding.messageContentView.root // Prevent button spam - val MINIMUM_DURATION_BETWEEN_CLICKS_ON_SAME_VIEW_MS = 500L - var lastClickTimestampMS = 0L + val MINIMUM_DURATION_BETWEEN_CLICKS_ON_SAME_VIEW_MS: Long = 500L + var lastClickTimestampMS: Long = 0L companion object { const val swipeToReplyThreshold = 64.0f // dp diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppModule.kt index 4e4b15b34b..a077364b7e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppModule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/AppModule.kt @@ -81,5 +81,5 @@ abstract class AppBindings { class ToasterModule { @Provides @Singleton - fun provideToaster(@ApplicationContext context: Context) = (context as org.thoughtcrime.securesms.ApplicationContext) + fun provideToaster(@ApplicationContext context: Context): org.thoughtcrime.securesms.ApplicationContext = (context as org.thoughtcrime.securesms.ApplicationContext) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/CallModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/CallModule.kt index ec32b9625c..ffbeedcd9b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/CallModule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/CallModule.kt @@ -17,6 +17,6 @@ object CallModule { @Provides @Singleton - fun provideAudioManagerCompat(@ApplicationContext context: Context) = AudioManagerCompat.create(context) + fun provideAudioManagerCompat(@ApplicationContext context: Context): AudioManagerCompat = AudioManagerCompat.create(context) } \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt b/app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt index 2c8d360b85..8618af7804 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/DatabaseModule.kt @@ -51,60 +51,60 @@ object DatabaseModule { @Provides @Singleton - fun provideMediaDatbase(@ApplicationContext context: Context, openHelper: Provider) = MediaDatabase(context, openHelper) + fun provideMediaDatbase(@ApplicationContext context: Context, openHelper: Provider): MediaDatabase = MediaDatabase(context, openHelper) @Provides @Singleton - fun provideDraftDatabase(@ApplicationContext context: Context, openHelper: Provider) = DraftDatabase(context, openHelper) + fun provideDraftDatabase(@ApplicationContext context: Context, openHelper: Provider): DraftDatabase = DraftDatabase(context, openHelper) @Provides @Singleton - fun providePushDatabase(@ApplicationContext context: Context, openHelper: Provider) = PushDatabase(context,openHelper) + fun providePushDatabase(@ApplicationContext context: Context, openHelper: Provider): PushDatabase = PushDatabase(context,openHelper) @Provides @Singleton - fun provideGroupDatabase(@ApplicationContext context: Context, openHelper: Provider, loginStateRepository: LoginStateRepository) + fun provideGroupDatabase(@ApplicationContext context: Context, openHelper: Provider, loginStateRepository: LoginStateRepository): GroupDatabase = GroupDatabase(context,openHelper, loginStateRepository) @Provides @Singleton - fun provideGroupReceiptDatabase(@ApplicationContext context: Context, openHelper: Provider) = GroupReceiptDatabase(context,openHelper) + fun provideGroupReceiptDatabase(@ApplicationContext context: Context, openHelper: Provider): GroupReceiptDatabase = GroupReceiptDatabase(context,openHelper) @Provides @Singleton - fun searchDatabase(@ApplicationContext context: Context, openHelper: Provider) = SearchDatabase(context,openHelper) + fun searchDatabase(@ApplicationContext context: Context, openHelper: Provider): SearchDatabase = SearchDatabase(context,openHelper) @Provides @Singleton - fun provideLokiApiDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiAPIDatabase(context,openHelper) + fun provideLokiApiDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiAPIDatabase = LokiAPIDatabase(context,openHelper) @Provides @Singleton - fun provideLokiMessageDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiMessageDatabase(context,openHelper) + fun provideLokiMessageDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiMessageDatabase = LokiMessageDatabase(context,openHelper) @Provides @Singleton - fun provideLokiBackupFilesDatabase(@ApplicationContext context: Context, openHelper: Provider) = LokiBackupFilesDatabase(context,openHelper) + fun provideLokiBackupFilesDatabase(@ApplicationContext context: Context, openHelper: Provider): LokiBackupFilesDatabase = LokiBackupFilesDatabase(context,openHelper) @Provides @Singleton - fun provideGroupMemberDatabase(@ApplicationContext context: Context, openHelper: Provider) = GroupMemberDatabase(context, openHelper) + fun provideGroupMemberDatabase(@ApplicationContext context: Context, openHelper: Provider): GroupMemberDatabase = GroupMemberDatabase(context, openHelper) @Provides @Singleton - fun provideReactionDatabase(@ApplicationContext context: Context, openHelper: Provider) = ReactionDatabase(context, openHelper) + fun provideReactionDatabase(@ApplicationContext context: Context, openHelper: Provider): ReactionDatabase = ReactionDatabase(context, openHelper) @Provides @Singleton - fun provideEmojiSearchDatabase(@ApplicationContext context: Context, openHelper: Provider) = EmojiSearchDatabase(context, openHelper) + fun provideEmojiSearchDatabase(@ApplicationContext context: Context, openHelper: Provider): EmojiSearchDatabase = EmojiSearchDatabase(context, openHelper) @Provides @Singleton - fun provideExpirationConfigurationDatabase(@ApplicationContext context: Context, openHelper: Provider) = ExpirationConfigurationDatabase(context, openHelper) + fun provideExpirationConfigurationDatabase(@ApplicationContext context: Context, openHelper: Provider): ExpirationConfigurationDatabase = ExpirationConfigurationDatabase(context, openHelper) @Provides @Singleton diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt index 4a233c92db..d902369345 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/GroupManagerV2Impl.kt @@ -678,7 +678,7 @@ class GroupManagerV2Impl @Inject constructor( } } - override suspend fun respondToInvitation(groupId: AccountId, approved: Boolean) = + override suspend fun respondToInvitation(groupId: AccountId, approved: Boolean): Unit? = scope.launchAndWait(groupId, "Respond to invitation") { val group = requireNotNull( configFactory.withUserConfigs { it.userGroups.getClosedGroup(groupId.hexString) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeViewModel.kt index b4a1281707..995dcb7516 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeViewModel.kt @@ -39,6 +39,7 @@ import org.session.libsession.utilities.recipients.displayName import org.session.libsignal.utilities.AccountId import org.session.libsignal.utilities.Log import org.thoughtcrime.securesms.audio.AudioPlaybackManager +import org.thoughtcrime.securesms.audio.model.AudioPlaybackState import org.thoughtcrime.securesms.auth.LoginStateRepository import org.thoughtcrime.securesms.database.RecipientRepository import org.thoughtcrime.securesms.database.ThreadDatabase @@ -112,7 +113,7 @@ class HomeViewModel @Inject constructor( ) val uiEvents: SharedFlow = _uiEvents - val audioPlaybackState = audioPlaybackManager.playbackState + val audioPlaybackState: StateFlow = audioPlaybackManager.playbackState /** * A [StateFlow] that emits the list of threads and the typing status of each thread. @@ -285,7 +286,7 @@ class HomeViewModel @Inject constructor( .distinctUntilChanged() - fun tryReload() = manualReloadTrigger.tryEmit(Unit) + fun tryReload(): Boolean = manualReloadTrigger.tryEmit(Unit) fun onSearchClicked() { mutableIsSearchOpen.value = true diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessageViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessageViewModel.kt index 5927d7f045..2835b52592 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessageViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/startconversation/newmessage/NewMessageViewModel.kt @@ -9,6 +9,8 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.channels.BufferOverflow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update @@ -33,7 +35,7 @@ class NewMessageViewModel @Inject constructor( private val HELP_URL : String = "https://getsession.org/account-ids" private val _state = MutableStateFlow(State()) - val state = _state.asStateFlow() + val state: StateFlow = _state.asStateFlow() private val _success = MutableSharedFlow() val success get() = _success @@ -42,7 +44,7 @@ class NewMessageViewModel @Inject constructor( extraBufferCapacity = 1, onBufferOverflow = BufferOverflow.DROP_OLDEST ) - val qrErrors = _qrErrors.asSharedFlow() + val qrErrors: SharedFlow = _qrErrors.asSharedFlow() private var loadOnsJob: Job? = null diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccountViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccountViewModel.kt index bdb6716145..4998e8c80f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccountViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loadaccount/LoadAccountViewModel.kt @@ -6,8 +6,11 @@ import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import javax.inject.Inject import kotlinx.coroutines.channels.BufferOverflow +import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.mapNotNull @@ -32,13 +35,13 @@ internal class LoadAccountViewModel @Inject constructor( private val application: Application ): AndroidViewModel(application) { private val state = MutableStateFlow(State()) - val stateFlow = state.asStateFlow() + val stateFlow: StateFlow = state.asStateFlow() private val _events = MutableSharedFlow() - val events = _events.asSharedFlow() + val events: SharedFlow = _events.asSharedFlow() private val _qrErrors = MutableSharedFlow(extraBufferCapacity = 1, onBufferOverflow = BufferOverflow.DROP_OLDEST) - val qrErrors = _qrErrors.asSharedFlow() + val qrErrors: Flow = _qrErrors.asSharedFlow() .mapNotNull { application.getString(R.string.qrNotRecoveryPassword) } private val codec by lazy { MnemonicCodec { MnemonicUtilities.loadFileContents(getApplication(), it) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/LoadingViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/LoadingViewModel.kt index 82cb14bb32..e46a96cbb9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/LoadingViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/loading/LoadingViewModel.kt @@ -10,6 +10,8 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.buffer @@ -58,10 +60,10 @@ internal class LoadingViewModel @Inject constructor( private val state = MutableStateFlow(State.LOADING) private val _progress = MutableStateFlow(0f) - val progress = _progress.asStateFlow() + val progress: StateFlow = _progress.asStateFlow() private val _events = MutableSharedFlow() - val events = _events.asSharedFlow() + val events: SharedFlow = _events.asSharedFlow() init { viewModelScope.launch { diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameViewModel.kt index 58dbf32288..a349538186 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameViewModel.kt @@ -10,6 +10,8 @@ import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update @@ -31,10 +33,10 @@ class PickDisplayNameViewModel @AssistedInject constructor( private val isCreateAccount = !loadFailed private val _states = MutableStateFlow(if (loadFailed) pickNewNameState() else State()) - val states = _states.asStateFlow() + val states: StateFlow = _states.asStateFlow() private val _events = MutableSharedFlow() - val events = _events.asSharedFlow() + val events: SharedFlow = _events.asSharedFlow() fun onContinue() { _states.update { it.copy(displayName = it.displayName.trim()) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsViewModel.kt index 3f49c0801f..c5bddd98ae 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsViewModel.kt @@ -185,7 +185,7 @@ class SettingsViewModel @Inject constructor( return Phrase.from(context, R.string.updateVersion).put(VERSION_KEY, versionDetails).format() } - fun hasAvatar() = selfRecipient.value.avatar != null + fun hasAvatar(): Boolean = selfRecipient.value.avatar != null fun createTempFile(): File? { try { @@ -199,7 +199,7 @@ class SettingsViewModel @Inject constructor( return tempFile } - fun getTempFile() = tempFile + fun getTempFile(): File? = tempFile fun onAvatarPicked(result: CropImageView.CropResult) { when { @@ -381,10 +381,10 @@ class SettingsViewModel @Inject constructor( fun hasNetworkConnection(): Boolean = connectivity.networkAvailable.value - fun isAnimated(uri: Uri) = proStatusManager.isPostPro() // block animated avatars prior to pro + fun isAnimated(uri: Uri): Boolean = proStatusManager.isPostPro() // block animated avatars prior to pro && AnimatedImageUtils.isAnimated(context, uri) - fun isAnimated(rawImageData: ByteArray) = proStatusManager.isPostPro() // block animated avatars prior to pro + fun isAnimated(rawImageData: ByteArray): Boolean = proStatusManager.isPostPro() // block animated avatars prior to pro && AnimatedImageUtils.isAnimated(rawImageData) private fun showAnimatedProCTA() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPasswordViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPasswordViewModel.kt index 683aa8943f..81d1507f36 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPasswordViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recoverypassword/RecoveryPasswordViewModel.kt @@ -33,7 +33,7 @@ class RecoveryPasswordViewModel @Inject constructor( .map { it?.seeded?.seed?.data?.toHexString() } .stateIn(viewModelScope, SharingStarted.Eagerly, null) - val mnemonic = seed.filterNotNull() + val mnemonic: StateFlow = seed.filterNotNull() .map { MnemonicCodec { MnemonicUtilities.loadFileContents(application, it) diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallViewModel.kt index df89f1e94a..e7fd1ffc18 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallViewModel.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/CallViewModel.kt @@ -96,8 +96,8 @@ class CallViewModel @Inject constructor( val connectionState: StateFlow get() = callManager.currentConnectionStateFlow - val initialCallState = CallState("", "", false, false, false) - val initialAccumulator = CallAccumulator(emptySet(), initialCallState) + val initialCallState: CallState = CallState("", "", false, false, false) + val initialAccumulator: CallAccumulator = CallAccumulator(emptySet(), initialCallState) val callState: StateFlow = callManager.callStateEvents .combine(rtcCallBridge.hasAcceptedCall) { state, accepted -> @@ -216,24 +216,24 @@ class CallViewModel @Inject constructor( } - fun swapVideos() = callManager.swapVideos() + fun swapVideos(): Unit = callManager.swapVideos() - fun toggleMute() = callManager.toggleMuteAudio() + fun toggleMute(): Unit = callManager.toggleMuteAudio() - fun toggleSpeakerphone() = callManager.toggleSpeakerphone() + fun toggleSpeakerphone(): Unit = callManager.toggleSpeakerphone() - fun toggleVideo() = callManager.toggleVideo() + fun toggleVideo(): Unit = callManager.toggleVideo() - fun flipCamera() = callManager.flipCamera() + fun flipCamera(): Unit = callManager.flipCamera() - fun answerCall() = rtcCallBridge.handleAnswerCall() + fun answerCall(): Unit = rtcCallBridge.handleAnswerCall() - fun denyCall() = rtcCallBridge.handleDenyCall() + fun denyCall(): Unit = rtcCallBridge.handleDenyCall() - fun createCall(recipientAddress: Address) = + fun createCall(recipientAddress: Address): Unit = rtcCallBridge.handleOutgoingCall(recipientAddress) - fun hangUp() = rtcCallBridge.handleLocalHangup(null) + fun hangUp(): Unit = rtcCallBridge.handleLocalHangup(null) fun setDeviceOrientation(orientation: Orientation, autoRotateOn: Boolean) { deviceOrientation = orientation