diff --git a/res/layout/dashboard_container_header.xml b/res/layout/dashboard_container_header.xml
index 59e7eb1..a9d78ed 100644
--- a/res/layout/dashboard_container_header.xml
+++ b/res/layout/dashboard_container_header.xml
@@ -20,6 +20,6 @@
     android:id="@+id/sliding_tabs"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_marginLeft="@dimen/dashboard_header_margin_left"
-    android:layout_marginRight="@dimen/dashboard_header_margin_right"
+    android:layout_marginStart="@dimen/dashboard_header_margin_start"
+    android:layout_marginEnd="@dimen/dashboard_header_margin_end"
     android:background="?android:attr/colorPrimary"/>
diff --git a/res/layout/support_fragment.xml b/res/layout/support_fragment.xml
index 10b9418..913e607 100644
--- a/res/layout/support_fragment.xml
+++ b/res/layout/support_fragment.xml
@@ -20,4 +20,8 @@
     android:id="@+id/support_items"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:focusable="false"  />
\ No newline at end of file
+    android:clipChildren="false"
+    android:clipToPadding="false"
+    android:focusable="false"
+    android:paddingStart="@dimen/dashboard_padding_start"
+    android:paddingEnd="@dimen/dashboard_padding_end"/>
\ No newline at end of file
diff --git a/res/values-sw720dp-land/dimens.xml b/res/values-sw720dp-land/dimens.xml
index d924344..70faa0f 100644
--- a/res/values-sw720dp-land/dimens.xml
+++ b/res/values-sw720dp-land/dimens.xml
@@ -22,8 +22,8 @@
     <dimen name="dashboard_padding_end">160dp</dimen>
 
     <!-- Dashboard Header margin in its container -->
-    <dimen name="dashboard_header_margin_right">304dp</dimen>
-    <dimen name="dashboard_header_margin_left">304dp</dimen>
+    <dimen name="dashboard_header_margin_start">304dp</dimen>
+    <dimen name="dashboard_header_margin_end">304dp</dimen>
 
     <!-- ActionBar contentInsetStart -->
     <dimen name="actionbar_contentInsetStart">128dp</dimen>
diff --git a/res/values-sw720dp/dimens.xml b/res/values-sw720dp/dimens.xml
index 0a2a1ce..a0be467 100644
--- a/res/values-sw720dp/dimens.xml
+++ b/res/values-sw720dp/dimens.xml
@@ -43,8 +43,8 @@
     <dimen name="dashboard_padding_end">80dp</dimen>
 
     <!-- Dashboard Header margin in its container -->
-    <dimen name="dashboard_header_margin_right">176dp</dimen>
-    <dimen name="dashboard_header_margin_left">176dp</dimen>
+    <dimen name="dashboard_header_margin_start">176dp</dimen>
+    <dimen name="dashboard_header_margin_end">176dp</dimen>
 
     <!-- Dashboard category padding start / end -->
     <dimen name="dashboard_category_padding_start">24dp</dimen>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 74441c2..28bed77 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -97,8 +97,8 @@
     <dimen name="dashboard_padding_bottom">0dp</dimen>
 
     <!-- Dashboard Header margin in its container -->
-    <dimen name="dashboard_header_margin_right">0dp</dimen>
-    <dimen name="dashboard_header_margin_left">0dp</dimen>
+    <dimen name="dashboard_header_margin_start">0dp</dimen>
+    <dimen name="dashboard_header_margin_end">0dp</dimen>
 
     <!-- Dashboard category padding start / end -->
     <dimen name="dashboard_category_padding_start">0dp</dimen>
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index d0f51f6..e1f8afe 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -1269,7 +1269,14 @@
     }
 
     public void startSuggestion(Intent intent) {
-        mCurrentSuggestion = intent.getComponent();
+        if (intent == null) {
+            return;
+        }
+        final ComponentName componentName = intent.getComponent();
+        if (componentName.equals(mCurrentSuggestion)) {
+            return;
+        }
+        mCurrentSuggestion = componentName;
         startActivityForResult(intent, REQUEST_SUGGESTION);
     }
 
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index ee68311..7757efc 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -35,6 +35,7 @@
 import android.os.storage.StorageManager;
 import android.os.storage.VolumeInfo;
 import android.os.storage.VolumeRecord;
+import android.support.annotation.NonNull;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
 import android.text.TextUtils;
@@ -407,18 +408,37 @@
 
             builder.setPositiveButton(R.string.storage_menu_mount,
                     new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
+                /**
+                 * Check if an {@link RestrictedLockUtils#sendShowAdminSupportDetailsIntent admin
+                 * details intent} should be shown for the restriction and show it.
+                 *
+                 * @param restriction The restriction to check
+                 * @return {@code true} iff a intent was shown.
+                 */
+                private boolean wasAdminSupportIntentShown(@NonNull String restriction) {
                     EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
-                            getActivity(), UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,
-                            UserHandle.myUserId());
+                            getActivity(), restriction, UserHandle.myUserId());
                     boolean hasBaseUserRestriction = RestrictedLockUtils.hasBaseUserRestriction(
-                            getActivity(), UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA,
-                            UserHandle.myUserId());
+                            getActivity(), restriction, UserHandle.myUserId());
                     if (admin != null && !hasBaseUserRestriction) {
                         RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(), admin);
+                        return true;
+                    }
+
+                    return false;
+                }
+
+                @Override
+                public void onClick(DialogInterface dialog, int which) {
+                    if (wasAdminSupportIntentShown(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA)) {
                         return;
                     }
+
+                    if (vol.disk != null && vol.disk.isUsb() &&
+                            wasAdminSupportIntentShown(UserManager.DISALLOW_USB_FILE_TRANSFER)) {
+                        return;
+                    }
+
                     new MountTask(context, vol).execute();
                 }
             });
