Thursday, 29 December 2011

Some more bugfixes, nearly market time again

It's nearly the end of the holidays, which means it's my last blob of free time to do a market release. This one has a few more bug fixes from the last one, and is hopefully good enough for the Market tomorrow morning.

Version 1.2011.12.29.0050

  • Event activity stuck grey colour fix
  • Better screen lock action description
  • Bluetooth and Wifi can now be set as 'at least 1 minute'
  • When watching for volume changes, Llama will now throttle its response if you've enabled 'Lock volume controls'

Wednesday, 28 December 2011

Some bugfixes

Here's a fix for the last post, as well as a whole load of other fixes. Thanks to all of you who email me rather than posting 'OMG WTF teh rubbish' 1 star comments. It makes a big difference! :) It means I can actually fix things, and make it work for everyone, rather than being left clueless as to why you aren't happy with Llama.

Version 1.2011.12.28.1225

  • Bluetooth/Wifi connected for X minutes fix
  • Recent tab crash fix
  • Events tab items less flickery
  • Screen lock on now puts lock on properly if the screen is off
  • Uppercase/lowercase name sorting
  • Ringer/vibrate fix
  • Locale action fix

Remember to export your data before installing test versions, just in case you have to go back to the market version.


A quick update before I go to sleep

I've spent most of today implementing some feedback, rather than fixing stuff. If anyone's still running Android 2.1, please get in touch. I need to know if the screen rotation action behaves for you. It wasn't working nicely in the emulator, but I've unfortunately learnt to never trust the emulator.

Here's what the next market version will contain:

Version 1.2011.12.28.0113

  • Lots of German translation updates. Cheers!
  • Reminder notification ticker-text no longer says 'Llama' in it, so that notification readers don't speak 'Llama' before every reminder.
  • Screen lock (buggy) action now be slightly less buggy. You can ask Llama not to disabled it until after you've unlocked the screen at least once. You'll need to update your events with the new setting.
  • Screen rotation condition. This might misbehave on Android 2.1 :(
  • Areas tab now shows current area in green.
  • Recent tab now shows areas in a variety of colours, or red if the cell is not added to any areas. These two follow the 'Coloured event list' setting, which I'll rename if I remember in the morning.
  • Preference screens no longer limited to 4 lines.
  • Llama Trails - a way of logging all of your movements. There's no way to view them yet, but you can start logging. I'll probably throw together a C# WinForms app, since that's the quickest way til I figure out how many people will actually use it.

As usual, export your data before installing test versions.


Monday, 26 December 2011

Yay! New market version

There's now a new version on the Market. It's basically the one from the 23rd with a few more bug fixes and a slightly modified Profiles tab. The version number is 1.2011.12.26.1212.

I updated it on the market at around 12:30pm UK time. As of 3:20pm UK time, my Android Market still isn't showing me an update, nor is the Market website showing me the updated app version and description. No matter how many times I press F5 and clear my cache it's still saying 1.2011.10.04.0750. Oh well.

That being said, some of you have installed the update and emailed me, so somewhere in Android land it has updated correctly.

Friday, 23 December 2011

Some bug fixes from the last version

Not much exciting to read about, except maybe the in-call condition. It pretty much does what you expect: let's you make events run when you are in a call or not. This can be handy if you have events that force your phone into airplane mode and what to stop that interrupting your phone calls.

Version 1.2011.12.23.1731

  • In-call condition
  • When using OR conditions, you can always use the same condition type multiple times
  • Sensitive info no longer written to logs, unless you tick a box in debug settings
  • Speak action lets you choose an audio stream
  • More details in the Speak action help
  • Speak action TTS cleanup tweak for some TTS engines that don't close properly
  • Fix for some Locale plugins that weren't working before
  • Added a warning about ICS's lack of 'link ringtone and notification volume sliders'

As usual, export your data before installing test versions, just in case you have to go back to the market version.

Download - Fixed! The resources are compiled properly now.

Sunday, 18 December 2011

Logical Slimmer Llamas

The new beta version of Llama now supports ORs of conditions. Normally, an event will only fire if all of its conditions are true, but there are some times when you'd want only some of those conditions to cause the event to fire. Previously, you could solve this by having multiple similar events, but that quickly gets messy (especially with Llama's crappy UI ;). The OR operator is implemented in Llama as a special condition that takes a list of other conditions and only requires one of them to cause the event to fire. At the same time, I've also added an AND condition. You probably won't use this much, as the default behaviour of an event is an AND, but if you need to use an AND inside an OR this is how you achieve it. Most people aren't familiar with ORs and ANDs (at least in the Boolean sense), so Llama also refers to them as 'match all' and 'match any' respectively. You can read through the previous paragraph and replace 'OR' with 'match any' if you like.

To create an event that vibrates whenever you plug in the headset or charger, you would need to create an event like this:

OR (Match any) (Headset connected, charging) -> Vibrate

If you have event colouring enabled in Llama's settings, you'll also be able to see the current status of the ORs and ANDs. Each OR and AND will have a set of square or curly brackets that show which conditions it contains, and also the state of those conditions. If any of an OR's conditions are true, then the brackets will be green, otherwise they'll be red. Similarly, if all of and AND's conditions are true, it's curly brackets will be green, otherwise red.

Another noticeable change is the naming of builds. Android lets apps have two version numbers:

  • a version code (usually just incremented from 1)
  • a version name (whatever you want, I use the compile date)

