package com.ese2013.mensaunibe.model.data; import com.ese2013.mensaunibe.R; import com.ese2013.mensaunibe.mensa.MensaListAdapter; import com.ese2013.mensaunibe.menu.MenuActivity.TabCollectionPagerAdapter; import com.ese2013.mensaunibe.model.Model; import android.app.ProgressDialog; //import android.os.AsyncTask; import android.support.v7.app.ActionBarActivity; import android.widget.Toast; /** * @author group7 * @author Andreas Hohler */ public class ForceReloadTask { private ProgressDialog dialog; private ActionBarActivity context; private MensaListAdapter listAdapter; private TabCollectionPagerAdapter listAdapter2; /** * constructor, creates the waiting dialog progress bar * for MensaListAdapter * @param context * @param listAdapter */ public ForceReloadTask(ActionBarActivity context, MensaListAdapter listAdapter) { assert context != null && listAdapter != null; this.dialog = new ProgressDialog(context); this.listAdapter = listAdapter; this.context = context; } /** * constructor, creates the waiting dialog progress bar * for TabCollectionPagerAdapter (Menu lists) * @param context * @param listAdapter */ public ForceReloadTask(ActionBarActivity context, TabCollectionPagerAdapter listAdapter) { assert context != null && listAdapter != null; this.dialog = new ProgressDialog(context); this.listAdapter2 = listAdapter; this.context = context; } /** * pre execute: shows the progress bar */ protected void onPreExecute() { this.dialog.setMessage("Refresh data..."); this.dialog.show(); } /** * post execute: hides the progress bar, handles the result * @param success (true if reload worked, other else false) */ protected void onPostExecute(final Boolean success) { if (dialog.isShowing()) { dialog.dismiss(); } if(success) { Toast.makeText(context, context.getString(R.string.data_refresh_ok), Toast.LENGTH_SHORT).show(); if(listAdapter != null) { listAdapter.notifyDataSetChanged(); } else { listAdapter2.notifyDataSetChanged(); } } else { Toast.makeText(context, context.getString(R.string.data_refresh_fail), Toast.LENGTH_SHORT).show(); } } /** * executes the task */ public void execute() { onPreExecute(); boolean result = doInBackground(); onPostExecute(result); } protected Boolean doInBackground(Void... params) { if( Model.getInstance().forceReload() ) { return true; } return false; } }