/*
* Fat Free CRM Android App
* Copyright 2012 create mediadesign GmbH
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package at.create.android.ffc.activity;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import at.create.android.ffc.R;
/**
* @author Philipp Ullmann
* Implementation of the AsyncActivity interface.
*/
public final class AsyncActivityImpl implements AsyncActivity {
private ProgressDialog progressDialog;
private Activity activity;
private boolean destroyed = false;
public AsyncActivityImpl(Activity activity) {
this.activity = activity;
}
protected void onDestroy() {
destroyed = true;
}
@Override
public void showLoadingProgressDialog() {
this.showProgressDialog(activity.getString(R.string.loading_please_wait));
}
@Override
public void showProgressDialog(CharSequence message) {
if (this.progressDialog == null) {
this.progressDialog = new ProgressDialog(activity);
this.progressDialog.setIndeterminate(true);
}
this.progressDialog.setMessage(message);
this.progressDialog.show();
}
@Override
public void dismissProgressDialog() {
if (this.progressDialog != null && !this.destroyed) {
this.progressDialog.dismiss();
}
}
@Override
public void showAlert(CharSequence message) {
AlertDialog alertDialog = new AlertDialog.Builder(activity).create();
alertDialog.setTitle(message);
alertDialog.setCancelable(true);
alertDialog.setCanceledOnTouchOutside(true);
alertDialog.show();
}
}