Weathrman Version History

Version 2.5 (Baby Got Back)

This is another minor change, designed to increase the diversity of selected images.

  • Don’t look lower than neighborhood; street is too narrow, city too broad.
  • Perform all queries at a given location accuracy and collate results.
  • Choose randomly from the set of potential matches.
  • If network is down or there’s no location fix, reschedule an update.  Should reduce black-on-first-boot.

 

Version 2.4 (Spotless Minds)

This is a minor change, designed to address a handful of small issues.

  • Drop “sunny” as its own set of search terms; lump it with clear, and broaden clear.
  • Add more to the list of negative keywords to remove more unwanted images.
  • Tweak some search terms in all of our search languages to improve search quality.
  • Introduce sunrise and sunset as unique search patterns during the three hours around sunrise and sunset.

 

Version 2.3 (Volcanic Disruption)

Today, my weather was a volcano, which can only mean one thing: an unrecognized weather condition.  My reaction has been to say goodbye to Google’s easy-to-use-but-badly-designed weather API, and hello to Yahoo’s, which is an order of magnitude better.

 

Version 2.2 (Indigestion)

Tweaks to ensure that views are brought to the front, and the addition of an error display.  Underneath the hood, I’ve also implemented separate delegates for preview and live wallpapers, and preview has been implemented as a rendering of a packaged layout.

 

Version 2.1 (Revenge of the Hoagie)

Well, that was fast.  Went to work to the din of outrage emanating from pretty much every Weathrman user I know.

  • Remove permanent notification.
  • Add a notification which only appears while an update is in progress.
  • Update a progress bar.
  • Android’s bitmap processing in 565 leads to lots of banding if I don’t turn on dithering.  :(

Doubletap will still get you the ‘more info’ screen.

 

Version 2.0 (Passamaquoddy)

Lots and lots of changes in here, adding UI elements so that we can expose more complex behaviour later, and improving the quality of backdrops in every way I can think of.

  • Restrict Flickr API searches to three month windows, performing one restricted search query per year.
  • Fetch up to 1000 results per search by performing paged requests.
  • Ignore image results that are too low a resolution.
  • Ignore image results that are too high a resolution.
  • Support both large and original images on flickr, instead of originals only.
  • Translate all search terms into French, German, Italian, and Spanish to pick up images tagged by users who natively use those languages.
  • Add support for “drizzle” as a synonym for rain.
  • Merge fog, smog, haze, and mist search terms.
  • Merge snow and ice.
  • Remove nighttime search terms, they just don’t work the way you’d want them to.
  • Remove a Flickr API call to get image sizes, preferring the URLs provided during search.
  • Add a notification to the backdrop to expose UI behaviour, as doubletap isn’t discoverable.
  • Add an action to display more information about the currently active desktop
  • Add a reload button to the more information screen
  • Add a “view in Flickr” button to the more information screen

 

Version 1.9 (Purple Haze)

Primarily, this is an SDK update; but as it’s hazy in London at the moment, and we’ve seen some strange pictures, I’m going to go ahead and improve the search terms associated with this weather condition.

  • Increase the number of search results we’re willing to look at for any given query.
  • Widen the scope of the first flickr search to more than neighborhood, but less than city.
  • Make haze equivalent to fog; add synonyms for smog to those already present for haze and fog.

 

Version 1.8 (Butterfly Effect)

This is a mostly inconsequential fix, primarily involving extracting some code into more common locations, further testing. 

  • When waking up after the timer would otherwise have been fired, schedule for immediate execution.

 

Version 1.7 (Sleeping Satellite)

  • Track surfaceHolder as a local var, clearing it when the surface is disabled.
  • Keep a local variable holding the surface, and maintain it through onSurfaceCreated(), onSurfaceDestroyed(), and onSurfaceChanged().  It’s hard to tell if it’s necessary, but the documentation says they will throttle you should you ever do so at the wrong time, and I won’t risk it.  Just another case where the Android documentation just doesn’t help you do the right thing; I should be able to trust getSurfaceHolder() will never lead me astray, but I can’t, it seems.  Too many fucking callbacks.
  • Disable the background timer on loss of visibility; reenable it when we become visible again.  The timer will continue as usual - if making it visible means it should fire immediately, it will.
  • Improve network checking, and use it in both doubletap and scheduled fire cases.
  • Move to RGB_565.  This one makes me want to cry.  Loading and tracking ARGB_8888 is a massive, massive performance hit over RGB_565, and quite frankly, in this day and age, it ought not to be.  This is an N1, for heaven’s sake, it ought to *fly*.  But the difference between c.drawImage() to the wallpaper surface from RGB_565 is an order of magnitude cheaper than RGB_8888.  Technically, this probably isn’t a sacrifice in quality… on the device I own.  But I can’t imagine that 565 is the native format on all devices everywhere, and quite frankly I think it sucks that 8888 isn’t the optimized path.

 

Version 1.5 (Stewarts Anonymous)

  • Adding a network check on the scheduling process.
  • Adding a list of banned terms (“nude”, “naked”) to avoid seeing naked base jumper arse in Hyde Park.
  • Splitting search terms used for “clear” by day/night cycle.
  • Re-adding night-specific search terms.

 

Version 1.4 (The Niemann Hypothesis)

  • Removing background data use and AlertManager wake-from-sleep-to-update.  Though it sounded cool to me, everyone else thought it was overkill.
  • Moving to AsyncTask for update task.
  • Tracking when the last update took place was; when the device wakes, if it’s been longer than the update deadline, it’ll try a refresh.
  • Added progress output.  It’s not pretty, but it’s there.
  • Removed some of the text we overlay in the top left corner, as someone commented there was just too much text there.
  • Added the date the photo was taken on, as some said they’d like to know.

 

Version 1.3 (About an hour after 1.2)

 

  • Basic, brute-force cache management (delete cached content on exit).  I’d like a lot more finesse, here, but that requires I start tracking which files are currently ‘active’; I’ve isolated the impl behind an interface so that later on, when I start doing resource tracking, it’s there.

 

Version 1.2 (Release)

  • Icon and thumbnail have been added.
  • Updates performed on a background service that lives only as long as its request.
  • Largeish reduction in memory usage; we peak a bit when we load a fresh image, but our only real use now is the backing buffer we use to ensure fast redraws.  15M now, and that’s good enough for me.  For now, at least.
  • “Overcast” wasn’t in our list of recognizable weather conditions.  Evidently there’s a football player named Volcano.  Who knew?
  • Logging exceptions to Analytics.  Flurry, your API is pants; don’t use static methods as your primary API, and make it more friendly to multi-serviced logging.
  • As there’s no control for users over the behaviour yet, setting the fetch time to two hours.

Version 1.0 (Beta)

  • Initial release for beta testers.