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 Photos v4.2

Surprisingly, the 4.2 update landed with virtually no sign of change, save one. The RAW recommendation feature is now live, even if it's not the most exciting change.

RAW editor suggestion

The RAW editor suggestions appeared in the v4.1 teardown. Now, if you are viewing a RAW image and tap the button to make edits, you'll see an Edit In card pop up. The top entry will be Photos, but it has a small line of warning to explain that it has limited support for RAW. This is followed by other image editors on the device, and then an entry at the bottom that links to a custom Play Store list containing more RAW editors.

Google Photos
Google Photos
Developer: Google LLC
Price: Free

Google Play Store v11.9 / v12.0

Despite bumping the major version number to 12, the latest update doesn't appear to have made any revolutionary changes to the look or experience in the Play Store. I'm inclined to assume the team simply prefered to carry the one rather than ship a v11.10. Nevertheless, there are still a couple of things of interest in the last two updates.

Donating mystery apps to Play Protect [v11.9 Teardown]

Play Protect is effectively Google's version of a virus scanner for Android. Sideloading remains plenty common, and since there's a danger that malware-laden apps might be spreading, Google is raising the stakes to track down unsavory APKs. There's text for a new prompt asking users to submit unfamiliar apps to Play Protect for further scanning.

<string name="package_malware_banner_send_play_protect">Send app to Play Protect?</string>
<string name="package_malware_checkbox_disclaimer_send_play_protect">You can change this setting in Play Protect settings</string>
<string name="package_malware_checkbox_message_send_play_protect">Always send unknown apps</string>
<string name="package_malware_message_send_play_protect">Play Protect hasn\'t seen this app before. Send it for a scan to detect harmful behavior and increase protection for you and others.</string>
<string name="package_malware_negative_button_send_play_protect">CANCEL</string>
<string name="package_malware_positive_button_send_play_protect">SEND</string>

This doesn't read like a prompt for simply scanning apps locally, I'm pretty certain this is intended to transfer APKs back to Google for a more thorough analysis. In general, this is a pretty good thing, though I can imagine some degree of privacy concerns. I'm just curious if this will attempt to send back beta builds of apps that are handed out separately from the Play Store, or even just developer builds.

Call log permission [v12.0]

There is a very minor change the organization of permissions in v12. A new group for the Call Log was added, and naturally, read and write permissions were moved into it from the Phone group.

Recommending tablet apps, assuming you already have them [Teardown]

It looks like there may be a recommendation dialog popping up to recommend tablet-optimized apps if you already had them installed on other devices. Basically, the Play Store will look at the apps you already own and make them more visible if you are using a tablet or some other device with a larger screen (e.g. a Chromebook).

<string name="large_screen_reinstall_dialog_title">Install apps from your devices</string>
<string name="large_screen_reinstall_dialog_subtitle">We found %1$d apps from your account that are optimized for this device</string>

