Wednesday, March 30, 2011

EU Flags Live Wallpaper v1.3

  - Update: Antialiased flag edges
  - Bug Fix: Compatibility detection

This update makes the flag mesh a lot cleaner with the background.  No more crawling ants effect along the outside edge!  It looks a lot nicer side by side with the old one... in fact, maybe I should take new screenshots.

The bug fix is for the HowTo window, which is improperly detecting that Android 3.0 isn't compatible with live wallpapers.  The logic should handle things better now.  This is the case with basically all of our products, and it'll get fixed gradually over the next few weeks as updates roll out.

Wednesday, March 23, 2011

Dynamic Paint Live Wallpaper v1.05

  - New Feature: Pref for evaporation speed!
  - Update: New defaults for background & blend mode
  - Bug Fix: More consistent behavior between handsets

The bulk of the work here went into tracking down a behavior difference between PowerVR based handsets and Snapdragon based ones.  This look quite a while and will probably turn into a post of its own.  It's been dealt with now, and in the process we created a user preference for paint evaporation speed.  You can even turn it all the way down to nothing if you'd like!

Reading some of the feedback, we adjusted a few of the default values as well.  While the wood background shows off the fluid simulation well, people don't seem to like it as much as the broken brick, so that one's the default again.  Likewise the default blend type is now additive, which means the paints don't mix colors as well but they do seem to integrate with the background more smoothly.

Aquarium Live Wallpaper v2.45

  - Update: Four new fish!
  - Update: Toy submarine!

Nothing world shaking here, but a few more types of fish and toys to round out your aquarium with.  I really dig the submarine, and it bobs in place too!

Friday, March 18, 2011

KF Flames Live Wallpaper v1.11

  - Bug Fix: Will attempt to refresh custom background image if it isn't initially found

This is the same issue that was fixed in Hearts a little while ago.  Basically, if the SD card isn't available but your custom background is located there, it will periodically try to reload it after the fact.  This attempt will happen whenever the wallpaper becomes active (basically any time you return to your home screen from somewhere).

Tuesday, March 15, 2011

EU Flags Live Wallpaper v1.25

  - New Feature: Six more flags!

People always ask for additional flags here, so I figured I'd stretch the definition of European as far as possible and expand the list to everything considered continental Europe.  This means six additional country flags are now included: Azerbaijan, Balarus, Kazakhstan, Georgia, Moldova, and Russia.

The list is pretty substantial at this point, being 44 countries plus the EU flag.

Silhouette Live Wallpaper v1.55

  - Bug Fix: Pixelated appearance after a long period on some handsets

This is a relatively simple fix to something that's been around for a while.  Basically, the moving clouds would gradually go so far left/right from where they started, that the 3D hardware would start losing accuracy, and you'd get very boxy looking textures.  This takes quite a while to happen but depending on the handset could get pretty ugly.

It's a pretty easy problem to fix, just modulus the offset periodically so the numbers never get that large.  Typically I do that in these cases, but apparently had missed it on Silhouette.  Sorry folks!

Saturday, March 12, 2011

Dynamic Paint Live Wallpaper v1.0

(Android Market Link)
(YouTube Link)

There's a bunch of new changes and additions from the beta version here, and we're pretty confident we've got it working solidly across a wide range of devices now.  Here's what's new:

  - New Feature: Select your background image
  - New Feature: Complex fluid simulation
  - Update: Faster rendering performance
  - Update: Higher default resolution
  - Bug fix: No more paint gathering in corners incorrectly

This thing turned out extremely cool all told.  This one was primarily Bill Roeske's project and he's got a whole raft of additional tinkering to do yet, but we'll handle that with updates. :)

The effect at this point works extremely well, and it's a really satisfying toy to play with, while working well as a background at the same time.  I think this is one of my favorites of everything we've got on the market.

The backdrops (and their normal maps) were created by Allyson Vaughn, who did an excellent job with all of them.  We're using one piece of Creative Commons artwork: a paint splat by Kamikaze Stoat.

Tuesday, March 8, 2011

Aquarium Live Wallpaper v2.4

  - Update: 14 fish at once!
  - Update: Two new fish!
  - Bug Fix: No more broken customize screen on 2.3.3

For details about the broken customize screen, check the next post down, where I prattle on about it for most of a page.  It ended up being a bit of an iffy workaround but it seems to operate just fine, and nobody should notice a difference now that it's fixed.

To make up for the week or so of brokenness, I sat down and expanded the number of simultaneous fish to 14, so feel free to expand your collection.  In addition, two additional fish are now available for your perusal!

Monday, March 7, 2011

View visibility bug on Android 2.3.3

So I've been trying to work around a strange bug that's shown up on Android 2.3.3, which only affects the Aquarium customize screen.  Basically, when you visit that screen on 2.3.3, you can't open the three drawers that contain the customization controls.  Pressing the 'props', 'background', and 'fish' buttons doesn't do anything.

