Monday, 29 August 2011

A couple of bug fixes for the last version

Well it's nearly the end of the Bank Holiday weekend in the UK, so my updates won't be as frequent as the past couple of days. Next on my to do list is probably the variable thingy, which should please some of you.

  • Fixed re-editing event forgets the queue delay
  • Seek bars can show a message for 'zero' for the queue delay
  • Updated Slovenian
  • Longer profile lock timeout options

As usual, backup your data before installing, just in case you need to go back to a previous version.

Version 1.2011.08.29.1906 http://www.mediafire.com/?dnqb15sb0q96nxa

Sunday, 28 August 2011

More beta features

Another busy week, another load of features:
  • Event filtering
  • Screen off action
  • Change lock screen password action
  • Queue event action
  • Reminders can make noises

The screen off and lock screen password action require you to authorise Llama as a device administrator. If you aren't comfortable with that, then don't do it :) This lets you disable the lock screen password by setting it to empty (i.e leaving the textbox empty). You'll still get the slider screen though. If you want to get rid of that too, you have to combine the screen lock password action with the buggy-screen lock action. Fortunately, when the screen lock password is blank, the screen lock action isn't buggy anymore; the home-screen buttons work again. Hooray!

Llama encrypts your lock-screen password before it saves it. This is because you can export your events to the SD card, and you wouldn't want every other app with SD card permissions from being able to read it. Llama requires that you set a Llama Security Password. This password is the key for the encryption, so set it to something completely random. You don't need to remember this password, but if you get it wrong, you'll have to reenter the screen lock password. The Llama Security Password is stored in plain-text in Llama's private settings, which no other apps have access to. However, apps running as root will have access to it, so be careful who you give root access to!

The last version allowed you to create repeating events, but the blog post about it described one of its shortcomings. This version now lets your repeating events create other events. So you can say something like:

Between 7am and 11pm, repeating every 15 minutes -> Enable Account Sync and create an Event 1 minute from now that Disables Account Sync

Again, this is very much a test version. I had some feedback from the last version about the repeating events not always working, so that's been fixed. Please get in touch if you find any bugs :) Make sure you export your data before you install it.

Cheers

http://www.mediafire.com/?7259j1qbpetu2hw

Sunday, 21 August 2011

Confirmable, delayed, repeating events

I've been working away on a few new features for Llama's events.

Confirmable event

The event's actions won't fire until you select the notification or press 'Run' on a dialog that pops up. This could be useful if you have an event that starts the music player when you plug your headphones in. Sometimes you may not want the music to start immediately, so this puts you in control.

Delayed events

Since Llama is using phone masts to determine your location, you aren't usually inside your house when Llama first sees the phone mast that covers you house. You can now make events wait a while before running their actions.

Repeating events

One of the more common requests is for repeating events. Most people seem to want to turn mobile data on and off periodically. Repeated events start repeating after they are triggered and continue repeating until the event's conditions are no longer true. e.g. for an event that repeats every 5 minutes, if you enter your home at 12:03, the actions will run then at 12:03, 12:08, 12:13, etc. However, if your event was defined as 'At home, between 12:00 and 12:30', and you were already at home at 12:00, then the events would run at 12:00, 12:05, 12:10, ..., 12:25. The last time is exclusive, so it won't run at 12:30.
You can combine each of these into one event. The order that they work in is: delayed, confirmation, repeat. That is to say that if an event requires confirmation, the confirmation dialog won't appear until after the delay has occurred. If an event is repeating, the repeated actions aren't run until after the delay has passed or the confirmation has been granted
As an example, you can create events like this:
Between 7am and 11pm -> Set mobile data on every 15 minutes
Between 7am and 11pm -> Delayed by 1 minute, set mobile data off every 15 minutes

or

Wifi network connected -> Enable Sync every 15 minutes
Wifi network connected -> Delay by 1 minute, disable Sync every 15 minutes

It's still a bit clunky... e.g. if you disconnect from a wifi network shortly after sync was enabled, then the disable event won't be able to fire a minute later because you were no longer connected to a wifi network. You could fix that with another event 'Wifi network disconnected -> disable sync'. In the future, I'd like to have a 'queue event' action, that will let an event queue another one-off event.
This is very much a test version. As always, you should export your settings and make a copy of them somewhere (maybe email yourself a copy). This version stores more information about events that older version will not understand, so if you have to rollback to the market version you'll have to use your backed-up settings.
There's a few other changes in this version, but it's late now and I can't be bothered to write about them right now... expect another blog post soon :)
http://www.mediafire.com/?bkoet2m9o46uq8h

Also, is it just me or does every WYSIWYG editor for blogs and CMSes suck? I hate them with a passion!!! I'll fix the crappy formatting in the morning.

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.

http://www.mediafire.com/?ctwunw4o183skcs

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.

Download

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.