Author Archives: Google Devs

Google I/O 2017 on your mobile devices

Posted by Mónica Bagagem, Product Marketing Manager

I/O is just a couple of weeks away… 9 days to be exact! As we get closer, we know many of you are excited to start customizing your I/O schedule so that you can make the most of the three festival days. In addition to customizing your schedule on google.com/io, you can also navigate through our 150+ technical Sessions, hundreds of Office Hours, and dozens of Codelabs via the Google I/O 2017 mobile app, available now for Android and very soon for iOS.

Available now: Android appiOS appWeb app (add to your mobile homescreen)

Here is a breakdown of all the things you can do with the mobile app this year:
SCHEDULE 
Browse, filter and find Sessions, Office Hours, Codelabs, and App Reviews across 14 tracks. All sessions will be livestreamed this year and you can access the livestream channel or the session recording after the fact in the respective session detail screen.
MY I/O
This is where you'll find all your saved #io17 events. To make things easy for you, these will always be synced from your account across mobile and desktop, so you can switch back and forth as needed. And since we know May 17-19 will be quite busy days, we'll send you reminders right before your saved sessions are about to start.

Exclusive for onsite registered attendees: To help make it easier to attend your favorite talks and minimize lines, you'll be able to reserve seats for sessions in advance of I/O via google.com/io AND our mobile app - as long as you're signed in with the same email address you used to register for the festival. You can reserve as many sessions as you'd like per day, but only one reservation per time slot is allowed.

Reservations will be open until 1H before the start time for each session. If a particular session has already reached the reservation capacity, you can join the waitlist and we'll automatically change your reservation status if any spots open up. A portion of seats will still be available first-come, first-served onsite. Reservations are open starting today via the Session detail screens on the Android app and on google.com/io/schedule. Note: Reservations will also be available on iOS once the app is launched.
FEED
Read through the latest details and announcements about I/O. You can also opt-in to receive notifications from us about the event, so you don't miss a thing!
MAP
Guide yourself throughout Shoreline using the custom conference map.
INFO
Find more information about onsite WiFi, our content formats, travel tips to get to Shoreline, and more. Under Settings, you can also set the timezone for the schedule and opt-in to receive notifications.

Keeping up with the tradition, we'll be open sourcing the app after I/O. Until then, start getting ready for I/O; we hope the mobile app will help you navigate the schedule and grounds for a great experience. See you soon!

Update: The iOS app is now available for download.

AIY Projects: Do-it-yourself AI for Makers