Previously, I used the version code to name the beta builds that I upload to mediafire. Since I introduced in-app billing I now need to keep the version code in-sync with the version on the market. The market uses the version code to determine whether a version of an app supports billing or not, otherwise it'll say:

'Application Error: This version of the application is not configured for Market Billing. Check the help center for more information.'

From now on, the version code won't increment until I plan to release a market version, so that the betas can still use in-app billing. Finally, I've got around to using ANT builds rather than hitting the Export signed APK button in eclipse. Llama is also getting fat and overweight with all of the languages that it has, so I've set up a tool that'll build 4 versions of Llama:

  • The usual market-style Llama you all know and love, with all the languages and no CALL_PHONE permission.
  • A version with all languages and CALL_PHONE permission, so that you can dial call-forwarding codes.
  • A thinner version of Llama with only en-gb resources, and no CALL_PHONE.
  • A thinner version of Llama with only en-gb resources, and CALL_PHONE permission.

You can find these versions in the Kebabapps Llama page on mediafire. I won't always remember to link to them.

Assuming all goes well, this version will be released to the market next week, maybe in time for Christmas, or maybe after if I'm not doing anything exciting for Boxing Day. You can also assume that me reading reddit will play some part in delaying the release :)

Version 1.2011.12.18.2207

  • OR/AND - Match any/all conditions
  • An alternative colour-blind setting for the coloured event list
  • Event list now colours events on a separate thread, so switching tabs responds faster
  • Events run through shortcuts now appear in event history
  • Fixed a forgetful Llama problem when using LlamaMap in low-memory situations
  • Now uses big red button for doing builds

[Insert the usual disclaimer about exporting Llama's data before installing test versions]


Sunday, 4 December 2011

As promised, here's a version of Llama that briefly moans at you for using MIUI ;) It'll pop up a notification when you change profiles, which you can then set to never appear again. I've also set the Llama Variable condition and action text boxes as auto-complete text boxes, so that you can use the variable names and values from your other actions and conditions.

Version 1.2011.12.04.1425

  • Framework for showing messages which can be marked as 'never show again'.
  • MIUI specific message when changing profile, which warns about permissions changes in MIUI.
  • Llama variable auto-complete text boxes

As usual, export your data before installing test versions, just in case you have to go back to the market version.


MIUI annoyance

I've just installed MIUI to tackle a bug with Llama not being able to set call volume. When Llama changes the volume, this message appears in the LogCat:

Phone Related Audio Settings Permission Denial: setStreamVolume() from pid=2266, uid=10041

This is related to a feature in MIUI which seems to automatically deny applications the call-related permissions, unless you opt-in to them (which I think is a good idea, but the implementation is not perfect). You need to do these steps to enable the permission:

  • Go to the super-user app
  • Go to Llama's app details
  • Set the misleadingly named 'monitor calls' to allow. Llama can now adjust the volume

What MIUI should be doing is notifying you that a permission was denied and offering you a way to fix it. That why you can see why an app is misbehaving. Instead, this just looks like Llama doesn't work properly, which is not very helpful for me (I get emails) and you (you have to email me).

MIUI should also split out the potentially privacy invading 'monitor your calls' permission from the more harmless 'change the volume of your ringer' permission.

I'll be adding a MIUI-specific bodge to Llama that will popup a message informing you how to fix it. Sadface .


Saturday, 3 December 2011

App start/stop condition and donations

Following on from the event-testing speed up two blog posts ago, Llama can now monitor the currently active application. You can now do interesting stuff like turning Wifi on when you open the browser, or adjusting the volume when you open a music app. Every time that you switch app, Llama will need to check if your events should fire. That's why the performance improvement was needed first, and why I've been putting it off until now :)

If you don't include an Active application condition, Llama won't waste time checking the active app. However, if you do use it, Llama will need to poll the ActivityManager for the current application. It's a shame that Android doesn't let an app receive a prod when the app changes. You can change the polling time in Llama's settings; the smaller the value, the quicker Llama will be able to respond, but it'll take more CPU time. If you set it to a high value, say 1 second, you should be fine. One second is probably good enough for most people, given that the start application animation takes about a second.

I've also implemented in-app purchases for donations. Plenty of people have wanted to donate more than 80p, so you are no longer limited to the one-off 80p Llama Donation that's in the Market. If you donate from within the app, you can finally uninstall the Llama - Donation app if you wish. The in-app purchases act as a separate marker that Llama checks to see if you've donated. (Not that there's much of a difference after donating... you just won't see the donate message ever again.)

You can donate as many times as you want, so you can add up the donations to your target value.

I've only tested this on my English, Great-Britain based phone, which shows the currency and prices in GBP. I'd be interested to hear if any you have problems looking at the donations page using a phone from a different country. Ideally, it'll show your country's currency if the Market supports it, otherwise fall-back to GBP.

Version 1.2011.12.03.2130

  • Active application start and stop condition
  • In-app donations
  • App notification icon condition now has an app-picker
  • Updated Polish and Slovenian translations, cheers guys :)

As usual, export your data before installing test versions, just in case you have to go back to the market version.


Tuesday, 29 November 2011

A bugfix for the previous post

Here's a fixed APK of the previous version. Delayed and repeating events will now behave correctly. Since Llama now only check events that are likely to be affected by a trigger, you may find your delayed or repeating events lingering about for a bit longer. They'll only be checked when their 'delayed until' or 'repeating at' time expires. They still won't run their actions if they shouldn't, but since Llama isn't constantly/needlessly checking them Llama can't remove them earlier.

