package co.infinum.pokemon.activities;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import co.infinum.pokemon.PokemonApp;
import co.infinum.pokemon.R;
import co.infinum.pokemon.dagger.components.AppComponent;
import co.infinum.pokemon.mvp.views.BaseView;
/**
* Created by dino on 21/03/15.
*/
public abstract class BaseActivity extends AppCompatActivity implements BaseView {
protected Dialog progressDialog;
protected abstract void injectDependencies(AppComponent appComponent);
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
injectDependencies(PokemonApp.getInstance().getApplicationComponent());
}
protected void showProgressDialog() {
if (progressDialog == null || !progressDialog.isShowing()) {
progressDialog = new ProgressDialog(this);
progressDialog.setCanceledOnTouchOutside(false);
if (!isFinishing()) {
progressDialog.show();
}
}
}
protected void hideProgressDialog() {
if (progressDialog != null && progressDialog.isShowing()) {
if (!isFinishing()) {
progressDialog.dismiss();
}
}
}
protected void showDialog(final String message) {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.app_name);
if (message != null) {
builder.setMessage(Html.fromHtml(message));
} else {
builder.setMessage("");
}
builder.setPositiveButton(android.R.string.ok, null);
if (!isFinishing()) {
builder.show();
}
}
@Override
public void showProgress() {
showProgressDialog();
}
@Override
public void hideProgress() {
hideProgressDialog();
}
@Override
public void showError(String message) {
showDialog(message);
}
}