Posted by Billy Rutledge, Director of AIY Projects
Our teams are continually inspired by how Makers use Google technology to do crazy, cool new things. Things we would've never imagined doing ourselves, things that solve real world problems. After talking to Maker community members, we learned that many were interested in using artificial intelligence in projects, but didn't know where to begin. To address this gap, we're launching AIY Projects: do-it-yourself artificial intelligence for Makers.
With AIY Projects, Makers can use artificial intelligence to make human-to-machine interaction more like human-to-human interactions. We'll be releasing a series of reference kits, starting with voice recognition. The speech recognition capability in our first project could be used to:
  • Replace physical buttons and digital displays (those are so 90's) on household appliances and consumer electronics (imagine a coffee machine with no buttons or screen -- just talk to it)
  • Replace smartphone apps to control devices (those are so 2000's) on connected devices (imagine a connected light bulb or thermostat -- just talk to them)
  • Add voice recognition to assistive robotics (e.g. for accessibility) -- just talk to the robot as a simplified programming interface, e.g. "tell me what's in this room or "tell me when you see the mail-carrier come to the door"
Fully assembled Voice Kit.
The first open source reference project is the Voice Kit: instructions to build a Voice User Interface (VUI) that can use cloud services (like the new Google Assistant SDK or Cloud Speech API) or run completely on-device. This project extends the functionality of the most popular single board computer used for digital making - the Raspberry Pi.
Everything that comes in the Voice Kit.

The included Voice Hardware Accessory on Top (HAT) contains hardware for audio capture and playback: easy-to-use connectors for the dual mic daughter board and speaker, GPIO pins to connect low-voltage components like micro-servos and sensors, and an optional barrel connector for dedicated power supply. It was designed and tested with the Raspberry Pi 3 Model B.
Alternately, Developers can run Android Things on the Voice Kit with full functionality - making it easy to prototype Internet-of-Things devices and scale to full commercial products with several turnkey hardware solutions available (including Intel Edison, NXP Pico, and Raspberry Pi 3). Download the latest Android Things developer preview to get started.
Close up of the Voice HAT accessory board.


Making with the Google Assistant SDK
The Google Assistant SDK developer preview was released last week. It's enabled by default, and brings the Google Assistant to your Voice Kit: including voice control, natural language understanding, Google's smarts, and more.
In combination with the rest of the Voice Kit, we think the Google Assistant SDK will provide you many creative opportunities to build fun and engaging projects. Makers have already started experimenting with the SDK - including building a mocktail maker.


The Voice Kit ships out to all MagPi Magazine subscribers on May 4, 2017, and we've published a parts list, assembly instructions, source code and suggested extensions to our website: aiyprojects.withgoogle.com. The complete kit is also for sale at over 500 Barnes & Noble stores nationwide, as well as UK retailers WH Smith, Tesco, Sainsburys, and Asda.
This is just the first AIY Project. There are more in the works, but we need to know how you'd like to incorporate AI into your own projects. Visit hackster.io to share your experiences and discuss future projects. Use #AIYprojects on social media to help us find your inventions. And if you happen to be at the San Mateo Maker Faire on May 19-21, 2017, stop by the Google pavilion to give us feedback.


Start planning your Google I/O 2017 schedule!

Posted by Christopher Katsaros, Product Marketing Manager

Whether you're joining us in person or remotely, we're looking forward to connecting with you at Google I/O, on May 17-19. It's the best way to learn about building apps for the Google Assistant, how to go from Zero to App with Firebase, all of the goodies inside Android O, and much more!

Over 150 Technical Sessions, Livestreamed

The show kicks off at 10AM PDT on Wednesday, May 17 with the Google Keynote, an opportunity to hear about the latest product and platform innovations from Google, helping connect you to billions of users around the world. After that, we'll be diving into all of the ways developers can take advantage of this newness in a Developer Keynote at 1PM PDT. From there, the 14 tracks at Google I/O kickoff, with over 150 technical sessions livestreamed (i.e. all of them!) at google.com/io.

We've just published more talks on the I/O website, so you can start planning your custom schedule ahead of the conference (shhh! we've got a few more sessions up our sleeve, so don't forget to check back directly after the Developer Keynote).

You can also take advantage of Codelabs - self-paced tutorials on a number of technical topics to get you up and running with a Google product or feature. These Codelabs will be available both to those who are joining us in person at Shoreline, and online for those of you tuning in from around the world. More details will be available on the schedule soon.

Joining in person?

We received a lot of great feedback from attendees last year, and have been working hard since then to make sure this is the best Google I/O, yet. To help make it easier to attend your favorite talks and minimize lines, you'll be able to reserve seats across sessions before I/O starts. But don't worry, we're saving a few seats in each session that will be available on a first-come, first-served basis onsite. We've also increased the size of each of the tents this year, giving you more opportunities to see all of your favorite talks in-person.

Finally, we've doubled the number of Office Hours available, since you told us that being able to connect directly with Googlers to get your questions answered was extremely valuable. On top of that, all of the sandbox demo areas will be inside climate-controlled structures, making it easier to avoid the elements (but don't forget to bring your layers – Shoreline Amphitheatre is still an outdoor venue, after all).

See you in 3 weeks!

We're looking forward to seeing you in just a few weeks. We've got a few more updates to share before then; be sure to check out the Google I/O website for more details, or follow the conversation using the #io17 hashtag.


Introducing the Google Assistant SDK

Posted by Chris Ramsdale, Product Manager

When we first announced the Google Assistant, we talked about helping users get things done no matter what device they're using. We started with Google Allo, Google Home and Pixel phones, and expanded the Assistant ecosystem to include Android Wear and Android phones running Marshmallow and Nougat over the last few months. We also announced that Android Auto and Android TV will get support soon.

Today, we're taking another step towards building out that ecosystem by introducing the developer preview of the Google Assistant SDK. With this SDK you can now start building your own hardware prototypes that include the Google Assistant, like a self-built robot or a voice-enabled smart mirror. This allows you to interact with the Google Assistant from any platform.

The Google Assistant SDK includes a gRPC API, a Python open source client that handles authentication and access to the API, samples and documentation. The SDK allows you to capture a spoken query, for example "what's on my calendar", pass that up to the Google Assistant service and receive an audio response. And while it's ideal for prototyping on Raspberry Pi devices, it also adds support for many other platforms.

To get started, visit the Google Assistant SDK website for developers, download the SDK, and start building. In addition, Wayne Piekarski from our Developer Relations team has a video introducing the Google Assistant SDK, below.


And for some more inspiration, try our samples or check out an example implementation by Deeplocal, an innovation studio out of Pittsburgh that took the Google Assistant SDK for a spin and built a fun mocktails mixer. You can even build one for yourself: go here to learn more and read their documentationon Github. Or check out the video below on how they built their demo from scratch.


This is a developer preview and we have a number of features in development including hotword support, companion app integration and more. If you're interested in building a commercial product with the Google Assistant, we encourage you to reach out and contact us. We've created a new developer community on Google+ at g.co/assistantsdkdev for developers to keep up to date and discuss ideas. There is also a stackoverflow tag [google-assistant-sdk] for questions, and a mailing list to keep up to date on SDK news. We look forward to seeing what you create with the Google Assistant SDK!

Using field masks with update requests to Google APIs

Originally posted on the G Suite Developers Blog
Posted by Wesley Chun (@wescpy), Developer Advocate, G Suite

We recently demonstrated how to use field masks to limit the amount of data that comes back via response payloads from read (GET) calls to Google APIs. Today, we'll focus on a different use case for field masks: update requests.

In this scenario, field masks serve a different, but similar purpose—they still filter, but function more like bitmasks by controlling which API fields to update. The following video walks through several examples of update field mask usage with both the Google Sheets and Slides APIs. Check it out.


In the sample JSON payload below, note the request to set the cells’ bold attribute to true (per the cell directive below), then notice that the field mask (fields) practically mirrors the request:

{
"repeatCell": {
"range": {
"endRowIndex": 1
},
"cell": {
"userEnteredFormat": {
"textFormat": {
"bold": true
}
}
},
"fields": "userEnteredFormat/textFormat/bold",
}
}

Now, you might think, "is that redundant?" Above, we highlighted that it takes two parts: 1) the request provides the data for the desired changes, and 2) the field mask states what should be updated, such as the userEnteredFormat/textFormat/bold attribute for all the cells in the first row. To more clearly illustrate this, let's add something else to the mask like italics so that it has both bold and italic fields:

        "fields": "userEnteredFormat/textFormat(bold,italic)"
