Saturday 16 July 2011

Android Intents (aka Widget Locker support)

Llama now supports sending Intents to any other application. This allows Llama to make Widget Locker (a popular lock-screen replacement) lock and unlock on Llama's command.

Intents can be pretty complicated, but I'll try and explain the basic idea. An Intent can have a target; that target can either be a particular piece of functionality in an application, or a more generic description of a piece of functionality. As well as the target, intents also have a random blob of data that the target should be able to understand.

Android's shortcuts (which Llama already supports) are powered by intents, with the major difference being that an Android shortcut forces an app to provide a nice UI to create the shortcut's intent. You'll need the third party app's documentation to be able to craft an Android Intent action. Fortunately, Llama comes with Widget Locker's supported intents built in. You can use these in conjunction with Llama's screen lock action to ensure that widget locker is suspended when the screen lock is disabled, and that widget locker re-locks the screen when Llama reenables the screen lock.

Widget Locker is pretty good, and you can place Llama shortcuts on Widget Locker's sliders. For example, I now have sliders to turn on Bluetooth and to set my phone to silent for an hour. I can quickly use these if I'm popping out at a random time and want to listen to music, or if a meeting has come up. Ultimate laziness! Of course, Widget Locker isn't free, so if you're buying Widget Locker, you should donate too :)

Also in this version is a small warning about the Alarm volume. It seems that Samsung's quest for usability conflicts with Androids/Llama's alarm volume. Samsung allow you to set the Alarm volume for each alarm that you set. Each time the Samsung alarm app fires an alarm, it overrides the current Android alarm volume with the volume for that alarm. This means that if you set Llama to silence the alarm volume, Samsung would just reenable the alarm volume when the alarm goes off. To workaround this, you need to use an alarm clock app that doesn't think it's in charge of the Alarm volume setting.

And finally, here's a download link. It'll probably be on the market some time this week. As usual export your data before installing test versions.

Saturday 9 July 2011

Le Llama and a mini-update

Llama has now been translated into French. May thanks for nico@nc for that! There's also some smaller things:

  • I've allowed profile change actions to activate the profile lock
  • There's now a screen rotation action; it's a bit weak at the moment, but I'm waiting for an interesting Cyanogenmod commit to be put into a final build before extending it
  • There's a Car Mode action so you can turn car mode on and off
  • The screen lock action now has a heftier warning if you try and use it. £5 says people still email me about the side-effects it causes

Assuming I haven't broken anything, I'll put this on the market tomorrow.


Saturday 2 July 2011

Ah, the inevitable post-release force close

It's always nice to see the number of 5 stars creep up shortly after a new release. It's less nice to see the number of error reports in the market dashboard also increase by 1. It turns out that not all calendars will have an account name attached to them. So I've quickly patched that and released a fix. You may not know but Android lets you attach multiple accounts to your phone. I have my kebabapps account and real-life account on my phone. The calendar condition shows which account each of the calendars belongs to.

Also in the fix is a shiny new phone reboot condition that lets you run actions before your phone shuts down or after it turns back on.

One day, when I'm surrounded by every different type of Android phone running each different version of Android these bugs won't happen anymore :D ... donations welcome, lol. Hopefully there aren't any more problems as I'm off to bed soon... I'll fix anything else in the morning. G'night.

July's Market Version

I've just rolled out the next update for Llama that contains all of the changes from the last few betas. Some of the highlights of this version are Noisy Contacts and an improved calendar condition.

Noisy Contacts could be an app on its own, but it's bundled into Llama's profiles. Noisy Contacts lets you choose the people that your phone should ring for even if its volume is set to silent. The way this works is each profile is assigned any number of contacts, and you also provide the volume that you want to override the profile's usual ringing volume. You can also use this feature in reverse. If you want to stop your boss calling you during your time off, you can create a profile that has your boss as a noisy contact, with the volume set to silent. That way your phone will ring for everyone except for him! Perfect for weekends :)

The calendar condition was fairly rubbish when it was first released. Many of you wanted to be able to respond to any calendar event, or a number of differently named calendar events. Llama now lets you enter zero or more words that should match a calendar event. Llama also lets you pick which calenders those events should be in.

Another experimental feature has also crept it. As I discussed in another blog post, you can get Llama to respond to notifications from other apps. The UI for this is not completed yet. Geeks only :) Finally, there's a debug setting to disable writing the Recent cells list to disk, simply because someone asked for it and I'm nice.

There's also a handful of other actions and conditions, and the odd UI tweak. See below:

Version 1.2011.07.02.1835:
  • Noisy Contacts - set some contacts to ring even when silent!
  • Ignore cells
  • Profiles UI improvement
  • Fix for setting volume on newer HTCs
  • Minimalistic Text Widget support
  • Conditions:
    • Calendar allows any/multiple names, allows you to choose calendar
    • Airplane mode
    • Connect/disconnect ANY WiFi
    • Monitor other app notifications
  • Actions:
    • Run shortcuts, more apps eg Google Maps Nav
    • 4G
    • Wifi sleep policy
    • Haptic feedback
    • Kill with root
    • Wallpaper
    • Reminders improved

So what's the next big change I hear you ask? After adding the Wifi connected/disconnected condition I noticed a lot more Llama freezes :( This is because the API call that Llama needs to monitor Wifi connections has a tendency to just freeze for about 10 seconds sometimes... randomly... long enough to a) annoy you b) annoy me and c) make Android show the 'Application not responding' window. When Llama was first written, it only had 13 actions and conditions, now it has 50! Llama needs to evolve from a silly single-threaded app into a proper multi-threaded application. There'll be the usual handful of smaller actions/conditions too. Cheers all.