Wednesday, February 29, 2012

Dynamic Paint Live Wallpaper v1.2

  - Update: Stability improvements
  - Update: Color swatches on settings screen
  - Update: Better color picker on settings screen

This update primarily brings Paint in line with the current version of our framework, which should give it a number of general stability and performance improvements.  It also gains a better color picker, color swatch display on settings screen, and a few other niceties like that.  :)

Monday, February 20, 2012

SoundPool and GoogleTV

We're developing a game at the moment -- more of that in a week or two -- but were having a bit of a problem.  One of our target platforms is GoogleTV, and our SoundPool based sounds were refusing to work on that device.  Strange, since they worked on everything else we've run it on, and our music was working fine.  What's up with that, Android?

After some trial and error, it appears that SoundPool is simply pickier about file formats on GoogleTV than it is on other devices, for some reason.  At least on our particular GoogleTV, we needed to switch from MP3 based sounds to 22Khz Mono OGG.  Since doing that, everything seems fine on all platforms.

Knowing is half the battle.

Sunday, February 12, 2012

KF Simple Benchmark v0.6

  - New Feature: Charts of performance over time
  - Update: Galaxy now renders 2048 particles (up from 1024)
  - Update: Better stability when launching scenes
  - Update: Bamboo is now green (to match the lines on the chart)

Okay, this incorporates a few new framework changes that should make launching the individual scene activities more reliable -- no more black screens if you ever had that happen.  In addition, this introduces aChartEngine based plotting of individual frame times after the sequence has finished.

Thursday, February 9, 2012

Modifying Preferences in a Preference Activity

So you've got yourself a preference screen, and for whatever reason you need to programatically remove one of the prefs.  In our case, this is generally because we have some kind of variant build of our product -- like a version that doesn't support 'custom images' for example.

Inevitably, first you try something like this, and it doesn't work:

PreferenceScreen prefs = getPreferenceScreen();
Preference p = prefs.findPreference( "pref_to_remove" );
prefs.removePreference(p);

Sometimes, this will work, but often it doesn't!  What's up with that?  Well, most of our preference screens are divided up into categories, mostly because it looks nicer this way.  As it turns out, if you do that the individual prefs aren't actually owned by the PreferenceScreen, they're owned by the category they're in instead.  This means you need to do something more like this:

PreferenceScreen prefs = getPreferenceScreen();
Preference p = prefs.findPreference( "pref_to_remove" );
PreferenceCategory cat = (PreferenceCategory) prefs.findPreference( "category_name" );
cat.removePreference(p);

At which point, it will actually work.  The PreferenceCategory is the actual owner of the pref.

Hopefully this will save somebody some confusion in the future.

Tuesday, February 7, 2012

Hearts Live Wallpaper v2.0

  - Update: Now using OpenGL 2.0
  - Update: Cached custom images

This is primarily an update to bring Hearts forward to the new framework we're using, which should show substantial stability improvements overall.  You should also see generally better responsiveness, especially on very high resolution devices.

As a side effect, custom images are now cached, so they shouldn't disappear or anything if you remove your SD card.  No more kitty.  :/

Wednesday, February 1, 2012

Blue Skies Live Wallpaper v2.0

  - Update: Now using OpenGL 2.0
  - Update: Should perform better on high res screens
  - Update: More scrolling in portrait mode
  - New Feature: Tap on a balloon to pop it!

The primary goal of this update is to bring Blue Skies forward to our newest framework, which gives us some tools to help its performance.  It should behave noticably better on very high res screens now, though it won't be much different on the typical device.

While this was going on I finally implemented balloon popping.  Take that, bright colors!