However, while both elements are in the field mask, we've only provided the update data for bold. There's no data for italic setting specified in the request body. In this case, italics for all cells will be reset, meaning if the cells were originally italicized, those italics will be removed after this API request completes. And vice versa, if the cells were not italicized to begin with, they'll stay that way. This feature gives developers the ability to undo or reset any prior settings on affected range of cells. Check out the video for more examples and tips for using field masks for update requests.

To learn more about using field masks for partial response in API payloads, check out this video and the first post in this two-part series. For one of the most comprehensive write-ups on both (read and update) use cases, see the guide in the Google Slides API documentation. Happy field-masking!

Expand your color palette with new tools for Material Design

Posted By: Rachel Been, Creative Lead, Material Design

The Material Design Guidelines are a living documentation of visual, interactive, and motion design guidance across platforms and devices.

Beyond guidance, Material Design is a also system that supports and strengthens communication and productivity with new tools and inspiration. With today's update, Material is introducing a new way to learn about color. The new color tool helps you create, share, and apply color palettes to a sample UI and through components in codepen. The tool also supports accessibility by evaluating the legibility of text for any color combination. Specific features include:





Create color schemes

Create color schemes that include darker and lighter variations of your primary and secondary colors.











Test accessibility

Check if text is accessible on different-colored backgrounds, as measured using the Web Content Accessibility Guidelines legibility standards.










Preview your UI in color

Preview the look of your color scheme across a range of Material Design Components, with editable HTML, CSS, or JavaScript in Codepen.




With these new tools to dabble with color schemes, you'll be able to give you users a richer experience, so we can't wait to see what you come up with. To get the latest news and engage with us directly, please follow us on our new Twitter account (@materialdesign) and visit https://material.io/.

Santa Tracker, open-sourced and delivered

Posted by Sam Thorogood, Developer Programs Engineer

Santa Tracker is a holiday tradition here at Google. Every year, you can celebrate the season with games, holiday experiences and educational content throughout December: not to mention watching Santa deliver presents on 24th.