I replicated the issue by installing a nightly build of CyanogenMod onto an Evo 4G.  Starting in on figuring out the problem, I was confused and still am.  Here's how the code works.

Upon initializing CustomizeActivity, I load the UI layout, I set up a bunch of button handlers, then towards the bottom select the three detail windows and hide them.  The detail windows are the ones that contain the fish thumbnails, the background prev/next buttons, etc.  The code looks like this:

     LinearLayout ll;
     ll = (LinearLayout)findViewById( R.id.FishDetailedLayout );
     ll.setVisibility( View.INVISIBLE );


So, that makes the details invisible by default.  Later on, you push the 'fish' button, and this code happens:

     LinearLayout ll = (LinearLayout)findViewById( R.id.FishDetailedLayout );
     if( ll.getVisibility() != View.VISIBLE )
          ll.setVisibility( View.VISIBLE );
     else
          ll.setVisibility( View.INVISIBLE );


And that's it, the whole logic.  It's very simple.

This has worked fine for most of a year.  However, what's happening in 2.3.3 is that if that initial setVisibility call occurs, the buttons can never make the view visible again, no matter what.  However, if I remove the initial call making them invisible, then the toggle (both on and off) works just fine.  I'm mystified by this.

I've tried a fairly wide range of things at this point:
  • Add a half-second delay before calling setVisibility, in case it's still initializing somewhere.
  • Move the initial setVisibility call to the button handler's constructor.
  • Don't check getVisibility and always have the button force to visible.
  • Call setVisibility( View.VISIBLE ) before setting them to invisible.
  • Make the initial setVisibility call in onResume instead of the constructor.
  • Setting visibility to invisible by default in the XML file.
I've tried other variants too I'm fairly sure, all with the same result.  I have no idea what separates a call to setVisibility in these other locations from the ones on the button (which work, so long as it's not being set somewhere else first).  I'm still working on it but for now may end up falling back to having the drawers default to open, which is a bit complicated looking upon initial view.

UPDATE:

So, what I did eventually to work around this:  I gave up on View.INVISIBLE and started using View.GONE instead.  This is problematic since GONE actually removes the elements from the layout, and since everything's relative that makes the layout change.  I fixed that by playing the three details panels inside three invisible layout panels (all three of which have a width of fill_parent and a weight of 1).  These extra panels always stick around, so removing the detail panels entirely doesn't cause the layout to shift.

Awkward.

Jumpgate Live Wallpaper v1.1

  - New Feature: Toggle for the background helix
  - Update: Disable asteroids


I've gotten a ton of comments informing me that setting the asteroid slider to 0 doesn't disable them completely... which says to me it probably should.  So, this revision tweaks the effective range of that slider, and if it's set all the way down to 0, no asteroids will spawn at all.  Rejoice!

There's also been some mail from folks interested in disabling the swirly energy thing in the background -- internally I was calling it the 'helix'.  There's now a checkbox that will let you turn that off if you'd prefer.

Saturday, March 5, 2011

Aquarium Live Wallpaper v2.35

 - Update: Four new fish!

Nothing earth-shattering here, but it's been a while since Aquarium got an update, and this brings the total up to a nice round 24 species.  Hopefully you'll see a few more in another week or two.  These new ones are being made by Chris Galbraith.

There is a known issue currently, in that I've had several reports of the Aquarium customize screen not working properly on Android 2.3.3, both on the Nexus S and on the Nexus One.  We have a Nexus S here and will get it updated ASAP to check this.

Thursday, March 3, 2011

KF Flames Live Wallpaper v1.1

 - New Feature: Base Image Color pref

One of the major complaints with Flames is that it's hard to get your colors with it to look quite right.  There's a reason for this, which is that the base flame texture it uses has some coloration built in.  This helps the default look create strong yellow hotspots, but it hurts if you're going for pure blue (for example).

So, now you've got some control over this.  There's a new preference called "Base Image Color" that lets you switch between a few different base level tints.  The default is orange, but you've also got green, blue, and white (neutral) to pick from now.  Especially if you switch it to neutral, you should have no problem getting things to look the color you want now. :)

Tuesday, March 1, 2011

Dynamic Paint BETA Live Wallpaper

(Android Market Link)

We just put this up on the market, and it's exciting for a couple big reasons.  First, it's a totally cool simulation of liquid on an irregular surface, and after spraying or splatting paint onto the wall you get to watch it run down in rivulets and respond to the contours.  This is really neat.

Secondly, it'll be the first public use of our OpenGL 2.0 based framework -- the simulation heavily leans on pixel shaders to do its work, otherwise there's no way we could get it this fast!  However, this also means we're exercising a lot of new code and features that we haven't used before.

Thus, the BETA label.

We'll be leaving this on the market for at least a few hours, and are really hoping folks like it.  I know there's nothing out there that does this kind of cool dynamic effect, and am really excited to get some feedback both on the concept itself, and on any technical issues folks  might run into.  Please send any thoughts over to contact AT kittehface.com, we look forward to reading it!