Android Wear, or Wear OS as it's now known, seems to have found renewed momentum lately with fresh efforts in fitness, updates to the interface, and new hardware coming on the horizon. The latest update brings one notable change the improves the interface for managing notifications, but also carries with it the signs of many other changes and additions to come.

What's New

Unofficial Changelog: (the stuff we found)

  • Updated notification filter screen

Improvements to notification filters

 

Left: v2.15. Center + Right: v2.16.

The value of smartwatches will basically live and die by how well notifications are displayed, and perhaps just as importantly, how easily users can filter those notifications. The latest update makes that situation a little more user-friendly with a revised screen for filtering the apps that get to send notifications to your watch.

Version 2.16 now includes a list of the apps that recently sent notifications to your watch, making it easy to turn off any that are bothering you. Aside from that, the new layout isn't functionally different, but it's much more pleasant to use and browse. Instead of asking users to add items to the list one-by-one, there is simply a long list of the apps installed on your device, each with a toggle switch to its right for disabling apps before they can become a nuisance.

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 wrong or inaccurate. Even when predictions are correct, there is always a chance that products could change or may be canceled. 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. All screenshots and images are real unless otherwise stated, and images are only altered to remove personal information.

Favorite contacts

While there were improvements to standard notification management, there's a whole separate level of detail that's about to see improvements: Contacts. Whether it's your family members, best friends, or your boss, there are some people that simply can't be ignored. A new feature is in the works that will allow users to put favorite contacts onto a list that will get higher priority than others.

strings
Phone app
<string name="vip_onboarding_description">Don\'t miss another message from %1$s! Make them a Favorite contact.</string>
<string name="vip_onboarding_open">Add favorites</string>
<string name="vip_onboarding_dismiss">Dismiss</string><string name="vip_fragment_title">Favorite contacts</string>
<string name="vip_fragment_no_contacts">It looks like you haven\'t received a notification from someone through a supported app yet. Please check back later.</string>Watch app
<string name="selected_contact_star_error">Favorites must be controlled from the phone</string><array name="android_wear_capabilities">
<item>/vip_buzz/capability/extract</item>
</array>

The nature of this one is still vague. I don't know yet if the list of favorites allows some contacts to get through when you've set notifications to silent, much like the do not disturb list allows some apps to get through, or if perhaps there are other techniques in play to add prominence to notifications coming from selected contacts.

Unfortunately, for contact filtering to work, each app must be supported. It's not entirely clear if this means the apps have to conform to a specific format in notifications or use a specific API, or perhaps the Wear team will have to bake in custom support for individual apps. I assume we'll get more details about this when Google announces the official changelog for this Wear update.

Complication for phone battery

Ever since the introduction of Complications to Android Wear, there has been a complication that shows your watch's battery level. However, if you wanted to see your phone's battery level, you would need a third party application. Google will be getting around to changing that situation soon enough, and we'll all get to see both our watch and phone battery levels on the small screen strapped to our wrists.

<string name="complication_provider_phone_battery">Phone battery</string>
<string name="phone_battery_description">Phone Battery: %s</string>

Media controls will be optional

When music or other audio is playing on your phone, Wear inserts a card into your stream with playback controls ready to pause or skip as you like. Of course, if you don't like those controls, it might be pretty annoying that the card can't be dismissed. Sometime soon, that may not be the case, Google is making the controls optional.

This isn't a simple case of making the media controls dismissable, they'll actually be entirely optional. Users will be able to change an autolaunch setting to prevent media controls from appearing.

strings
<string name="media_controls_autolaunch_notification_title">Turn off Media controls autolaunch?</string>
<string name="media_controls_autolaunch_notification_body_hermite">To turn it back on, go to Settings &gt; General and turn on Autolaunch media controls.</string>
<string name="media_controls_autolaunch_notification_body_gold">To turn it back on, open the Media controls app, then touch &amp; hold it.</string>
<string name="media_controls_autolaunch_notification_turn_off_action">Turn off</string><string name="media_controls_autolaunch_setting_title">Autolaunch media controls</string>
<string name="media_controls_autolaunch_setting_body">Open media controls automatically on watch when playback starts from phone</string>
<string name="media_controls_ongoing_chip_launch_controls_a11y_label">control media</string>
<string name="media_controls_swipe_direction_toast">Swipe right to close</string>

This is all pretty straightforward, but there is an interesting bonus detail. Two different messages explain how the controls can be turned back on. One of these instructs users to go to Settings -> General while the other mentions a "Media controls app." I haven't seen an app with a name like that yet, but maybe we should be expecting that too.

Quick Settings and Battery saver enhancements

