Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Quick tapping crashes MaterialSnackbar

Abierto
#403 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
android, csharp
Área
mobile-dev

Línea de trabajo

Busca el constructor de MaterialSnackbar y InputTaskCompletionSource y, a continuación, reproduce invocaciones rápidas de ActionButton.Command en Android bajo las condiciones descritas. Verifica que los toques repetidos completen la snackbar sin producir InvalidOperationException ni provocar un cierre inesperado; en la issue no se especifica ningún archivo ni prueba concretos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

🐛 Bug Report

If the UI thread is busy, or a weak device is used, then it becomes possible to call ActionButton.Command multiple times with quick clicks, as a result, after the second pressing InputTaskCompletionSource?.SetResult throws an exception

Is there any reason not to use TrySetResult ?

 internal MaterialSnackbar(string message, string actionButtonText, int msDuration = DurationLong, MaterialSnackbarConfiguration configuration = null)
        {
            ...
            var primaryActionCommand = new Command(async () =>
            {
                _primaryActionRunning = true;
                await DismissAsync();
                InputTaskCompletionSource?.TrySetResult(true);
            }, () => !_primaryActionRunning);
            ...
        }
Stack trace
XF.Material.Forms.UI.Dialogs.MaterialSnackbar.<.ctor>b__6_0 () [0x0007a] in <3cfa98f1ecd344d8b7c2286276967650>:0;XF.Material.Forms.UI.Dialogs.MaterialSnackbar

TaskCompletionSource`1[TResult].SetResult (TResult result)
<.ctor>b__6_0 ()
AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state)
SyncContext+<>c__DisplayClass2_0.<Post>b__0 ()
Thread+RunnableImplementor.Run ()
IRunnableInvoker.n_Run (System.IntPtr jnienv, System.IntPtr native__this)
Reason

System.InvalidOperationException: System.InvalidOperationException

Expected behavior

The app should not crash

Reproduction steps
Configuration

Version: 1.x

Platform:

  • 📱 iOS
  • 🤖 Android
  • 🏁 WPF
  • 🌎 UWP
  • 🍎 MacOS
  • 📺 tvOS
  • 🐒 Xamarin.Forms
Lenguaje dominante
C#
Estrellas
631
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Baseflow/XF-Material-Library

Todos los issues de Baseflow/XF-Material-Library

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.