It also now has the market's BILLING permission included so I can start working on an alternative way to donate. A lot of you want to donate more than 80p, which is very cool :) There's no UI for the donation at the moment, so it's just sitting there in the code not doing anything for now. If you're worried that I might try and ninja-bill you, then rest assured that you have to confirm an in-app purchases through the Android Market. It would be pretty dumb otherwise.

Version 1.2011.11.29.1700


Sunday, 27 November 2011

100,000 Llamas

The Android developer console says Llama has been downloaded 100,000 times now, and because it's a nice round number caused by the fact we have 10 digits on our hands we should celebrate! Although I'm not quite sure how to celebrate yet.

In the meantime, there's a bunch of new features to play with.

Version 1.2011.11.27.1700:

  • Audio becoming noisy condition, which may react faster than headset unplug or Bluetooth device disconnected on some phones.
  • Desk dock condition
  • Shutdown phone action.
  • Locale action plugin support
  • Speak action (requires Android Text-To-Speed engine.)
  • Calendar events can now filter by all day and busy/available.
  • Updates Minimalistic text widget when the phone boots, so that it isn't blank.
  • WiMax toggle should now work on more phones.
  • Llama no longer updates the vibrate mode if it hasn't actually changed (to prevent some superfluous vibrates on Samsung phones.)
  • Fixed calendar reading in Ice Cream Sandwich.
  • Speedier event tracking... Llama now only checks those events that are likely to be triggered when testing events, rather than checking all of them. However, this only makes about 200-300ms difference.

As usual, export your data before installing test versions, just in case you have to revert to the market version!

Download Llama - FYI - I've found a bug. Repeating or delayed events may not fire. If you use those, don't install it yet. Expect a fix later today.

Wednesday, 23 November 2011

A quick note about ICS and calendars

There's a problem with phones running Ice Cream Sandwich and the Market version of Llama, which is caused by Llama trying to access calendar events. This is because the Calendar API in Android was never officially released, so had to be implemented using unofficial API calls. Now in Ice Cream Sandwich Google have finalised a way of reading calendar events. Unfortunately, it's subtley different to how Android 2.3 worked, so Llama craps itself.

There's a test version that ignores the problem rather than crashing on the blog, but Calendar events aren't working just yet. I'm working on it :)

As usual, backup your data before installing the test version, just in case you have to uninstall and go back to the market version.

As an annoying note... Android give developers an emulator to test this kind of stuff. However, they don't let the emulator log into a Google Account, so you can't access a calendar! D'oh! If you'd like to lend a hand, get in touch by pressing the Llama-question-mark button in the app and emailing me. Ta!

Wednesday, 26 October 2011

Generation Changing Llama

After the semi-success of the 2G/3G test app, Llama can now change your phone between 2G, 3G and 2G+3G. This has probably been the most requested feature ever, however I've delayed implementing it for a couple of reasons:

  1. Your standard Android build doesn't let third party apps change the network mode. Unfortunately, Llama is still no exception to this.
  2. My previous network only supported 3G. This would have made testing a bit troublesome

This feature only works on Cyanogenmod roms. There's about 745,751 of you out there, so let me know if it's also working for you. If you haven't tried Cyanogenmod yet, are a bit geeky and don't mind potentially breaking your phone, I'd recommend installing it.

Back to the phone network thing (and if you aren't from the UK, you probably won't care). I'm now with giff gaff. If you click the link and activate a SIM, I get some cash. Nice. They're also cheap n cheerful: £10 a month for unlimited internet and unlimited texts, and these phone call minutes things... does anyone actually talk on the phone anymore?? When changing phone networks, you'll be connecting to a bunch of different phone masts, which makes all of that previous learning useless. This version also has a bulk remove feature that lets you delete all the cells, but keep all of the area names (and events) that they belong to. Then it's just a case of long-tapping the areas to relearn them.

Version 1.2011.10.26.2300:

  • 2G/3G
  • Updated German, Spanish and Polish translations
  • Bulk remove all cells, wifis, Bluetooths and map locations from areas (this is tucked away in settings)
  • Calendar events should now work on Honeycomb

And here's the link....

As usual, back up your data before installing this, just in case I've screwed something up

Wednesday, 19 October 2011

Noisy Coloured Llamas

This week I've been teaching Llama how to make noises. You can now select a Play a Sound action that will play a ringtone, notification tone or a piece of music.

I've also changed the way Llama handles its notification icons. The colours and number of dots are now separated, so you can have 'blue with 3 dots' and 'yellow with 1 dot'. This means you can use the dots to represent the volume of a profile and the colour to represent some other state. Since the icon drawing has changed, it also means that the profile lock icon displays as an overlay on top of the current profile, so you can see what the current profile is.

Unfortunately, Android requires each combination of colour and dot to be defined (thankfully not as a bitmap, using LayerDrawables). This means that I can't do stuff like yellow Llama, with 2 blue dots and 1 pink dot. Currently, there are 5 different numbers of dots and 10 Llama colours, as well as a locked and unlocked state. This means there are:

5*10*2 = 100 variations

If the dots could change colour too, there'd be about 1000 combinations. If each individual dot could change colour then there'd be a bigger number than I want to think about. I'll experiment with this day, but it might cause havoc.