Just last month, Google announced new and upcoming changes to Wear. The highlights were generally organized around health and fitness, but also included key details about some overall interface changes. Among those changes will be a revised quick settings panel with 6 buttons. I will come back to the quick settings in a moment, but I wanted to start with the battery saver modes that will be accessible from the shade.

The details are basically as you might expect, but there are three different lines of text that describe the function a bit differently, which likely relates to the different ways some watches will implement battery saver. To my eyes, it sounds like there's a mode that simply turns off power-hungry features, a mode that effectively puts the watch into a deeper idle state, and a final mode that sounds more like it's dual booting between a super-low power state and the regular mode:

  • Battery saver may limit some features like:
    •Always on display
    •Vibration
    •Location services
    •Wi-Fi &amp; mobile data
    •Watch SIM calls &amp; SMS
    •App updates
    Battery saver turns off while your watch charges.
  • Save your battery &amp; only show the time. To exit, press the power button twice.
  • Only show the time. To exit, press &amp; hold the power button to restart your watch.
strings
<string name="quicksettings_hovertext_battery_saver_disabled">Battery saver off</string>
<string name="quicksettings_hovertext_battery_saver_enabled">Battery saver on</string>
<string name="quicksettings_hovertext_device_plugged_in">Battery saver off while charging</string><string name="turn_off_battery_saver">Turn off</string>
<string name="turn_on_battery_saver">Turn on</string>
<string name="turn_on_battery_saver_dialog_body_bsv1">Battery saver may limit some features like:\10•Always on display\10•Vibration\10•Location services\10•Wi-Fi &amp; mobile data\10•Watch SIM calls &amp; SMS \10•App updates\10\10Battery saver turns off while your watch charges.</string>
<string name="turn_on_battery_saver_dialog_body_tom">Save your battery &amp; only show the time. To exit, press the power button twice.</string>
<string name="turn_on_battery_saver_dialog_body_twm">Only show the time. To exit, press &amp; hold the power button to restart your watch.</string>

Retail / Demo mode

Back to the subject of quick settings, an updated retail will be featuring this panel quite heavily. Both phones and watches have supported a special retail mode for a few years, basically running through a series of screens that advertise the features Google provides so onlookers can watch the show before buying the gadget. There's really nothing exceedingly new there, but here are some of the highlights that will be demoed in Wear's retail mode, and they all come from quick settings. Here are the 6 buttons and the text that describes them:

  • Do not disturb – "Stop notifications from buzzing your wrist"
  • Find my phone – "Ring your phone so you can find it"
  • Pay with your watch – "Pay right from your wrist and speed through checkout"
  • Settings – "Quickly change settings"
  • Theater mode – "Turn off your screen"
  • Battery saver – "Extend your battery life"
strings

<string name="demo_mode_prompt">Demo mode</string>

<string name="retail_dnd_title">Do not disturb</string>
<string name="retail_dnd_text">Stop notifications from buzzing your wrist</string>
<string name="retail_find_my_phone_title">Find my phone</string>
<string name="retail_find_my_phone_text">Ring your phone so you can find it</string>
<string name="retail_pay_title_le">Pay with your watch</string>
<string name="retail_pay_text_le">Pay right from your wrist and speed through checkout</string>
<string name="retail_google_pay_text">Fast checkout &amp; transit from your wrist</string>
<string name="retail_settings_title">Settings</string>
<string name="retail_settings_text">Quickly change settings</string>
<string name="retail_theater_mode_title">Theater mode</string>
<string name="retail_theater_mode_text">Turn off your screen</string>
<string name="retail_battery_saver_title">Battery saver</string>
<string name="retail_battery_saver_text">Extend your battery life</string>

<string name="retail_mode_commute_duration_in_traffic">43 min</string>

Demo mode will also include a card featuring expected durations for commutes.

Assistant-related capabilities

Android Wear already features quite a bit of Assistant-enabled stuff, and even where it's not technically native, most of it is fed from the phone to the the watch in the form of notifications. In the latest update, there are nearly 200 new lines relating to features we know and use in Assistant on the phone. Aside from their presence, there's really not much to say about these, so I'll just list the overall features for the sake of simplicity:

  • Package tracking
  • Weather
  • Commutes
  • Daily briefing
  • Social events
  • Exercise
  • Locations of businesses and services
  • Restaurant reservations
  • Transportation
  • Car rentals
  • Flights
  • Hotel bookings
  • Utilitarian commands: send a message, set a timer, set an alarm, etc.
  • And the cute Assistant features like: roll a die, tell me a story, inspire me, tell me a joke, etc.
