mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Remove custom WindowSizeClass and just depend on Material Adaptive WindowSizeClass.
Co-authored-by: jeffrey-signal <jeffrey@signal.org>
This commit is contained in:
committed by
jeffrey-signal
parent
95c9776b4d
commit
109f651681
@@ -26,6 +26,7 @@ import androidx.compose.material3.SnackbarHost
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.material3.adaptive.ExperimentalMaterial3AdaptiveApi
|
||||
import androidx.compose.material3.adaptive.currentWindowAdaptiveInfo
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
@@ -64,7 +65,8 @@ import org.thoughtcrime.securesms.recipients.ui.findby.FindByActivity
|
||||
import org.thoughtcrime.securesms.recipients.ui.findby.FindByMode
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions
|
||||
import org.thoughtcrime.securesms.window.AppScaffold
|
||||
import org.thoughtcrime.securesms.window.WindowSizeClass
|
||||
import org.thoughtcrime.securesms.window.detailPaneMaxContentWidth
|
||||
import org.thoughtcrime.securesms.window.isSplitPane
|
||||
import org.thoughtcrime.securesms.window.rememberAppScaffoldNavigator
|
||||
|
||||
/**
|
||||
@@ -200,8 +202,8 @@ private fun NewConversationScreenUi(
|
||||
uiState: NewConversationUiState,
|
||||
callbacks: UiCallbacks
|
||||
) {
|
||||
val windowSizeClass = WindowSizeClass.rememberWindowSizeClass()
|
||||
val isSplitPane = windowSizeClass.isSplitPane(forceSplitPaneOnCompactLandscape = uiState.forceSplitPaneOnCompactLandscape)
|
||||
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
|
||||
val isSplitPane = windowSizeClass.isSplitPane(forceSplitPane = uiState.forceSplitPaneOnCompactLandscape)
|
||||
val snackbarHostState = remember { SnackbarHostState() }
|
||||
|
||||
AppScaffold(
|
||||
|
||||
@@ -161,7 +161,7 @@ class NewConversationViewModel : ViewModel() {
|
||||
}
|
||||
|
||||
data class NewConversationUiState(
|
||||
val forceSplitPaneOnCompactLandscape: Boolean = SignalStore.internal.forceSplitPaneOnCompactLandscape,
|
||||
val forceSplitPaneOnCompactLandscape: Boolean = SignalStore.internal.forceSplitPane,
|
||||
val searchQuery: String = "",
|
||||
val isLookingUpRecipient: Boolean = false,
|
||||
val isRefreshingContacts: Boolean = false,
|
||||
|
||||
@@ -6,6 +6,8 @@ import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.lifecycle.DefaultLifecycleObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.window.core.layout.WindowHeightSizeClass
|
||||
import androidx.window.core.layout.WindowSizeClass
|
||||
import io.reactivex.rxjava3.kotlin.subscribeBy
|
||||
import org.signal.core.util.DimensionUnit
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable
|
||||
@@ -15,7 +17,6 @@ import org.thoughtcrime.securesms.components.ComposeText
|
||||
import org.thoughtcrime.securesms.conversation.ui.mentions.MentionsPickerFragmentV2
|
||||
import org.thoughtcrime.securesms.util.adapter.mapping.AnyMappingModel
|
||||
import org.thoughtcrime.securesms.util.doOnEachLayout
|
||||
import org.thoughtcrime.securesms.window.WindowSizeClass
|
||||
|
||||
/**
|
||||
* Controller for inline search results.
|
||||
@@ -71,7 +72,7 @@ class InlineQueryResultsControllerV2(
|
||||
}
|
||||
|
||||
fun onWindowSizeClassChanged(windowSizeClass: WindowSizeClass) {
|
||||
this.shouldHideForWindowSizeClass = windowSizeClass == WindowSizeClass.COMPACT_LANDSCAPE
|
||||
this.shouldHideForWindowSizeClass = windowSizeClass.windowHeightSizeClass == WindowHeightSizeClass.COMPACT
|
||||
|
||||
if (shouldHideForWindowSizeClass) {
|
||||
dismiss()
|
||||
|
||||
@@ -24,7 +24,7 @@ import org.thoughtcrime.securesms.jobs.ConversationShortcutUpdateJob
|
||||
import org.thoughtcrime.securesms.util.ConfigurationUtil
|
||||
import org.thoughtcrime.securesms.util.Debouncer
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme
|
||||
import org.thoughtcrime.securesms.window.WindowSizeClass
|
||||
import org.thoughtcrime.securesms.window.isLargeScreenSupportEnabled
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
@@ -54,7 +54,7 @@ open class ConversationActivity : PassphraseRequiredActivity(), VoiceNoteMediaCo
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?, ready: Boolean) {
|
||||
if (!ActivityCompat.isLaunchedFromBubble(this) && WindowSizeClass.isLargeScreenSupportEnabled()) {
|
||||
if (!ActivityCompat.isLaunchedFromBubble(this) && isLargeScreenSupportEnabled()) {
|
||||
startActivity(
|
||||
MainActivity.clearTop(this).apply {
|
||||
action = ConversationIntents.ACTION
|
||||
|
||||
@@ -361,8 +361,9 @@ import org.thoughtcrime.securesms.util.visible
|
||||
import org.thoughtcrime.securesms.verify.VerifyIdentityActivity
|
||||
import org.thoughtcrime.securesms.wallpaper.ChatWallpaper
|
||||
import org.thoughtcrime.securesms.wallpaper.ChatWallpaperDimLevelUtil
|
||||
import org.thoughtcrime.securesms.window.WindowSizeClass
|
||||
import org.thoughtcrime.securesms.window.WindowSizeClass.Companion.getWindowSizeClass
|
||||
import org.thoughtcrime.securesms.window.getWindowSizeClass
|
||||
import org.thoughtcrime.securesms.window.isLargeScreenSupportEnabled
|
||||
import org.thoughtcrime.securesms.window.isSplitPane
|
||||
import java.time.Instant
|
||||
import java.time.LocalDateTime
|
||||
import java.time.ZoneId
|
||||
@@ -615,8 +616,8 @@ class ConversationFragment :
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
binding.toolbar.isBackInvokedCallbackEnabled = false
|
||||
|
||||
binding.root.setApplyRootInsets(!WindowSizeClass.isLargeScreenSupportEnabled())
|
||||
binding.root.setUseWindowTypes(!WindowSizeClass.isLargeScreenSupportEnabled())
|
||||
binding.root.setApplyRootInsets(!isLargeScreenSupportEnabled())
|
||||
binding.root.setUseWindowTypes(!isLargeScreenSupportEnabled())
|
||||
|
||||
disposables.bindTo(viewLifecycleOwner)
|
||||
|
||||
@@ -699,7 +700,7 @@ class ConversationFragment :
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
if (!WindowSizeClass.isLargeScreenSupportEnabled()) {
|
||||
if (!isLargeScreenSupportEnabled()) {
|
||||
WindowUtil.setLightNavigationBarFromTheme(requireActivity())
|
||||
WindowUtil.setLightStatusBarFromTheme(requireActivity())
|
||||
}
|
||||
@@ -1455,7 +1456,7 @@ class ConversationFragment :
|
||||
}
|
||||
|
||||
private fun presentNavigationIconForNormal() {
|
||||
if (WindowSizeClass.isLargeScreenSupportEnabled()) {
|
||||
if (isLargeScreenSupportEnabled()) {
|
||||
lifecycleScope.launch {
|
||||
repeatOnLifecycle(Lifecycle.State.RESUMED) {
|
||||
mainNavigationViewModel.isFullScreenPane.collect { isFullScreenPane ->
|
||||
@@ -3483,7 +3484,7 @@ class ConversationFragment :
|
||||
getVoiceNoteMediaController().resumePlayback(selectedConversationModel.audioUri, messageRecord.id)
|
||||
}
|
||||
|
||||
if (!WindowSizeClass.isLargeScreenSupportEnabled()) {
|
||||
if (!isLargeScreenSupportEnabled()) {
|
||||
WindowUtil.setLightStatusBarFromTheme(requireActivity())
|
||||
WindowUtil.setLightNavigationBarFromTheme(requireActivity())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user