Add Leyton!
Consistent widget text drop shadows across devices

Shadows now look relatively similar on varying display densities. Some
devices didn't seem to render the shadow correctly when the X and Y
offsets were fractional. Slight padding issues have also been resolved
by increasing it overall and converting to dips.
Align widget temp text to left instead of center

It would look pretty good when centered if the text below it was short
but as the text below it gets longer the temperature text would be
pushed away from the left of the screen and begin to touch doge.
Aligning to the left gives a consistent look and feel.
Vastly improved widget error handling

When the proverbial shit hits the fan, WeatherService now does a far
better job of logging what happened and giving the user a hint of what
went wrong. This small toast allows us to begin debugging before we are
given log output and alerts the user that the update process actually
finished.
Check arguments sent to getTextBitmaps

If one of the String arguments is empty it will cause a problem
(read: Exception) when trying to paint the text. Instead of halting the
entire process let's just spoof what we don't have.
WidgetService toasts are now displayed

Since IntentServices operate on a background thread they do not have
the ability to show toasts. By posting to the initial main thread we
can interact with the UI.
Slightly change up the images displayed for rain
Added options for the widget

A number of new widget-specific options are now available. These
include setting the font to Comic Neue (separately from the main app),
selecting a refresh interval (default 30 minutes), force a widget
reload on tap (default is now to open app on tap), and a background fix
toggle (default off) to help the widget display properly on certain
device configurations.

If any changes are detected when the user exits the OptionsActivity
all widgets are reloaded. OptionsActivity has also had its settings
organized into three distinct categories. The general options that both
the app and widget use. The app-specific options. And the
widget-specific options.
Replace the widget "just now" text with the time

The time is displayed in the proper locale according to Android. Worth
noting that the time displayed is not the time the widget was refreshed
but the time that the data was retrieved from the API. This could be as
much as 10 minutes into the past after a widget refresh as the internal
cache will be invalid every 10 minutes.
Change the default widget sky and doge

... to something a little more upbeat.
Remove vestigial TextViews
Reset the CountDownLatch on every run

Sometimes the same WidgetService instance would be used to execute two
or more updates causing Play Services connection errors. It appears
that only one onHandleIntent will run at a time so there's no need to
do any synchronization. I could be wrong on this though. :|
Fixed a time text rendering bug

Pushing it down by one pixels seems to help. I do not know why this
occurs.
It's now possible to switch between OWM and Yahoo

OpenWeatherMap is the default. The cache is considered invalid if the
weather source changes.
OWM condition data is now capitalized like Yahoo

It looks nicer on the widget.
Minor refactor to avoid duplicating typefaces
Widgets now update on general option changes
Attempt to prevent an odd widget-launcher bug

Sometimes the widget will not show up in the launcher's list after a
fresh install. This seems to help some of the time. A reboot appears to
resolve the issue if the former does not.
Increase the wait time for location to 15 seconds

15 seconds may be a while but it's safe to say if we do not have a
connection in 15 seconds we are probably never going to get one. 5
seconds is pushing it.
A little extra padding never hurt anyone...