strings
<string name="common_order_default_title">Package</string>
<string name="order_chip_tracking">Track package</string>
<string name="order_date_ordered_label">Date Ordered</string>
<string name="order_detail_status_label">Status</string>
<string name="order_estimated_delivery_label">Est. Delivery</string>
<string name="order_shipper_label">Carrier</string>
<string name="order_status_accepted">Accepted by carrier</string>
<string name="order_status_available_for_pickup">Available for pickup</string>
<string name="order_status_cancelled">Cancelled</string>
<string name="order_status_delayed">Delayed</string>
<string name="order_status_delivered">Delivered</string>
<string name="order_status_merchant_error">Merchant error</string>
<string name="order_status_on_hold">Shipment on hold</string>
<string name="order_status_out_for_delivery">Out for delivery</string>
<string name="order_status_pending_acceptance">Pending acceptance by carrier</string>
<string name="order_status_pending_cancellation">Pending cancellation</string>
<string name="order_status_probably_delivered">Likely delivered</string>
<string name="order_status_returned">Returned</string>
<string name="order_status_shipped">Shipped</string>
<string name="order_status_shipping_error">Shipping error</string>
<string name="order_status_unknown">Status unknown</string>
<string name="order_status_user_action_required">Action required</string>
<string name="order_tracking_number_label">Tracking No.</string>
<string name="package_common_header_content_description">Package</string><string name="common_weather_clear_content_description">Clear</string>
<string name="common_weather_cloudy_content_description">Cloudy</string>
<string name="common_weather_haze_content_description">Haze</string>
<string name="common_weather_heavy_rain_content_description">Heavy rain</string>
<string name="common_weather_heavy_snow_content_description">Heavy snow</string>
<string name="common_weather_partly_cloudy_content_description">Partly cloudy</string>
<string name="common_weather_rain_content_description">Rain</string>
<string name="common_weather_sleet_content_description">Sleet</string>
<string name="common_weather_snow_content_description">Snow</string>
<string name="common_weather_sunny_content_description">Sunny</string>
<string name="common_weather_temperature_celsius">%1$d°C</string>
<string name="common_weather_temperature_fahrenheit">%1$d°F</string>
<string name="common_weather_thunderstorm_content_description">Thunderstorm</string>
<string name="common_weather_unavailable_content_description">Conditions unavailable</string>
<string name="common_weather_windy_content_description">Windy</string>
<string name="commute_card_coffee_nearby">Coffee nearby</string>
<string name="commute_card_destination_home">home</string>
<string name="commute_card_destination_work">work</string>
<string name="commute_card_gas_stations_nearby">Gas station nearby</string>
<string name="commute_card_travel_summary">%1$s to %2$s</string>
<string name="daily_brief_afternoon_greeting">Good afternoon</string>
<string name="daily_brief_all_day">You have an event all day %1$s.</string>
<string name="daily_brief_evening_greeting">Good evening</string>
<string name="daily_brief_event_string">Your %1$s event is at %2$s %3$s.</string>
<string name="daily_brief_first">first</string>
<string name="daily_brief_morning_greeting">Good morning</string>
<string name="daily_brief_next">next</string>
<string name="daily_brief_today">today</string>
<string name="daily_brief_tomorrow">tomorrow</string><string name="hourly_forecast">Hourly forecast</string>

<string name="inspire_me">Inspire me</string>
<string name="interesting_fact">Interesting fact</string>
<string name="joke">Tell me a joke</string>
<string name="make_me_smile">Make me smile</string>
<string name="fun_fact">Fun fact</string>
<string name="proverb">Tell me a proverb</string>
<string name="quote">See a quote</string>
<string name="random_fun">Random fun</string>
<string name="recite_a_haiku">Recite a haiku</string>
<string name="recite_a_limerick">Recite a limerick</string>
<string name="roll_a_die">Roll a die</string>
<string name="tell_me_a_story">Tell me a story</string>
<string name="tell_my_fortune">Tell my fortune</string>

<string name="send_a_message">Send a message</string>
<string name="set_a_timer">Set a timer</string>
<string name="set_an_alarm">Set an alarm</string>
<string name="show_reminders">Show reminders</string>
<string name="top_news">Top news</string>
<string name="whats_my_heart_rate">What\'s my heart rate?</string>
<string name="when_is_sunset">When is sunset</string>

<string name="social_event_common_header_content_description">Social event</string>
<string name="social_event_detail_confirmation_number_label">Confirmation no</string>
<string name="social_event_detail_name_label">Name</string>
<string name="social_event_detail_row_and_seat">%1$s%2$s</string>
<string name="social_event_detail_section">Section %s</string>
<string name="social_event_detail_ticket_barcode_content_description">Ticket barcode</string>
<string name="social_event_detail_ticket_label">Ticket</string>
<string name="start_a_workout">Start a workout</string>
<string name="start_stopwatch">Start a stopwatch</string>
<string name="steps_today">Steps today</string>

