mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 08:39:22 +01:00
Fix snackbar durations.
This commit is contained in:
committed by
jeffrey-signal
parent
bb21363ca8
commit
305c32cfc5
@@ -13,7 +13,6 @@ import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import org.signal.core.util.AppUtil
|
||||
import org.signal.core.util.ThreadUtil
|
||||
import org.signal.core.util.concurrent.SignalExecutors
|
||||
@@ -33,6 +32,8 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsText
|
||||
import org.thoughtcrime.securesms.components.settings.app.privacy.advanced.AdvancedPrivacySettingsRepository
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.InAppPaymentsRepository
|
||||
import org.thoughtcrime.securesms.components.settings.configure
|
||||
import org.thoughtcrime.securesms.components.snackbars.SnackbarState
|
||||
import org.thoughtcrime.securesms.components.snackbars.makeSnackbar
|
||||
import org.thoughtcrime.securesms.conversation.ConversationIntents
|
||||
import org.thoughtcrime.securesms.database.JobDatabase
|
||||
import org.thoughtcrime.securesms.database.LocalMetricsDatabase
|
||||
@@ -100,7 +101,11 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
||||
|
||||
setFragmentResultListener(CallQualityBottomSheetFragment.REQUEST_KEY) { _, bundle ->
|
||||
if (bundle.getBoolean(CallQualityBottomSheetFragment.REQUEST_KEY, false)) {
|
||||
Snackbar.make(requireView(), R.string.CallQualitySheet__thanks_for_your_feedback, Snackbar.LENGTH_SHORT).show()
|
||||
makeSnackbar(
|
||||
SnackbarState(
|
||||
message = getString(R.string.CallQualitySheet__thanks_for_your_feedback)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.SnackbarDuration
|
||||
import androidx.compose.material3.SnackbarHost
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.Text
|
||||
@@ -31,7 +30,9 @@ import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.Snackbars
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.showSnackbar
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.StatusBarColorNestedScrollConnection
|
||||
@@ -73,7 +74,7 @@ class PhoneNumberPrivacySettingsFragment : ComposeFragment() {
|
||||
lifecycleScope.launch {
|
||||
snackbarHostState.showSnackbar(
|
||||
message = snackbarMessage,
|
||||
duration = SnackbarDuration.Short
|
||||
duration = Snackbars.Duration.SHORT
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,12 @@
|
||||
|
||||
package org.thoughtcrime.securesms.components.snackbars
|
||||
|
||||
import androidx.compose.material3.SnackbarDuration
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.Snackbars
|
||||
|
||||
fun Fragment.makeSnackbar(state: SnackbarState) {
|
||||
if (view == null) {
|
||||
@@ -18,9 +21,10 @@ fun Fragment.makeSnackbar(state: SnackbarState) {
|
||||
requireView(),
|
||||
state.message,
|
||||
when (state.duration) {
|
||||
SnackbarDuration.Short -> Snackbar.LENGTH_SHORT
|
||||
SnackbarDuration.Long -> Snackbar.LENGTH_LONG
|
||||
SnackbarDuration.Indefinite -> Snackbar.LENGTH_INDEFINITE
|
||||
Snackbars.Duration.SHORT -> Snackbar.LENGTH_SHORT
|
||||
Snackbars.Duration.LONG -> Snackbar.LENGTH_LONG
|
||||
Snackbars.Duration.INDEFINITE -> Snackbar.LENGTH_INDEFINITE
|
||||
else -> Snackbar.LENGTH_INDEFINITE
|
||||
}
|
||||
)
|
||||
|
||||
@@ -30,4 +34,11 @@ fun Fragment.makeSnackbar(state: SnackbarState) {
|
||||
}
|
||||
|
||||
snackbar.show()
|
||||
|
||||
if (state.duration is Snackbars.Duration.Custom) {
|
||||
viewLifecycleOwner.lifecycleScope.launch {
|
||||
delay(state.duration.duration)
|
||||
snackbar.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
package org.thoughtcrime.securesms.components.snackbars
|
||||
|
||||
import androidx.annotation.ColorRes
|
||||
import androidx.compose.material3.SnackbarDuration
|
||||
import org.signal.core.ui.compose.Snackbars
|
||||
import org.thoughtcrime.securesms.R
|
||||
|
||||
/**
|
||||
@@ -16,15 +16,15 @@ import org.thoughtcrime.securesms.R
|
||||
* @property actionState Optional action button configuration.
|
||||
* @property showProgress Whether to show a progress indicator in the snackbar.
|
||||
* @property duration How long the snackbar should be displayed.
|
||||
* @property hostKey The target host where this snackbar should be displayed.
|
||||
* @property hostKey The target host where this snackbar should be displayed. Defaults to [SnackbarHostKey.Global]
|
||||
* @property fallbackKey Optional host to fallback upon if the host key is not registered. Defaults to the Global key.
|
||||
*/
|
||||
data class SnackbarState(
|
||||
val message: String,
|
||||
val actionState: ActionState? = null,
|
||||
val showProgress: Boolean = false,
|
||||
val duration: SnackbarDuration = SnackbarDuration.Long,
|
||||
val hostKey: SnackbarHostKey,
|
||||
val duration: Snackbars.Duration = Snackbars.Duration.SHORT,
|
||||
val hostKey: SnackbarHostKey = SnackbarHostKey.Global,
|
||||
val fallbackKey: SnackbarHostKey? = SnackbarHostKey.Global
|
||||
) {
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user