diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java b/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java index 7ec5bdace9..0e0a118ceb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/views/SimpleProgressDialog.java @@ -11,6 +11,7 @@ import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.logging.Log; import org.thoughtcrime.securesms.util.Util; +import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; /** @@ -37,7 +38,7 @@ public final class SimpleProgressDialog { @AnyThread public static @NonNull DismissibleDialog showDelayed(@NonNull Context context) { - return showDelayed(context, 300); + return showDelayed(context, 300, 1000); } /** @@ -47,13 +48,21 @@ public final class SimpleProgressDialog { * the delay has elapsed, the dialog will not show at all. *
* Dismiss can be called on any thread.
+ *
+ * @param minimumShowTimeMs If the dialog does display, then it will be visible for at least this duration.
+ * This is to prevent flicker.
*/
@AnyThread
- public static @NonNull DismissibleDialog showDelayed(@NonNull Context context, int delayMs) {
+ public static @NonNull DismissibleDialog showDelayed(@NonNull Context context,
+ int delayMs,
+ int minimumShowTimeMs)
+ {
AtomicReference