The Llama notification icon action and profiles have been updated to let you change the number of dots and/or the colour of the Llama. You existing profiles and actions will behave as they did before. e.g. black/white with whatever number of dots, or coloured with no dots.

Anyways, the new version is here:

As usual, backup your settings before you install this version, just in case you encounter problems and have to return to the market version.

Sunday, 2 October 2011

New market version, and possible future 2g/3g toggle support

There's a new version on the market:

Version 1.2011.10.02.1100:

  • Repeating, delayed and confirmation events
  • Filter event list
  • Reminders make noises
  • Profile lock up to 24 hours
  • Llama variables (condition and action)
  • Wake screen when polling option
  • Wifi hotspot action
  • Screen off action
  • Change screen-lock password action
  • Queue event action
  • Speakerphone action
  • Alternative Mobile data toggle code

While I wait for the first set of abusive angry comments and helpful emails about bugs to arrive, I've decided to investigate 2G/3G toggling. I've put this off for the moment, because my phone network only supports 3G. However, in a months time I'll be switching to another network, so I'll appreciate whatever battery savings a 2G/3G toggle will provide.

I've thrown together a simple test app and am pleased to say it works great on my phone... a HTC Desire Z running CyanogenMod 7. However, I'm fairly sure the CM guys have tweaked their version of Android to allow the network mode to be changed without any special permissions being required.

I'd be interested to hear whether it works for you! If you decide to try it, let me know your phone and ROM.

Download 2g/3g test app - EDIT: This link is now correct, sorry!

Saturday, 1 October 2011

Nearly market time again

I've been using the Llama test versions for the past few weeks and am pleased with the stability, so I think it's time I finally put it on the market. I'll do it tomorrow unless I decide to go outside into the real world. So the final test version is here: 1.2011.10.01.1310

  • The wallpaper picker now works with QuickPic (and maybe some other wallpaper pickers that didn't behave exactly like the default Andorid 3D-ish Gallery app.
  • Profile editor slightly less rubbish... now disables things when the tickboxes aren't ticked. Expect an even less rubbish profile editor in the future.
  • Pressing the clear button in the notifications pull-down now sends a 'cancel confirmation' to Llama

Wednesday, 14 September 2011

Another beta

Some of the eagle-eyed guys out there have noticed there's been a new beta on mediafire for a few days. This brings the much requested feature of 'variables'. You can use conditions to set a certain state, which Llama will remember, and you can create other events that are triggered by or based on the states that you've created.
  • Variables
  • Fixed AndroidIntentAction not saving intent send type
  • Ending calendar events occur before starting calendar events
  • Option to wake screen while cell polling for phone models that I've learnt to hate
  • Event history shows details about delay cancels, delay starts and repeat cancels
As usual, backup your data before installing, just in case you need to go back to a previous version.
Version 1.2011.09.14.2240

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

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.


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


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 :)

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.

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.

Wednesday, 22 June 2011

Another week, some more features

I've been a bit busy with Llama, so there's a few more new features:

Version 1.2011.06.22.2120
  • Change wallpaper action (it's functional, but a bit rubbish at the moment)
  • Reminders suck less, you can actually clear them now
  • You can create events based of other apps' notification icons. e.g. Gmail, new sms, Google Talk (you'll have to enable Llama as an accessibility service
  • Kill with root action
  • Ability to ignore cells
I've also looked into some battery issues with the experimental cell polling. After upgrading to CM7, the Android System process occasionally "forgot" to let go of it's network-location wakelock, even though Llama told the system it was no longer interested in location updates. Let me know if you notice any improvements.

One massive oversight with my HTC Desire Z is the lack of LED control. I've previously owned a Motorola Milestone, which had a tri-colour LED. It was cool having different LED colours for Gmail or new SMSes. My Desire Z has no such LED. It has a green and amber LED, but these are mainly used for charging status. When my phone has an unread notification, it's green. However, if my phone is charging and is fully charged, it is also green, which means i have no idea whether I have a notification, or if my phone has finished charging. One saving-grace is that the Desire Z has a flashing trackpad LED. Unfortunately, this blinks very slowly when there's a notification, so slowly you'd hardly notice it. The trackpad can also blink rapidly if there's an incoming call. HTC need to start including tri-colour LEDs again.

So anyway, back to Llama.... Llama now lets you watch notifications and run actions. By using a GScript shortcut, you can run a script that starts the trackpad LED flashing as if the phone was ringing. I can now see when I have notifications a bit more reliably :) The GScript scripts look like:

Start flashing trackpad:
echo 3 > /sys/devices/platform/leds-microp/leds/jogball-backlight/brightness

Stop flashing trackpad:
echo 0 > /sys/devices/platform/leds-microp/leds/jogball-backlight/brightness

The events look like:
App Notification com.jb.gosms, Screen off -> Run a Gscript shortcut (trackpad blink)
App Notification, Screen off -> Run a Gscript shortcut (trackpad blink)

You can then use an event to turn them off:
Screen Off -> Run a Gscript shortcut (stop trackpad blink)

This basically replicates the functionality of LED me know and LightFlow using Llama events. I couldn't get either of those to work satisfactorily in CyanogenMod 7. Eventually, Llama may have a proper LED control action. It's still early stages and needs a lot of improvement (i.e not using GScript scripts, because GScript shows a console when it runs the script)

Finally, here's the link: Remember to export your data before you install it, just in case you have to roll back!

Monday, 13 June 2011

A thousand 5 stars and another test version

