Another way to show progress. A progress View over the system StatusBar. in addition to showing a toast message.
The first form is suitable for showing that the activity is being loaded like fetching data from server, meanwhile the second form is better for real process and the third is for waiting.
That was for android pre-oreo on oreo and above statusbar will remain visible for all options like this:
1- Add jitpack.io repositories to you project build.gradle
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
2- Add it as a dependency to your app build.gradle
dependencies {
compile 'com.github.BaselHorany:ProgressStatusBar:1.1.9'
}
3- Add SYSTEM_ALERT_WINDOW
permission "unnecessary if your app's targetSdkVersion => oreo"
<!--unnecessary if your app's minSdkVersion => oreo-->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
1- In your Activity class
public class MainActivity extends AppCompatActivity {
ProgressStatusBar mProgressStatusBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.acitivity_main);
//initialize
mProgressStatusBar = new ProgressStatusBar(this);
//show progress
mProgressStatusBar.setFakeProgress(3000,true); //make fake progress from 0 to 100 in 3 sec. true/false for display the percentage text.
//or
mProgressStatusBar.setProgress(60,false); //set progress value manually
//or
mProgressStatusBar.setWaiting(6000); //show waitting balls for 6 sec.
//show toast message
mProgressStatusBar.showToast("1 new message", 3000); //(Sting message, int duratoion)
/*Addidional*/
//options, anytime before you start a new progress
mProgressStatusBar.setProgressColor(COLOR);//default #40212121
mProgressStatusBar.setProgressTextColor(COLOR);//default #ffffff
mProgressStatusBar.setProgressBackgroundColor(COLOR);//default transparent or colorPrimaryDark
mProgressStatusBar.setBallsColor(COLOR);//default #ffffff
//Listener
mProgressStatusBar.setProgressListener(new ProgressStatusBar.OnProgressListener() {
public void onStart() {
//ex: lock the UI or tent it
}
public void onUpdate(int progress) {
//ex: simulate with another progressView
}
public void onEnd() {
//ex: continue the job
}
});
}
@Override
protected void onPause() {
mProgressStatusBar.remove(); //remove progress view in case user went out before the progress end
super.onPause();
}
}
Basel Horany http://baselhorany.com