I've put up a new version of the app with some minor tweaks (no new functionality): http://bit.ly/1f5sbcf (This update was done primarily for Roxanna's MobBob!)
As I mentioned in the last update the current app is now making use of the "Response Messages" that the Arduino code sends back to tell the app when it has completed an animation.
I had a message from Rox that the new app would stop accepting new commands after a while. I don't know for sure, but I'm guessing that it is due to unreliable Bluetooth causing MobBob to miss Response Messages. This would lead to a "stuck" state where he just sits there waiting for a Response code (that got lost somewhere). I'm suspecting this since Rox is using a Samsung phone, and I've personally had a LOT of bluetooth issues with my Samsung S5. (Not just with my robots, but also with my bluetooth headset and with Sphero/Ollie.)
So, I've made a couple of changes to the app to help address this...
On the front page, there is now a new option "Wait for Responses".
If this option is ticked, the app will try to use the new functionality to wait for responses. To further improve this functionality, I added a time-out, so that if it doesn't receive a response in 10 seconds, it will assume some sort of error and stop waiting for a response to the last command. I've also went through the code and did a few changes that should make the response handling code more robust overall.
If this option is NOT ticked, the app won't wait for the response messages.
This means that there is a potential to issue commands before the previous one has completed. The Arduino code was designed to handle this situation, so there should be no major issues, but it will be less tidy (e.g. Voice may say the next command, but he's still finishing the last command.)
For the Colored Ball tracking feature, I had MobBob decide on his next step when his previous step finished. This relied on the response notifications. So, for this case, I added some extra logic so that if the app is NOT using reponse messages, MobBob will use a timer instead to determine when he should take his next step. Since the timer is approximate... he will pause for a little bit between steps. So, again, this should work but it is less tidy than when the app can rely on response codes.
So, please tick the "Wait for Responses" check box if it works for you. The app will work better. However if you have problems with receiving response codes, you can untick this as a workaround.
If you want to check whether you are receiving response codes, you can do that with the Connection Utility feature I mentioned in the last update! That will show you when the app receives response codes.