Llama received it's 1000th 5 star rating today, which is pretty cool. There's a new freshly compiled test version located here:

As usual, export your current settings before installing this version just in case you have to roll-back to an older version.

As well as some new conditions and actions, Llama now has a lock button on each profile's row in the list. This lets you quickly tap silent without having to do that infuriating long-press. I've actually had a few meetings in real-life work and it's been annoying me so I'm sure it's been annoying you! :)

Another notable change is that you can now run shortcuts. This may not seem that exciting right now, but you can now nag other app developers to support Llama (and the rest of Android) by using standard Android shortcuts. Creating shortcuts for Android is easy (for developers), and there's plenty of good examples of how to do it kicking about on the internet. It also means I don't have to write any boring documentation.
Some apps that immediately come to mind are:

  • Advanced Task Manager - lets you create a shortcut for it's kill applications action.
  • Gscript Lite - lets you create shortcuts to the geeky scripts you've written.
  • DropSpace - lets you start a sync to your Dropbox account
  • Browser - lets you open the browser at a web pages.
  • Music - lets you create a shortcut to a playlist, which starts playing immediately.
  • Llama - lets you define a number of actions that can be run, such as a shortcut to Llama that lets you define a number of actions that can be run, such as a shortcut to Llama that lets you define a number of actions that can be run, such as a shortcut to Llama that..... BOOM. (I've not tried this, nor would I recommend trying it :P)

Changes in version 1.2011.06.13.2240

  • Run application shortcuts
  • Run all applications, even those with two entry points like Maps and Navigation
  • Change WiFi sleep policy
  • Change haptic feedback
  • Create events based on enabling/disabling Airplane mode
  • Activate and lock profile button in the profiles list

Saturday, 4 June 2011

Noisy Contacts, sneaky Facebook

One of the most requested features for Llama was to be able to pick some Contacts that should be able to ring even when the phone is silent. The new version which does this is ready for testing :) Make sure you backup your current data, as this version adds some more stuff to saved profiles. If you have to downgrade back to the market version, the old version may crash because it's not expecting the noisy contact settings to be there.
Version 1.2011.06.04.1215

You can now specify a list of contacts for each of your profiles. You can also set a volume level that these contacts should ring at. When you receive a call from one of the contacts that you've picked, your phone will ring at the volume level that you've set.

This means you can potentially have two Silent profiles: one for work and one for home. You may want your Silent - Work profile to be active at work. This profile would have all of your work contacts, so that your boss can always get hold of you during working hours, however everyone else wouldn't ring and disturb your  meetings. Your Silent - Home profile would then be active at night. This profile would only have your wife and kids, so they can contact you in an emergency, while your boss's calls will be silent so he doesn't disturb you whilst you aren't getting paid.

Of course, there's nothing limiting it to silent profiles. You can use Noisy Contacts on a quiet profile, so that your phone still rings quietly for everyone else, but loudly for your family. You can also make it work the other way around. You can set up a profile that normally has the ringer on, and then set the Noisy Contact Volume to zero, so that the ringer is always silent for whoever you select.

You'll currently have to add people manually for each profile. I plan on improving the people picker by adding searching and Google contact group selection (the documentation on contact groups is fairly poor). Also, Facebook seem to deliberately block any app aside from the official contacts app from reading Facebook contacts stored on the phone. The HTC Sense Facebook app apparently works as expected though, but I no longer have Sense on my phone. If you want to add a Facebook contact as a noisy contact, you'll have to create a Google/Phone-only contact for them (and then merge it with the Facebook one to keep your contact list tidy).

Here's some info about Facebook being mean:

One day I'll put a page on this blog listing all of the limitations of Android and other apps (mainly looking at at you, Facebook) so you can prod their devs to fix any shortcomings and get Llama (and other Android apps) working better.

Llama doesn't do any special handling of the ringtone; it will just use whatever one is associated with that contact or the default ringtone. Make sure your silent profile doesn't switch to the 'Silent' ringtone from the ringtone picker. Instead, make sure your Silent profile is defined by setting the ring/vibrate/silent mode to Silent.

Also in this version:

  • 4G on/off switch. If someone could test that and let me know if it works I'd be grateful. I don't own a 4G phone :( If you want to send me a 4G phone for free, then get in touch :D
  • Some of you reported that the Ignore invalid cell/no signal stopped working, so this has a possible fix
  • Minimalistic widget stuff is back
  • Weird BROADCAST_STICKY force closes on MIUI should hopefully be fixed.
Please email me any bugs. Use the Llama-help button in the app or the contact developer button in the market. Cheers.

EDIT: This version will be on the market in a couple of weeks if no one finds any bugs.

Monday, 30 May 2011

Plugins be gone

So a quick follow up to the last post. When Llama updates Minimalistic Text Widget, it does so by sending a broadcast named com.twofortyfouram.locale.intent.action.FIRE_SETTING. This is what Minimalistic Text Widget looks for when it watches for updates. This broadcast also contains two pieces of information de.devmil.minimaltext.locale.extras.VAR_NAME and de.devmil.minimaltext.locale.extras.VAR_TEXT, which contains either llamaprofile, llamaareas, the names of areas or the name of the current profile.
A downside to this approach is that every plugin/app that wants to receive the FIRE_SETTING broadcast will receive it. It's then up to the plugin to decide what to do with the broadcast. A good plugin would check to see if the contents of the broadcast were not relevant and then ignore it. As it turns out, there are some plugins/apps that will perform an action upon receiving the broadcast, even if the broadcast wasn't meant for them. See edits below.

So for now, Minimalistic Text Widget support has been turned off. I can't act as the middle-man between someone that has a broken plugin and the developer of that plugin. Instead, I've kindly asked the Minimalistic Text Widget dev to support his own broadcast name. That way anything destined for Minimalistic Text Widget won't get sent to any other apps. Also, other new apps won't have to worry about weird stuff happening when they update Minimalistic Text Widget.
Many thanks to the Minimalistic Text Widget dev for his help!

EDIT: Looks like a really easy fix is to set the package and class name of the broadcast to the package and class name of Minimalistic Text Widget's broadcast receiver. But that's a job for another day. Now is sleep time :)