Today, we're continuing the season of giving by delivering the updated open-source versions of both the Web and Android versions that ran in December 2016. These are large, real-world apps that show off the latest and greatest from Google—using APIs and frameworks like Firebase and Polymer.



This year, Santa's elves added even more engaging, fun and educational experiences to Santa Tracker: all while making Santa and his reindeer leaner than ever before—across both Web and Android.

On the Web, we built a reliable, offline-capable PWA-ified version of Santa Tracker that saved bandwidth and worked in environments with poor connectivity. For Android, we worked hard to save every precious byte by closely examining our visual assets and other libraries.

To get started, you can check out the code on GitHub at google/santa-tracker-weband google/santa-tracker-android. Both Web and Android versions include detailed build instructions.

On the Web

If you'd like to read about how the elves build Santa Tracker as an offline Progressive Web App, check out our Case Study on Google Developers. To download the source, head over to GitHub. Here are some highlights of the release-
  • Santa is a Progressive Web App, sporting a responsive design for mobile, desktop and tablet, supporting Add to Home Screen and offline.
    • Rather than saving the entire site offline (about 100mb, including resources needed for different browsers), Santa's Service Worker only saves the scenes you've visited at least once—icing over houses that aren't available offline.

  • Santa Tracker used Polymer 1.7+, packing code into reusable components. Every housein Santa's Village is a custom element, only loaded when needed, minimizing the startup cost of Santa Tracker.
  • The Web Share API allowed users on mobile to quickly and natively showcase their creativity—it's a modern API for interfacing with a platform's native share intent, replacing the sea of share buttons normally presented to users.
  • Santa sported a new and improved Chromecast experience that scaled well across all Cast devices—from the original Chromecast device through to the high-end Chromecast Ultra and supported TVs.

  • Users were delighted by showing some great video content from around Santa's Village, especially during Santa's long travel legs.
  • The Android client also used this Chromecast experience, so Android users joined the fun watching Santa deliver presents on the 24th on their big screen TVs.

On Android

In 2016, Santa went on a diet, and reduced his APK download size by over 10mb—while adding four new games and a visual refresh. To learn more about our work, check out the in-depth analysis on Android Developers—or to try it yourself, head over to GitHub. Here are some highlights of this year's app-
  • Present Quest, a new AR game where players are encouraged to explore their real-world environment to collect presents and level up!

  • Santa is smaller and faster than ever before. The download size is down 10mb from the previous release, despite including multiple new games, Santa works better on memory-constrained devices, and various sources of jank have been found and removed.
  • The app is built using split APKs - one per architecture (armv5, armv7, and x86), reducing download size. Each APK supports phones, tablets, Android TVs and provide custom watch faces on Android Wear.

Ho Ho Ho!

We hope you enjoy exploring Santa Tracker and its source code, and it inspires you to leverage the same approaches to make your own magical experiences!


Using field masks with Google APIs for partial response

Originally posted on the G Suite Developers Blog by Wesley Chun, Developer Advocate, G Suite

When you write applications using Google APIs (not just G Suite ones, but most Google APIs including YouTube or Google Cloud Platform APIs), it's important to be mindful of the data that’s returned in the response payloads from API calls. If you're not, your apps are likely getting back much more data than they need which can affect the performance of your apps whether on mobile or a server backend.

That's why most Google APIs allow you to only filter the data you need from response payloads with field masks. To get you comfortable with field masks, we’ve put together a video to demonstrate their use with various Google APIs: With field masks, you can specify exactly what fields an API should return in its response payload by providing a fields or part parameter in your calls. And once the API knows what you want, it will likely spend less time assembling your response too. Here’s an example Python call to fetch your sender addresses using the Gmail API (if GMAIL is your service endpoint):
     addresses = GMAIL.users().settings().sendAs().list(
userId='me'
).execute().get('sendAs')

Whether you’re using a Client Library (as our Python call) or using HTTP directly with GET https://www.googleapis.com/gmail/v1/users/userId/settings/sendAs, this is the payload you get back from the API:
     {
"sendAs": [{
"sendAsEmail": string,
"displayName": string,
"replyToAddress": string,
"signature": string,
"isPrimary": boolean,
"isDefault": boolean,
"treatAsAlias": boolean,
"smtpMsa": {
"host": string,
"port": integer,
"username": string,
"password": string,
"securityMode": string
},
"verificationStatus": string
}, ...]
}

