package de.tum.in.tumcampusapp.widgets;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
import de.tum.in.tumcampusapp.R;
import de.tum.in.tumcampusapp.managers.CafeteriaManager;
import de.tum.in.tumcampusapp.services.MensaWidgetService;
/**
* Implementation of Mensa Widget functionality.
* The Update intervals is set to 10 hours in mensa_widget_info.xml
*/
public class MensaWidget extends AppWidgetProvider {
AppWidgetManager appWidgetManager;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// There may be multiple widgets active, so update all of them
this.appWidgetManager = appWidgetManager;
for (int appWidgetId : appWidgetIds) {
Intent intent = new Intent(context, MensaWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.mensa_widget);
// set the header for the Widget layout
CafeteriaManager mensaManager = new CafeteriaManager(context);
String mensaName = mensaManager.getBestMatchMensaName(context);
rv.setTextViewText(R.id.mensa_widget_header, mensaName);
// set the adapter for the list view in the mensaWidget
rv.setRemoteAdapter(R.id.food_item, intent); //appWidgetIds[i],
rv.setEmptyView(R.id.empty_view, R.id.empty_view);
appWidgetManager.updateAppWidget(appWidgetId, rv);
}
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}