EDIT: This post was written during the initial-rage of unhelpful comments appearing on the market. After looking over the documentation of a Locale plugin, Llama shouldn't have been sending a broadcast to everything that watches for com.twofortyfouram.locale.intent.action.FIRE_SETTING. I've updated the Minimalistic Text Widget wiki accordingly, so now only Minimalistic Text Widget is targeted by the broadcast. Look at the latest blog posts for a test version.


I've had a lot of whinging about Llama doing weird stuff like turning off Wifi, running something called RadarDroid. I think it may be related to the updates that I'm sending to Minimalistic Text Widget, so I've removed support for it for the moment.

Sunday, 29 May 2011

Another month, another version

There's another new version on the Market today with some more lovely features.
Llama now sends a broadcast when it switches sound profile, so that other apps (such as Volume Locker) don't try to set it back to normal. Llama now also has it's own feature to reset the profile immediately if you accidentally change the volume. Previously, you would have had to have the 'lock profiles on volume change' tickbox ticked and the interval set to 1 minute.
One of the problems with developing Android stuff is the number of different devices out there. I'd say the biggest issue is different screen sizes. Sure there's an emulator that lets you check, but it's slow and horrible. It may be fine if you have a whole team of people working on an app and a dedicated QA team, but I'm just one bloke killing some time. If anyone wants to donate a HTC Wildfire or Xperia X10 mini that'd be awesome :D Anyways, I've made the larger dialogs (such as the calendar event condition and vibrate action) scrollable. It's the easiest solution that seems to work, rather than redoing the dialogs.
One of you guys suggested probably my favourite improvement: colour the conditions in the event list, so that you can see which ones are true and false. You can turn this on in the settings, as I'm guessing some of you will 'OMFG, its ugly' the comments if you couldn't turn it off :P
Red means an event condition is not currently true, and green means a condition is currently true. A green underlined condition means that condition triggered an event last time that Llama was triggered to check the events. It's possible to have an event who's conditions are all green, but the event actions (e.g. Wifi on) don't match up with the current state. That's probably because you've got another event that changes the action, but with another set of conditions. e.g:
  • Enter Work, Between 9am and 5pm -> Wifi On
  • Charging -> Wifi Off
If you were at work after 9am, both Enter Work and Between 9am and 5pm would be green and Wifi would be turned on. If you then connected your charger, Enter Work and Between 9am and 5pm would still be green, but Wifi will have been turned off. To fix this, you should do something like:
  • Enter Work, Between 9am and 5pm -> Wifi On
  • Charging, Not at work -> Wifi Off
That way, the Wifi Off action will never occur when you are at work. Also, you may never see the underlined green conditions. It is only underlined if the trigger matched the condition last time that Llama checked; it's possible that Llama checked events for another reason shortly after. e.g. in the example above, Llama may have received an 'Enter area' trigger, so Enter Work would be underlined. Shortly afterwards, you may have unplugged your headphones causing Llama to check for any events with a 'headset disconnected' trigger.
There's also some inital support for the Minimalistic Text Widget. Use the custom layout with a 'Locale variable'. The two that Llama current supports are:
  • llamaareas - Shows all of the current areas, comma separated
  • llamaprofile - Shows the current profile
I'm guessing you'll want more. e.g. Only 1 area, so that the widget doesn't get flooded with text, or maybe one that says 'Profiles locked'. Thoughts? Suggestions via email please.
There's now a wifi connected/disconnected condition so that you can specify when you're at home or work without any polling. Bear in mind your Wifi settings may turn off Wifi when the screen is off. Change this by going to the Wifi settings and pressing Menu, then advanced, then Wifi sleep policy.
There's also a media button action, so you can send play/pause/next/previous. Unfortunately, Android version before Honeycomb only support a combined play/pause action, so if you choose to use such events, you'll need to guard against any accidental pausing by using a 'music paused' condition in your events.
And finally, there's a USB storage action. So you can automatically turn on USB mass storage when connected to USB. You can also create a Llama shortcut that will toggle USB mass storage on and off... no more having to pull down that bloody notification bar, then tapping the notification, then pressing the button. Who came up with that sh**?! I know there's widgets out there that do something similar, but there's no denying it, widgets slow down home-screens while they load.
Also, I'm fairly bad at posting the changelogs anywhere but the market, and the old ones disappear when a new version is posted. So here's the last two:
-Works with Volume Locker
-Option to reset profile on accidental change
-Screen on/off condition
-Different notification/ringtone volume bugfix for some phones and option to never retick the 'use incoming call volume for notifications' box
-Minimalistic text widget support (see blog)
-Some dialogs now scroll for small screen devices
-Event list condition colouring option
-Usb storage action
-Media button (play/pause/etc) action
-Wifi connected/disconnected

