-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProgressOverlay.java
45 lines (38 loc) · 2.04 KB
/
ProgressOverlay.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package com.lorenzostanco.utils;
import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.os.Build;
import android.widget.ProgressBar;
/**
* Simulates a progress overlay with a progress dialog with no borders, frame nor text:
* {@code overlay = ProgressOverlay.show(this); ... overlay.dismiss()}
*/
@SuppressWarnings("unused") public final class ProgressOverlay {
/** The color of the circular spinner on API 21+ (null to use the default one) */
public static Integer MATERIAL_COLOR = Color.WHITE;
/** Creates and shows a progress dialog with no borders, frame nor text over the default semi-transparent dialogs' background.
* @return ProgressDialog The new dialog instance */
public static ProgressDialog show(final Context context) {
return show(context, false);
}
/** Creates and shows a progress dialog with no borders, frame nor text over the default semi-transparent dialogs' background.
* @return ProgressDialog The new dialog instance */
public static ProgressDialog show(final Context context, final boolean cancelable) {
return show(context, cancelable, null);
}
/** Creates and shows a progress dialog with no borders, frame nor text over the default semi-transparent dialogs' background.
* @return ProgressDialog The new dialog instance */
@SuppressLint("NewApi") public static ProgressDialog show(final Context context, final boolean cancelable, final DialogInterface.OnCancelListener cancelListener) {
final ProgressDialog dialog = ProgressDialog.show(context, null, null, true, cancelable, cancelListener);
final ProgressBar view = new ProgressBar(context);
if (MATERIAL_COLOR != null && Build.VERSION.SDK_INT >= 21) view.setIndeterminateTintList(ColorStateList.valueOf(MATERIAL_COLOR));
dialog.setContentView(view);
//noinspection ConstantConditions
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
return dialog;
}
}