A new version of the Google app began rolling out earlier this week, but there don't appear to be any major changes going live quite yet. However, this version does bring some big clues about upcoming changes. On the docket for this teardown is a new authentication step for purchases made through Google Assistant, video previews in search results, user-defined actions take form through IFTTT, and some people will be happy to find out that Google's launcher won't always add icons for newly installed apps.

Teardown

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans could change or may be canceled entirely. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk.

Video previews and auto-play

These days, it's pretty common to perform a Google search and get back more than just a page of links to websites. In fact, it's almost weird not to get back at least a few video suggestions, image results, or even knowledge graph info. With regular results, you'll see text previews that tell you what to expect when you get to a page. However, videos don't afford the same clues about what you're going to get, only a thumbnail, and it's usually chosen by the creator. That's going to change as Google prepares to show video previews in search results.

The evidence for video previews actually comes in the form of a new setting (not currently live) that will allow users to turn video previews off. Seeing as people aren't actually seeing video previews in search results, this is a pretty good hint of what's to come.

This wouldn't be Google's first foray into showing video previews, it actually became a feature on the web search results around early 2011. Users could click on a little magnifying glass for "instant previews" of pages and videos. That feature vanished at some point, but there's no denying that it can be pretty useful.

code

<string name="video_preference_title">Video</string>
<string name="video_preview_autoplay_on_mobile_data_title">Network</string>
<string name="video_preview_autoplay_on_wifi_preference_desc">Play video previews automatically on Wi-Fi</string>

<string name="enable_video_preview_autoplay">Autoplay</string>
<string name="enable_video_preview_autoplay_on_mobile_data">Allow on mobile networks</string>
<string name="enable_video_preview_autoplay_on_mobile_data_preference">enableVideoPreviewAutoplayOnMobileDataPreference</string>
<string name="enable_video_preview_autoplay_preference">enableVideoPreviewAutoplayPreference</string>
<string name="enable_video_preview_network_preference_category">enableVideoPreviewNetworkPreferenceCategory</string>

/res/xml/video_preference_header.xml
<preference-headers
xmlns:android="http://schemas.android.com/apk/res/android">
<header android:id="@id/video_header" android:title="@string/video_preference_title" android:fragment="com.google.android.apps.gsa.staticplugins.videopreference.VideoPreferenceFragment" />
</preference-headers>

/res/xml/video_preference.xml
<PreferenceScreen android:id="@id/video_preference_screen"
xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreference android:persistent="false" android:title="@string/enable_video_preview_autoplay" android:key="@string/enable_video_preview_autoplay_preference" android:summary="@string/video_preview_autoplay_on_wifi_preference_desc" android:defaultValue="true" />
<PreferenceCategory android:title="@string/video_preview_autoplay_on_mobile_data_title" android:key="@string/enable_video_preview_network_preference_category">
<SwitchPreference android:persistent="false" android:title="@string/enable_video_preview_autoplay_on_mobile_data" android:key="@string/enable_video_preview_autoplay_on_mobile_data_preference" android:defaultValue="false" />
</PreferenceCategory>
</PreferenceScreen>

I won't go into making predictions about web results, but it's pretty clear mobile users are going to see video previews when they use Google's search bar. How will they work and what will they look like? That I can't say for sure, but the evidence strongly suggests they'll actually auto-play, which means the thumbnails will probably disappear shortly after coming into view and frames of the video will begin running. I assume they won't begin playing audio, because that would be horrible.

The auto-play setting all of this is based upon will obviously be useful for turning this feature off, which you may want to do for data conservation, or if you simply find sudden motion annoying. Wi-Fi and cellular connections can be enabled or disabled individually, but the defaults are naturally set so only Wi-Fi is enabled when this feature goes live.

The one thing I notice that's missing is a way to start a preview if the auto-play setting is switched off. Perhaps this isn't included in the app itself, but will be delivered as part of Google's results, or maybe that's not actually going to be a feature, but it leads me to think Google might not be ready to launch this quite yet.

