diff --git a/res/layout/gesture_preference.xml b/res/layout/gesture_preference.xml
index ebb43a4..2f593fe 100644
--- a/res/layout/gesture_preference.xml
+++ b/res/layout/gesture_preference.xml
@@ -61,7 +61,8 @@
             android:id="@+id/gesture_animation_frame"
             android:layout_width="0dp"
             android:layout_height="match_parent"
-            android:layout_weight="1">
+            android:layout_weight="1"
+            android:padding="@dimen/gesture_animation_padding">
 
             <TextureView
                 android:id="@+id/gesture_video"
diff --git a/res/values-land/dimens.xml b/res/values-land/dimens.xml
index f18b34b..749a4e9 100755
--- a/res/values-land/dimens.xml
+++ b/res/values-land/dimens.xml
@@ -34,4 +34,8 @@
 
     <!-- Display, Screen zoom -->
     <dimen name="screen_zoom_preview_height">160dp</dimen>
+
+    <!-- Gestures -->
+    <dimen name="gesture_animation_padding">35dp</dimen>
+
 </resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 9a97d30..09cd8f0 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -299,4 +299,5 @@
     <!-- Padding for Gestures settings screen -->
     <dimen name="gestures_settings_padding_top_bottom">20dp</dimen>
     <dimen name="gestures_play_button_size">36dp</dimen>
+    <dimen name="gesture_animation_padding">0dp</dimen>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5073893..369210f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7516,7 +7516,10 @@
     <string name="support_escalation_24_7_summary">Our support team is available all day, every day</string>
 
     <!-- Summary text when customer support is closed. [CHAR LIMIT=NONE]-->
-    <string name="support_escalation_closed_summary">Phone support hours (local time)&lt;br&gt;&lt;b&gt;<xliff:g id="operation_hours">%s</xliff:g>&lt;/b&gt;</string>
+    <string name="support_escalation_closed_summary">Search help or come back during support hours (local time):&lt;br&gt;&lt;b&gt;<xliff:g id="operation_hours">%s</xliff:g>&lt;/b&gt;</string>
+
+    <!-- Summary text to call customer support when there is no internet. [CHAR LIMIT=NONE]-->
+    <string name="support_escalation_no_internet_summary">Phone support hours (local time)&lt;br&gt;&lt;b&gt;<xliff:g id="operation_hours">%s</xliff:g>&lt;/b&gt;</string>
 
     <!-- Summary text when customer support is unavailable in the region. [CHAR LIMIT=NONE]-->
     <string name="support_escalation_unavailable_summary">Search help or explore tips &amp; tricks</string>
@@ -7538,7 +7541,7 @@
     </string>
 
     <!-- Title text for a list of international support phone numbers. [CHAR LIMIT=60]-->
-    <string name="support_international_phone_title">Traveling aboard?</string>
+    <string name="support_international_phone_title">Traveling abroad?</string>
 
     <!-- Description text warning international phone charge may apply when dialing support numbers. [CHAR LIMIT=NONE]-->
     <string name="support_international_phone_summary">International charges may apply</string>
diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java
index 9493f89..4e9153c 100644
--- a/src/com/android/settings/dashboard/SupportItemAdapter.java
+++ b/src/com/android/settings/dashboard/SupportItemAdapter.java
@@ -198,10 +198,11 @@
             builder.setTileTitle(R.string.support_escalation_title)
                     .setTileSummary(R.string.support_escalation_summary);
         } else {
-            // Support is not temporarily unavailable.
+            // Support is now temporarily unavailable.
             builder.setTileTitle(R.string.support_escalation_title)
                     .setTileSummary(
-                            mSupportFeatureProvider.getOperationHours(mActivity, PHONE, null));
+                            mSupportFeatureProvider.getOperationHours(mActivity, PHONE, null,
+                                    true /* hasInternet */));
         }
         if (hasPhoneOperation) {
             builder.setText1(R.string.support_escalation_by_phone)
@@ -222,7 +223,7 @@
             operatingHours = mActivity.getString(R.string.support_escalation_24_7_summary);
         } else {
             operatingHours = mSupportFeatureProvider.getOperationHours(mActivity,
-                    PHONE, mSelectedCountry);
+                    PHONE, mSelectedCountry, false /* hasInternet */);
         }
         mSupportData.add(new OfflineEscalationData.Builder(mActivity)
                 .setCountries(mSupportFeatureProvider.getPhoneSupportCountries())
diff --git a/src/com/android/settings/overlay/SupportFeatureProvider.java b/src/com/android/settings/overlay/SupportFeatureProvider.java
index c535622..4d8e3d6 100644
--- a/src/com/android/settings/overlay/SupportFeatureProvider.java
+++ b/src/com/android/settings/overlay/SupportFeatureProvider.java
@@ -71,7 +71,8 @@
      * Returns localized string for operation hours in specified country. If country is null, use
      * current country to figure out operation hours.
      */
-    CharSequence getOperationHours(Context context, @SupportType int type, String countryCode);
+    CharSequence getOperationHours(Context context, @SupportType int type, String countryCode,
+            boolean hasInternet);
 
     /**
      * Returns a localized string indicating estimated wait time for a support time.
