Monday, 17 December 2012

Nearly market time again

A few small changes before a market release which I hope to do soon. The good thing about Christmas time is I have lots of time off real-work, so I can do stuff like this :)

Llama.1.2012.12.17.1125

  • Fixed cryptography issue with Android 4.2 and screen lock password action
  • Updated German translation
  • Time-between timepicker container now scrolls horizontally if there's not enough vertical space. On Jelly Bean the timepickers themselves are vertically scrollable, which causes problems when they are placed in a vertically scrollable container
  • A little bit of work done to multithreading Llama. It's still disabled by default, but when enabled it'll pop up a 'thinking' dialog when Llama's service is busy, rather than freezing the UI and showing a horrible ANR dialog. Not all parts of Llama run on the right threads at the mo, so this will still be crashy when enabled.
  • No longer spams the crap out of logcat... which isn't much use any more since it requires root to grab every log message in the system
  • Fixed background colour of some list dialogs when you have a weird system colour theme

As usual, backup your settings before running test versions, just in case things are broke.

Download (link fixed, it was pointing to the English-only version, rather than the multilingual version)

Thursday, 6 December 2012

Llama bean point one one

Not much exciting... a few bug fixes and a tweak

Llama.1.2012.12.06.1244

  • Notification is now low priority for Jelly Beaners
  • Fixed a stupid that was stopping call-state from working. (I turned it off and forgot to turn it on again)
  • Dodgy shortcuts/intents no longer crash Llama when it tries to run them

Export settings before installing, etc etc etc :)

Download

Monday, 3 December 2012

Llama Bean point one

This version mostly contains some more bugfixes for Jelly Bean 4.2+. Here's some detail for my fellow nerds.

  • Android now reports WifiInfo.getBSSID as 00:00:00:00:00:00 when there is no WiFi network connected. Previous versions of Android return null.
  • Accessibility services now require android.permission.BIND_DEVICE_ADMIN permission (thanks for the tip Patrick C!).
  • The following broadcast intents now required an 'exported' BroadcastReceiver: android.bluetooth.device.action.ACL_CONNECTED, android.bluetooth.device.action.ACL_DISCONNECTED, android.bluetooth.device.action.FOUND, android.bluetooth.adapter.action.DISCOVERY_STARTED and android.bluetooth.adapter.action.DISCOVERY_FINISHED.

In addition to that stuff, Llama now also lets you increment, decrement and toggle variables as part of the 'set Llama variable' action. Another user mentioned that Samsung phones now moan whenever an app tries to use a http:// intent. This was causing problems for Llama's NFC functionality, since it was listening for NFC tags tagged with http://llama.location.profiles/nfc. Llama will now format tags as the rather nonsensical llamaloc://llama.location.profiles/nfc. Any existing tags will still work.

Llama.1.2012.12.03.2145

  • Variable increment/decrement/toggle
  • NFC now writes as llamaloc:// rather than http://
  • Play sound action can now optionally store sounds are direct path, rather than content URIs with flakey Media database IDs which change between ROMs/factory-resets
  • Fixed wifi network connection check for Wifi Off (if not connected) action
  • LlamaAccessibilityService permission added for 4.2
  • Bluetooth ACL intents now directed at an exported BroadcastReceiver, so it behaves in 4.2. This fixes Bluetooth conditions, and experimental the Bluetooth locations

As usual, backup your settings before installing. If anyone still has an Android 2.3 device lying about I'd be interested to hear if the changes to the BroadcastReceiver affected anything. Ta!

Download

Wednesday, 21 November 2012

Llama bean

This release fixes a couple of problems with airplane mode and Wifi in Jelly Bean 4.2.

First off... the Wifi one. Llama stopped being able to tell what Wifi network was connected, which also had the knock-on effect of not knowing when a specific network was disconnected. This is because the API now returns the network name in double-quotes. My phone (which is still running 4.1.2) doesn't have the network name in double-quotes. Llama's simple string comparison was failing. Another crash was caused by a wifi network being able to have an empty-string named Wifi network. Easy to fix, lets move on!

Airplane mode now requires root. Yep, you read that correctly... an API that has been really simple to use and implement since Android 1.5 (or at least 2.1 when I first started coding for Android) now requires you to use root access to change it. Who knows why? Maybe it was deemed a security risk. I can live with that. What I don't understand is why there is now no way for normal apps to change it. People like Android because they can customise and use apps to automate airplane mode. Llama didn't originally change airplane mode, but you guys asked for it. People want to change airplane mode Google!

There should be a standard Android permission that lets apps change airplane mode, however everyone knows no one bothers to read the permissions on the market, so that won't help. What should really have happened is that airplane mode should require Device Administrator access, like the lock screen or turning off the screen. That way people will be forced to confirm what apps can change airplane mode when they first use that action, rather than having to root their phones.

Oh well, mini rant over.

