diff --git a/app/src/main/java/eu/faircode/email/ContentLoadingProgressBar.java b/app/src/main/java/eu/faircode/email/ContentLoadingProgressBar.java index 4e7c8673b0..dfa67512f9 100644 --- a/app/src/main/java/eu/faircode/email/ContentLoadingProgressBar.java +++ b/app/src/main/java/eu/faircode/email/ContentLoadingProgressBar.java @@ -51,6 +51,11 @@ public class ContentLoadingProgressBar extends ProgressBar { super.setVisibility(visibility); } + @Override + public int getVisibility() { + return this.visibility; + } + private final Runnable delayedShow = new Runnable() { @Override public void run() { diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index f6bfee858c..a544cfa08c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -3792,13 +3792,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. @Override public void onLoading() { loading = true; - updateListState("Loading"); + updateListState("Loading", SimpleTask.getCount(), adapter.getItemCount()); } @Override public void onLoaded() { loading = false; - updateListState("Loaded"); + updateListState("Loaded", SimpleTask.getCount(), adapter.getItemCount()); } @Override @@ -3852,13 +3852,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }); initialized = true; - updateListState("Observed"); + updateListState("Observed", SimpleTask.getCount(), messages.size()); grpReady.setVisibility(View.VISIBLE); } }; - private void updateListState(String reason) { + private void updateListState(String reason, int tasks, int items) { Context context = getContext(); if (context == null) return; @@ -3867,9 +3867,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (!getViewLifecycleOwner().getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.STARTED)) return; - int tasks = SimpleTask.getCount(); - int items = adapter.getItemCount(); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); boolean filter_seen = prefs.getBoolean("filter_seen", false); boolean filter_unflagged = prefs.getBoolean("filter_unflagged", false); @@ -4656,7 +4653,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. }; private void onTaskCount(Intent intent) { - updateListState("Tasks"); + updateListState("Tasks", intent.getIntExtra("count", 0), adapter.getItemCount()); } private void onNewMessage(Intent intent) { diff --git a/app/src/main/java/eu/faircode/email/ViewTextDelayed.java b/app/src/main/java/eu/faircode/email/ViewTextDelayed.java index 4da344a060..29f419778b 100644 --- a/app/src/main/java/eu/faircode/email/ViewTextDelayed.java +++ b/app/src/main/java/eu/faircode/email/ViewTextDelayed.java @@ -48,13 +48,21 @@ public class ViewTextDelayed extends AppCompatTextView { this.visibility = visibility; removeCallbacks(delayedShow); - if (visibility == VISIBLE) { - super.setVisibility(INVISIBLE); + removeCallbacks(delayedHide); + + if (visibility == VISIBLE) postDelayed(delayedShow, VISIBILITY_DELAY); - } else + else if (visibility == GONE) + postDelayed(delayedHide, VISIBILITY_DELAY); + else super.setVisibility(visibility); } + @Override + public int getVisibility() { + return this.visibility; + } + private final Runnable delayedShow = new Runnable() { @Override public void run() { @@ -62,4 +70,12 @@ public class ViewTextDelayed extends AppCompatTextView { ViewTextDelayed.super.setVisibility(VISIBLE); } }; + + private final Runnable delayedHide = new Runnable() { + @Override + public void run() { + if (visibility == GONE) + ViewTextDelayed.super.setVisibility(GONE); + } + }; }