The app was not found in the store. :-(

Gmail v8.9.23

With Inbox inevitably shutting down in the future, all eyes are on Gmail to be the one size fits all email app. You're not going to find anything too significant in the last few updates, but there's at least one familiar feature preparing to make its mobile debut: Smart Compose.

Smart compose [Teardown]

If you've used the web interface for Gmail in the last few months, you already know about Smart Compose. It basically tries to write emails for you. For fast typists, it might save you a couple of seconds from time to time, but it's great for anybody that has to hunt and peck at the keyboard. But think of how much more useful it would be on smartphones where the keyboard experience isn't wonderful for anybody. That will be happening... soon?

<string name="sc_pref_title">Smart Compose</string>
<string name="sc_pref_summary">Show predictive writing suggestions</string>
<string name="sc_onboarding_title">Smart Compose</string>
<string name="sc_onboarding_summary">Writing suggestions appear as you type. Swipe right to accept.</string>excerpt from /xml/gmail_account_preferences.xml
<CheckBoxPreference android:title="@string/sc_pref_title" android:key="sc_enabled" android:summary="@string/sc_pref_summary" android:defaultValue="true"/>

There are a few lines for the setting that enables/disables Smart Compose. Judging by the location of the toggle, it seems likely that it will be enabled on a per-account basis.

Gmail
Gmail
Developer: Google LLC
Price: Free

Keep Notes v5.0.371

Sometimes it's the little things that matter.

Widgets now have proper names

Left: v5.0.331. Right: 5.0.371.

Google Keep used to title its widgets as just "Google Keep." The latest version has replaced that name with descriptive titles that actually mean something to the widgets. They are now called Note List and Quick Capture.

Google Keep - Notes and Lists
Google Keep - Notes and Lists
Developer: Google LLC
Price: Free

Google+ v10.16

The latest Google+ update continues a trend of adding quite a bit behind the scenes for what is obviously a major update to the social network. But unlike those last few releases, this one is promising a somewhat more mundane update to the moderation tools for communities.

Community moderation [Teardown]

There's a very large number of new strings and other resources related to community moderation. The content below is largely centered around approving posts, banning members, and handling requests. Of course, these things already exist in the current interface, but such a large addition likely suggests the interface will be changing, hopefully to make it more streamlined and convenient to use on mobile.

strings

<activity android:name="com.google.android.apps.plus.squares.moderation.SquareModerationActivity" android:exported="false" android:launchMode="singleTop" android:logo="@drawable/actionbar_gplus_logo" android:theme="@style/Theme.Square.NoActionBar" />

<string name="approve_positive_button">Approve</string>
<string name="approve_posts_positive_button">Approve</string>
<string name="ban_positive_button">Ban</string>
<string name="reject_positive_button">Reject</string>
<string name="reject_posts_positive_button">Reject</string>
<string name="selection_moderation_title_people">Select people…</string>
<string name="selection_moderation_title_posts">Select posts…</string>
<string name="select">Select</string>
<string name="square_approve_post_error">Can\'t approve post.</string>
<string name="square_bulk_actions_dialog_message">You can\'t undo this action</string>
<string name="square_bulk_post_moderation_ban_failure">Can\'t ban member.</string>
<string name="square_bulk_post_moderation_banned">Banned</string>
<string name="square_bulk_post_moderation_dialog_message">You can\'t undo this action</string>
<string name="square_bulk_post_moderation_progress_dialog">Sending…</string>
<string name="square_moderation_approve_failure">Can\'t approve request to join.</string>
<string name="square_moderation_approved">Approved</string>
<string name="square_moderation_approving">Approving…</string>
<string name="square_moderation_ban_failure">Can\'t ban member.</string>
<string name="square_moderation_banned">Banned</string>
<string name="square_moderation_banning">Banning…</string>
<string name="square_moderation_reject_failure">Can\'t reject request to join</string>
<string name="square_moderation_rejected">Rejected</string>
<string name="square_moderation_rejecting">Rejecting…</string>
<string name="square_post_moderation_ban_failure">Can\'t ban member.</string>
<string name="square_post_moderation_banned">Banned</string>
<string name="square_post_moderation_progress_dialog">Sending…</string>
<string name="square_post_rejected_message">Post rejected</string>
<string name="square_reject_post_error">Can\'t reject post.</string>

<plurals name="selection_moderation_title_number_selected">
<item>%d selected</item>
<item>%d selected</item>
</plurals>
<plurals name="square_approve_multiple_posts_dialog_title">
<item>Approve %d posts?</item>
<item>Approve %d post?</item>
</plurals>
<plurals name="square_approve_multiple_requests_dialog_title">
<item>Approve %d requests?</item>
<item>Approve %d request?</item>
</plurals>
<plurals name="square_ban_multiple_post_authors_dialog_title">
<item>Ban %d users?</item>
<item>Ban %d user?</item>
</plurals>
<plurals name="square_ban_multiple_users_dialog_title">
<item>Ban %d users?</item>
<item>Ban %d user?</item>
</plurals>
<plurals name="square_reject_multiple_posts_dialog_title">
<item>Reject %d posts?</item>
<item>Reject %d post?</item>
</plurals>
<plurals name="square_reject_multiple_requests_dialog_title">
<item>Reject %d requests?</item>
<item>Reject %d request?</item>
</plurals>
<plurals name="view_all_comments_button_title">
<item>show all %d comments</item>
<item>show %d comment</item>
</plurals>

layout/ban_author_dialog.xml
layout/bulk_confirmation_dialog.xml
layout/square_bulk_moderation_wrapper_card_layout.xml
layout/square_member_moderation_card.xml
layout/square_requests_fragment.xml
layout/square_review_fragment.xml
layout/square_review_post_moderation_card_view.xml
layout/square_spam_fragment.xml
layout/square_spam_post_moderation_card_view.xml
layout/squares_moderation_fragment.xml
layout/view_all_comments_button_view.xml

Google+
Google+
Developer: Google LLC
Price: Free

Google Pay v2.73 / v2.74 / v2.75

Google Pay updates have been relatively innocuous for the last few versions, but I want to slip them into an Update Notes post to get caught up. There are a few things worth checking out.

Thomas Transit [v2.73 Teardown]

I can't say that I've ever heard of it, but it looks like support for Thomas Transit is in the plans.

<string name="thomas_title">Thomas Transit</string>
<string name="thomas_pass_name">thomas pass</string>
<string name="thomas_pass_not_supported">thomas passes are not yet supported</string>
<string name="thomas_topup_description">Add money as you need it</string>
<string name="thomas_topup_name">thomas money</string>
<string name="thomas_country">Country</string>

QR Code money transfers [v2.74 Teardown]

Now that Google Pay and Google Pay Send (formerly Google Wallet) are fully merged, it's time for new features. Now there appears to be a QR code money transfer in development that would allow users to send money to each other by just scanning a code on the other person's phone.

<string name="qr_entry_label">QR code</string>
<string name="qr_tutorial_image_description">Image of a phone scanning a QR code</string>
<string name="qr_tutorial_open_button">Continue</string>
<string name="qr_tutorial_screen_instructions">Scan a QR code to easily transfer money to a person nearby.</string>
<string name="qr_tutorial_screen_title">QR code payment</string><activity android:name="com.google.commerce.tapandpay.android.p2p.qrcodes.QRCodeTutorialActivity" android:exported="false" android:noHistory="true" android:theme="@style/Theme.GooglePay.NoActionBar" />

No real details are exposed beyond the fact that this is peer-to-peer and not a way to make payments at businesses. Aside from that, it's not really clear if there are limits to how much can be sent, to whom, and if there are any other terms.

Thermo support

Alright, this name has been plaguing me for the better part of a year. I've been aware of the "thermo" name roughly since December, and a few weeks ago I thought there was enough to at least begin discussing it, but it wasn't until the v2.75 update that I got the one clue that finally explained what it actually is. In short, it's a South Korean payment method that appears to be useful for both purchases and mass transit. This was finally explained thanks to the presence of the South Korean word for Won on a line that mentions a fee for switching cards.

strings
<string name="message_switch_to_postpaid">If your prepaid card has a balance or Thermo points, a refund will be sent to the bank account you provide. Please note, Thermo may charge you a one time fee of 500원 when you switch cards.</string>
<string name="message_switch_to_prepaid">Any balance on your postpaid card will be charged to %1$s. Please note, Thermo may charge you a one time fee of 500원 when you switch cards.</string><string name="menu_item_switch_to_postpaid">Switch to postpaid</string>
<string name="menu_item_switch_to_prepaid">Switch to prepaid</string>
<string name="title_switch_to_postpaid">Switch to a postpaid Thermo card?</string>
<string name="title_switch_to_prepaid">Switch to a prepaid Thermo card?</string>
<string name="switched_to_postpaid_label">Congrats, card is switched to postpaid</string>
<string name="switched_to_prepaid_label">Congrats, card is switched to prepaid</string>
<string name="switching_to_postpaid_label">Switching to postpaid</string>
<string name="switching_to_prepaid_label">Switching to prepaid</string><string name="thermo_splash_description">To provide and inprove Google Pay, Google will share your device and account information with Thermo, and access Thermo account info and history from your device.</string>
<string name="thermo_splash_finish_later_text">Finish setup later</string>
<string name="thermo_splash_subtitle">You\'ll have one less thing to carry and can add value to your Thermo card on the go</string>
<string name="thermo_tos_text_1">Thermo Terms of use</string>
<string name="thermo_tos_text_2">Thermo Privacy Policy</string>
<string name="thermo_tos_text_3">Consent to use personal information</string>
<string name="thermo_tos_text_4">Electronic Financial Transaction Terms</string>

Youth discounts

Google Pay is expanding to cover more financial scenarios, and one that's on the list is a discount for people that are under a certain age. The interface asks for a birth date, but otherwise doesn't explain how or if any meaningful verifications are taking place.

strings
<string name="birthday_input_label">Input your birthday info to apply for discounts!</string>
<string name="birthday_discount_text">Enter your birthday to check if you\'re eligible for a youth discount (optional)</string>
<string name="applying_for_discount_status_label">Applying for discount, please wait</string>
<string name="already_have_discount_label">You always have youth discounts!</string>
<string name="check_discount_lable">Check discount eligibility</string>
<string name="checking_discount_status_label">Checking your youth discount status, please wait</string>
<string name="discount_setup_successful_label">Congrats, you are set up for youth discounts!</string>
<string name="provider_name_with_youth_discount">%1$s Youth</string>

Google Pay
Google Pay
Developer: Google LLC
Price: Free