Every week, I examine somewhere in the neighborhood of a hundred app updates while looking for changes. The most interesting things turn into APK Teardowns or Download posts. Many of the remaining updates are unremarkable, amounting to a few bug fixes, routine updates to libraries, or even just pixel-level adjustments to layouts and images. However, there are usually a few updates that land somewhere in between. I don't want to spam readers with dozens of short posts, but I hate to ignore things that people might want to know about, so I'm going to wrap up the leftovers for a little weekend reading and call it Update Notes.

Special thanks to נתנאל מ for the great hero image on this post!

Google Duo v39

Google Duo version 39 officially brings tablet support to Android and iOS as we've discussed in the past, even though this obviously already kinda happened on Android. There are technically some changes to enhance the layout on tablets, but that's pretty minor overall. A few cosmetic changes were also made, and a teardown revealed that Duo will begin suggesting homescreen shortcuts to instantly call your contacts.

Tablet layout-ish

If you're actually using a tablet, then you'll enjoy that the contact list is now organized into multiple columns of contact photos with phone numbers rather than a single-column vertical list. Otherwise, I haven't spotted any other changes to the tablet layout. I guess I was hoping to see something happen in the call screen, but it looks the same to me.

Tweaked launcher icon

Left: v38. Right: v39.

For both phones and tablets, you'll now get an updated launcher icon. I actually really like this change, even if it is pretty subtle at a glance. The folded paper look is gone, replaced by a layered camera shape in all white. The background is also a slightly darker shade of blue, which helps the camera shape to pop just a bit more.

Tweaked colors in the app

Left: v38. Right: v39.

If you switch into audio call mode (as opposed to video call), you'll see a new background image. I think the old one was better, or at least more interesting thanks to the animations, but oh well...

Homescreen shortcuts [Teardown]

And finally, there's text that makes it fairly clear Duo will eventually suggest adding shortcuts to the homescreen that will immediately launch Duo to call a specified contact. You can kinda achieve this with App Shortcuts now, but you have to call a contact first to get them into the list of suggestions. From the look of it, Duo will try to suggest creating the shortcuts directly.

<string name="homescreen_shortcut_dialog_title">To call %s faster, add them to your Home screen</string>
<string name="homescreen_shortcut_dialog_title_1">Add %s to your Home screen to save time</string>
<string name="homescreen_shortcut_dialog_title_2">Add %s to your Home screen to start a call faster</string>
<string name="homescreen_shortcut_dialog_yes">Add</string>
<string name="homescreen_shortcut_dialog_no">Not now</string>


YouTube has the regular lineup of A/B tests running, but aside from that, there hasn't been much to talk about for several versions. However, I have collected a few teardown items over the last couple of weeks that are worth a quick glance.

Cross device downloading [Teardown]

Downloading videos for offline viewing is a pretty old feature, and it hasn't changed much since it was introduced. However, judging by a few new lines of text, it looks like an interesting revision is about to come along. Users may soon get the option to download videos to other devices on their account, not just the one they're currently interacting with.


<string name="menu_cross_device_offline">Cross device offline settings</string>

<string name="pref_cross_device_offline_toggle_text">Allow downloading to this device</string>
<string name="pref_cross_device_offline_no_device_name">Please specify a device name</string>
<string name="pref_cross_device_offline_device_name_hint">Enter a name for this device</string>
<string name="pref_cross_device_offline_error">Error updating cross device offline state</string>
<string name="pref_cross_device_offline_no_gcm_registration_id">Please try again in some time</string>
<string name="pref_cross_device_offline_success">Updated cross device offline state</string>
<string name="save_cross_device_offline_menu">Save</string>

Cross-device downloading probably isn't going to be an extensively used feature, but it's not hard to come up with scenarios where it might be handy to use your phone to start some downloads on a tablet. For example, it would be helpful if you want to download a few videos to entertain a child or build a small collection of material to watch shortly before a long flight.

Security? [Teardown]

I'm actually pretty skeptical about this one, but there are some new security-oriented strings appearing in both the YouTube and YouTube TV apps. These include instructions for using and resetting passwords, plus instructions related to a fingerprint reader.

