Posts Tagged ‘android’


Android Network Awards – Vote Now

August 11, 2009

Best Fitness App


Help on force close!

August 10, 2009

UPDATE:  Thanks to everyone who emailed me their data.  I believe I have fixed the version and released a patch WorkItOut 1.4.1.  Please let me know if it works out alright and thanks for your patience.


I can’t ask my users to vote for my app when I know it is not working correctly!

I, for the life of me, cannot recreate the bug.  Especially if the situation entails the user uninstalling and reinstalling the app from the MarketPlace.  I am able to download, install, and use the app fine.

One thing that would help is if anyone who is experiencing the force close could send me their workout data using the “Backup / Send via Email” option to  Then I could try to import the data and see where the issue might be.

I am also putting together a crash log tool, details coming soon.


WorkItOut nominated for Android Network Award – Best Fitness App

August 7, 2009


Check out, a great way to spread the word about popular and cool apps by the Android community, enthusiasts, and users.

To commemorate the nomination, I have released WorkItOut 1.4 and finally fixed all of the bugs identified. Voting begins Monday, August 10th, and I will post more information as I come across it.

Thanks everyone for your support!



March 31, 2009

Originally I had hoped that users would not want to deal with the keyboard when in the gym, so I came up with a simple number pad to enter the workout data.  If the user wanted to open the keyboard the proportion of the screen made it so that the number pad was unreachable.  First fatal mistake – since the save button was on the number pad.  Anyway….WorkItOut 1.1 fixed that.

The goal in 1.1 was to show the number pad in portrait mode and hide the number pad in landscape mode when the keyboard slides out.

Here are the steps to achieve this:

1)  Go to the AndroidManifest

For the activity add android:configChanges=”keyboardHidden|orientation”

This allows the application to handle orientation changes and makes it so the app does not restart the activity on an orientation change.  I use it for the charts also so that the app doesn’t have to ping the Google Charts site every time you change screen orientation.

2)  Use onConfigurationChanged(Configuration change)

So now that the app is controlling the configuration changes, you have to set the behavior.  I just use an if statement with change.orientation == Configuration.ORIENTATION_LANDSCAPE

If it’s landscape hide the numpad, otherwise display it.

3)  Use getWindowManager().getDefaultDisplay().getMetrics(dm)

onConfigurationChanged only comes into play when you switch from one view to another within the activity.  But what if you enter the activity in landscape mode.  For that I used the WindowManager to get the screen dimension.  If dm.heightpixels==320 then I know I am in landscape mode.

So these steps cover all the bases for sliding the keyboard open or closing it.  Obviously there is more complexity if you want to use the accelerometer to determine which orientation the screen is currently in.


Google Charts Available End of March

March 17, 2009

Many users have asked for the ability to chart progress.  Luckily for the Google phone (and any web-enabled phone), we have the Google Charts API which magically much easier to use than I expected.  The tricky part was the data scaling especially since we are working with dates.  For example,  I worked out consistently for a couple of weeks and then skipped a month, I wouldn’t want the data to be displayed in equal intervals.  So how do you take dates and figure out the relative distance between them?  In this case I just converted everything to milliseconds which is pretty standard.  Although at first I tried to come up with my own way to convert dates to a number format which obviously didn’t end up working.  I have posted a link below and the chart.  Notice how the url contains all the information needed to create the chart, pretty nifty and its fast too!

Here’s a sample,1234512000000,1236927600000|10,13,14|1231833600000,1234512000000,1236927600000|11,14,15|1231833600000,1234512000000,1236927600000|12,15,16&chtt=Pullup&chdl=Set1|Set2|Set3&chxr=0,1231833600000,1236927600000|1,10,16,1&chds=1231833600000,1236927600000,10,16,1231833600000,1236927600000,10,16,1231833600000,1236927600000,10,16&chco=FF0000,00FF00,0000FF&chxt=x,y&chxl=0:|1-13-2009|2-13-2009|3-13-2009&chxp=0,1231833600000,1234512000000,1236927600000&chs=480×320&chxtc=1,-1236927600000