You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AppWidgetProvider.java 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.rthoni.stssaguenay.ui.widget;
  2. import android.appwidget.AppWidgetManager;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.net.Uri;
  6. import android.util.Log;
  7. import android.widget.RemoteViews;
  8. import com.luticate.utils.business.LuConsumer;
  9. import com.rthoni.stssaguenay.R;
  10. import com.rthoni.stssaguenay.business.STSBusiness;
  11. import com.rthoni.stssaguenay.business.SchedulesBusiness;
  12. import com.rthoni.stssaguenay.dataaccess.STSDataAccess;
  13. import com.rthoni.stssaguenay.dbo.SchedulesDbo;
  14. import java.util.List;
  15. /**
  16. * Created by robin on 12/13/16.
  17. */
  18. public class AppWidgetProvider extends android.appwidget.AppWidgetProvider {
  19. public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, final int[] appWidgetIds) {
  20. final int N = appWidgetIds.length;
  21. Log.d("WIDGET", "onUpdate");
  22. // Perform this loop procedure for each App Widget that belongs to this provider
  23. for (int i=0; i<N; i++) {
  24. final int finalI = i;
  25. SchedulesBusiness.getMultiple(STSBusiness.getConfig(context), STSBusiness.getFavouriteStops(context), STSBusiness.getTime(), 10)
  26. .then(new LuConsumer<List<SchedulesDbo>>() {
  27. @Override
  28. public void execute(List<SchedulesDbo> schedulesDbos) {
  29. Intent intent = new Intent(context, AppWidgetService.class);
  30. intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[finalI]);
  31. SchedulesDbo.SchedulesDboArray array = new SchedulesDbo.SchedulesDboArray();
  32. array.setData(schedulesDbos);
  33. intent.putExtra("schedules", array.toString());
  34. intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME)));
  35. RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.app_widget);
  36. views.setRemoteAdapter(R.id.listFavouritesStops, intent);
  37. appWidgetManager.updateAppWidget(appWidgetIds[finalI], views);
  38. }
  39. });
  40. }
  41. }
  42. }