diff --git a/java/com/android/dialer/app/res/values/cm_strings.xml b/java/com/android/dialer/app/res/values/cm_strings.xml
index 3f7602d..950b1fb 100644
--- a/java/com/android/dialer/app/res/values/cm_strings.xml
+++ b/java/com/android/dialer/app/res/values/cm_strings.xml
@@ -45,4 +45,9 @@
     <string name="call_via_dialog_title">Call via\u2026</string>
 
     <string name="call_log_stats_title">Statistics</string>
-</resources>
+
+    <!-- Full Screen Caller Photo -->
+    <string name="fullscreen_caller_photo_title">Fullscreen photo</string>
+    <string name="fullscreen_caller_photo_summary">Display full-screen photo in incoming and outgoing calls</string>
+    <string name="fullscreen_caller_photo_message">To use, you must restart the application</string>
+</resources>
\ No newline at end of file
diff --git a/java/com/android/dialer/app/res/xml/display_options_settings.xml b/java/com/android/dialer/app/res/xml/display_options_settings.xml
index f154122..d14ba8a 100644
--- a/java/com/android/dialer/app/res/xml/display_options_settings.xml
+++ b/java/com/android/dialer/app/res/xml/display_options_settings.xml
@@ -36,4 +36,9 @@
       android:title="@string/display_options_view_names_as"
       android:defaultValue="@string/display_options_view_given_name_first_value"/>
 
+    <SwitchPreference
+        android:key="fullscreen_caller_photo"
+        android:title="@string/fullscreen_caller_photo_title"
+        android:defaultValue="false" />
+
 </PreferenceScreen>
diff --git a/java/com/android/dialer/app/settings/DisplayOptionsSettingsFragment.java b/java/com/android/dialer/app/settings/DisplayOptionsSettingsFragment.java
index bf1637f..cf52e09 100644
--- a/java/com/android/dialer/app/settings/DisplayOptionsSettingsFragment.java
+++ b/java/com/android/dialer/app/settings/DisplayOptionsSettingsFragment.java
@@ -16,15 +16,51 @@
 
 package com.android.dialer.app.settings;
 
+import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.preference.Preference;
 import android.preference.PreferenceFragment;
+import android.preference.PreferenceManager;
+import android.preference.SwitchPreference;
+import android.provider.Settings;
 import com.android.dialer.app.R;
 
-public class DisplayOptionsSettingsFragment extends PreferenceFragment {
+public class DisplayOptionsSettingsFragment extends PreferenceFragment
+    implements Preference.OnPreferenceChangeListener {
+
+  private static final String FULLSCREEN_CALLER_PHOTO = "fullscreen_caller_photo";
+
+  private SharedPreferences mPrefs;
+  private boolean mEnabled;
+
+  private SwitchPreference mFullscreenCallerPhoto;
 
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     addPreferencesFromResource(R.xml.display_options_settings);
+
+    Context context = getActivity();
+
+    mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+
+    mFullscreenCallerPhoto = (SwitchPreference) findPreference(FULLSCREEN_CALLER_PHOTO);
+    mFullscreenCallerPhoto.setChecked(mPrefs.getBoolean(FULLSCREEN_CALLER_PHOTO, false));
+    mFullscreenCallerPhoto.setOnPreferenceChangeListener(this);
+
+  }
+
+  @Override
+  public boolean onPreferenceChange(Preference preference, Object objValue) {
+    if (preference == mFullscreenCallerPhoto) {
+        boolean value = (Boolean) objValue;
+        mPrefs
+          .edit()
+          .putBoolean(FULLSCREEN_CALLER_PHOTO, value)
+          .apply();
+        return true;
+    }
+    return false;
   }
 }
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index 2405b8e..1043a19 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -27,6 +27,8 @@
 import android.app.KeyguardManager.KeyguardDismissCallback;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.location.Location;
 import android.net.Uri;
 import android.os.Build.VERSION;
@@ -170,6 +172,7 @@
   private ContactGridManager contactGridManager;
   private VideoCallScreen answerVideoCallScreen;
   private Handler handler = new Handler(Looper.getMainLooper());