-Russian, Croatian and Italian translations. Cheers guys :)
-Turn screen on action
-Background errors/warnings can now be shown as notifications rather than toasts. Can also hidden
-Experimental cell polling tweaks
-Experimental WiFi polling tweaks
-Day of the Week condition behaves between 00:00 and 00:01
-Calendar read errors now shown as errors (turn off Notification Errors if you get a lot of these)
-Fixed some crashes
-Fixed some freezes

Monday, 25 April 2011


Llama now speaks Russian. You can download it from here:
It'll be on the market next weekend. In the mean time, here's what happens when you Google image search for ламалама&um=1&ie=UTF-8&tbm=isch
There's also a new translations page on the blog:

Sunday, 24 April 2011

New market version

Just to a quick note to say that the versions that were the Beta versions are now on the market. The map addon for Llama has also made an appearance on the market. Thanks to everyone that's emailed me about translations. I'll send out the list of phrases depending on the feedback of the market release. Please email me about any issues you find. There's an email button in the app now. Cheers all!

Monday, 18 April 2011

Who's bored and wants to translate stuff?

Well I missed my own deadline for the market release, but at least I spent the extra time doing the most tedious and boring part of any piece of software... copying the pieces of text into resource files so that it can be translated into different languages. When I first started writing Llama I never meant to release it to anyone, so I didn't bother with any localisation. It also wasn't supposed to do half of the stuff it can do now! It was literally to just shut my phone up when I got to work. Ah well, hindsight.
If anyone fancies doing some translations for me, then get in touch (the email address is in the app). There's a list of 580 phrases that need translating :D otherwise, I'll chuck it through Google translate and see how that goes. In the mean time, there's a new beta with the localisation ready (but only English at the mo) and some minor bug fixes.
I've also had no luck getting Llama to force Android to update its location without the screen having to be on. I blame Google. Bad Google! Here's an issue for you all to follow:
I had attempted to read the radio log cat, but it appears that the logs don't update with any juicy information that give away the current cell ID. A future version of Llama will let you blink the screen every 5 mins or so, so that the location updates. Maybe I can set the screen brightness to zero to fool it into not actually turning on the screen. Meh.

Sunday, 10 April 2011

Nearly time for another Market release

There's a fresh version on the beta page. The Llama UI has received a bit of a revamp, so it now looks a bit more iPhoney with a toolbar rather than relying on the menu button. This should make the functions easier to discover, but also gave me space to put some Llama tips and tricks. There's also finally a link to this blog and my email address in the app. Hooray!

Sunday, 13 March 2011

Oi, where's my weekly update?

The past couple of weeks I've been spending the beer money, but I've also added a couple of much requested features:
1. Using nearby wifi networks and Bluetooth devices to determine location
2. Maps

These two features have meant a lot of Llama's internal guts have been changed* around and tweaked to allow different types of 'beacon' to be used. You can now get Llama to turn your Wifi on every 5 minutes to have a look at what Wifi networks are nearby. You can then add the Wifi network to an area in a similar way that you do with phone masts. You can add it by name (to encompass your entire organisation's group of Wifi access points) and you can also add them by their unique MAC address if you just want the access point next to your room.
The same thing can also be done with Bluetooth devices. You can optionally tell Llama to briefly enable your Bluetooth every 5 (or so) minutes to see who and what are nearby. Unfortunately only discoverable Bluetooth devices can be found, and most Android phones limit the length of time that they are discoverable for. However, other phone models and computer can be discoverable forever. This means you can identify if you are within range of your PC/laptop, and also if you are within range of your friend's mobile phone (and also your friend, assuming you haven't stolen their phone).
As well as these methods, you can also use Android's built-in location APIs to determine your location. This has the advantage of being able to get a latitude and longitude, which you cannot get using plain old cell IDs or Wifi networks. If you choose to use Android's location API, you can define areas according to positions on a map, using Llama's new map addon**. If you have Wifi permanently enabled, Android's built-in location APIs will use nearby Wifi networks as well as Google's Wifi data to find your location more accurately. It can also use GPS, but I wouldn't recommend it.
These new settings can be found in the 'Experimental' section of Llama's settings. They probably stay in there til I get some feedback from people, and also until I rework the UI to make it less complicated (I'm thinking some kind of step-by-step wizard driven thing to get people started.) Let me know your feedback. As usual, if it force closes, can you email me the LlamaLog.txt that will have appeared in the Llama folder on your SD card. Also, these new features will affect your battery life as Llama has to wake up your phone while its scanning for nearby Wifi and Bluetooth devices.
As well as the location updates, there's also a headset connected condition and a vibrate action.
You can get the new version from the BETA page
* They are quite big changes too, and I'm not happy releasing it to the market and pissing off 3000 users in one go :)
** Llama's map addon is separate because otherwise the main Llama app would need Internet permissions. I'm not sure how people will react to having both the 'get accounts' permission (used for syncing) and the internet permission. You get a lot of people whinging on the market about simple things like that.

Sunday, 6 February 2011

Sleeping CPUs and lazy Llamas

A new version of Llama is now on the Android market. This has an experimental feature which may help some of you that have been experiencing a minor problem. Some people have reported that Llama doesn't run event actions until they've turned their screen on. I'll try and explain what's going on.

