Workaround AndroidX bug

pull/184/head
M66B 5 years ago
parent 69c3fd691c
commit e8de7a876e

@ -20,6 +20,8 @@ package eu.faircode.email;
*/ */
import android.content.Context; import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@ -28,25 +30,42 @@ import androidx.annotation.Nullable;
public class ContentLoadingProgressBar extends ProgressBar { public class ContentLoadingProgressBar extends ProgressBar {
private int visibility; private int visibility;
private Handler handler;
private static final int VISIBILITY_DELAY = 500; // milliseconds private static final int VISIBILITY_DELAY = 500; // milliseconds
public ContentLoadingProgressBar(@NonNull Context context) { public ContentLoadingProgressBar(@NonNull Context context) {
this(context, null); this(context, null);
init();
} }
public ContentLoadingProgressBar(@NonNull Context context, @Nullable AttributeSet attrs) { public ContentLoadingProgressBar(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs, 0); super(context, attrs, 0);
init();
}
public ContentLoadingProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
public ContentLoadingProgressBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
init();
}
private void init() {
handler = new Handler(Looper.getMainLooper());
} }
@Override @Override
public void setVisibility(int visibility) { public void setVisibility(int visibility) {
this.visibility = visibility; this.visibility = visibility;
removeCallbacks(delayedShow); handler.removeCallbacks(delayedShow);
if (visibility == VISIBLE) { if (visibility == VISIBLE) {
super.setVisibility(INVISIBLE); super.setVisibility(INVISIBLE);
postDelayed(delayedShow, VISIBILITY_DELAY); handler.postDelayed(delayedShow, VISIBILITY_DELAY);
} else } else
super.setVisibility(visibility); super.setVisibility(visibility);
} }

Loading…
Cancel
Save