Have issues with the Nexus 5 or Android 4.4 KitKat (we know you do)? Well, Google has iterated its way out of many of those issues while also polishing a few other things, rolling out Android 4.4.2 recently. We had actually been working on What's Really New in Android 4.4.1, but with the update to 4.4.2 close on its heels, we'll be discussing changes from both updates.
The hallmark of the 4.4.1 update, as described by Google, is camera enhancement for the Nexus 5. One of the things reviewers consistently harped on when looking at the Nexus 5 was subpar camera performance. Much of this was not hardware related - after all, the Nexus 5 has an alright sensor and OIS built in. The largest issues were with software and processing - the app took too long to open, focusing was slow and inconsistent, and once you did capture a photo it simply wasn't as excellent as Google's admittedly well-produced ads would lead you to believe. But 4.4.1 made that better.
Camera improvements weren't the only thing present in 4.4.1 (and subsequently 4.4.2), though. We've dug around the updates a bit and have collected some of the other notable changes and enhancements within. We'll start with the camera, and then move on to everything else. For the purposes of this post, we've narrowed it down to some of the more interesting yet less-discussed features, but you can find a full developer's changelog (listing each and every commit for 4.4.1) at the link here.
The Camera (Nexus 5)
The headline feature of the 4.4.1 update (for the Nexus 5 anyway) was camera enhancement. In many reviews of Google's latest Nexus, the camera was one of the device's primary downfalls. Besides the camera app's idiosyncrasies, long startup time, and less-than-stellar interface, many complained of slow focus speed, and image quality that just wasn't as good as they'd hoped. Expectations were high for the camera after Vic Gundotra's famous "insanely great" comment, and it looks like Google's begun the process of healing the Nexus camera experience, though the unreleased Camera API is still a work in progress.
In an interview with the Verge announcing the update, Director of Engineering for Android David Burke explained that the Nexus 5 with its OIS camera made a trade-off, opting for slower shutters and reduced gain to obtain a better image, rather than opting for speed and efficiency.
Besides behind-the-scenes tweaks to image capture, camera startup (which was reduced by "about 250ms"), and image quality, there's a user-facing change: when shooting images in HDR+, users will see progress indicators everywhere. This is helpful, since the previous behavior (a two-step process with the initial screen-flash capture animation followed by a second sound) was unclear, and made the process seem slower than it actually is.
One last thing - 4.4.1 also seems to have added new camera resolution options. Added to the list are 2MP (16:9), 1MP, and 720x480px.
Squashed Bugs and UI Fixes
As you might expect, 4.4.1 also came with plenty of fixes for bugs, and even some of the UI/UX errors we recently pointed out in Stock Android Isn't Perfect.
Bug: Hijacked Sharing
In the initial release build of KitKat, there was a strange bug that emulated the "always" app picker behavior, even in certain cases where the user had not chosen a default app. We discussed this in a recent Bug Watch, and it looks like it's been fixed. Commit 34d41e9 explains the now fixed behavior for highlighting preferred apps and skipping directly to their send intent only when the "always" button has been selected in the past.
Bug: Exchange Mail
As we discussed in another Bug Watch entry, many 4.4 users were plagued by Exchange mail problems, from not being able to set up a connection to constant sync errors.
There are tons of tweaks to Exchange in the 4.4.1 update, fixing legacy problems, performance issues, and according to many exchange users fixing woes from 4.4. You can see all the changes here.
Bug: SMS DOS
A particularly unnerving SMS vulnerability, by which Nexus phones could be rebooted or denied cellular connectivity, was squashed with the 4.4.2 update. The bug, which Cody detailed here is essentially a denial-of-service vulnerability by which flash messages (messages that display immediately on screen, typically used for emergency notifications) pile up and cause some unsavory side-effects. Over a year since it was first reported to the Android Security team by Bogdan Alecu, the bug is finally fixed, as confirmed by JR Raphael.
Bug: Seeking On the Lock Screen
In 4.4 KitKat, long-pressing the pause button on the lock screen's music widget (or other media widgets that support this gesture) brought up a seek bar. The only issue was that attempting to manipulate the bar yielded no results, and letting go would fling your selection of lock screen widgets to the right, severely disrupting your experience. Thankfully this bug has been squashed.
In KitKat's new dialer, if the user called up the dial pad, the only options for getting rid of it were to either hit the back button or perform another action like placing a call or hitting a card. In 4.4.1 however, a piece of code was committed to let the user simply tap in an empty area to dismiss the dial pad with a slick animation. This is a small touch, but one that polishes the dialer's UI just that much more.
Transparent System Bars on the Lock Screen
Users of the "Google Experience Launcher" on the Nexus 4 (and Nexus 7) finally have transparent bars on the lock screen with the 4.4.1 update. This is thanks to a commit that turns the bars on for the lock screen by default (though Nexus 10 users will still go without). While the launcher still isn't available for all devices (or officially available for even the Nexus family), it's clear that Google's working on making it compatible with the Nexus devices, and users can finally enjoy the transparent décor just like Nexus 5 owners.
Status Bar Icons
In Stock Android Isn't Perfect, we pointed out that KitKat's status bar icons didn't quite line up. The apparent baseline for icons was often a couple of pixels below where the icon actually rested, and the clock wasn't vertically aligned with other icons. The clock still isn't quite aligned, but for the most part, status bar icons now line up.
More "Background Protection" In Recent Apps
Speaking of the status bar, it got more "background protection" when viewing recent apps in the update to 4.4. Essentially this means the translucent gradient behind the bar is now darker. You can see the contrast between the appearance of the status bar on the home screen and in recent apps below.
In the Quick Settings panel, each quick setting gets its own icon, an abbreviated visual reminder of the functionality that lies behind the tile. In 4.4.1, the Settings app got a new, gear-shaped icon, and with that came the simplistic version of the icon for the QS panel. With 4.4.1, the icon got refreshed again, adding a ring to the simple white gear. Whether it over-complicates the icon visually is neither here nor there, but it's different.
Matching Translucent Décor for Dessert Case
This isn't a huge tweak, but the way Android handles system bars for the immersive view of Dessert Case (and presumably views like it) has been made consistent. In 4.4, you'd get a solid nav bar, and a translucent status bar by swiping, but now both are transparent.
Nexus users with 4.4.1 (or 4.4.2) may have noticed that the “Wireless Display” option in settings has been changed to Cast Screen. Along with that tweak, there have been changes to the casting interface, cast management, and casting permissions. Here are a few relevant commits.
4e54c2a - This commit tidies up the display route selection UI, making the experience for users consistent throughout System UI, Settings, and applications that use the media router, so users will be able to see when (and to where) their screen is casting.
cef34fc - "Update cast screen strings." This commit updates wording to reflect the renaming of Wireless Display to Cast Screen, making it consistent across the settings UI.
75af171 - This one deals with the revised "cast settings screen," adjusting WiFi display scan intervals, simplifying logic for adding and removing display routes, exposing WiFi display device addresses, and a couple of other tweaks.
While these changes by themselves don’t necessarily point to big moves in Android’s screen casting ability, a commit explicitly disallowing third party apps from initiating screen casts is of interest. The commit adds permission for System UI to control casting through the Quick Settings pane, while Settings presumably already had the permission. Either way, Software Engineer Jeff Brown explained the commit's intention in its description:
Disallow applications from initiating cast screen.Only allow the system ui and settings to connect to a remote display. To do this, we essentially hide the remote displays from applicationsby using the ROUTE_TYPE_REMOTE_DISPLAY then add permission checksaround the operations that connect to them.
As a bonus, this may actually save power on devices since applications that use MediaRouter will not longer be performing discover onremote display routes at all.
Brown explained this point on Google+, indicating that the permissions for the casting interface are "mainly about protecting the user," going on to specify that the system "is designed to require explicit action by the user to connect to the remote display via Quick Settings and the remote display provider is responsible for notifying the user about the status of an ongoing connection via a persistent notification which provides an option to disconnect."
Essentially, permission to act as a remote display provider and cast content is reserved as a matter of trust. Users should be informed about what's happening, and starting/stopping/controlling the feature should be clear.
Brown says that Google may make "some of this functionality" accessible to third party apps, perhaps by requiring users to explicitly activate such services on a per-app basis, but striking a balance between trust, user control, and convenience is "not an easy problem."
Despite all this, Koushik Dutta has confirmed that screen casting (and AirPlay mirroring) is possible on a stock device without root, in a similar implementation to Helium. You'll need to be tethered to a PC, though, so the experience is far from perfect yet.
App Ops Update
Since the 4.4 update, App Ops has progressively gotten harder to reach. In fact, when we wrote GTKA, we didn't think App Ops was even accessible. Back in November, Dianne Hackborn, an engineer at Google who's generally ready with helpful explanations of topics like these, clarified again that App Ops wasn't exactly meant to be a user-facing UI.
She explained that the feature was there mainly for development purposes (like fine-tuning per-app notification control), as the framework on which it's based is used for "a growing number of things" within Android.
More recently, Artem asked why Google specifically crafted a UI around the functionality, and Hackborn explained the tool (and its UI) is used by platform engineers, and whether the UI would ever make it into users hands she "couldn't really speculate," but for now, it will blend into the background.
Gallery and Photos
One other notable change to the camera interface is what happens when you swipe to the left. Instead of reaching the gallery app's filmstrip view, you'll be dumped into what looks like the Photos app in filmstrip view. Since the release of KitKat, users have questioned why Photos and Gallery still existed concurrently. After all, having two separate apps for managing photos is kind of a confusing decision.
What makes this more confusing is that swiping left gives you a Photos icon for the upward navigation and the typical share options and pencil icon for editing, but if you hit the edit icon, you'll be asked what app should edit the photo - Photos or Gallery (or other apps you may have installed). If you hit the upward button, you'll reach the Photos app's main screen, which itself is hooked into G+ via the sliding navigation drawer.
Basically Photos handles pass-through from the camera, while Gallery is responsible for in-depth editing, other on-device photos, and for surfacing a limited feature set for Google+ photos (still considered Picasa albums).
These are all symptoms of Gallery's impending demise. In early leaks of KitKat, it was clear that Gallery was absent, with Photos fulfilling its role. AP Alumnus Ron Amadeo pointed out on Google+ that the two share code, and that the Gallery didn't get a new icon in KitKat. More recently, he confirmed the new Google Play Edition devices don't have Gallery at all, so Photos' usurpation of Gallery is just about complete. Until a future update removes the app from Nexus devices, users on 4.4.2 will still have a somewhat confusing experience.
The power widget, which used to simply turn location on or off, will now toggle between on, off, and power-saving modes. Strangely however (as commenters confirm), one has to go into the actual settings menu to fully disable location.
Speaking of the Power Widget, the whole widget is actually shorter (vertically) than in 4.4, and while the Bluetooth icon in 4.4 would turn into a dull gray version of itself when Bluetooth was toggled. In 4.4.1/2, it becomes an empty outline.
With 4.4.1, some changes came to the keyboard as well, primarily dealing with keyboard sounds on the Nexus 7 (2012) and Nexus 10. Commit 34262cdf indicates a new, "softer" audio package, which brings the two devices more in line with the audio package found in the Nexus 5. Some users have also reported a sharper or more precise haptic feedback vibration on the Nexus 5, but no specific commit appears to confirm that.
Bluetooth Absolute Volume
Android 4.4 (finally) introduced a unified volume control for connected Bluetooth devices, in an effort to eliminate duplicate audio controls. Commit 7850a93 indicates that going forward, devices would be specifically whitelisted for access to the absolute volume control, meaning other devices would automatically be "blacklisted." This reverses a previous commit (a7ae4a1) that established a blacklist for devices that "do not handle absolute volume well." According to the "whitelist" commit, the specific whitelisting and broad blacklisting of devices is a temporary fix for bugs encountered with devices that advertise absolute volume but don't actually play nice with the feature in practice.
Bluetooth LE Connections
Prior to 4.4.1, the number of devices that could be simultaneously connected to an Android device topped out at four. With a commit put in before the 4.4.1 update, that limit is bumped up to seven.
Mobile Plan Removed From Settings
In Getting to Know Android, we pointed out a new setting in KitKat - Mobile Plan management. The option directed users to their carrier's provisioning website, if the carrier had a known provisioning site. In 4.4.1 it appears that (at least on the Nexus 5) this option has been removed.
As I mentioned before - and as I'll reiterate with any post of this type - this isn't everything that's new. If you want a full rundown from 4.4 to 4.4.1, check out Funky Android's excellent comprehensive list here. If there's anything significant you've noticed or want us to look into, feel free to discuss it in the comments below.