package com.transitwidget;
import java.util.Arrays;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.transitwidget.provider.contract.WidgetConfiguration;
import com.transitwidget.service.UpdateWidgetService;
public class PredictionWidgetProvider extends AppWidgetProvider {
private static final String LOG = PredictionWidgetProvider.class.getName();
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Log.w(LOG, "Widget onUpdate called for ids: " + Arrays.toString(appWidgetIds));
// Get all ids
ComponentName thisWidget = new ComponentName(context, PredictionWidgetProvider.class);
int[] allWidgetIds = appWidgetManager.getAppWidgetIds(thisWidget);
// Build the intent to call the service
Intent intent = new Intent(context.getApplicationContext(), UpdateWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, allWidgetIds);
// Update the widgets via the service
context.startService(intent);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
Log.w(LOG, "Widget onDeleted called for ids: " + appWidgetIds);
// Remove widget configuration
for (int widgetId : appWidgetIds) {
context.getContentResolver().delete(WidgetConfiguration.CONTENT_URI, WidgetConfiguration.WIDGET_ID + " = ?", new String[] { String.valueOf(widgetId) });
}
}
}