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 */
/*from   w w w  .j  ava2s  .  co 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