The sendAs array gives you everything you need to know about each of your sender addresses. Did you know you can change a user’s email signature using the Gmail API without all of the data from above? You only need one field, or at most two: sendAsEmail and perhaps the isPrimary flag. By specifying a field mask with just those names from the sendAs attribute, you can cut out all those unneeded fields. Check it out here in Python with the field mask bolded for emphasis (versus the sample code above that doesn’t filter):
     addresses = GMAIL.users().settings().sendAs().list(
userId='me', fields='sendAs(sendAsEmail,isPrimary)'
).execute().get('sendAs')
Field masks filter our unnecessary data from Google API call responses.

In part two of this video series (coming soon), we’ll show you a different use case for field masks...for update API calls. We’ll also provide some usage tips and demonstrate how field masks can be used in both read and update calls, how both types of calls are discrete, and how in some cases, you may use both as part of a single API call. Stay tuned!

To learn more about using field masks for partial response in API payloads, check out this section of the Client Library docs. For one of the most comprehensive write-ups on both (read and update) use cases, see the guide in the Google Slides API documentation.

Noto Serif CJK is here!


Posted by Xiangye Xiao and Jungshik Shin, Internationalization Engineering team

Today, in collaboration with Adobe, we are responding to the call for Serif! We are pleased to announce Noto Serif CJK, the long-awaited companion to Noto Sans CJK released in 2014. Like Noto Sans CJK, Noto Serif CJK supports Simplified Chinese, Traditional Chinese, Japanese, and Korean, all in one font.

A serif-style CJK font goes by many names: Song (宋体) in Mainland China, Ming (明體) in Hong Kong, Macao and Taiwan, Minchō (明朝) in Japan, and Myeongjo (명조) or Batang (바탕) in Korea. The names and writing styles originated during the Song and Ming dynasties in China, when China's wood-block printing technique became popular. Characters were carved along the grain of the wood block. Horizontal strokes were easy to carve and vertical strokes were difficult; this resulted in thinner horizontal strokes and wider vertical ones. In addition, subtle triangular ornaments were added to the end of horizontal strokes to simulate Chinese Kai (楷体) calligraphy. This style continues today and has become a popular typeface style.

Serif fonts, which are considered more traditional with calligraphic aesthetics, are often used for long paragraphs of text such as body text of web pages or ebooks. Sans-serif fonts are often used for user interfaces of websites/apps and headings because of their simplicity and modern feeling.

Design of '永' ('eternity') in Noto Serif and Sans CJK. This ideograph is famous for having the most important elements of calligraphic strokes. It is often used to evaluate calligraphy or typeface design.

The Noto Serif CJK package offers the same features as Noto Sans CJK:

  • It has comprehensive character coverage for the four languages. This includes the full coverage of CJK Ideographs with variation support for four regions, Kangxi radicals, Japanese Kana, Korean Hangul and other CJK symbols and letters in the Unicode Basic Multilingual Plane of Unicode. It also provides a limited coverage of CJK Ideographs in Plane 2 of Unicode, as necessary to support standards from China and Japan.


Simplified Chinese
Supports GB 18030 and China’s latest standard Table of General Chinese Characters (通用规范汉字表) published in 2013.
Traditional Chinese
Supports BIG5, and Traditional Chinese glyphs are compliant to glyph standard of Taiwan Ministry of Education (教育部國字標準字體).
Japanese
Supports all of the kanji in  JIS X 0208, JIS X 0213, and JIS X 0212 to include all kanji in Adobe-Japan1-6.
Korean
The best font for typesetting classic Korean documents in Hangul and Hanja such as Humninjeongeum manuscript, a UNESCO World Heritage.
Supports over 1.5 million archaic Hangul syllables and 11,172 modern syllables as well as all CJK ideographs in KS X 1001 and KS X 1002
Noto Serif CJK’s support of character and glyph set standards for the four languages
  • It respects diversity of regional writing conventions for the same character. The example below shows the four glyphs of '述' (describe) in four languages that have subtle differences.
From left to right are glyphs of '述' in S. Chinese, T. Chinese, Japanese and Korean. This character means "describe".
  • It is offered in seven weights: ExtraLight, Light, Regular, Medium, SemiBold, Bold, and Black. Noto Serif CJK supports 43,027 encoded characters and includes 65,535 glyphs (the maximum number of glyphs that can be included in a single font). The seven weights, when put together, have almost a half-million glyphs. The weights are compatible with Google's Material Design standard fonts, Roboto, Noto Sans and Noto Serif(Latin-Greek-Cyrillic fonts in the Noto family).
