Now that Project Fi has come out into the open, we can expect to see integration for the new service popping up in a handful of Google's apps over the coming weeks. The first app to received custom support is Hangouts, which began rolling out just hours after the Project Fi website went live. This update doesn't make any changes to parts of the app we care about, but just adds some elements that come alive when a device is hooked to Google's new service. The apk is exclusively for devices running Android 5.1, and I wouldn't expect to see another variant with support for lower versions since every Nexus 6, Project Fi's sole supported phone, should theoretically be 5.1 (unless your current carrier is evil). While there aren't any changes for most of us to use today, there are a few bits we can learn about the service from what's available in Hangouts.

TeardownHero

Disclaimer: Teardowns are necessarily speculative and usually based on incomplete evidence. It's possible that the guesses made here are totally and completely wrong. There is always a chance that details may change or plans may be cancelled prior to the launch of a new feature discovered in a teardown. Much like rumors, nothing is certain until it's officially announced.

Google Voice

The Project Fi FAQ makes frequent references to the use of Hangouts to provide many of the unique features Google has to offer, but the actual Google Voice service is barely mentioned. While there's no declaration that long-distance calling and visual voicemail are powered by Google Voice, it seems likely, and there is a prompt in the new Hangouts update that will ask users to agree to the terms of service. It's not clear if this will appear when users try to enable specific features, or if it's simply required as soon as they sign up to Fi.

<string name="tos_title">Terms of Service</string>
<string name="tos_message">Accept Google Voice terms of services?</string>
<string name="tos_agree">Agree</string>

Wi-Fi vs. Cellular Calling

Rumors have told us for a long time that Wi-Fi calling was to be a part of the business model for Project Fi. This reduces reliance on cellular networks and lowers costs. The FAQ mentions that users are free to turn off their Wi-Fi at any time, which obviously routes calls to a cellular network, but it doesn't specifically explain if users will have the option to leave their Wi-Fi on without using it for calling. Judging by a few of these strings, it looks like users will have an option to be prompted with every call, or set a default if they like.

strings.xml

<string name="settings_label">Configure Wi‑Fi calling</string>
<string name="wifi_calling_enabled_title">Wi‑Fi calling</string>
<string name="wifi_calling_enabled_summary">Use Wi‑Fi for calls when my connection is strong enough</string>
<string name="ask_each_call_title">Ask every time</string>
<string name="wifi_chooser_title">How would you like to place this call?</string>
<string name="wifi_chooser_choose_wifi">Wi‑Fi</string>
<string name="wifi_chooser_choose_cellular">Cellular</string>

telephony_settings.xml

<SwitchPreference android:title="@string/wifi_calling_enabled_title" android:key="wifi_calling_enabled_key" android:summary="@string/wifi_calling_enabled_summary" />
<Preference android:title="@string/selected_account_title" android:key="account_key" />
<SwitchPreference android:title="@string/ask_each_call_title" android:key="ask_each_call_key" />

There are also a few animations that will be used to show the status of your current connection, including the "seamless" transition between cellular and Wi-Fi networks.

ic_seamless_cellular_loopic_seamless_cellular_wifiic_seamless_wifi_cellularic_seamless_wifi_loop

Reporting Call Quality

It goes without saying that Google doesn't want subscribers to abandon Project Fi due to things like bad call quality. It's usually possible to measure audio quality with code, but sometimes there are details that need more clarity from the user. Google will be collecting feedback automatically, and customers will have the ability to note problems with the service if the call doesn't live up to their expectations.

AndroidManifest.xml

<activity android:exported="false" android:name="com.google.android.apps.hangouts.telephony.TeleFeedback$FeedbackActivity" android:taskAffinity="" android:theme="@android:style/Theme.Material.Light.Dialog.NoActionBar.MinWidth"/>

strings.xml

<string name="silent_feedback_dialog_title">Good call feedback is automatically sent</string>
<string name="silent_feedback_dialog_message">Your feedback for all good calls will be automatically sent to Google. The feedback report will include system information, logs, and email address.</string>