User-defined actions, meet IFTTT

Back in August, shortly after Google Assistant code first appeared in public releases, we got a look at the early stages of user-defined actions. When launch day came, there was no obvious sign that this feature had actually made the cut, nor were there many changes to any related text or resources since then. That is, until now. New strings reveal that Google is integrating the popular IFTTT (If-This-Then-That) service to handle custom user actions.

code

<string name="user_defined_action_ifttt_action_section_title">IFTTT actions</string>
<string name="user_defined_action_menu_save_button">Save</string>

<string name="user_defined_action_paused_action_section_title">Paused actions</string>

<string name="user_defined_action_speech_recognition_prompt_text">When I say Okay Google…</string>
<string name="user_defined_action_target_command_hint">Google Assistant should do</string>

<string name="user_defined_action_action_list_section_title">Learned actions</string>
<string name="user_defined_action_create_action_section_title">Teach your assistant to…</string>
<string name="user_defined_action_create_do_action_title">Do something</string>
<string name="user_defined_action_create_ifttt_action_title">Create IFTTT action</string>
<string name="user_defined_action_create_say_action_title">Say something</string>

<string name="user_defined_action_delete_confirmation_cancel_text">CANCEL</string>
<string name="user_defined_action_delete_confirmation_delete_text">DELETE</string>
<string name="user_defined_action_delete_confirmation_text">Are you sure you want to delete this action?</string>

New Layouts
/res/layout/assistant_user_defined_action_do_editor_layout.xml
/res/layout/assistant_user_defined_action_say_editor_layout.xml

New preference screen
/res/xml/user_defined_action_preference_screen.xml

<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android">
<com.google.android.apps.gsa.assistant.settings.shared.CustomPreferenceCategory android:key="@string/assistant_settings_create_action_header_key" android:order="0" />
<com.google.android.apps.gsa.assistant.settings.shared.CustomPreferenceCategory android:key="@string/assistant_settings_active_action_category_key" android:order="1" />
<com.google.android.apps.gsa.assistant.settings.shared.CustomPreferenceCategory android:key="@string/assistant_settings_paused_action_category_key" android:order="2" />
<com.google.android.apps.gsa.assistant.settings.shared.CustomPreferenceCategory android:key="@string/assistant_settings_ifttt_action_category_key" android:order="3" />
</PreferenceScreen>

<string name="assistant_settings_active_action_category_key">assistantSettingsUserDefinedActionActiveActionsCategoryKey</string>
<string name="assistant_settings_create_action_header_key">assistantSettingsUserDefinedActionCreateActionHeaderKey</string>
<string name="assistant_settings_ifttt_action_category_key">assistantSettingsUserDefinedActionIFTTTActionsCategoryKey</string>
<string name="assistant_settings_paused_action_category_key">assistantSettingsUserDefinedActionPausedActionsCategoryKey</string>