It happens because when the screen is off, the phone puts its CPU to sleep. This saves a considerable amount of battery life; if the screen is off, there's probably nothing going on, so the CPU is turned off. The phone will wake the CPU when a phone call comes in or a message arrives. Applications can also request that the CPU wakes every 15 minutes, so they can check your email.

Previously, Llama was different: Llama only asked Android to tell it when the cell changed. If the cell changed when the CPU was turned off, Llama wouldn't be able to process the change. However, when a phone call or messaged arrived (or you turned the screen on) Llama would spring into action and catch up with the cell changes then run whatever actions were necessary (such as turning the volume down before the phone rings).

Normally, this is exactly what you want, and for most event actions this works fine. However, some people wanted Llama to turn on their Bluetooth when they left home. Since they never turned the screen on manually, the CPU never woke up to turn on their Bluetooth. This brings me onto the most recent change in Llama: Cell Polling. It's now possible to check every minute or so to see if the current cell has changed. It's an experimental feature at the moment, so I'd like to hear if you think it helps.

If you enable Cell Polling, you'll be asking the operating system to wake up the CPU for a short period of time so that Llama can check the cell ID. This uses Android's partial wake locks. I left this running overnight for about 8 hours, and Android's hidden battery history screen* showed the Llama only held onto a partial wake lock for 2 seconds in total. I doubt this will have any major affect on battery life if you turn it on, but as I said, the majority of you won't need it :)

Now for some non-phone-geeky stuff. The new version now lets you reboot your phone if you are rooted, which may be helpful if you want to reboot once a week in the middle of the night. Be careful with your event conditions; you don't want your phone rebooting every time you get home. I've tried to prevent any horribleness by requiring that your phone has been on for at least 5 minutes, so that Llama can't trigger a reboot immediately after your phone has just rebooted. This should give you plenty of time to delete an event that's incorrectly configured.

There's also Bluetooth connection and disconnection events, so you can now easily change profiles when your Bluetooth headset is connected, and there's also a 'Not in area' condition to give your events a bit more power. You can now view what events happened and what caused them in the Event History log. To view it, go to the Events tab then press Menu and Event History.

Finally, for anyone that's interested in how free apps perform on the Android market, here's some stats. Hopefully you'll find this useful if you want to put any apps on the Market. I couldn't find stats like this when I was deciding to release Llama:

Days on market:
 about 4000
Active installs:
about 2000
Support emails:

* to view Android's battery history, type *#*#4636#*#* in the phone dialer, then choose battery history and Partial Wake Usage. (more info here)

Recent changes in version 1.2011.02.06.1300
  • Event History Log (go to Events tab and press Menu)
  • Reboot action (requires root)
  • Bluetooth device connect/disconnect condition
  • Car mode condition
  • Not in area condition
  • Optional cell polling to wake the CPU every 2-3 minutes, to catch every cell change. This might affect battery life a tiny bit if it's enabled.
  • Fixed a whole load of stuff to do with how the service works

Monday, 31 January 2011

It's been a couple of days...

So firstly, thanks to all of you for downloading Llama and thanks for your positive comments and feedback. I've updated Llama a number of times since it was first put on the Android Market. The change log is below. It was at the top of AppBrain's hot apps for about half a day which I was pretty pleased with, so thanks to them and everyone that visited the AppBrain page too! Also thanks to the peeps over at for their feedback. Finally, a massive thanks to you guys that have donated! I now have enough for one pint :) Cheers

Here's the changes up til now:


  • Multiselect for Enter and Leave area conditons. These are treated as ORs. e.g. Arrive 'London Office' OR 'Cambridge Office', change profile
  • Change Brightness action
  • Time Between picker now scrolls horizontally for small screened devices
  • Fixed duplicate naming of areas, profiles and event
  • Fixed rotation problem in event and profile editor
  • Event editor doesn't let you add the same condition/action more than once
  • Bluetooth permission as well as Bluetooth_Admin permission
  • Ignore No Signal/Unknown cell option now defaults to on, since that's what most people would probably want
  • Warnings rather than Force Closes when you forget to choose an area to enter/leave or a profile to change to
  • Music playing/paused condition
  • Clone events
  • Max volume sliders now read the correct max volume from the phone. Not all phones are created equal.
  • Notification volume is now part of profiles
  • Fixed some force closing related to profiles and APN

Friday, 28 January 2011

Llama - Location Aware Mobile Application

Llama is a Location Aware Mobile Application.

It uses phone masts to determine your location, so that you can change your ringer, vibrate and ringtones depending on where you are as well as the time of day. Llama provides you with sound profiles so you can quickly switch between quiet, loud, silent and normal sound settings.

It can also run applications, turn your wireless, Bluetooth and APN mobile data (GSM only) on and off.

NOTE: Since GPS is not used, the location tracking is limited to the number of phone masts in your area. This will work best if you live in a populated area.

Wednesday, 26 January 2011

Hooray! My first app - Gmail Label Speaker

So after playing around with Android for most of a year, I've decided to publish an app. It's pretty simple, but does the job.

Gmail Label Speaker

Gmail label speaker will speak the name of the label when you receive a new email in your Google mail account. It will work best if you have Gmail filter you emails into Gmail labels. e.g. create a rule so that all of your Facebook notifications get placed under a Facebook label, or so that your friends' emails get placed under a Friends label.

If an email arrives in your inbox it will simply announce 'Inbox', or if an email appears under multiple labels it will announce each label.

- This app requires the Android text to speech engine to be installed.

Show me the app on the market!