Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

AppWidgetFactory.java 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.rthoni.stssaguenay.ui.widget;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.util.Log;
  5. import android.widget.RemoteViews;
  6. import android.widget.RemoteViewsService;
  7. import android.widget.TextView;
  8. import com.rthoni.stssaguenay.R;
  9. import com.rthoni.stssaguenay.business.STSBusiness;
  10. import com.rthoni.stssaguenay.business.SchedulesBusiness;
  11. import com.rthoni.stssaguenay.dbo.SchedulesDbo;
  12. import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo;
  13. import java.util.List;
  14. /**
  15. * Created by robin on 12/13/16.
  16. */
  17. public class AppWidgetFactory implements RemoteViewsService.RemoteViewsFactory {
  18. private Context _context;
  19. private List<UserFavouriteStopsDbo> _favouriteStopsDbos;
  20. private List<SchedulesDbo> _schedules;
  21. private Intent _intent;
  22. public AppWidgetFactory(Context context, Intent intent)
  23. {
  24. _context = context;
  25. _intent = intent;
  26. Log.d("WIDGET", "ctor");
  27. }
  28. @Override
  29. public void onCreate() {
  30. }
  31. @Override
  32. public void onDataSetChanged() {
  33. Log.d("WIDGET", "onDataSetChanged: " + _intent.getStringExtra("schedules"));
  34. SchedulesDbo.SchedulesDboArray array = new SchedulesDbo.SchedulesDboArray();
  35. try {
  36. array.fromJson(_intent.getStringExtra("schedules"));
  37. _schedules = array.getData();
  38. } catch (Exception e) {
  39. e.printStackTrace();
  40. }
  41. _favouriteStopsDbos = STSBusiness.getFavouriteStops(_context);
  42. }
  43. @Override
  44. public void onDestroy() {
  45. _favouriteStopsDbos = null;
  46. }
  47. @Override
  48. public int getCount() {
  49. return _favouriteStopsDbos.size();
  50. }
  51. @Override
  52. public RemoteViews getViewAt(int position) {
  53. Log.d("WIDGET", "getViewAt " + position);
  54. RemoteViews remoteView = new RemoteViews(_context.getPackageName(), R.layout.favourite_stop_recycler_view_item);
  55. remoteView.setTextViewText(R.id.textView, _favouriteStopsDbos.get(position).getStop().getFullName());
  56. String text = SchedulesBusiness.getSchedulesString(_schedules, _favouriteStopsDbos.get(position).getStop().getId());
  57. remoteView.setTextViewText(R.id.textView2, text);
  58. return remoteView;
  59. }
  60. @Override
  61. public RemoteViews getLoadingView() {
  62. Log.d("WIDGET", "getLoadingView");
  63. RemoteViews remoteView = new RemoteViews(_context.getPackageName(), R.layout.favourite_stop_recycler_view_item);
  64. return remoteView;
  65. }
  66. @Override
  67. public int getViewTypeCount() {
  68. return 1;
  69. }
  70. @Override
  71. public long getItemId(int position) {
  72. return 0;
  73. }
  74. @Override
  75. public boolean hasStableIds() {
  76. return false;
  77. }
  78. }