The result of a blogging accident

The Pepsi Challenge, Day 5

This post is the second part of the series. Day 2 (part 1) is here.

So Android has this “accessibility” feature that lets you hang up on a call by tapping the power button.

Except what happens if you’re on a call, the screen turns off (say, you’re using the speakerphone, it’s on a table). How do you turn the screen back on?

You’re right! The answer is: you can’t! Instead it helpfully always hangs up on your caller.

Should only hang up on people with that button if the screen is already on. Not if it’s off.

Of course, this isn’t if during normal use the phone doesn’t decide to turn the screen back on when it’s held against your face, start pressing the hangup button then get the touchscreen “jammed” because of persperation.

The Pepsi Challenge, Day 2

(Despite this being named “day 2”, this is the first part.)

My normal phone arrangement consists of an iPhone 4 and a Nokia N900. iPhone gets my main SIM card for calls and the majority of my web browsing, N900 gets a mobile broadband SIM card for SSH, and other mobile Linux usage that doesn’t require a full laptop. Unfortunately the N900 is starting to show age, and I would use it as a primary phone, if not for the lack of UTMS-850 support that I require, and living in a blackspot for all carriers but Telstra.

Recently, a friend challenged me to put my Android trash-talking where my mouth was, and loaned me a Nexus S for a week, Google’s previous flagship Gingerbread phone. It’s okay – he has to use a HTC Mozart (a Windows Phone 7 device). In both cases we’re using devices that are released in late 2010, so they’re now showing their age.

I should point out from the start that he loaded the latest Gingerbread CyanogenMod ROM onto his phone, having failed to get an Android 4 CyanogenMod ROM to work (it popped up lots of crash messages). He got the Mozart with some custom ROM made by some Russian that I found on XDA developers, that gave it Windows Phone 7.5 (instead of 7.0) as well as all the Nokia applications, effectively turning it into a poor man’s Nokia Lumia phone. In both cases the phone is running a custom ROM with various enhancements not available in the stock ROM, and are rooted and unlocked – it’s a fair fight.

My friend attempted to load an Android 4 ROM on the device which didn’t work properly at all, with all the applications crashing. After loading the previous stable Gingerbread ROM instead and attempting four times to get my microSIM aligned in the slot, I was ready to go.

Immediately I’m told “download ConnectBot and Hacker’s Keyboard”. Okay. Done that. Installed it. The nice part of this is I don’t think it required any special sideloading trickery to get these things on there, and now I have a Dvorak soft keyboard.

I also notice there’s a big difference between this and my co-worker’s Samsung Galaxy S, which has an entirely broken build of some custom Android ROM on it. Talking my friends who use Android, CyanogenMod seems the way to go, and every one of them has loaded this onto their device. Manufacturer’s custom ROMs don’t last long.

Playing with it, there’s a nice complex “permissions” system for Market applications. I like this. But the problem with this system is it’s “take it or leave it”, there’s no way to revoke individual permissions to applications. I’m told later that there is infact a way to do this with CyanogenMod’s hacks, however it means temporarily granting applications the full requested access, and there’s no guarantee that the application won’t crash.

If I was to “fix” this, I’d force every Market application to either have an option to degrade gracefully in the absence of functionality, or give it access to a subset of or false information. For example, an application that wants access to your contact list may be granted access to an empty contact list just for that application, or only certain groups of your contacts. It could also push writes to the contact list to another list entirely, or allow you to prompt on those. In the end the applications that leak your entire contact list to third parties would be exposed, shamed, and removed.

The default homescreen, while it looks cute, I’m told uses a lot of battery life. It also lags the interface a lot. In fact, even with the fancy homescreen, the phone is still very unresponsive, and UI transitions are choppy. This is the price for running your UI in a virtual machine.

The calendar widget doesn’t appear on the home screen by default – almost like the calendar is an afterthought. Several UI problems present themselves, all of them are fixed in Android 4:

  • The homescreen applet only shows your next appointment, but still lets you occupy large amounts of screen space to hold the applet.
  • When you want to edit an appointment, the only way to do this is by a context menu. There’s no edit button that’s just shown, despite loads of space to put one.
  • When you actually edit that appointment, the button order is: Done, Cancel, Delete. It is very easy to confuse “Done” and “Delete” (who reads labels), and there should be a very obvious cue that you’re about to do a potentially disasterous operation. As an example, on the iPhone, delete buttons are marked in red.

I’m having a lot of reception problems with the phone at home on data, it seems to be using Telstra’s GSM-900 GPRS network (despite being connected to WiFi). The 3TELSTRA UTMS-2100 network has patchy coverage at best at my house, and the lack of UTMS-850 on this version of the phone is really starting to show a problem. I imagine this is only going to get worse once I try to teather with it. There is another version of this phone that supports UTMS-850, however this is at the exclusion of GSM-900, meaning it won’t work on other Australian mobile networks.