Android Open Source - android-appwidget-cirrus Widget Provider From Project Back to project page android-appwidget-cirrus .
License The source code is released under:
MIT License
If you think the Android project android-appwidget-cirrus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code /* Copyright 2014 Wayne D Grant (www.waynedgrant.com)
Licensed under the MIT License */
/ * f r o m w w w . j a v a 2 s . c o m * /
package com.waynedgrant.cirrus;
import java.text.MessageFormat;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
import com.waynedgrant.cirrus.clientraw.ClientRawCache;
import com.waynedgrant.cirrus.preferences.Preferences;
public class WidgetProvider extends AppWidgetProvider
{
public static final String ERROR_ACTION = "com.waynedgrant.cirrus.error" ;
public static final String ERROR_MESSAGE_EXTRA = "com.waynedgrant.cirrus.errorMessage" ;
public static final String FETCH_FRESH_CLIENT_RAW = "com.waynedgrant.cirrus.fetchFreshClientRaw" ;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int [] appWidgetIds)
{
callUpdateService(context, appWidgetIds);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
private void callUpdateService(Context context, int [] appWidgetIds)
{
Intent intent = new Intent(context.getApplicationContext(), UpdateWidgetService.class);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds);
intent.putExtra(FETCH_FRESH_CLIENT_RAW, true);
context.startService(intent);
}
@Override
public void onReceive(Context context, Intent intent)
{
if (intent.getAction().equals(ERROR_ACTION))
{
String errorMessage = intent.getStringExtra(ERROR_MESSAGE_EXTRA);
if (errorMessage != null)
{
String toastErrorMessage =
MessageFormat.format(context.getString(R.string.cirrusError_message),
context.getString(R.string.app_name), errorMessage);
Toast.makeText(context, toastErrorMessage, Toast.LENGTH_SHORT).show();
}
}
super.onReceive(context, intent);
}
@Override
public void onDeleted(Context context, int [] appWidgetIds)
{
deletePreferences(context, appWidgetIds);
clearClientRawCache(appWidgetIds);
super.onDeleted(context, appWidgetIds);
}
private void deletePreferences(Context context, int [] appWidgetIds)
{
Preferences preferences = new Preferences(context);
for (int appWidgetId : appWidgetIds)
{
preferences.removePreferences(appWidgetId);
}
preferences.commit();
}
private void clearClientRawCache(int [] appWidgetIds)
{
for (int appWidgetId : appWidgetIds)
{
ClientRawCache.remove(appWidgetId);
}
}
}
Java Source Code List com.waynedgrant.cirrus.UpdateWidgetService.java com.waynedgrant.cirrus.WidgetConfigActivity.java com.waynedgrant.cirrus.WidgetProvider.java com.waynedgrant.cirrus.clientraw.ClientRawCache.java com.waynedgrant.cirrus.clientraw.ClientRawRequest.java com.waynedgrant.cirrus.clientraw.ClientRawResponse.java com.waynedgrant.cirrus.clientraw.ClientRawUrl.java com.waynedgrant.cirrus.clientraw.ClientRaw.java com.waynedgrant.cirrus.clientraw.RetrieveClientRawTask.java com.waynedgrant.cirrus.measures.Conditions.java com.waynedgrant.cirrus.measures.Pressure.java com.waynedgrant.cirrus.measures.Rainfall.java com.waynedgrant.cirrus.measures.Temperature.java com.waynedgrant.cirrus.measures.Trend.java com.waynedgrant.cirrus.measures.WeatherItem.java com.waynedgrant.cirrus.measures.WindDirection.java com.waynedgrant.cirrus.measures.WindSpeed.java com.waynedgrant.cirrus.preferences.Preferences.java com.waynedgrant.cirrus.presentation.colorizers.TemperatureColorizer.java com.waynedgrant.cirrus.presentation.colorizers.UvIndexColorizer.java com.waynedgrant.cirrus.presentation.colorizers.WeatherItemColorizer.java com.waynedgrant.cirrus.presentation.formatters.ConditionsFormatter.java com.waynedgrant.cirrus.presentation.formatters.DateFormat.java com.waynedgrant.cirrus.presentation.formatters.DateFormatter.java com.waynedgrant.cirrus.presentation.formatters.FormattedWeatherItem.java com.waynedgrant.cirrus.presentation.formatters.HumidityFormatter.java com.waynedgrant.cirrus.presentation.formatters.PressureFormatter.java com.waynedgrant.cirrus.presentation.formatters.RainfallFormatter.java com.waynedgrant.cirrus.presentation.formatters.RainfallRateFormatter.java com.waynedgrant.cirrus.presentation.formatters.SolarPercentageFormatter.java com.waynedgrant.cirrus.presentation.formatters.SolarRadiationFormatter.java com.waynedgrant.cirrus.presentation.formatters.StringFormatter.java com.waynedgrant.cirrus.presentation.formatters.TemperatureFormatter.java com.waynedgrant.cirrus.presentation.formatters.TimeFormat.java com.waynedgrant.cirrus.presentation.formatters.TimeFormatter.java com.waynedgrant.cirrus.presentation.formatters.TrendFormatter.java com.waynedgrant.cirrus.presentation.formatters.UvIndexFormatter.java com.waynedgrant.cirrus.presentation.formatters.WeatherItemFormatter.java com.waynedgrant.cirrus.presentation.formatters.WindDirectionFormatter.java com.waynedgrant.cirrus.presentation.formatters.WindSpeedFormatter.java com.waynedgrant.cirrus.units.CardinalDirection.java com.waynedgrant.cirrus.units.PressureUnit.java com.waynedgrant.cirrus.units.RainfallUnit.java com.waynedgrant.cirrus.units.TemperatureUnit.java com.waynedgrant.cirrus.units.WindDirectionUnit.java com.waynedgrant.cirrus.units.WindSpeedUnit.java com.waynedgrant.cirrus.update.Timeout.java