Llama.1.2012.11.21.2235

  • Airplane mode now uses root in Android 4.2+
  • Fixed wifi name connected/disconnected problem
  • Fixed blank-named wifi crash
  • Fixed active apps list being null rather than empty crash
  • Fixed stupid bug when delay was less than a minute
  • Llama now broadcasts com.kebab.llama.VARIABLE_CHANGED intent on changes
  • Text entry dialogs now open keyboard automatically. Yay!

As usual, backup your data before using test versions just in case you need to revert to the market version.

Download

Tuesday, 23 October 2012

Half-done Holo Llama

It's been waaaaaay to long since the last blog post. But I haven't just been twiddling my thumbs. This version has a number of new features. You can now set event delays in seconds. This involved a number of fairly evil changes to Llama's internals, since before everything was aligned to the next minute. It's been running fine for a couple of days though.

Llama can now format NFC tags by stuffing a http://llama.location.profiles/nfc URL in them. This is needed so that Llama doesn't have to be the foreground app for it to grab a tag. Otherwise you may end up with Llama and another app fighting over who should be in charge. You can of course overwrite the tag once you no longer want to use it with Llama.

Llama's Android Intent action now lets you set extras, which means you can pass more nuggets of information to third party apps.

And finally, I've finally set the theme to use Holo if it's available (API level 11, or Android 3.0 for the non-developers among you). This means Llama looks a bit different, and that the positive/negative buttons on dialogs have swapped around. This may take some getting used to! There's no action bar yet, and the tabs still look like boring tabs, but I hope to make Llama all nice and Holo-y.

Llama.1.2012.10.23.2126

  • Better NFC support... NFC tags can be 'formatted' for Llama
  • Half-finished-Holo UI
  • Intent actions can have extras defined now
  • Some bug fixes related to Wifi
  • Override number of max event recursion (when variables change, Llama checks events again and has a safety switch so it doesn't get stuck in a loop)
  • Override number of saved cells and event history

As usual, export your settings before installing this version. It does have a fairly hefty change to Llama's internals regarding the time. If you rely on Llama, maybe give it a week or so just in there's any bugs.

Download

Tuesday, 7 August 2012

Ooo, a social Llama

Three new things for Llama: mobile data conditions, LlamaTone rate limiting and "social" sharing. Gotta love that stupid buzzword.

LlamaTone rate limiting means that you can set the ringtone for your GTalk app (or any other app) to a LlamaTone, and then have Llama limit how often that tone gets played. e.g. if you have a LlamaTone limited to 5 minutes, and receive a message at 9:00am, your GTalk LlamaTone will play. When you receive a message every 5 seconds later until your friend finally shuts up at 9:03am it won't make a noise. Llama will prevent the tone from being played until 5 minutes after the last message in the burst of messages. That means you won't hear anything until 9.08am. Maybe 5 minutes is too long, but you can adjust the number of seconds to whatever you think is comfortable. You'll need to edit your current profile to add a LlamaTone if you aren't using any already.

The social sharing lets you copy an event's conditions and actions as a URL. You can then paste this wherever you like on the internet, and people will be able to reuse it. Tap and hold an event to start Android's sharing intent, which will let you share it to most apps. Install a handy 'share to clipboard' app to copy it to the clipboard. A Llama URL looks like:

http://llama.location.profiles/[event-group-name]/[url-encoded-event]

The format actually supports multiple events, but the UI in Llama doesn't let you create these yet. You can hack your own by sharing two events and joining the last bit together:

http://llama.location.profiles/[event-group-name]/[url-encoded-event1]/[url-encoded-event2]/[url-encoded-event3]

Llama uses http:// rather than creating its own llama:// protocol, so that the Gmail app (and probably some others) automagically create a hyperlink that you can click to start Llama. The downside to this is people that don't have Llama installed on their phone will get a server not found error, or maybe a search page. Hopefully noone ever buys the .profiles domain :D

You'll be asked to confirm the imported events, so internet-numpties don't go around setting your volume to loud, or turning your screen off, or something horrible.

Llama.1.2012.08.07.2115

  • LlamaTones can now be rate limited
  • Share Llama events as URLs and click Llama URLs to import
  • Mobile data enabled/disabled condition
  • Mobile data connected/disconnected condition

As usual, export your Llama data before installing test versions

Download

Sunday, 10 June 2012

Roaming Llama

This version of Llama has a roaming condition, so you can perform events when you enter or leave roaming. Unfortunately, my phone only lets me use one network, so I can't see if it works properly in all situations. If someone could install it and let me know how it works, that'd be great.

Llama.1.2012.06.10.1501

  • Roaming condition
  • Chinese translation! Thanks athena-秋风
  • NFC bug fix... the invisible NFC activity that gets launched when you place a tag on your phone was lingering around longer than it should have
  • Ability to delete named NFC tags in Llama's settings
  • You can now disable Llama's NFC watching skills in Llama's settings, if you want to use some other NFC app

As always, export your Llama data before installing it just in case you need to go back to the market version.

Download