/* This file is part of ZAX. ZAX is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. ZAX is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with ZAX. If not, see <http://www.gnu.org/licenses/>. */ package com.inovex.zabbixmobile.widget; import android.appwidget.AppWidgetManager; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.util.Log; import com.inovex.zabbixmobile.data.HomescreenWidgetService; import com.inovex.zabbixmobile.model.ZaxPreferences; public class WidgetUpdateBroadcastReceiver extends BroadcastReceiver { public static final String REFRESH_RATE_CHANGED = "REFRESH_RATE_CHANGED"; private static final String TAG = WidgetUpdateBroadcastReceiver.class .getSimpleName(); @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "received broadcast. Starting service."); // check whether the refresh time is still the same ZaxPreferences prefs = ZaxPreferences.getInstance(context); if (intent.getBooleanExtra(REFRESH_RATE_CHANGED, false)) { int widgetRefreshInterval = prefs.getWidgetRefreshInterval(); ZaxWidgetProvider.stopAlarm(context); // refresh rate 0 means no automatic refresh if (widgetRefreshInterval > 0) ZaxWidgetProvider.setAlarm(context, widgetRefreshInterval * 60 * 1000); } // update all widgets AppWidgetManager appWidgetManager = AppWidgetManager .getInstance(context); ComponentName widget1x1 = new ComponentName(context, ZaxWidgetProvider.class); ComponentName widgetList = new ComponentName(context, ZaxWidgetProviderList.class); for (int id : appWidgetManager.getAppWidgetIds(widget1x1)) { Intent serviceIntent = new Intent(context, HomescreenWidgetService.class); serviceIntent.putExtra(HomescreenWidgetService.WIDGET_ID, id); context.startService(serviceIntent); } for (int id : appWidgetManager.getAppWidgetIds(widgetList)) { Intent serviceIntent = new Intent(context, HomescreenWidgetService.class); serviceIntent.putExtra(HomescreenWidgetService.WIDGET_ID, id); context.startService(serviceIntent); } } }