<string name="feedback_title">How was the call quality?</string>
<string name="feedback_action_high">Good</string>
<string name="feedback_action_low">Bad</string>
<string name="feedback_description_high_quality">Good call</string>
<string name="feedback_call_issue_title">What was the issue?</string>
<string name="feedback_call_issue_none">Good call</string>
<string name="feedback_call_issue_echo">Echo</string>
<string name="feedback_call_issue_audio_cut_out">Audio cut out</string>
<string name="feedback_call_issue_remote_audio">"Couldn't hear other person"</string>
<string name="feedback_call_issue_local_audio">"Other person couldn't hear me"</string>
<string name="feedback_call_issue_other">Something else</string>

arrays.xml

<string-array name="feedback_call_issues">
<item>@string/feedback_call_issue_echo</item>
<item>@string/feedback_call_issue_audio_cut_out</item>
<item>@string/feedback_call_issue_remote_audio</item>
<item>@string/feedback_call_issue_local_audio</item>
<item>@string/feedback_call_issue_other</item>
</string-array>
<string-array name="feedback_call_issues_or_not">
<item>@string/feedback_call_issue_none</item>
<item>@string/feedback_call_issue_echo</item>
<item>@string/feedback_call_issue_audio_cut_out</item>
<item>@string/feedback_call_issue_remote_audio</item>
<item>@string/feedback_call_issue_local_audio</item>
<item>@string/feedback_call_issue_other</item>
</string-array>

SMS / MMS

Calling isn't the only important method of communication, texting is also important. Naturally, Hangouts will also offer to handle non-vocal messaging wherever possible, but users have the option to disable SMS in Hangouts and instead direct it to an app of their choice.

<string name="tycho_sms_alert_enable_title">Deliver SMS via Hangouts?</string>
<string name="tycho_sms_alert_disable_title">Disable SMS in Hangouts?</string>
<string name="tycho_sms_alert_enable_text">
"• You will need a data connection to send and receive SMS
• You will no longer receive SMS messages in your default SMS app, instead you will receive SMS and voicemail in Hangouts on the web and all of your devices
• You will not be able to send group SMS/MMS
• Data used will be charged at normal rates"
</string>
<string name="tycho_sms_alert_disable_text">
"You will start receiving SMS in Messenger and no longer see new SMS and voicemails in Hangouts

You will need to set Messenger as your default SMS app instead of Hangouts"</string>

It's probably an oversight, but the verbiage suggests the only alternative to Hangouts is Messenger. We'll let that one slide.

Project Fi Text Where It Belongs

Using Hangouts with both SMS and a Google account requires some visual queues to let users know which route their messages take. Now that Project Fi will muddy the waters between Wi-Fi and cellular for both calls and texts, users might need a little more clarity about their interactions.

The strings below show titles for preferences and other labels that will be used throughout Hangouts to represent configurations specific to Project Fi activities. This way everybody will know an SMS that travels out through Wi-Fi will still show up on the recipients phone with your phone number as the source.

<string name="tycho_sms_notifications_key_title">Project Fi SMS</string>
<string name="tycho_preference_category">Project Fi calls and SMS - %s</string>
<string name="tycho_voicemail_notification_screen_title">Project Fi voicemail</string>
<string name="tycho_incoming_phone_calls_summary">Ring Hangouts for incoming phone calls made to your Project Fi number</string>
<string name="realtimechat_send_from_hint_text_tycho">from my Project Fi number</string>
<string name="sms_send_from_tycho_summary">Project Fi number</string>
<string name="sms_send_from_tycho_summary_with_number">Project Fi: %1s</string>

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.

File Name: com.google.android.talk-3.2.91698097-22347370-minAPI22.apk

Version: 3.2.91698097 (22347370)

MD5: 3d98549c5331a53a1b364565508f39a8

Alternate Title: [APK Teardown] Hangouts 3.2 Comes Out With Support For Project Fi, Mocks Users By Changing Nothing Else