<string name="shared_about_chip_label">About %s</string>
<string name="shared_account_attribution">From your Gmail: %s</string>
<string name="shared_atm_nearby_label">ATM nearby</string>
<string name="shared_atm_nearby_place_label">ATM nearby %s</string>
<string name="shared_attractions_nearby_label">Attractions nearby</string>
<string name="shared_attractions_nearby_place_label">Attractions nearby %s</string>
<string name="shared_call_chip_label">Call</string>
<string name="shared_navigate_there_chip_label">Navigate there</string>
<string name="shared_navigate_to_chip_label">Navigate to %s</string>
<string name="shared_nightlife_nearby_label">Nightlife nearby</string>
<string name="shared_nightlife_nearby_place_label">Nightlife nearby %s</string>
<string name="shared_restaurants_nearby_label">Restaurants nearby</string>
<string name="shared_restaurants_nearby_place_label">Restaurants nearby %s</string>
<string name="shared_start_navigation_chip_label">Start navigation</string>
<string name="shared_today">Today</string>
<string name="shared_tomorrow">Tomorrow</string>

<string name="restaurant_common_header_content_description">Restaurant</string>
<string name="restaurant_detail_head_count">Reservation for %d</string>

<string name="transportation_card_departure_date_and_time">%1$s, %2$s</string>
<string name="transportation_card_departure_location">Departs %s</string>
<string name="transportation_card_operator_and_route_number">%1$s %2$s</string>
<string name="transportation_card_trip_name">%1$s to %2$s</string>
<string name="transportation_common_bus_header_content_description">Bus</string>
<string name="transportation_common_ferry_header_content_description">Ferry</string>
<string name="transportation_common_taxi_header_content_description">Taxi</string>
<string name="transportation_common_train_header_content_description">Train</string>
<string name="transportation_common_unspecified_header_content_description">Transportation</string>
<string name="transportation_detail_arrival_label">Arrives</string>
<string name="transportation_detail_departure_label">Departs</string>
<string name="transportation_detail_passenger_label">Passenger</string>
<string name="transportation_detail_reservation_number_label">Reservation no</string>
<string name="transportation_detail_seat_label">Seat</string>
<string name="transportation_detail_ticket_label">Ticket</string>
<string name="transportation_detail_ticket_qr_content_description">Ticket QR code</string>

<string name="car_common_header_content_description">Car rental</string>
<string name="car_detail_car_make_and_model_label">Name</string>
<string name="car_detail_confirmation_code_label">Booking #</string>
<string name="car_detail_drop_off_label">Drop off</string>
<string name="car_detail_pick_up_label">Pick up</string>

<string name="flight_card_status_delayed">Delayed</string>
<string name="flight_chip_destination_weather">%s weather</string>
<string name="flight_chip_food_nearby">Food nearby</string>
<string name="flight_chip_weather_there">Weather in %s</string>
<string name="flight_common_gate">Gate %s</string>
<string name="flight_common_header_content_description">Flight</string>
<string name="flight_common_no_terminal_or_gate">--</string>
<string name="flight_common_operator_and_flight_number">%1$s %2$d</string>
<string name="flight_common_status_cancelled">Canceled</string>
<string name="flight_common_status_diverted">Diverted</string>
<string name="flight_common_status_in_distress">In distress</string>
<string name="flight_common_status_landed">Landed</string>
<string name="flight_common_status_not_operational">Not operational</string>
<string name="flight_common_status_on_time">On time</string>
<string name="flight_common_status_redirected">Redirected</string>
<string name="flight_common_status_scheduled">Scheduled</string>
<string name="flight_detail_arrival_content_description">Arrival</string>
<string name="flight_detail_boarding_pass_label">Boarding pass</string>
<string name="flight_detail_boarding_pass_qr_content_description">Boarding pass QR code</string>
<string name="flight_detail_confirmation_number">Confirmation: %s</string>
<string name="flight_detail_delay_time_hours_and_minutes">%1$dh%2$dm</string>
<string name="flight_detail_delay_time_minutes">%d min</string>
<string name="flight_detail_departure_content_description">Departure</string>
<string name="flight_detail_passenger_label">Passenger</string>
<string name="flight_detail_seat_label">Seat</string>
<string name="flight_detail_status_delayed">Delayed %s</string>
<string name="flight_detail_terminal">Terminal %s</string>
<string name="flip_a_coin">Flip a coin</string>

<string name="hotel_common_header_content_description">Hotel</string>
<string name="hotel_detail_checkin_label">Check in</string>
<string name="hotel_detail_checkout_label">Check out</string>

I know many of these already appear on watches, and I think it's likely some of this might be here to better show off the demo mode discussed above, but there's so much here that I don't want to leave it without acknowledging the addition.

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.