コード例 #1
0
  @Override
  public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
    super.onUpdate(context, appWidgetManager, appWidgetIds);

    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.menu_layout);

    Intent update = new Intent(context, MenuProvider.class);
    update.setAction(CLICK_UPDATE);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, update_code, update, 0);
    remoteViews.setOnClickPendingIntent(R.id.update, pendingIntent);

    Intent nextDate = new Intent(context, MenuProvider.class);
    nextDate.setAction(CLICK_NEXT);
    pendingIntent = PendingIntent.getBroadcast(context, right_code, nextDate, 0);
    remoteViews.setOnClickPendingIntent(R.id.arrow_right, pendingIntent);

    Intent previousDate = new Intent(context, MenuProvider.class);
    previousDate.setAction(CLICK_PREVIOUS);
    pendingIntent = PendingIntent.getBroadcast(context, left_code, previousDate, 0);
    remoteViews.setOnClickPendingIntent(R.id.arrow_left, pendingIntent);

    remoteViews.setRemoteAdapter(R.id.dish_list, new Intent(context, DishListService.class));
    updateDate(remoteViews, R.id.date_text, PreferenceManager.getCalendar(context));
    appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
  }
コード例 #2
0
  @Override
  public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);
    Log.d(TAG, "Received intent");
    Log.d(TAG, intent.getAction());

    AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
    int appWidgetIds[] =
        appWidgetManager.getAppWidgetIds(new ComponentName(context, MenuProvider.class));
    RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.menu_layout);
    switch (intent.getAction()) {
      case CLICK_UPDATE:
        Log.d(TAG, "Update intent");
        remoteViews.setImageViewResource(R.id.update, R.drawable.refresh_active);
        appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
        appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetIds, R.id.dish_list);
        break;

      case CLICK_PREVIOUS:
        {
          Log.d(TAG, "Previous date");
          Calendar calendar = PreferenceManager.getCalendar(context);
          calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 1);
          PreferenceManager.setCalendar(context, calendar);
          updateDate(remoteViews, R.id.date_text, calendar);
          appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
          break;
        }
      case CLICK_NEXT:
        {
          Log.d(TAG, "Next date");
          Calendar calendar = PreferenceManager.getCalendar(context);
          calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1);
          PreferenceManager.setCalendar(context, calendar);
          updateDate(remoteViews, R.id.date_text, calendar);
          appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
          break;
        }
    }
  }