package de.saxsys.android.projectiler.app.utils;
import android.appwidget.AppWidgetManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.AsyncTask;
import de.saxsys.android.projectiler.app.ProjectilerAppWidget;
import de.saxsys.android.projectiler.app.backend.UserDataStore;
/**
* Created by stefan.heinze on 15.05.2014.
*/
public class WidgetUtils {
public static void refreshWidget(final Context context){
new RefreshWidgetAsyncTask(context).execute();
}
public static void showProgressBarOnWidget(final Context context, final UserDataStore dataStore){
dataStore.setWidgetLoading(true);
refreshWidget(context);
}
public static void hideProgressBarOnWidget(final Context context, final UserDataStore dataStore){
dataStore.setWidgetLoading(false);
refreshWidget(context);
}
private static class RefreshWidgetAsyncTask extends AsyncTask<Void, Void, Void>{
private final Context context;
public RefreshWidgetAsyncTask(final Context context){
this.context = context;
}
@Override
protected Void doInBackground(Void... voids) {
Intent widgetIntent = new Intent(context, ProjectilerAppWidget.class);
widgetIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
int[] appWidgetIds = AppWidgetManager.getInstance(context).getAppWidgetIds(new ComponentName(context, ProjectilerAppWidget.class));
widgetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
context.sendBroadcast(widgetIntent);
return null;
}
}
}