+  private boolean isFullscreenPhoto = false;
 
   private enum SecondaryBehavior {
     REJECT_WITH_SMS(
@@ -720,7 +723,15 @@
     buttonAcceptClicked = false;
     buttonRejectClicked = false;
 
-    View view = inflater.inflate(R.layout.fragment_incoming_call, container, false);
+    SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+    isFullscreenPhoto = mPrefs.getBoolean("fullscreen_caller_photo", false);
+
+    int res = R.layout.fragment_incoming_call;
+    if(isFullscreenPhoto){
+      res = R.layout.fragment_incoming_call_fullscreen_photo;
+    }
+
+    View view = inflater.inflate(res, container, false);
     secondaryButton = (SwipeButtonView) view.findViewById(R.id.incoming_secondary_button);
     answerAndReleaseButton = (SwipeButtonView) view.findViewById(R.id.incoming_secondary_button2);
 
@@ -1187,7 +1198,14 @@
     @Override
     public View onCreateView(
         LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) {
-      return layoutInflater.inflate(R.layout.fragment_avatar, viewGroup, false);
+      SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+      boolean isFullscreenPhoto = mPrefs.getBoolean("fullscreen_caller_photo", false);
+
+      int res = R.layout.fragment_avatar;
+      if(isFullscreenPhoto){
+        res = R.layout.fragment_avatar_fullscreen_photo;
+      }
+      return layoutInflater.inflate(res, viewGroup, false);
     }
 
     @Override
diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_avatar_fullscreen_photo.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_avatar_fullscreen_photo.xml
new file mode 100644
index 0000000..5f32dc5
--- /dev/null
+++ b/java/com/android/incallui/answer/impl/res/layout/fragment_avatar_fullscreen_photo.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<ImageView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@id/contactgrid_avatar"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_gravity="center"
+    android:scaleType="centerCrop"/>
diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
index 1672bf9..d6966ec 100644
--- a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
+++ b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml
@@ -98,8 +98,8 @@
            a bug -->
       <com.android.incallui.autoresizetext.AutoResizeTextView
           android:id="@id/contactgrid_contact_name"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
+          android:layout_width="match_parent"
+          android:layout_height="72dp"
           android:layout_marginBottom="8dp"
           android:layout_marginStart="24dp"
           android:layout_marginEnd="24dp"
diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call_fullscreen_photo.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call_fullscreen_photo.xml
new file mode 100644
index 0000000..6f058dd
--- /dev/null
+++ b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call_fullscreen_photo.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2016 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<com.android.incallui.answer.impl.AffordanceHolderLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/incoming_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:keepScreenOn="true">
+
+  <TextureView
+      android:id="@+id/incoming_preview_texture_view"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:importantForAccessibility="no"
+      android:visibility="gone"/>
+
+  <com.android.incallui.answer.impl.FixedAspectSurfaceView
+      android:id="@+id/incoming_preview_surface_view"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:importantForAccessibility="no"
+      android:visibility="gone"
+      app:scaleHeight="@bool/scale_height"
+      app:scaleWidth="@bool/scale_width"/>
+
+  <View
+      android:id="@+id/incoming_preview_texture_view_overlay"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:background="@color/videocall_overlay_background_color"
+      android:visibility="gone"/>
+
+  <FrameLayout
+      android:id="@+id/incall_data_container"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:clipChildren="false"
+      android:clipToPadding="false"/>
+
+  <FrameLayout
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:fitsSystemWindows="true">
+
+    <FrameLayout
+        android:id="@+id/answer_method_container"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clipChildren="false"
+        android:clipToPadding="false"/>
+
+    <TextView
+        android:id="@+id/videocall_video_off"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:padding="64dp"
+        android:accessibilityTraversalBefore="@+id/videocall_speaker_button"
+        android:drawablePadding="8dp"
+        android:drawableTop="@drawable/quantum_ic_videocam_off_white_36"
+        android:gravity="center"
+        android:text="@string/call_incoming_video_is_off"
+        android:textAppearance="@style/Dialer.Incall.TextAppearance"
+        android:visibility="gone"/>
+
+    <LinearLayout
+        android:id="@+id/incall_contact_grid"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        android:focusable="true"
+        android:gravity="top|center_horizontal"
+        android:orientation="vertical">
+
+   <LinearLayout
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:paddingTop="24dp"
+          android:paddingBottom="8dp"
+          android:gravity="top|center_horizontal"
+          android:background="#55000000"
+          android:orientation="vertical">
+
+        <include
+            android:id="@id/contactgrid_top_row"
+            layout="@layout/incall_contactgrid_top_row"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="8dp"
+            android:layout_marginStart="24dp"
+            android:layout_marginEnd="24dp"/>
+
+        <!-- We have to keep deprecated singleLine to allow long text being truncated with ellipses.
+             b/31396406 -->
+        <com.android.incallui.autoresizetext.CustomAutoResizeTextView
+            android:id="@id/contactgrid_contact_name"
+            android:layout_width="match_parent"
+            android:layout_height="72dp"
+            android:layout_marginBottom="8dp"
+            android:layout_marginStart="24dp"
+            android:layout_marginEnd="24dp"
+            android:ellipsize="end"
+            android:gravity="center"
+            android:maxLines="2"
+            android:singleLine="false"
+            android:textAppearance="@style/Dialer.Incall.TextAppearance.Large"
+            android:textSize="@dimen/answer_contact_name_text_size"
+            app:resizing_text_min_size="@dimen/answer_contact_name_min_size"
+            tools:ignore="Deprecated"
+            tools:text="Jake Peralta"/>
+
+        <include
+            android:id="@id/contactgrid_bottom_row"
+            layout="@layout/incall_contactgrid_bottom_row"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="24dp"
+            android:layout_marginEnd="24dp"/>
+    </LinearLayout>
+
+      <!-- TODO(a bug): textColorPrimary or textColorPrimaryInverse? -->
+      <TextView
+          android:id="@+id/incall_important_call_badge"
+          android:textStyle="bold"
+          android:layout_width="wrap_content"
+          android:layout_height="48dp"
+          android:layout_marginTop="4dp"
+          android:layout_marginBottom="@dimen/answer_importance_margin_bottom"
+          android:background="@drawable/urgent_call_background"
+          android:elevation="@dimen/answer_data_elevation"
+          android:gravity="center"
+          android:maxLines="1"
+          android:text="@string/call_incoming_important"
+          android:textAllCaps="true"
+          android:textColor="?android:attr/colorBackground"
+          android:textSize="14sp"/>
+
+      <FrameLayout
+          android:id="@+id/incall_location_holder"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"/>
+
+        <LinearLayout
+            android:id="@+id/incall_data_container_chip_container"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal|bottom"
+            android:orientation="horizontal"
+            android:visibility="gone">
+        </LinearLayout>
+
+      <!-- Space holder for answer method. This is used to get better scaling to make room for
+      incall_data_container on different screen size. -->
+      <Space
+          android:layout_width="match_parent"
+          android:layout_height="220dp"/>
+        </LinearLayout>
+      </FrameLayout>
+
+  <com.android.incallui.answer.impl.affordance.SwipeButtonView
+      android:id="@+id/incoming_secondary_button"
+      android:layout_width="56dp"
+      android:layout_height="56dp"
+      android:layout_gravity="bottom|start"
+      android:scaleType="center"
+      android:src="@drawable/quantum_ic_message_white_24"
+      android:visibility="invisible"
+      tools:visibility="visible"/>
+
+  <com.android.incallui.answer.impl.affordance.SwipeButtonView
+      android:id="@+id/incoming_secondary_button2"
+      android:layout_width="56dp"
+      android:layout_height="56dp"
+      android:layout_gravity="bottom|end"
+      android:scaleType="center"
+      android:src="@drawable/ic_end_answer_32"
+      android:visibility="invisible"
+      tools:visibility="visible"/>
+</com.android.incallui.answer.impl.AffordanceHolderLayout>
diff --git a/java/com/android/incallui/answer/impl/res/values/dimens.xml b/java/com/android/incallui/answer/impl/res/values/dimens.xml
index 0bda9d3..d8ffc5b 100644
--- a/java/com/android/incallui/answer/impl/res/values/dimens.xml
+++ b/java/com/android/incallui/answer/impl/res/values/dimens.xml
@@ -15,8 +15,8 @@
   ~ limitations under the License
   -->
 <resources>
-  <dimen name="answer_contact_name_text_size">24sp</dimen>
-  <dimen name="answer_contact_name_min_size">24sp</dimen>
+  <dimen name="answer_contact_name_text_size">26sp</dimen>
+  <dimen name="answer_contact_name_min_size">18sp</dimen>
   <dimen name="answer_avatar_size">0dp</dimen>
   <dimen name="answer_importance_margin_bottom">0dp</dimen>
   <bool name="answer_important_call_allowed">false</bool>
diff --git a/java/com/android/incallui/contactgrid/ContactGridManager.java b/java/com/android/incallui/contactgrid/ContactGridManager.java
index 189f6fe..f39e9ef 100644
--- a/java/com/android/incallui/contactgrid/ContactGridManager.java
+++ b/java/com/android/incallui/contactgrid/ContactGridManager.java
@@ -17,6 +17,8 @@
 package com.android.incallui.contactgrid;
 
 import android.content.Context;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.graphics.drawable.Animatable;
 import android.graphics.drawable.Drawable;
 import android.os.SystemClock;
@@ -41,6 +43,7 @@
 import com.android.dialer.lettertile.LetterTileDrawable;
 import com.android.dialer.util.DrawableConverter;
 import com.android.dialer.widget.BidiTextView;
+import com.android.incallui.autoresizetext.CustomAutoResizeTextView;
 import com.android.incallui.incall.protocol.ContactPhotoType;
 import com.android.incallui.incall.protocol.PrimaryCallState;
 import com.android.incallui.incall.protocol.PrimaryInfo;
@@ -96,6 +99,8 @@
   private final LetterTileDrawable letterTile;
   private boolean isInMultiWindowMode;
 
+  private boolean isFullscreenPhoto = false;
+
   public ContactGridManager(
       View view, @Nullable ImageView avatarImageView, int avatarSize, boolean showAnonymousAvatar) {
     context = view.getContext();
@@ -123,6 +128,9 @@
 
     deviceNumberTextView = view.findViewById(R.id.contactgrid_device_number_text);
     deviceNumberDivider = view.findViewById(R.id.contactgrid_location_divider);
+
+    SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+    isFullscreenPhoto = mPrefs.getBoolean("fullscreen_caller_photo", false);
   }
 
   public void show() {
@@ -292,10 +300,14 @@
 
       // Set direction of the name field
       int nameDirection = View.TEXT_DIRECTION_INHERIT;
+      boolean singleLine = true;
       if (primaryInfo.nameIsNumber()) {
         nameDirection = View.TEXT_DIRECTION_LTR;
+	singleLine = false;
       }
       contactNameTextView.setTextDirection(nameDirection);
+      contactNameTextView.setSingleLine(singleLine);
+      ((CustomAutoResizeTextView)contactNameTextView).setMaxLines(2);
     }
 
     if (avatarImageView != null) {
@@ -349,11 +361,16 @@
     boolean hasPhoto =
         primaryInfo.photo() != null && primaryInfo.photoType() == ContactPhotoType.CONTACT;
     if (hasPhoto) {
-      avatarImageView.setBackground(
-          DrawableConverter.getRoundedDrawable(
-              context, primaryInfo.photo(), avatarSize, avatarSize));
+          if(isFullscreenPhoto){
+            avatarImageView.setImageDrawable(primaryInfo.photo());
+          } else {
+            avatarImageView.setBackground(
+                DrawableConverter.getRoundedDrawable(
+                    context, primaryInfo.photo(), avatarSize, avatarSize));
+          }
     } else {
       // Contact has a photo, don't render a letter tile.
+    if(!isFullscreenPhoto) {
       letterTile.setCanonicalDialerLetterTileDetails(
           primaryInfo.name(),
           primaryInfo.contactInfoLookupKey(),
@@ -371,6 +388,7 @@
       avatarImageView.invalidate();
       avatarImageView.setBackground(letterTile);
     }
+   }
   }
   /**
    * Updates row 2. For example:
diff --git a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
index ec932b9..616e992 100644
--- a/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
+++ b/java/com/android/incallui/incall/impl/CheckableLabeledButton.java
@@ -21,6 +21,8 @@
 import android.content.res.ColorStateList;
 import android.content.res.TypedArray;
 import android.graphics.Color;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
 import android.graphics.PorterDuff.Mode;
 import android.graphics.drawable.Drawable;
 import android.os.Parcel;
@@ -67,6 +69,16 @@
     CharSequence labelText;
     boolean enabled;
 
+    SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+    boolean isFullscreenPhoto = mPrefs.getBoolean("fullscreen_caller_photo", false);
+    int resBackground = R.drawable.incall_button_background;
+    int resBackgroundMore = R.drawable.incall_button_background_more;
+
+    if(isFullscreenPhoto){
+      resBackground = R.drawable.incall_button_background_fullscreen_photo;
+      resBackgroundMore = R.drawable.incall_button_background_more_fullscreen_photo;
+    }
+
     backgroundMore =
         getResources().getDrawable(R.drawable.incall_button_background_more, context.getTheme());
     background =
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index 336550d..e23f778 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -21,6 +21,9 @@
 import android.app.Activity;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.preference.PreferenceManager;
 import android.os.Bundle;
 import android.os.Handler;
 import android.support.annotation.ColorInt;
@@ -58,6 +61,7 @@
 import com.android.incallui.incall.impl.ButtonController.SpeakerButtonController;
 import com.android.incallui.incall.impl.ButtonController.UpgradeToRttButtonController;
 import com.android.incallui.incall.impl.InCallButtonGridFragment.OnButtonGridCreatedListener;
+import com.android.incallui.incall.protocol.ContactPhotoType;
 import com.android.incallui.incall.protocol.InCallButtonIds;
 import com.android.incallui.incall.protocol.InCallButtonIdsExtension;
 import com.android.incallui.incall.protocol.InCallButtonUi;
@@ -70,6 +74,7 @@
 import com.android.incallui.incall.protocol.PrimaryCallState.ButtonState;
 import com.android.incallui.incall.protocol.PrimaryInfo;
 import com.android.incallui.incall.protocol.SecondaryInfo;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -95,8 +100,10 @@
   private int voiceNetworkType;
   private int phoneType;
   private boolean stateRestored;
+  private View topPhoneContainer;
 
   private static final int REQUEST_CODE_CALL_RECORD_PERMISSION = 1000;
+  private boolean isFullscreenPhoto = false;
 
   // Add animation to educate users. If a call has enriched calling attachments then we'll
   // initially show the attachment page. After a delay seconds we'll animate to the button grid.
@@ -153,10 +160,21 @@
       @Nullable Bundle bundle) {
     LogUtil.i("InCallFragment.onCreateView", null);
     getActivity().setTheme(R.style.Theme_InCallScreen);
-    // Bypass to avoid StrictModeResourceMismatchViolation
-    final View view =
-        StrictModeUtils.bypass(
-            () -> layoutInflater.inflate(R.layout.frag_incall_voice, viewGroup, false));
+
+    SharedPreferences mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+    isFullscreenPhoto = mPrefs.getBoolean("fullscreen_caller_photo", false);
+
+    int tempRes = R.layout.frag_incall_voice;
+    if(isFullscreenPhoto){
+      tempRes = R.layout.frag_incall_voice_fullscreen_photo;
+    }
+    final int res = tempRes;
+    final View view = StrictModeUtils.bypass(() -> layoutInflater.inflate(res, viewGroup, false));
+
+    if(isFullscreenPhoto){
+      topPhoneContainer = view.findViewById(R.id.incall_contactgrid_container);
+    }
+
     contactGridManager =
         new ContactGridManager(
             view,
@@ -279,6 +297,15 @@
     setAdapterMedia(primaryInfo.multimediaData(), primaryInfo.showInCallButtonGrid());
     contactGridManager.setPrimary(primaryInfo);
 
+    if(topPhoneContainer != null){
+      boolean hasPhoto = primaryInfo.photo() != null && primaryInfo.photoType() == ContactPhotoType.CONTACT;
+      if(hasPhoto){
+        topPhoneContainer.setBackgroundColor(0x55000000);
+      } else {
+        topPhoneContainer.setBackgroundColor(Color.TRANSPARENT);
+      }
+    }
+
     if (primaryInfo.shouldShowLocation()) {
       // Hide the avatar to make room for location
       contactGridManager.setAvatarHidden(true);
diff --git a/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_fullscreen_photo.xml b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_fullscreen_photo.xml
new file mode 100644
index 0000000..ad6a7cd
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_fullscreen_photo.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+  <item>
+    <selector>
+      <item
+        android:drawable="@drawable/incall_button_background_checked"
+        android:state_checked="true"/>
+      <item android:drawable="@drawable/incall_button_background_unchecked_fullscreen_photo"/>
+    </selector>
+  </item>
+  <item>
+    <ripple android:color="@color/incall_button_ripple">
+      <item
+        android:id="@android:id/mask"
+        android:gravity="center">
+        <shape android:shape="oval">
+          <solid android:color="@android:color/white"/>
+        </shape>
+      </item>
+    </ripple>
+  </item>
+</layer-list>
diff --git a/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_more_fullscreen_photo.xml b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_more_fullscreen_photo.xml
new file mode 100644
index 0000000..67634ed
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_more_fullscreen_photo.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+  <item>
+    <selector>
+      <item
+        android:drawable="@drawable/incall_button_background_checked"
+        android:state_checked="true"/>
+      <item android:drawable="@drawable/incall_button_background_unchecked_fullscreen_photo"/>
+    </selector>
+  </item>
+  <item>
+    <ripple android:color="@color/incall_button_ripple">
+      <item
+        android:id="@android:id/mask"
+        android:gravity="center">
+        <shape android:shape="oval">
+          <solid android:color="@android:color/white"/>
+        </shape>
+      </item>
+    </ripple>
+  </item>
+
+  <!-- This adds a little down arrow to indicate that the button will pop up a menu. Use an explicit
+    <bitmap> to avoid scaling the icon up to the full size of the button. -->
+  <item>
+    <bitmap
+      android:gravity="end"
+      android:src="@drawable/quantum_ic_arrow_drop_down_white_18"/>
+  </item>
+</layer-list>
diff --git a/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_unchecked_fullscreen_photo.xml b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_unchecked_fullscreen_photo.xml
new file mode 100644
index 0000000..ebb054b
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/drawable/incall_button_background_unchecked_fullscreen_photo.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+  android:shape="oval">
+  <solid android:color="#55000000"/>
+</shape>
diff --git a/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
index 9cc599d..2f8a86c 100644
--- a/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
+++ b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
@@ -53,18 +53,20 @@
 
       <!-- We have to keep deprecated singleLine to allow long text being truncated with ellipses.
                  a bug -->
-      <com.android.incallui.autoresizetext.AutoResizeTextView
-          android:id="@id/contactgrid_contact_name"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:layout_marginBottom="4dp"
-          android:layout_marginStart="@dimen/incall_window_margin_horizontal"
-          android:layout_marginEnd="@dimen/incall_window_margin_horizontal"
-          android:singleLine="true"
-          android:textAppearance="@style/Dialer.Incall.TextAppearance.Large"
-          app:autoResizeText_minTextSize="28sp"
-          tools:ignore="Deprecated"
-          tools:text="Jake Peralta"/>
+      <com.android.incallui.autoresizetext.CustomAutoResizeTextView
+        android:id="@id/contactgrid_contact_name"
+        android:layout_width="match_parent"
+        android:layout_height="72dp"
+        android:layout_marginStart="24dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginBottom="4dp"
+        android:ellipsize="end"
+        android:gravity="center"
+        android:maxLines="2"
+        android:singleLine="false"
+        android:textAppearance="@style/Dialer.Incall.TextAppearance.Large"
+        android:textSize="@dimen/answer_contact_name_text_size"
+        app:resizing_text_min_size="@dimen/answer_contact_name_min_size"/>
 
       <include
           layout="@layout/incall_contactgrid_bottom_row"
diff --git a/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice_fullscreen_photo.xml b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice_fullscreen_photo.xml
new file mode 100644
index 0000000..83bb6cc
--- /dev/null
+++ b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice_fullscreen_photo.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2017 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<FrameLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+  <RelativeLayout
+      android:id="@+id/incall_ui_container"
+      android:layout_width="match_parent"
+      android:layout_height="match_parent"
+      android:clipChildren="false"
+      android:clipToPadding="false" >
+
+    <RelativeLayout
+        android:id="@id/incall_contact_grid"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center_horizontal">
+
+      <ImageView
+          android:id="@id/contactgrid_avatar"
+          android:layout_width="match_parent"
+          android:layout_height="match_parent"
+          android:scaleType="centerCrop"/>
+
+     <RelativeLayout
+          android:id="@+id/incall_contactgrid_container"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:gravity="center_horizontal"
+          android:background="#55000000"
+          android:paddingBottom="8dp">
+
+        <include
+            layout="@layout/incall_contactgrid_top_row"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_margin="36dp"/>
+        <!-- We have to keep deprecated singleLine to allow long text being truncated with ellipses.
+                   b/31396406 -->
+        <com.android.incallui.autoresizetext.CustomAutoResizeTextView
+            android:id="@id/contactgrid_contact_name"
+            android:layout_width="match_parent"
+            android:layout_height="72dp"
+            android:layout_alignParentTop="true"
+            android:layout_centerInParent="true"
+            android:layout_marginTop="60dp"
+            android:layout_marginLeft="24dp"
+            android:layout_marginRight="24dp"
+            android:layout_marginBottom="4dp"
+            android:ellipsize="end"
+            android:gravity="center"
+            android:maxLines="2"
+            android:singleLine="false"
+            android:textAppearance="@style/Dialer.Incall.TextAppearance.Large"
+            android:textSize="@dimen/answer_contact_name_text_size"
+            app:resizing_text_min_size="@dimen/answer_contact_name_min_size"
+            tools:text="Jake Peralta"
+            tools:ignore="Deprecated"/>
+
+        <include
+            layout="@layout/incall_contactgrid_bottom_row"
+            android:layout_below="@+id/contactgrid_contact_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"/>
+      </RelativeLayout>
+      <FrameLayout
+          android:id="@+id/incall_location_holder"
+          android:layout_width="match_parent"
+          android:layout_height="match_parent"/>
+    </RelativeLayout>
+
+    <com.android.dialer.widget.LockableViewPager
+        android:id="@+id/incall_pager"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/incall_paginator"
+        android:layout_centerHorizontal="true"/>
+
+    <com.android.incallui.incall.impl.InCallPaginator
+        android:id="@+id/incall_paginator"
+        android:layout_height="@dimen/paginator_height"
+        android:layout_width="@dimen/paginator_width"
+        android:layout_above="@+id/incall_end_call"
+        android:layout_centerHorizontal="true"
+        android:visibility="gone"/>
+
+    <FrameLayout
+        android:id="@+id/incall_dialpad_container"
+        style="@style/DialpadContainer"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:clipChildren="false"
+        android:clipToPadding="false"
+        tools:background="@android:color/white"
+        tools:visibility="gone"/>
+    <ImageButton
+        android:id="@+id/incall_end_call"
+        style="@style/Incall.Button.End"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="36dp"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:contentDescription="@string/incall_content_description_end_call"/>
+  </RelativeLayout>
+
+  <FrameLayout
+      android:id="@id/incall_on_hold_banner"
+      android:layout_width="match_parent"
+      android:layout_height="wrap_content"
+      android:layout_gravity="top"/>
+</FrameLayout>
diff --git a/java/com/android/incallui/incall/impl/res/layout/incall_button_grid.xml b/java/com/android/incallui/incall/impl/res/layout/incall_button_grid.xml
index 59e9944..0cb564c 100644
--- a/java/com/android/incallui/incall/impl/res/layout/incall_button_grid.xml
+++ b/java/com/android/incallui/incall/impl/res/layout/incall_button_grid.xml
@@ -10,7 +10,7 @@
   <GridLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_gravity="center"
+    android:layout_gravity="center_horizontal|bottom"
     android:columnCount="3"
     android:orientation="horizontal">
     <com.android.incallui.incall.impl.CheckableLabeledButton
diff --git a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
index b58ef48..c9c7e71 100644
--- a/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
+++ b/java/com/android/incallui/incall/impl/res/values-h650dp/styles.xml
@@ -18,7 +18,6 @@
 <resources>
 
   <style name="DialpadContainer">
-    <item name="android:layout_below">@id/incall_contact_grid</item>
     <item name="android:layout_marginTop">8dp</item>
   </style>
 </resources>
diff --git a/java/com/android/incallui/incall/impl/res/values/styles.xml b/java/com/android/incallui/incall/impl/res/values/styles.xml
index a8cf2dd..cfb76e1 100644
--- a/java/com/android/incallui/incall/impl/res/values/styles.xml
+++ b/java/com/android/incallui/incall/impl/res/values/styles.xml
@@ -21,6 +21,5 @@
   <color name="paginator_path">#66FFFFFF</color>
 
   <style name="DialpadContainer">
-    <item name="android:layout_alignParentTop">true</item>
   </style>
 </resources>
diff --git a/java/com/android/incallui/theme/res/values/styles.xml b/java/com/android/incallui/theme/res/values/styles.xml
index 63c752a..88fa414 100644
--- a/java/com/android/incallui/theme/res/values/styles.xml
+++ b/java/com/android/incallui/theme/res/values/styles.xml
@@ -48,6 +48,7 @@
 
     <item name="android:windowBackground">@drawable/incall_background_gradient</item>
     <item name="android:windowShowWallpaper">true</item>
+    <item name="android:windowTranslucentStatus">true</item>
   </style>
 
   <style name="Theme.InCallScreen.ManageConference" parent="Dialer.ThemeBase.ActionBar">
