package com.ianhanniballake.contractiontimer.appwidget; import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; /** * Handles updating all App Widgets */ public class AppWidgetUpdateHandlerBase extends AppWidgetUpdateHandler { /** * Updates all instances of the Control App Widgets * * @param context Context used to trigger updates * @param appWidgetManager AppWidgetManager instance */ private static void updateControlWidgets(final Context context, final AppWidgetManager appWidgetManager) { final boolean controlWidgetsExist = appWidgetManager.getAppWidgetIds(new ComponentName(context, ControlAppWidgetProvider.class)).length > 0; if (controlWidgetsExist) context.startService(new Intent(context, ControlAppWidgetService.class)); } /** * Updates all instances of the Toggle App Widgets * * @param context Context used to trigger updates * @param appWidgetManager AppWidgetManager instance */ private static void updateToggleWidgets(final Context context, final AppWidgetManager appWidgetManager) { final boolean toggleWidgetsExist = appWidgetManager.getAppWidgetIds(new ComponentName(context, ToggleAppWidgetProvider.class)).length > 0; if (toggleWidgetsExist) context.startService(new Intent(context, ToggleAppWidgetService.class)); } /** * Updates all App Widgets with the latest information. This should be called whenever a contraction is updated * * @param context Context used to trigger updates */ @Override public void updateAllWidgets(final Context context) { final AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); AppWidgetUpdateHandlerBase.updateToggleWidgets(context, appWidgetManager); AppWidgetUpdateHandlerBase.updateControlWidgets(context, appWidgetManager); } }