package pl.llp.aircasting.activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import pl.llp.aircasting.activity.task.SimpleProgressTask;
import roboguice.activity.RoboActivity;
/**
* Created by IntelliJ IDEA.
* User: obrok
* Date: 1/16/12
* Time: 12:02 PM
*/
public abstract class RoboActivityWithProgress extends RoboActivity implements ActivityWithProgress {
private int progressStyle;
private ProgressDialog dialog;
private SimpleProgressTask task;
@Override
public ProgressDialog showProgressDialog(int progressStyle, SimpleProgressTask task) {
this.progressStyle = progressStyle;
this.task = task;
showDialog(SPINNER_DIALOG);
return dialog;
}
@Override
protected Dialog onCreateDialog(int id) {
this.dialog = SimpleProgressTask.prepareDialog(this, progressStyle);
return dialog;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Object instance = getLastNonConfigurationInstance();
if (instance != null) {
((SimpleProgressTask) instance).setActivity(this);
}
}
@Override
public Object onRetainNonConfigurationInstance() {
return task;
}
@Override
public void hideProgressDialog() {
try {
dismissDialog(SPINNER_DIALOG);
removeDialog(SPINNER_DIALOG);
} catch (IllegalArgumentException e) {
// Ignore - there was no dialog after all
}
}
}