<string name="confirm_by_touching_sensor">Confirm by touching sensor</string>
<string name="fingerprint_other_methods_prefix">Verify your account with your fingerprint or </string>
<string name="fingerprint_icon_description">Fingerprint Icon</string>
<string name="use_fingerprint">Use fingerprint</string>
<string name="use_fingerprint_suffix">use your fingerprint.</string><string name="password">Password</string>
<string name="password_other_methods_prefix">Verify your account by entering your password or </string>
<string name="use_password">Enter account password</string>
<string name="use_password_instead">Use password instead</string>
<string name="use_password_only">Verify your account by entering your password.</string>
<string name="use_password_suffix">enter your password.</string><string name="fingerprint_failed">Not recognized.</string>
<string name="retry_fingerprint">Not recognized, try again</string>
<string name="retry_password">Wrong password. Try again or click Forgot password to reset it.</string>
<string name="other_methods_modal_cancel_text">Cancel</string>And from YouTube TV<uses-permission android:name="android.permission.USE_FINGERPRINT" /><string name="use_fingerprint">Use fingerprint</string>
<string name="use_fingerprint_suffix">use your fingerprint.</string>
<string name="confirm_by_touching_sensor">Confirm by touching sensor</string>
<string name="fingerprint_failed">Not recognized.</string>
<string name="fingerprint_icon_description">Fingerprint Icon</string>
<string name="fingerprint_other_methods_prefix">Verify your account with your fingerprint or </string>
<plurals name="fingerprint_remaining_tries">
<item>You have another %d times to attempt correct fingerprint.</item>
<item>You have another %d time to attempt correct fingerprint.</item>
<item>You have another %d times to attempt correct fingerprint.</item>

<string name="use_password">Enter account password</string>
<string name="use_password_instead">Use password instead</string>
<string name="use_password_only">Verify your account by entering your password.</string>
<string name="use_password_suffix">enter your password.</string>
<string name="forgot_password">Forgot password?</string>
<plurals name="password_remaining_tries">
<item>You have another %d times to attempt correct password.</item>
<item>You have another %d time to attempt correct password.</item>
<item>You have another %d times to attempt correct password.</item>

My reason for doubting this one is simply that it looks like these bits could have been added with a standard security library, but YouTube isn't actually using any of it. On the other hand, with countless stories of YouTube accounts belonging to famous celebrities or popular channels getting "hacked" and videos uploaded without permission, it's entirely possible YouTube may begin requiring (perhaps optionally) that users take an additional step to verify themselves before publishing videos.

Automatic Dark Theme switcher [Teardown]

Now that the dark theme is live and people are enjoying a less aggressive view of the app, YouTube may already be experimenting with switching automatically between light and dark modes, probably to match the environment of the video or the time of day.

The text isn't very descriptive, but it's clear from the name of one line that it is shown when the dark theme is triggered. The explanation is that it's for the purposes of power savings.

<string name="auto_switched_to_dark_theme">Dark theme is on to save power</string>
<string name="switch_to_dark_theme">Turn on dark theme to save power</string>

Developer: Google LLC
Price: Free

YouTube Music v2.47.53

This looks like a minor update, but there are a few changes to resources that I'll quickly call out.

Equalizer shortcut [Teardown]

We've seen YouTube Music making a slow adoption of features and traits taken from Google Play Music. One of the little oddball details of the Play Music app was a link to the device-specific Equalizer settings. This is merely a shortcut to a settings screen that only appears on phones where such a screen exists. (Have to bold that since it has been such a point of confusion in the past.) It looks like this shortcut will be added to the settings screen in YouTube Music.

<string name="pref_equalizer_title">Equalizer</string>
<string name="pref_equalizer_summary">Adjust audio settings</string>
Except from /xml/settings_prefs.xml
<Preference android:title="@string/pref_equalizer_title" android:key="equalizer" android:summary="@string/pref_equalizer_summary"/>

For reference, here's what the setting looks like in the Play Music app right now.

Contrary to mis-reported rumors, this is not a built-in equalizer.

Auto-download "favorite" music

YouTube Music has featured an auto-offline feature since the beginning, and with time, that has been slightly enhanced in various ways. Now it looks like a new variant may be coming with an option to automatically download your "favorite" music.

The phrasing is interesting because it seems to imply this feature might select only songs you listen to the most, which is unlike the current auto-offline implementation that makes a mixtape built more around recommendations that may or may not already be familiar. This makes plenty of sense because you're virtually guaranteed to get tracks that you enjoy hearing, but you're not going to discover anything new through this option.

<string name="pref_auto_offline_content">Auto downloads will save your favorite music offline when you\'re on Wi-Fi with sufficient battery.</string>

Google Drive v2.18.352

We don't talk enough about Google Drive, but there really are some great things happening here for people that share files across an organization.

Priority Page, Workspaces, and Intelligent Suggestions

During a session at Cloud Next 2018, a demonstration was given for a new Priority page within Drive. As the video below shows, there's a big new view planned for the web interface (and surely coming to the app, as well) that will suggest documents to users based on artificial intelligence rather than the simple criteria that are used today, like which files were last opened or shared with you. There is also a new feature called Workspaces that allows users to designate just the files related to individual projects or teams, which feels reminiscent to tags in Gmail, making it possible for a single file to be part of multiple workspaces.