This might feel a bit anticlimactic since many of us have already been using IFTTT with Google Assistant. There's no reason to expect changes to that base functionality, Google is simply building a native interface for creating these actions. On the plus side, it means we don't have to use IFTTT's website... And that's definitely a good thing. (It's not a great site.)

ifttt_logo

ifttt_logo

There are also no clues to indicate how capable these actions are going to be. IFTTT's "Applets" are effectively made up of two parts: a service that triggers an event, and the action that is performed in response. In this case, the trigger is obviously going to be Google Assistant, and it will listen for a user-defined phrase. What isn't clear is how much control users will have to define the resulting actions; basically, if they'll have the same range of services and options for configurability as they would on the site, or if the interface will offer a limited set of options.

Prevent accidental and unauthorized purchases (on phones)

Purchases made through voice-activated gadgets have been a bit of a hot topic lately, particularly thanks to a series of incidents involving the Amazon Echo. A few weeks ago, Google Assistant gained some similar shopping capabilities; and while there haven't been any reports of accidental or unauthorized purchases yet, it's only a matter of time unless something is done to prevent it.

Google is already working on a solution. According to new text in the app, users will soon have the option to require an additional authentication step before purchases can be completed.

At this time, the only standard method of authentication is a fingerprint, which should be enough for most people. Of course, if you are using a device without a fingerprint reader, or chose not to set up a fingerprint for use on your phone, this won't do much for you. It's also noted that if authentication is set to not be required, "suspicious behavior" may still trigger a check. If this happens, it looks like a password will be necessary to complete the purchase.

code

<string name="assistant_settings_payments_phone_authentication_title">Authentication</string>

<string name="assistant_settings_payments_phone_authentication_section_title">Purchases on this device</string>
<string name="assistant_settings_payments_phone_authentication_page_header">Adjust settings for authentication when making purchases using Google Assistant on this device.</string>

<string name="assistant_settings_payments_phone_authentication_dialog_message">Confirm with password.</string>

<string name="assistant_settings_payments_phone_authentication_mechanism_title">Fingerprint authentication</string>
<string name="assistant_settings_payments_phone_authentication_mechanism_description">Allow your fingerprint to be used as authentication for Google Assistant purchases on this device.</string>

<string name="assistant_settings_payments_phone_authentication_frequency_title">Purchase authentication</string>
<string name="assistant_settings_payments_phone_authentication_frequency_always">Confirmation required</string>
<string name="assistant_settings_payments_phone_authentication_frequency_always_required">Required for every purchase</string>
<string name="assistant_settings_payments_phone_authentication_frequency_never">Confirmation not required</string>
<string name="assistant_settings_payments_phone_authentication_frequency_never_description">We may ask if suspicious behavior is detected</string>
<string name="assistant_settings_payments_phone_authentication_frequency_not_required">Not required</string>
<string name="assistant_settings_payments_phone_authentication_frequency_not_required_detail">We may ask if suspicious behavior is detected</string>

New Layouts

/res/layout/assistant_payments_phone_authentication_entry.xml
/res/layout/assistant_payments_phone_authentication_item.xml
/res/layout/assistant_payments_phone_authentication_template.xml

This feature is intended to be specific to each device, which currently means it's directed at phones. It's safe to assume there's a plan for Google Home and other voice-only appliances using Assistant, but there's nothing visible yet to indicate how that will work. I would expect a proper solution is still pending the rollout of multiple accounts on Home, at which point the signed-in users will all probably be able to perform the authentication steps on their phones to complete purchases started on Home.

This should hopefully put an end to any concerns about accidental and unauthorized purchases resulting from misunderstood conversations, ambient noise, demanding children, or friends with a penchant for pranks.

Toggle for auto-added app icons

Finally, we get to one of those little features that seem simple, but many people are bothered to no end if they aren't available. I'm talking about the launcher's behavior of automatically adding an icon to a home screen when a new app is installed. Most third-party launchers offer users the freedom to disable this, and it's hit-and-miss for OEMs. Google's launcher counts among the ranks of those that don't give users a choice, but that's about to change.

<string name="auto_add_shortcuts_label">Add icon to Home screen</string>
<string name="auto_add_shortcuts_description">For new apps</string>

From /xml/launcher_preferences.xml
<SwitchPreference android:persistent="true" android:title="@string/auto_add_shortcuts_label" android:key="pref_add_icon_to_home" android:summary="@string/auto_add_shortcuts_description" android:defaultValue="true" />

There's not really much more to say about this other than its placement, which will be at the bottom of the Settings screen alongside the toggles for app suggestions and allow rotation. I'm not sure why it wasn't already activated in this release, but maybe Google is waiting to roll it out remotely at some point in the near future.

2017-03-30 19.55.25

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

Version: 6.16.25 beta

Google
Google
Developer: Google LLC
Price: Free