package com.rthoni.stssaguenay.ui.widget; import android.content.Context; import android.content.Intent; import android.util.Log; import android.widget.RemoteViews; import android.widget.RemoteViewsService; import android.widget.TextView; import com.rthoni.stssaguenay.R; import com.rthoni.stssaguenay.business.STSBusiness; import com.rthoni.stssaguenay.business.SchedulesBusiness; import com.rthoni.stssaguenay.dbo.SchedulesDbo; import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo; import java.util.List; /** * Created by robin on 12/13/16. */ public class AppWidgetFactory implements RemoteViewsService.RemoteViewsFactory { private Context _context; private List _favouriteStopsDbos; private List _schedules; private Intent _intent; public AppWidgetFactory(Context context, Intent intent) { _context = context; _intent = intent; Log.d("WIDGET", "ctor"); } @Override public void onCreate() { } @Override public void onDataSetChanged() { Log.d("WIDGET", "onDataSetChanged: " + _intent.getStringExtra("schedules")); SchedulesDbo.SchedulesDboArray array = new SchedulesDbo.SchedulesDboArray(); try { array.fromJson(_intent.getStringExtra("schedules")); _schedules = array.getData(); } catch (Exception e) { e.printStackTrace(); } _favouriteStopsDbos = STSBusiness.getFavouriteStops(_context); } @Override public void onDestroy() { _favouriteStopsDbos = null; } @Override public int getCount() { return _favouriteStopsDbos.size(); } @Override public RemoteViews getViewAt(int position) { Log.d("WIDGET", "getViewAt " + position); RemoteViews remoteView = new RemoteViews(_context.getPackageName(), R.layout.favourite_stop_recycler_view_item); remoteView.setTextViewText(R.id.textView, _favouriteStopsDbos.get(position).getStop().getFullName()); String text = SchedulesBusiness.getSchedulesString(_schedules, _favouriteStopsDbos.get(position).getStop().getId()); remoteView.setTextViewText(R.id.textView2, text); return remoteView; } @Override public RemoteViews getLoadingView() { Log.d("WIDGET", "getLoadingView"); RemoteViews remoteView = new RemoteViews(_context.getPackageName(), R.layout.favourite_stop_recycler_view_item); return remoteView; } @Override public int getViewTypeCount() { return 1; } @Override public long getItemId(int position) { return 0; } @Override public boolean hasStableIds() { return false; } }