Overview (31:14), Suggestions (36:10), Workspaces (38:26).

The last few updates to Drive have been adding a slow stream of resources for this feature set, but in the last two versions, quite a bit more was added for Workspaces. The video really does a great job of explaining how all of this works, and there's not much of substance to add with an analysis of the APK, so I'm going to keep this short and drop in the text for anybody that wants to look at it.

<string name="create_workspace">Create Workspace</string>
<string name="create_workspace_dialog_title">New workspace</string><string name="tutorial_team_drives_introducing">Introducing Team Drives!</string>
<string name="tutorial_team_drives_introducing_hint">Team Drives are workspaces with simple sharing rules to keep members on the same page</string>
<string name="navigation_title_workspaces">Workspaces</string><string name="save_as_workspace">Save as workspace</string>
<string name="saving_suggested_workspace">Saving workspace…</string>
<string name="dialog_text_archive_to_create">To save this workspace, you'll have to hide an existing workspace you're not currently using to make room.</string><string name="max_active_workspaces_prompt">To unarchive, make room for another active workspace</string><string name="hidden_workspaces_header">Hidden workspaces</string>
<string name="archive_workspace">Hide workspace</string>
<string name="archiving_workspace">Hiding workspace…</string>
<string name="archiving_workspace_failure">Unable to hide workspace</string><string name="add_to_workspace">Add to workspace</string>
<string name="adding_files_failure">Unable to add to workspace.</string>
<string name="adding_files_message">Adding to workspace.</string><string name="archive_workspace">Hide workspace</string>
<string name="archiving_workspace">Hiding workspace…</string>
<string name="archiving_workspace_failure">Unable to hide workspace</string><string name="suggested_workspace_header">Suggested Workspace</string>
<string name="suggested_workspace_create_failed">There was an issue saving the suggested workspace.</string>
<string name="suggested_workspace_saved">Suggested workspace saved</string>
<string name="suggested_workspace_saved_file_failure">There was an issue adding files to your new workspace.</string><string name="rename_workspace">Rename workspace</string>
<string name="renamed_workspace">Renamed workspace to %1$s</string><string name="remove_workspace">Remove workspace</string>
<string name="remove_workspace_confirm">Remove</string>
<string name="remove_workspace_prompt_message">The workspace will be permanently removed, but files will remain in their original location.</string>
<string name="remove_workspace_prompt_title">Remove workspace?</string><string name="create_workspace_dialog_hint">Untitled workspace</string>

<string name="unable_to_create_workspace">Unable to create workspace.</string>
<string name="unable_to_open_doc">Unable to open document</string>
<string name="unable_to_open_menu">Unable to open menu for document</string>
<string name="unable_to_preview">Unable to preview file.</string>
<string name="unable_to_remove_from_workspace">Unable to remove file from workspace.</string>
<string name="unable_to_rename_workspace">Unable to rename workspace.</string>
<string name="unarchive_workspace">Unhide workspace</string>
<string name="unarchiving_workspace">Unhiding workspace…</string>
<string name="unarchiving_workspace_failure">Unable to unhide workspace</string>
<string name="removed_from_workspace">Removed file from workspace.</string>

<string name="view_workspace">View workspace</string>
<string name="view_workspace_content_desc">View %1$s</string>

<string name="workspace_archived">Workspace hidden</string>
<string name="workspace_contains_file">File already in workspace</string>
<string name="workspace_detail_empty_call_to_action">Add files</string>
<string name="workspace_detail_empty_subtitle">Start by adding files</string>
<string name="workspace_detail_empty_title">This workspace is empty</string>
<string name="workspace_empty_create_message">Keep files you\'re working on in the same place so you can pick up where you left off.</string>
<string name="workspace_empty_message">To create a workspace, go to drive.google.com on the web</string>
<string name="workspace_empty_title">Create your own personal workspace</string>
<string name="workspace_file_count">%1$d of %2$d files</string>
<string name="workspace_file_limit">You\'ve reached the limit of %1$d files</string>
<string name="workspace_remove_failed">Failed to remove workspace</string>
<string name="workspace_removed">Workspace removed</string>
<string name="workspace_suggestion_feedback_submitted">Feedback submitted</string>
<string name="workspace_suggestion_not_helpful">Not helpful</string>
<string name="workspace_unarchived">Workspace unhidden</string>
<string name="workspaces_tab_name">Workspaces</string>

<string name="navigation_title_priority">Priority</string>
<string name="spark_navigation_tab_name">Priority</string>