Seven weights of Noto Serif CJK
    • It supports vertical text layout and is compliant with the Unicode vertical text layout standard. The shape, orientation, and position of particular characters (e.g., brackets and hiragkana letters) are changed when the writing direction of the text is vertical.



    The sheer size of this project also required regional expertise! Glyph design would not have been possible without leading East Asian type foundries Changzhou SinoType Technology, Iwata Corporation, and Sandoll Communications.

    Noto Serif CJK is open source under the SIL Open Font License, Version 1.1. We invite individual users to install and use these fonts in their favorite authoring apps; developers to bundle these fonts with your apps, and OEMs to embed them into their devices. The fonts are free for everyone to use!

    Noto Serif CJK font download:https://www.google.com/get/noto
    Noto Serif CJK on GitHub:https://github.com/googlei18n/noto-cjk
    Adobe's landing page for this release: http://adobe.ly/SourceHanSerif
    Source Han Serif on GitHub: https://github.com/adobe-fonts/source-han-serif/tree/release/

    Updates to end user consent for 3rd-party apps and Single Sign-on providers

    Originally Posted on G Suite Developers Blog
    Posted by Rodrigo Paiva, Product Manager & Nicholas Watson, Software Engineer, Identity, and Wesley Chun, Developer Advocate, G Suite


    At Google, we're mindful of keeping our users' data and account information secure. So whether you're writing an app that requires access to user data or helping your users change their passwords, we'll keep you up-to-date on policy changes, and now today, when it comes to consent and 3rd-party applications. Starting April 5, 2017, if you're an application developer or a 3rd-party Single Sign-On (SSO) provider, your G Suite users may encounter a redirect when they authenticate with your identity service to make it clear to users which account they're authenticating as well as the permissions they're granting to applications.

    These changes will occur on these platforms:
    • Google and 3rd-party applications on iOS
    • Mobile browsers on iOS and Android
    • Web browsers (Chrome, Firefox and other modern browsers)
    Note that Android applications that use the standard authentication libraries are already prompting users to select appropriate account information, so they're not impacted by these changes.

    More visibility with new permission requests for your application 

    It's important that your users are presented with account information and credential consent, and apps should make this process easy and clear. One new change that you may now see is that only non-standard permission requests will be presented in the secondary consent screen in your application.

    Currently when an application requests permissions, all of them are displayed together. However, users should have greater visibility into permissions being requested beyond the standard "email address" and "profile" consent. By clicking to select their account, a user consents to these core permissions,. The secondary consent screen will appear only if additional permissions are requested by the application.

    Only non-standard permissions will be presented in the secondary consent screen that the user must approve.

    Along with these changes, your application name will be more visible to users, and they can click-through to get your contact information. We recommend application developers use a public-facing email address so that users can quickly contact you for support or assistance. For more details, check out this developer guide.

    If your application may also be used by G Suite customers that employ a 3rd-party Single Sign-On (SSO) service, we recommend that you utilize the hd and/or login_hint parameters, if applicable. Even with the changes to the 3rd-party SSO auth flow, these parameters will be respected if provided. You can review the OpenID Connect page in the documentation for more information.


    An application that uses the hd parameter to specify the domain name automatically

    Changes coming for 3rd-party SSO redirection

    G Suite users may also notice redirection when signing into 3rd-party SSO providers. If no accounts are signed in, the user must confirm the account after signing in to the 3rd-party SSO provider to ensure that they're signed in with the correct G Suite account:
    The end user who has just signed in with one Google account should select that account as confirmation.

    As mentioned, by clicking to the select their account, a user is opting into "email address" and "profile" consent. Once the user consents to any additional non-standard permissions that may be requested, they will be redirected back to your application.

    If the user is already signed in to one or more accounts that match the hdhint, the Account Chooser will display all of the accounts and require the user to select the appropriate G Suite account before being redirected to the 3rd-party SSO provider then back to your application:

    A user who is signed into several Google accounts will be required to choose the appropriate account.

    See updates starting April 2017

    These changes will help your users understand their permissions more clearly across all platforms, whether they're using Google or a 3rd-party SSO provider for authentication. We've started to roll out the new interstitial page on iOS devices, and changes for browsers will begin to roll out starting April 5, 2017.