<string name="suggested_files_header">Suggested files</string>
<string name="suggested_name_selected_accessibility_announcement">%1$s, selected</string>

<string name="notify_comments_description_only_one_suggestion_one_user_icu">{RECIPIENT_GENDER,select,female{{SENDER_GENDER,select,female{Suggested change in ‘{ITEM_TITLE}’}male{Suggested change in ‘{ITEM_TITLE}’}other{Suggested change in ‘{ITEM_TITLE}’}}}male{{SENDER_GENDER,select,female{Suggested change in ‘{ITEM_TITLE}’}male{Suggested change in ‘{ITEM_TITLE}’}other{Suggested change in ‘{ITEM_TITLE}’}}}other{{SENDER_GENDER,select,female{Suggested change in ‘{ITEM_TITLE}’}male{Suggested change in ‘{ITEM_TITLE}’}other{Suggested change in ‘{ITEM_TITLE}’}}}}</string>
<string name="notify_comments_description_short_num_suggestions_many_users_icu">{RECIPIENT_GENDER,select,female{{NUM_SUGGESTIONS_1,plural,=1{}other{Suggested {NUM_SUGGESTIONS_2} changes}}}male{{NUM_SUGGESTIONS_1,plural,=1{}other{Suggested {NUM_SUGGESTIONS_2} changes}}}other{{NUM_SUGGESTIONS_1,plural,=1{}other{Suggested {NUM_SUGGESTIONS_2} changes}}}}</string>
<string name="notify_comments_description_short_only_one_suggestion_one_user_icu">{RECIPIENT_GENDER,select,female{{SENDER_GENDER,select,female{Suggested a change}male{Suggested a change}other{Suggested a change}}}male{{SENDER_GENDER,select,female{Suggested a change}male{Suggested a change}other{Suggested a change}}}other{{SENDER_GENDER,select,female{Suggested a change}male{Suggested a change}other{Suggested a change}}}}</string>

My one comment on this is that it's starting to look like at least the Workspace feature is probably getting fairly close to ready, and I don't expect the other features to require as much UI, so they may also be fairly close to finished. And seeing as these features are expected to release this year, and the Drive team is unusually good at keeping to a schedule, I have little doubt these features will be launching pretty soon.

Google Drive
Google Drive
Developer: Google LLC
Price: Free+

Google app 8.21.7 beta

Not all updates to the Google app include particularly interesting changes or clues for future features, and this happens to be one of those. Minor tweaks were made to text and graphics, but only one thing really stands out. The framework has been added for a new settings screen that will contain options for Personal Results and Recent Pages.

Settings for Personal Results and Recent Pages

When we last looked at the upcoming "General" settings page, the layout contained a few options that appeared to be copied from elsewhere in the app. This patterns seems to be continued as a new toggle for Recent Pages and a line that opens another screen for options related to Personal Results have been added.

The Recent Pages feature already has a toggle like this in the Accounts & Privacy section, and the description for Personal Results explains that it's for managing what info shows up in search from other apps you use, which sounds like the Personal page with toggles for searchable apps. It's also possible that this will be the launching point for a new page that encompasses those settings and also more to better support the Personal tab and Personal Search page.

<string name="personal_results_title_hub">Personal search results</string>
<string name="personal_results_summary_hub">Manage what info shows up in search from other apps you use. Only you can see these results.</string>
<string name="personal_search_results_preference">personal_search_results_preference</string><string name="use_recently_title_hub">Recent pages</string>
<string name="use_recently_subtitle_when_disabled_hub">Turn on to have the app keep track of the pages you\'ve recently visited so you can easily get back to them.</string>
<string name="use_recently_subtitle_when_enabled_hub">The app will keep track of the pages you\'ve recently visited so you can easily get back to them.</string>
<string name="recently_preference">use_recently</string>from /xml/general_hub.xml
<PreferenceScreen xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:aapt="http://schemas.android.com/aapt">
<SwitchPreference android:persistent="true" android:title="@string/use_recently_title_hub" android:key="@string/recently_preference" android:defaultValue="true" android:summaryOn="@string/use_recently_subtitle_when_enabled_hub" android:summaryOff="@string/use_recently_subtitle_when_disabled_hub"/>
<PreferenceScreen android:persistent="false" android:title="@string/personal_results_title_hub" android:key="@string/personal_search_results_preference" android:summary="@string/personal_results_summary_hub" android:fragment="com.google.android.apps.gsa.search.core.preferences.SearchableItemsFragment"/>

In other words, there's probably not much here to discuss, but if you happen to use these settings often or maybe have to maintain instructions on how to set options in one of these screens, be aware that they are probably changing soon.

Developer: Google LLC
Price: Free