Merge "FRP: Use SUW theme for factory reset protection flow" into oc-mr1-dev
diff --git a/res/drawable/ic_airplanemode_active.xml b/res/drawable/ic_airplanemode_active.xml
index 5759341..10dd7ed 100644
--- a/res/drawable/ic_airplanemode_active.xml
+++ b/res/drawable/ic_airplanemode_active.xml
@@ -20,9 +20,9 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:pathData="M10.18,9"
-        android:fillColor="#FFFFFFFF"/>
-    <path
-        android:pathData="M21,16v-2l-8,-5V3.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,2.67 10,3.5V9l-8,5v2l8,-2.5V19l-2,1.5V22l3.5,-1 3.5,1v-1.5L13,19v-5.5l8,2.5z"
+        android:pathData="M20.8,13.56L13.5,9V3.5C13.5,2.67,12.83,2,12,2s-1.5,0.67-1.5,1.5V9l-7.3,4.56c-0.43,0.27-0.7,0.75-0.7,1.27v0.49
+c0,0.34,0.33,0.58,0.65,0.48l7.35-2.3V19l-1.6,1.2c-0.25,0.19-0.4,0.49-0.4,0.8v0.67c0,0.17,0.14,0.28,0.31,0.24
+c1.94-0.55,1.3-0.37,3.19-0.91c1.21,0.35,1.99,0.57,3.19,0.91c0.17,0.04,0.31-0.07,0.31-0.24V21c0-0.31-0.15-0.61-0.4-0.8L13.5,19
+v-5.5l7.35,2.3c0.32,0.1,0.65-0.14,0.65-0.48v-0.49C21.5,14.31,21.23,13.83,20.8,13.56z"
         android:fillColor="#FFFFFFFF"/>
 </vector>
diff --git a/res/drawable/ic_apps.xml b/res/drawable/ic_apps.xml
index 784a818..9f00141 100644
--- a/res/drawable/ic_apps.xml
+++ b/res/drawable/ic_apps.xml
@@ -20,6 +20,11 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:pathData="M4,8h4L8,4L4,4v4zM10,20h4v-4h-4v4zM4,20h4v-4L4,16v4zM4,14h4v-4L4,10v4zM10,14h4v-4h-4v4zM16,4v4h4L20,4h-4zM10,8h4L14,4h-4v4zM16,14h4v-4h-4v4zM16,20h4v-4h-4v4z"
+        android:pathData="M6 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 12c1.1 0 2-.9 2-2s-.9-2-2-2-2
+.9-2 2 .9 2 2 2zm-6 0c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0-6c1.1 0 2-.9
+2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 0c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2
+2zm4-8c0 1.1 .9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-4 2c1.1 0 2-.9
+2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2
+2zm0 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"
         android:fillColor="#FFFFFFFF"/>
 </vector>
diff --git a/res/drawable/ic_arrow_down_24dp.xml b/res/drawable/ic_arrow_down_24dp.xml
index 7c5866d..f334902 100644
--- a/res/drawable/ic_arrow_down_24dp.xml
+++ b/res/drawable/ic_arrow_down_24dp.xml
@@ -22,5 +22,6 @@
         android:tint="?android:attr/colorAccent">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M7.41,7.84L12,12.42l4.59,-4.58L18,9.25l-6,6 -6,-6z"/>
+        android:pathData="M8.12 9.29L12 13.17l3.88-3.88a.996 .996 0 1 1 1.41 1.41l-4.59 4.59a.996 .996 0 0
+1-1.41 0L6.7 10.7a.996 .996 0 0 1 0-1.41c.39-.38 1.03-.39 1.42 0z"/>
 </vector>
diff --git a/res/drawable/ic_cast_24dp.xml b/res/drawable/ic_cast_24dp.xml
index 7dc895e..948deca 100644
--- a/res/drawable/ic_cast_24dp.xml
+++ b/res/drawable/ic_cast_24dp.xml
@@ -22,5 +22,10 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M21,3L3,3c-1.1,0 -2,0.9 -2,2v3h2L3,5h18v14h-7v2h7c1.1,0 2,-0.9 2,-2L23,5c0,-1.1 -0.9,-2 -2,-2zM1,18v3h3c0,-1.66 -1.34,-3 -3,-3zM1,14v2c2.76,0 5,2.24 5,5h2c0,-3.87 -3.13,-7 -7,-7zM1,10v2c4.97,0 9,4.03 9,9h2c0,-6.08 -4.93,-11 -11,-11z"/>
+        android:pathData="M1 18v2c0 .55 .45 1 1 1h2c0-1.66-1.34-3-3-3zm0-2.94c-.01 .51 .32 .93 .82 1.02
+2.08 .36 3.74 2 4.1 4.08 .09 .48 .5 .84 .99 .84 .61 0 1.09-.54 1-1.14a6.996
+6.996 0 0 0-5.8-5.78c-.59-.09-1.09 .38 -1.11 .98 zm0-4.03c-.01 .52 .34 .96 .85
+1.01 4.26 .43 7.68 3.82 8.1 8.08 .05 .5 .48 .88 .99 .88 .59 0 1.06-.51
+1-1.1-.52-5.21-4.66-9.34-9.87-9.85-.57-.05-1.05 .4 -1.07 .98 zM21 3H3c-1.1 0-2
+.9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/>
 </vector>
diff --git a/res/drawable/ic_chevron_right_24dp.xml b/res/drawable/ic_chevron_right_24dp.xml
index 63532cb..ba62187 100644
--- a/res/drawable/ic_chevron_right_24dp.xml
+++ b/res/drawable/ic_chevron_right_24dp.xml
@@ -23,5 +23,6 @@
     android:viewportWidth="24.0"
     android:tint="?android:attr/colorControlNormal">
     <path android:fillColor="#FF000000"
-          android:pathData="M10,6L8.59,7.41 13.17,12l-4.58,4.59L10,18l6,-6z" />
+          android:pathData="M9.29,15.63l3.88-3.88L9.29,7.87c-0.39-0.39-0.39-1.02,0-1.41l0,0c0.39-0.39,1.02-0.39,1.41,0l4.59,4.59
+c0.39,0.39,0.39,1.02,0,1.41l-4.59,4.59c-0.39,0.39-1.02,0.39-1.41,0l0,0C8.91,16.66,8.9,16.02,9.29,15.63z" />
 </vector>
diff --git a/res/drawable/ic_devices_other.xml b/res/drawable/ic_devices_other.xml
index 20639a3..b22e483 100644
--- a/res/drawable/ic_devices_other.xml
+++ b/res/drawable/ic_devices_other.xml
@@ -20,6 +20,13 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:pathData="M3,6h18L21,4L3,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h4v-2L3,18L3,6zM13,12L9,12v1.78c-0.61,0.55 -1,1.33 -1,2.22s0.39,1.67 1,2.22L9,20h4v-1.78c0.61,-0.55 1,-1.34 1,-2.22s-0.39,-1.67 -1,-2.22L13,12zM11,17.5c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM22,8h-6c-0.5,0 -1,0.5 -1,1v10c0,0.5 0.5,1 1,1h6c0.5,0 1,-0.5 1,-1L23,9c0,-0.5 -0.5,-1 -1,-1zM21,18h-4v-8h4v8z"
-        android:fillColor="#FFFFFFFF"/>
+        android:fillColor="#FFFFFFFF"
+        android:pathData="M3,6h17c0.55,0,1-0.45,1-1v0c0-0.55-0.45-1-1-1H3C1.9,4,1,4.9,1,6v12c0,1.1,0.9,2,2,2h3c0.55,0,1-0.45,1-1v0
+        c0-0.55-0.45-1-1-1H3V6z
+        M13,12H9v1.78C8.39,14.33,8,15.11,8,16c0,0.89,0.39,1.67,1,2.22V20h4v-1.78c0.61-0.55,1-1.34,1-2.22
+        s-0.39-1.67-1-2.22V12z
+        M11,17.5c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S11.83,17.5,11,17.5z
+        M22,8h-6
+        c-0.5,0-1,0.5-1,1v10c0,0.5,0.5,1,1,1h6c0.5,0,1-0.5,1-1V9C23,8.5,22.5,8,22,8z
+        M21,18h-4v-8h4V18z" />
 </vector>
diff --git a/res/drawable/ic_expand_more.xml b/res/drawable/ic_expand_more.xml
index 609cf36..edffde3 100644
--- a/res/drawable/ic_expand_more.xml
+++ b/res/drawable/ic_expand_more.xml
@@ -23,7 +23,8 @@
     android:tint="?android:attr/colorControlNormal">
 
     <path
-        android:fillColor="@android:color/white"
-        android:pathData="M16.59,8.59L12.0,13.17 7.41,8.59 6.0,10.0l6.0,6.0 6.0,-6.0z"/>
+        android:fillColor="#000000"
+        android:pathData="M8.12 9.29L12 13.17l3.88-3.88a.996 .996 0 1 1 1.41 1.41l-4.59 4.59a.996 .996 0 0
+1-1.41 0L6.7 10.7a.996 .996 0 0 1 0-1.41c.39-.38 1.03-.39 1.42 0z" />
 
 </vector>
diff --git a/res/drawable/ic_help.xml b/res/drawable/ic_help.xml
index 7a225e5..6add484 100644
--- a/res/drawable/ic_help.xml
+++ b/res/drawable/ic_help.xml
@@ -20,6 +20,11 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,19h-2v-2h2v2zM15.07,11.25l-0.9,0.92C13.45,12.9 13,13.5 13,15h-2v-0.5c0,-1.1 0.45,-2.1 1.17,-2.83l1.24,-1.26c0.37,-0.36 0.59,-0.86 0.59,-1.41 0,-1.1 -0.9,-2 -2,-2s-2,0.9 -2,2L8,9c0,-2.21 1.79,-4 4,-4s4,1.79 4,4c0,0.88 -0.36,1.68 -0.93,2.25z"
+        android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 16.81c-.72
+0-1.3-.58-1.3-1.3s.58-1.3 1.3-1.3 1.3 .58 1.3 1.3-.58 1.3-1.3
+1.3zm1.07-4.62c-.09 .52 -.59 .87 -1.13 .79 -.57-.08-.94-.66-.83-1.23 .52 -2.61
+2.66-2.84 2.87-4.5 .12 -.96-.42-1.87-1.34-2.17-1.04-.33-2.21 .16 -2.55 1.37-.12
+.45 -.52 .74 -.97 .74 -.66 0-1.13-.63-.96-1.27 .63 -2.25 2.91-3.38 5.05-2.74
+1.71 .51 2.84 2.16 2.78 3.95-.07 2.44-2.49 2.61-2.92 5.06z"
         android:fillColor="#FFFFFFFF"/>
 </vector>
diff --git a/res/drawable/ic_info_outline_24dp.xml b/res/drawable/ic_info_outline_24dp.xml
deleted file mode 100644
index 3fe1e9e..0000000
--- a/res/drawable/ic_info_outline_24dp.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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.
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?android:attr/textColorSecondary">
-    <path
-        android:fillColor="#000000"
-        android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/>
-</vector>
diff --git a/res/drawable/ic_menu_add.xml b/res/drawable/ic_menu_add.xml
index 3387f29..9e2175b 100644
--- a/res/drawable/ic_menu_add.xml
+++ b/res/drawable/ic_menu_add.xml
@@ -23,5 +23,6 @@
     android:tint="?android:attr/colorAccent">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+        android:pathData="M18,13h-5v5c0,0.55-0.45,1-1,1h0c-0.55,0-1-0.45-1-1v-5H6c-0.55,0-1-0.45-1-1v0c0-0.55,0.45-1,1-1h5V6c0-0.55,0.45-1,1-1h0
+c0.55,0,1,0.45,1,1v5h5c0.55,0,1,0.45,1,1v0C19,12.55,18.55,13,18,13z"/>
 </vector>
diff --git a/res/drawable/ic_restore.xml b/res/drawable/ic_restore.xml
index 737f811..201b1df 100644
--- a/res/drawable/ic_restore.xml
+++ b/res/drawable/ic_restore.xml
@@ -22,7 +22,11 @@
     android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89 .07 .14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7
-7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13
-21c4.97 0 9-4.03 9-9s-4.03-9-9-9zm-1 5v5l4.28 2.54 .72 -1.21-3.5-2.08V8H12z" />
+        android:pathData="M13.5 7.75v4.5l3.37 2c.34 .2 .46 .65 .25 .99 s-.64 .45 -.98 .24 L12
+13V7.75c0-.41 .34 -.75 .75 -.75s.75 .34 .75 .75 zM13.05 3C8.11 3 4.1 7.02 4.1
+11.95c0 .02 .01 .03 .01 .05H2.05c-.47 0-.71 .57 -.37 .9 l2.95 2.94c.21 .21 .54
+.21 .75 0l2.95-2.94c.33-.33 .1 -.9-.37-.9H5.99c0-.02 .01 -.03 .01 -.05C6 8.06
+9.16 4.9 13.05 4.9S20.1 8.11 20.1 12s-3.16 7.1-7.05 7.1c-1.58
+0-3.08-.51-4.32-1.48a.94 .94 0 0 0-1.32 .16 l-.01 .01 a.94 .94 0 0 0 .16
+1.32l.01 .01 A8.77 8.77 0 0 0 13.05 21c4.94 0 8.95-4.07 8.95-9s-4.02-9-8.95-9z" />
 </vector>
\ No newline at end of file
diff --git a/res/drawable/ic_search_24dp.xml b/res/drawable/ic_search_24dp.xml
index 4693dd7..8f14e88 100644
--- a/res/drawable/ic_search_24dp.xml
+++ b/res/drawable/ic_search_24dp.xml
@@ -16,12 +16,15 @@
   -->
 
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0"
-        android:tint="?android:attr/colorControlNormal">
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24"
+    android:viewportHeight="24"
+    android:tint="?android:attr/colorControlNormal">
+
     <path
-        android:pathData="M15.5,14l-0.8,0l-0.3,-0.3c1,-1.1 1.6,-2.6 1.6,-4.2C16,5.9 13.1,3 9.5,3C5.9,3 3,5.9 3,9.5S5.9,16 9.5,16c1.6,0 3.1,-0.6 4.2,-1.6l0.3,0.3l0,0.8l5,5l1.5,-1.5L15.5,14zM9.5,14C7,14 5,12 5,9.5S7,5 9.5,5C12,5 14,7 14,9.5S12,14 9.5,14z"
-        android:fillColor="#ffffff"/>
-</vector>
+        android:fillColor="#000000"
+        android:pathData="M15.5,14h-0.79l-0.28-0.27c1.2-1.4,1.82-3.31,1.48-5.34c-0.47-2.78-2.79-5-5.59-5.34c-4.23-0.52-7.79,3.04-7.27,7.27
+c0.34,2.8,2.56,5.12,5.34,5.59c2.03,0.34,3.94-0.28,5.34-1.48L14,14.71v0.79l5.2,5.19c0.41,0.41,1.07,0.41,1.48,0l0.01-0.01
+c0.41-0.41,0.41-1.07,0-1.48L15.5,14z M9.5,14C7.01,14,5,11.99,5,9.5S7.01,5,9.5,5S14,7.01,14,9.5S11.99,14,9.5,14z" />
+</vector>
\ No newline at end of file
diff --git a/res/drawable/ic_settings.xml b/res/drawable/ic_settings.xml
index 439c1a7..3d8563d 100644
--- a/res/drawable/ic_settings.xml
+++ b/res/drawable/ic_settings.xml
@@ -21,16 +21,14 @@
     android:tint="?android:attr/colorAccent">
     <path
         android:fillColor="#FF000000"
-        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66
-            -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3
-            -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2
-            14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59
-            -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49
-            0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66
-            0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3
-            0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42
-            0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25
-            1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49
-            -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57
-            -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
+        android:pathData="M21.4 14.2l-1.94-1.45c.03-.25 .04 -.5 .04 -.76s-.01-.51-.04-.76L21.4 9.8c.42-.31
+.52 -.94 .24 -1.41l-1.6-2.76c-.28-.48-.88-.7-1.36-.5l-2.14 .91
+c-.48-.37-1.01-.68-1.57-.92l-.27-2.2c-.06-.52-.56-.92-1.11-.92h-3.18c-.55 0-1.05
+.4 -1.11 .92 l-.26 2.19c-.57 .24 -1.1 .55 -1.58 .92 l-2.14-.91c-.48-.2-1.08 .02
+-1.36 .5 l-1.6 2.76c-.28 .48 -.18 1.1 .24 1.42l1.94 1.45c-.03 .24 -.04 .49 -.04
+.75 s.01 .51 .04 .76 L2.6 14.2c-.42 .31 -.52 .94 -.24 1.41l1.6 2.76c.28 .48 .88
+.7 1.36 .5 l2.14-.91c.48 .37 1.01 .68 1.57 .92 l.27 2.19c.06 .53 .56 .93 1.11
+.93 h3.18c.55 0 1.04-.4 1.11-.92l.27-2.19c.56-.24 1.09-.55 1.57-.92l2.14 .91
+c.48 .2 1.08-.02 1.36-.5l1.6-2.76c.28-.48 .18 -1.1-.24-1.42zM12 15.5c-1.93
+0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/>
 </vector>
diff --git a/res/drawable/ic_settings_about.xml b/res/drawable/ic_settings_about.xml
index cdf8275..887fca6 100644
--- a/res/drawable/ic_settings_about.xml
+++ b/res/drawable/ic_settings_about.xml
@@ -20,6 +20,12 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M11.0,17.0l2.0,0.0l0.0,-6.0l-2.0,0.0l0.0,6.0zm1.0,-15.0C6.48,2.0 2.0,6.48 2.0,12.0s4.48,10.0 10.0,10.0 10.0,-4.48 10.0,-10.0S17.52,2.0 12.0,2.0zm0.0,18.0c-4.41,0.0 -8.0,-3.59 -8.0,-8.0s3.59,-8.0 8.0,-8.0 8.0,3.59 8.0,8.0 -3.59,8.0 -8.0,8.0zM11.0,9.0l2.0,0.0L13.0,7.0l-2.0,0.0l0.0,2.0z"/>
+        android:fillColor="#FF000000"
+        android:pathData="M12,17L12,17c0.55,0 1,-0.45 1,-1v-4c0,-0.55 -0.45,-1 -1,-1l0,0c-0.55,0 -1,0.45 -1,1v4C11,16.55 11.45,17 12,17z"/>
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,2c-5.52,0 -10,4.48 -10,10s4.48,10 10,10s10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8s8,3.59 8,8S16.41,20 12,20z"/>
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,9.1L12,9.1c0.61,0 1.1,-0.49 1.1,-1.1l0,0c0,-0.61 -0.49,-1.1 -1.1,-1.1l0,0c-0.61,0 -1.1,0.49 -1.1,1.1l0,0C10.9,8.61 11.39,9.1 12,9.1z"/>
 </vector>
diff --git a/res/drawable/ic_settings_accessibility.xml b/res/drawable/ic_settings_accessibility.xml
index 1570312..4cf5182 100644
--- a/res/drawable/ic_settings_accessibility.xml
+++ b/res/drawable/ic_settings_accessibility.xml
@@ -21,5 +21,5 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/>
+        android:pathData="M20.75,6.99c-0.14,-0.55 -0.69,-0.87 -1.24,-0.75C17.13,6.77 14.48,7 12,7S6.87,6.77 4.49,6.24c-0.55,-0.12 -1.1,0.2 -1.24,0.75l0,0C3.11,7.55 3.45,8.12 4,8.25C5.61,8.61 7.35,8.86 9,9v12c0,0.55 0.45,1 1,1h0c0.55,0 1,-0.45 1,-1v-5h2v5c0,0.55 0.45,1 1,1h0c0.55,0 1,-0.45 1,-1V9c1.65,-0.14 3.39,-0.39 5,-0.75C20.55,8.12 20.89,7.55 20.75,6.99L20.75,6.99zM12,6c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2s-2,0.9 -2,2S10.9,6 12,6z"/>
 </vector>
diff --git a/res/drawable/ic_settings_data_usage.xml b/res/drawable/ic_settings_data_usage.xml
index 31ea994..0e0b447 100644
--- a/res/drawable/ic_settings_data_usage.xml
+++ b/res/drawable/ic_settings_data_usage.xml
@@ -16,23 +16,16 @@
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
         android:width="24.0dp"
         android:height="24.0dp"
-        android:viewportWidth="48.0"
-        android:viewportHeight="48.0"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M26.0,4.1
-        l0.0,6.06
-        c6.7,0.97 12.0,6.79 12.0,13.84
-        0.0,1.79 -0.35,3.5 -0.96,5.07
-        l5.2,3.07
-        C43.35,29.65 44.0,26.91 44.0,24.0
-        c0.0,-10.37 -7.89,-18.89 -18.0,-19.9z
-        M24.0,38.0
-        c-7.73,0.0 -14.0,-6.27 -14.0,-14.0 0.0,-7.05 5.22,-12.87 12.0,-13.84
-        l0.0,-6
-        C11.88,5.1 4.0,13.63 4.0,24.0
-        c0.0,11.05 8.94,20.0 19.99,20.0 6.62,0.0 12.47,-3.23 16.11,-8.18
-        l-5.19,-3.06
-        C32.35,35.95 28.42,38.0 24.0,38.0z"/>
+        android:pathData="M18.32 16.75l1.32 .76 c.26 .15 .34 .51 .15 .74 -2.09 2.6-5.44 4.14-9.14
+3.65-4.4-.58-7.96-4.12-8.56-8.52C1.34 7.8 5.21 2.95 10.43 2.12c.3-.05 .57 .2 .57
+.5v1.53c0 .24-.18 .44 -.41 .49 -3.6 .69 -6.29 3.95-6.07 7.79 .21 3.82 3.43 6.95
+7.25 7.07 2.37 .08 4.51-.96 5.93-2.63a.48 .48 0 0 1 .62-.12zM19.5 12c0 .83-.14
+1.63-.39 2.38-.08 .23 .01 .47 .21 .59 l1.33 .77 c.26 .15 .61 .04 .72-.24 .4
+-1.09 .63 -2.27 .63 -3.5 0-4.99-3.65-9.12-8.43-9.88-.3-.04-.57 .2 -.57 .5
+v1.53c0 .24 .18 .44 .41 .48 3.46 .68 6.09 3.72 6.09 7.37z"/>
 </vector>
diff --git a/res/drawable/ic_settings_date_time.xml b/res/drawable/ic_settings_date_time.xml
index b965878..1d2f3d3 100644
--- a/res/drawable/ic_settings_date_time.xml
+++ b/res/drawable/ic_settings_date_time.xml
@@ -1,28 +1,25 @@
 <!--
-    Copyright (C) 2016 The Android Open Source Project
+     Copyright (C) 2015 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
+     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
+          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.
+     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.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24.0dp"
-        android:height="24.0dp"
+        android:width="24dp"
+        android:height="24dp"
         android:viewportWidth="24.0"
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M11.99,2.0C6.47,2.0 2.0,6.48 2.0,12.0s4.47,10.0 9.99,10.0C17.52,22.0 22.0,17.52 22.0,12.0S17.52,2.0 11.99,2.0zM12.0,20.0c-4.42,0.0 -8.0,-3.58 -8.0,-8.0s3.58,-8.0 8.0,-8.0 8.0,3.58 8.0,8.0 -3.58,8.0 -8.0,8.0z"/>
-    <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M12.5,7.0L11.0,7.0l0.0,6.0l5.25,3.1 0.75,-1.23 -4.5,-2.67z"/>
+        android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8zM11.75,6.1c-0.5,0 -0.75,0.32 -0.75,0.72L11,13l4.64,2.78c0.34,0.2 0.78,0.1 0.98,-0.24a0.71,0.71 0,0 0,-0.25 -0.99l-3.87,-2.3L12.5,6.82c0,-0.4 -0.25,-0.72 -0.75,-0.72z"/>
 </vector>
diff --git a/res/drawable/ic_settings_display.xml b/res/drawable/ic_settings_display.xml
index ff763f0..de71508 100644
--- a/res/drawable/ic_settings_display.xml
+++ b/res/drawable/ic_settings_display.xml
@@ -21,5 +21,8 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M20.0,15.31L23.31,12.0 20.0,8.69L20.0,4.0l-4.69,0.0L12.0,0.69 8.69,4.0L4.0,4.0l0.0,4.69L0.69,12.0 4.0,15.31L4.0,20.0l4.69,0.0L12.0,23.31 15.31,20.0L20.0,20.0l0.0,-4.69zM12.0,18.0L12.0,6.0c3.31,0.0 6.0,2.69 6.0,6.0s-2.69,6.0 -6.0,6.0z"/>
+        android:pathData="M20,15.31l2.6-2.6c0.39-0.39,0.39-1.02,0-1.41L20,8.69V5c0-0.55-0.45-1-1-1h-3.69l-2.6-2.6c-0.39-0.39-1.02-0.39-1.41,0
+L8.69,4H5C4.45,4,4,4.45,4,5v3.69l-2.6,2.6c-0.39,0.39-0.39,1.02,0,1.41l2.6,2.6V19c0,0.55,0.45,1,1,1h3.69l2.6,2.6
+c0.39,0.39,1.02,0.39,1.41,0l2.6-2.6H19c0.55,0,1-0.45,1-1V15.31z
+M12,18V6c3.31,0,6,2.69,6,6S15.31,18,12,18z"/>
 </vector>
diff --git a/res/drawable/ic_settings_print.xml b/res/drawable/ic_settings_print.xml
index 7470014..0eab402 100644
--- a/res/drawable/ic_settings_print.xml
+++ b/res/drawable/ic_settings_print.xml
@@ -21,5 +21,8 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M19.0,8.0L5.0,8.0c-1.66,0.0 -3.0,1.34 -3.0,3.0l0.0,6.0l4.0,0.0l0.0,4.0l12.0,0.0l0.0,-4.0l4.0,0.0l0.0,-6.0c0.0,-1.66 -1.34,-3.0 -3.0,-3.0zm-3.0,11.0L8.0,19.0l0.0,-5.0l8.0,0.0l0.0,5.0zm3.0,-7.0c-0.55,0.0 -1.0,-0.45 -1.0,-1.0s0.45,-1.0 1.0,-1.0 1.0,0.45 1.0,1.0 -0.45,1.0 -1.0,1.0zm-1.0,-9.0L6.0,3.0l0.0,4.0l12.0,0.0L18.0,3.0z"/>
+        android:pathData="M19,8H5c-1.66,0-3,1.34-3,3v5c0,0.55,0.45,1,1,1h3v3c0,0.55,0.45,1,1,1h10c0.55,0,1-0.45,1-1v-3h3c0.55,0,1-0.45,1-1v-5
+C22,9.34,20.66,8,19,8z M16,19H8v-5h8V19z
+M19,12c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S19.55,12,19,12z M17,3H7
+C6.45,3,6,3.45,6,4v3h12V4C18,3.45,17.55,3,17,3z"/>
 </vector>
diff --git a/res/drawable/ic_settings_sound.xml b/res/drawable/ic_settings_sound.xml
index 598a02a..7054d78 100644
--- a/res/drawable/ic_settings_sound.xml
+++ b/res/drawable/ic_settings_sound.xml
@@ -21,5 +21,10 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M3.0,9.0l0.0,6.0l4.0,0.0l5.0,5.0L12.0,4.0L7.0,9.0L3.0,9.0zm13.5,3.0c0.0,-1.77 -1.02,-3.29 -2.5,-4.03l0.0,8.05c1.48,-0.73 2.5,-2.25 2.5,-4.02zM14.0,3.23l0.0,2.06c2.8,0.86 5.0,3.54 5.0,6.71s-2.11,5.85 -5.0,6.71l0.0,2.06c4.01,-0.91 7.0,-4.49 7.0,-8.77s-2.99,-7.86 -7.0,-8.77z"/>
+        android:pathData="M3 10v4c0 .55 .45 1 1 1h3l3.29 3.29c.63 .63 1.71 .18
+1.71-.71V6.41c0-.89-1.08-1.34-1.71-.71L7 9H4c-.55 0-1 .45-1 1zm13.5 2A4.5 4.5 0
+0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 4.46v.19c0 .38 .25 .71 .61
+.85C17.18 6.54 19 9.06 19 12s-1.82 5.46-4.39 6.5c-.36 .14 -.61 .47 -.61 .85
+v.19c0 .63 .63 1.08 1.22 .86 a8.995 8.995 0 0 0 0-16.8c-.59-.23-1.22 .23 -1.22
+.86 z"/>
 </vector>
diff --git a/res/drawable/ic_vpn_key.xml b/res/drawable/ic_vpn_key.xml
index aad1096..71b29d6 100644
--- a/res/drawable/ic_vpn_key.xml
+++ b/res/drawable/ic_vpn_key.xml
@@ -20,6 +20,7 @@
         android:viewportHeight="24.0"
         android:tint="?android:attr/colorControlNormal">
     <path
-        android:pathData="M12.65,10C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H17v4h4v-4h2v-4H12.65zM7,14c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2z"
+        android:pathData="M12.65,10C11.7,7.31,8.9,5.5,5.78,6.12C3.49,6.58,1.62,8.41,1.14,10.7C0.32,14.57,3.26,18,7,18c2.61,0,4.83-1.67,5.65-4H16
+v2c0,1.1,0.9,2,2,2h0c1.1,0,2-0.9,2-2v-2h1c1.1,0,2-0.9,2-2v0c0-1.1-0.9-2-2-2H12.65z M7,14c-1.1,0-2-0.9-2-2s0.9-2,2-2s2,0.9,2,2 S8.1,14,7,14z"
         android:fillColor="#FFFFFFFF"/>
 </vector>
diff --git a/res/drawable/ic_zen.xml b/res/drawable/ic_zen.xml
index 17ecf21..8c50d5d 100644
--- a/res/drawable/ic_zen.xml
+++ b/res/drawable/ic_zen.xml
@@ -14,13 +14,13 @@
      limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:viewportHeight="24.0"
+    android:viewportWidth="24.0"
     android:height="24dp"
-    android:viewportHeight="48.0"
-    android:viewportWidth="48.0"
     android:width="24dp" >
 
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M24.0,4.0C12.95,4.0 4.0,12.95 4.0,24.0s8.95,20.0 20.0,20.0 20.0,-8.95 20.0,-20.0S35.05,4.0 24.0,4.0zm10.0,22.0L14.0,26.0l0.0,-4.0l20.0,0.0l0.0,4.0z" />
+        android:pathData="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4 11H8c-.55 0-1-.45-1-1s.45-1 1-1h8c.55 0 1 .45 1 1s-.45 1-1 1z" />
 
 </vector>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index a154135..b53dbde 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6833,8 +6833,8 @@
     <!-- [CHAR LIMIT=100] Notification importance screen title -->
     <string name="notification_importance_title">Importance</string>
 
-    <!-- [CHAR LIMIT=100] Notification Importance: unspecified importance level description -->
-    <string name="notification_importance_unspecified">Let the app decide</string>
+    <!-- [CHAR LIMIT=100 BACKUP_MESSAGE_ID=1820188704793497324] Notification Importance: unspecified importance level description -->
+    <string name="notification_importance_unspecified">Allow sound</string>
 
     <!-- [CHAR LIMIT=100] Notification Importance: blocked importance level description -->
     <string name="notification_importance_blocked">Never show notifications</string>
diff --git a/src/com/android/settings/ApnEditor.java b/src/com/android/settings/ApnEditor.java
index ddcdd8c..e61f959 100644
--- a/src/com/android/settings/ApnEditor.java
+++ b/src/com/android/settings/ApnEditor.java
@@ -660,7 +660,11 @@
             return null;
         } else {
             String[] values = mRes.getStringArray(R.array.mvno_type_entries);
-            mMvnoMatchData.setEnabled(mvnoIndex != 0);
+            boolean mvnoMatchDataUneditable =
+                    mReadOnlyApn || (mReadOnlyApnFields != null
+                            && Arrays.asList(mReadOnlyApnFields)
+                            .contains(Telephony.Carriers.MVNO_MATCH_DATA));
+            mMvnoMatchData.setEnabled(!mvnoMatchDataUneditable && mvnoIndex != 0);
             if (newValue != null && newValue.equals(oldValue) == false) {
                 if (values[mvnoIndex].equals("SPN")) {
                     mMvnoMatchData.setText(mTelephonyManager.getSimOperatorName());
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index a696172..ee041e8 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -21,7 +21,6 @@
 import com.android.settings.applications.AppOpsSummary;
 import com.android.settings.enterprise.EnterprisePrivacySettings;
 import com.android.settings.fingerprint.FingerprintEnrollIntroduction;
-import com.android.settings.fingerprint.FingerprintSettings;
 import com.android.settings.password.ChooseLockGeneric;
 
 /**
@@ -128,6 +127,9 @@
     public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ }
     public static class GamesStorageActivity extends SettingsActivity { /* empty */ }
     public static class MoviesStorageActivity extends SettingsActivity { /* empty */ }
+    public static class PhotosStorageActivity extends SettingsActivity {
+        /* empty */
+    }
 
     public static class TopLevelSettings extends SettingsActivity { /* empty */ }
     public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 2a57577..417ac0f 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -107,6 +107,7 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.UserIcons;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.password.FingerprintManagerWrapper;
 import com.android.settings.password.IFingerprintManager;
 
@@ -1280,6 +1281,28 @@
     }
 
     /**
+     * Return {@code true} if the supplied package is device owner or profile owner of at
+     * least one user.
+     * @param userManager used to get profile owner app for each user
+     * @param devicePolicyManager used to check whether it is device owner app
+     * @param packageName package to check about
+     */
+    public static boolean isProfileOrDeviceOwner(UserManager userManager,
+            DevicePolicyManagerWrapper devicePolicyManager, String packageName) {
+        List<UserInfo> userInfos = userManager.getUsers();
+        if (devicePolicyManager.isDeviceOwnerAppOnAnyUser(packageName)) {
+            return true;
+        }
+        for (int i = 0, size = userInfos.size(); i < size; i++) {
+            ComponentName cn = devicePolicyManager.getProfileOwnerAsUser(userInfos.get(i).id);
+            if (cn != null && cn.getPackageName().equals(packageName)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
      * Return the resource id to represent the install status for an app
      */
     @StringRes
diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java
index 4af9bc6..a5daee2 100644
--- a/src/com/android/settings/applications/AppInfoBase.java
+++ b/src/com/android/settings/applications/AppInfoBase.java
@@ -43,6 +43,8 @@
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
+import com.android.settings.enterprise.DevicePolicyManagerWrapperImpl;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.applications.ApplicationsState;
@@ -73,7 +75,7 @@
     protected String mPackageName;
 
     protected IUsbManager mUsbManager;
-    protected DevicePolicyManager mDpm;
+    protected DevicePolicyManagerWrapper mDpm;
     protected UserManager mUserManager;
     protected PackageManager mPm;
 
@@ -92,7 +94,8 @@
                 .getApplicationFeatureProvider(activity);
         mState = ApplicationsState.getInstance(activity.getApplication());
         mSession = mState.newSession(this);
-        mDpm = (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE);
+        mDpm = new DevicePolicyManagerWrapperImpl(
+                (DevicePolicyManager) activity.getSystemService(Context.DEVICE_POLICY_SERVICE));
         mUserManager = (UserManager) activity.getSystemService(Context.USER_SERVICE);
         mPm = activity.getPackageManager();
         IBinder b = ServiceManager.getService(Context.USB_SERVICE);
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index e8a4d9d..5421586 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -274,7 +274,7 @@
         // We don't allow uninstalling DO/PO on *any* users, because if it's a system app,
         // "uninstall" is actually "downgrade to the system version + disable", and "downgrade"
         // will clear data on all users.
-        if (isProfileOrDeviceOwner(mPackageInfo.packageName)) {
+        if (Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mPackageInfo.packageName)) {
             enabled = false;
         }
 
@@ -349,23 +349,6 @@
         return enabled;
     }
 
-    /** Returns if the supplied package is device owner or profile owner of at least one user */
-    private boolean isProfileOrDeviceOwner(String packageName) {
-        List<UserInfo> userInfos = mUserManager.getUsers();
-        DevicePolicyManager dpm = (DevicePolicyManager)
-                getContext().getSystemService(Context.DEVICE_POLICY_SERVICE);
-        if (dpm.isDeviceOwnerAppOnAnyUser(packageName)) {
-            return true;
-        }
-        for (UserInfo userInfo : userInfos) {
-            ComponentName cn = dpm.getProfileOwnerAsUser(userInfo.id);
-            if (cn != null && cn.getPackageName().equals(packageName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle icicle) {
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 7cc47e0..11eb0cc 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -59,6 +59,7 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
+import com.android.settings.Settings;
 import com.android.settings.Settings.AllApplicationsActivity;
 import com.android.settings.Settings.GamesStorageActivity;
 import com.android.settings.Settings.HighPowerApplicationsActivity;
@@ -115,6 +116,7 @@
     public static final String EXTRA_VOLUME_UUID = "volumeUuid";
     public static final String EXTRA_VOLUME_NAME = "volumeName";
     public static final String EXTRA_STORAGE_TYPE = "storageType";
+    public static final String EXTRA_WORK_ONLY = "workProfileOnly";
 
     private static final String EXTRA_SORT_ORDER = "sortOrder";
     private static final String EXTRA_SHOW_SYSTEM = "showSystem";
@@ -218,6 +220,7 @@
     public static final int STORAGE_TYPE_DEFAULT = 0; // Show all apps that are not categorized.
     public static final int STORAGE_TYPE_MUSIC = 1;
     public static final int STORAGE_TYPE_LEGACY = 2; // Show apps even if they can be categorized.
+    public static final int STORAGE_TYPE_PHOTOS_VIDEOS = 3;
 
     // sort order
     private int mSortOrder = R.id.sort_order_alpha;
@@ -261,6 +264,7 @@
     public static final int LIST_TYPE_MANAGE_SOURCES = 8;
     public static final int LIST_TYPE_GAMES = 9;
     public static final int LIST_TYPE_MOVIES = 10;
+    public static final int LIST_TYPE_PHOTOGRAPHY = 11;
 
 
     // List types that should show instant apps.
@@ -277,6 +281,7 @@
     private ResetAppsHelper mResetAppsHelper;
     private String mVolumeUuid;
     private int mStorageType;
+    private boolean mIsWorkOnly;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -324,10 +329,15 @@
         } else if (className.equals(MoviesStorageActivity.class.getName())) {
             mListType = LIST_TYPE_MOVIES;
             mSortOrder = R.id.sort_order_size;
+        } else if (className.equals(Settings.PhotosStorageActivity.class.getName())) {
+            mListType = LIST_TYPE_PHOTOGRAPHY;
+            mSortOrder = R.id.sort_order_size;
+            mStorageType = args.getInt(EXTRA_STORAGE_TYPE, STORAGE_TYPE_DEFAULT);
         } else {
             mListType = LIST_TYPE_MAIN;
         }
         mFilter = getDefaultFilter();
+        mIsWorkOnly = args != null ? args.getBoolean(EXTRA_WORK_ONLY) : false;
 
         if (savedInstanceState != null) {
             mSortOrder = savedInstanceState.getInt(EXTRA_SORT_ORDER, mSortOrder);
@@ -375,6 +385,14 @@
                         new StorageStatsSource(context),
                         mVolumeUuid,
                         UserHandle.of(UserHandle.getUserId(mCurrentUid))));
+            } else if (mStorageType == STORAGE_TYPE_PHOTOS_VIDEOS) {
+                Context context = getContext();
+                mApplications.setExtraViewController(
+                        new PhotosViewHolderController(
+                                context,
+                                new StorageStatsSource(context),
+                                mVolumeUuid,
+                                UserHandle.of(UserHandle.getUserId(mCurrentUid))));
             }
             mListView.setAdapter(mApplications);
             mListView.setRecyclerListener(mApplications);
@@ -423,6 +441,9 @@
         }
 
         AppFilter compositeFilter = getCompositeFilter(mListType, mStorageType, mVolumeUuid);
+        if (mIsWorkOnly) {
+            compositeFilter = new CompoundFilter(compositeFilter, FILTERS[FILTER_APPS_WORK]);
+        }
         if (compositeFilter != null) {
             mApplications.setCompositeFilter(compositeFilter);
         }
@@ -444,6 +465,8 @@
             return new CompoundFilter(ApplicationsState.FILTER_GAMES, filter);
         } else if (listType == LIST_TYPE_MOVIES) {
             return new CompoundFilter(ApplicationsState.FILTER_MOVIES, filter);
+        } else if (listType == LIST_TYPE_PHOTOGRAPHY) {
+            return new CompoundFilter(ApplicationsState.FILTER_PHOTOS, filter);
         }
 
         return null;
@@ -473,6 +496,7 @@
             case LIST_TYPE_STORAGE:
             case LIST_TYPE_GAMES:
             case LIST_TYPE_MOVIES:
+            case LIST_TYPE_PHOTOGRAPHY:
                 return mSortOrder == R.id.sort_order_alpha;
             default:
                 return false;
@@ -495,6 +519,8 @@
                 return MetricsEvent.APPLICATIONS_STORAGE_GAMES;
             case LIST_TYPE_MOVIES:
                 return MetricsEvent.APPLICATIONS_STORAGE_MOVIES;
+            case LIST_TYPE_PHOTOGRAPHY:
+                return MetricsEvent.APPLICATIONS_STORAGE_PHOTOS;
             case LIST_TYPE_USAGE_ACCESS:
                 return MetricsEvent.USAGE_ACCESS;
             case LIST_TYPE_HIGH_POWER:
@@ -598,6 +624,9 @@
             case LIST_TYPE_MOVIES:
                 startAppInfoFragment(AppStorageSettings.class, R.string.storage_movies_tv);
                 break;
+            case LIST_TYPE_PHOTOGRAPHY:
+                startAppInfoFragment(AppStorageSettings.class, R.string.storage_photos_videos);
+                break;
             // TODO: Figure out if there is a way where we can spin up the profile's settings
             // process ahead of time, to avoid a long load of data when user clicks on a managed
             // app. Maybe when they load the list of apps that contains managed profile apps.
diff --git a/src/com/android/settings/applications/PhotosViewHolderController.java b/src/com/android/settings/applications/PhotosViewHolderController.java
new file mode 100644
index 0000000..a652bb1
--- /dev/null
+++ b/src/com/android/settings/applications/PhotosViewHolderController.java
@@ -0,0 +1,90 @@
+/*
+ * 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
+ */
+
+package com.android.settings.applications;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.drawable.InsetDrawable;
+import android.os.UserHandle;
+import android.support.annotation.WorkerThread;
+import android.text.format.Formatter;
+import android.util.Log;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settingslib.applications.StorageStatsSource;
+
+import java.io.IOException;
+
+/** PhotosViewHolderController controls an Audio/Music file view in the ManageApplications view. */
+public class PhotosViewHolderController implements FileViewHolderController {
+    private static final String TAG = "PhotosViewHolderController";
+
+    private static final String IMAGE_MIME_TYPE = "image/*";
+    private static final int INSET_SIZE = 24; // dp
+
+    private Context mContext;
+    private StorageStatsSource mSource;
+    private String mVolumeUuid;
+    private long mFilesSize;
+    private UserHandle mUser;
+
+    public PhotosViewHolderController(
+            Context context, StorageStatsSource source, String volumeUuid, UserHandle user) {
+        mContext = context;
+        mSource = source;
+        mVolumeUuid = volumeUuid;
+        mUser = user;
+    }
+
+    @Override
+    @WorkerThread
+    public void queryStats() {
+        try {
+            StorageStatsSource.ExternalStorageStats stats =
+                    mSource.getExternalStorageStats(mVolumeUuid, mUser);
+            mFilesSize = stats.imageBytes + stats.videoBytes;
+        } catch (IOException e) {
+            mFilesSize = 0;
+            Log.w(TAG, e);
+        }
+    }
+
+    @Override
+    public boolean shouldShow() {
+        return true;
+    }
+
+    @Override
+    public void setupView(AppViewHolder holder) {
+        holder.appIcon.setImageDrawable(
+                new InsetDrawable(mContext.getDrawable(R.drawable.ic_photo_library), INSET_SIZE));
+        holder.appName.setText(mContext.getText(R.string.storage_detail_images));
+        holder.summary.setText(Formatter.formatFileSize(mContext, mFilesSize));
+    }
+
+    @Override
+    public void onClick(Fragment fragment) {
+        Intent intent = new Intent();
+        intent.setAction(android.content.Intent.ACTION_VIEW);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
+        intent.setType(IMAGE_MIME_TYPE);
+        intent.putExtra(Intent.EXTRA_FROM_STORAGE, true);
+        Utils.launchIntent(fragment, intent);
+    }
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index 97382c3..22cb3a6 100644
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -108,12 +108,6 @@
     @VisibleForTesting
     void dismiss() {
         if (!isFinishing()) {
-            BluetoothPairingDialogFragment bluetoothFragment =
-                (BluetoothPairingDialogFragment) getFragmentManager()
-                    .findFragmentByTag(FRAGMENT_TAG);
-            if (bluetoothFragment != null) {
-                bluetoothFragment.dismiss();
-            }
             finish();
         }
     }
diff --git a/src/com/android/settings/development/CameraHalHdrplusPreferenceController.java b/src/com/android/settings/development/CameraHalHdrplusPreferenceController.java
index e8e2c2d..a4f087a 100644
--- a/src/com/android/settings/development/CameraHalHdrplusPreferenceController.java
+++ b/src/com/android/settings/development/CameraHalHdrplusPreferenceController.java
@@ -102,6 +102,6 @@
     }
 
     private boolean isHalHdrplusEnabled() {
-        return SystemProperties.getBoolean(PROPERTY_CAMERA_HAL_HDRPLUS, false);
+        return SystemProperties.getBoolean(PROPERTY_CAMERA_HAL_HDRPLUS, true);
     }
 }
diff --git a/src/com/android/settings/deviceinfo/StorageProfileFragment.java b/src/com/android/settings/deviceinfo/StorageProfileFragment.java
index 7a0a59e..9f3ce0c 100644
--- a/src/com/android/settings/deviceinfo/StorageProfileFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageProfileFragment.java
@@ -101,8 +101,13 @@
     protected List<AbstractPreferenceController> getPreferenceControllers(Context context) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         final StorageManager sm = context.getSystemService(StorageManager.class);
-        mPreferenceController = new StorageItemPreferenceController(context, this,
-                mVolume, new StorageManagerVolumeProvider(sm));
+        mPreferenceController =
+                new StorageItemPreferenceController(
+                        context,
+                        this,
+                        mVolume,
+                        new StorageManagerVolumeProvider(sm),
+                        /* isWorkProfile */ true);
         controllers.add(mPreferenceController);
         return controllers;
     }
diff --git a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
index 630df85..f92a24e 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
@@ -18,6 +18,7 @@
 
 import static android.content.pm.ApplicationInfo.CATEGORY_AUDIO;
 import static android.content.pm.ApplicationInfo.CATEGORY_GAME;
+import static android.content.pm.ApplicationInfo.CATEGORY_IMAGE;
 import static android.content.pm.ApplicationInfo.CATEGORY_VIDEO;
 
 import android.content.Context;
@@ -134,6 +135,9 @@
                 case CATEGORY_VIDEO:
                     result.videoAppsSize += blamedSize;
                     break;
+                case CATEGORY_IMAGE:
+                    result.photosAppsSize += blamedSize;
+                    break;
                 default:
                     // The deprecated game flag does not set the category.
                     if ((app.flags & ApplicationInfo.FLAG_IS_GAME) != 0) {
@@ -163,6 +167,7 @@
     public static class AppsStorageResult {
         public long gamesSize;
         public long musicAppsSize;
+        public long photosAppsSize;
         public long videoAppsSize;
         public long otherAppsSize;
         public long cacheSize;
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index 7060779..ca85f69 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
@@ -59,7 +59,6 @@
         PreferenceControllerMixin {
     private static final String TAG = "StorageItemPreference";
 
-    private static final String IMAGE_MIME_TYPE = "image/*";
     private static final String SYSTEM_FRAGMENT_TAG = "SystemInfo";
 
     @VisibleForTesting
@@ -93,6 +92,7 @@
     private StorageItemPreference mAppPreference;
     private StorageItemPreference mFilePreference;
     private StorageItemPreference mSystemPreference;
+    private boolean mIsWorkProfile;
 
     private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents";
 
@@ -106,6 +106,16 @@
         mUserId = UserHandle.myUserId();
     }
 
+    public StorageItemPreferenceController(
+            Context context,
+            Fragment hostFragment,
+            VolumeInfo volume,
+            StorageVolumeProvider svp,
+            boolean isWorkProfile) {
+        this(context, hostFragment, volume, svp);
+        mIsWorkProfile = isWorkProfile;
+    }
+
     @Override
     public boolean isAvailable() {
         return true;
@@ -212,7 +222,7 @@
         if (preference != null) {
             Drawable currentIcon = preference.getIcon();
             // Sigh... Applying the badge to the icon clobbers the tint on the base drawable.
-            // For some reason, re-applying it here means the tint remains.
+            // For some reason, reapplying it here means the tint remains.
             currentIcon = applyTint(mContext, currentIcon);
             preference.setIcon(pm.getUserBadgedIcon(currentIcon, userHandle));
         }
@@ -220,7 +230,7 @@
 
     private static Drawable applyTint(Context context, Drawable icon) {
         TypedArray array =
-                context.obtainStyledAttributes(new int[]{android.R.attr.colorControlNormal});
+                context.obtainStyledAttributes(new int[] {android.R.attr.colorControlNormal});
         icon = icon.mutate();
         icon.setTint(array.getColor(0, 0));
         array.recycle();
@@ -248,7 +258,8 @@
         // TODO(b/35927909): Figure out how to split out apps which are only installed for work
         //       profiles in order to attribute those app's code bytes only to that profile.
         mPhotoPreference.setStorageSize(
-                data.externalStats.imageBytes + data.externalStats.videoBytes, mTotalSize);
+                data.photosAppsSize + data.externalStats.imageBytes + data.externalStats.videoBytes,
+                mTotalSize);
         mAudioPreference.setStorageSize(
                 data.musicAppsSize + data.externalStats.audioBytes, mTotalSize);
         mGamePreference.setStorageSize(data.gamesSize, mTotalSize);
@@ -269,10 +280,12 @@
             long attributedSize = 0;
             for (int i = 0; i < result.size(); i++) {
                 final StorageAsyncLoader.AppsStorageResult otherData = result.valueAt(i);
-                attributedSize += otherData.gamesSize
-                        + otherData.musicAppsSize
-                        + otherData.videoAppsSize
-                        + otherData.otherAppsSize;
+                attributedSize +=
+                        otherData.gamesSize
+                                + otherData.musicAppsSize
+                                + otherData.videoAppsSize
+                                + otherData.photosAppsSize
+                                + otherData.otherAppsSize;
                 attributedSize += otherData.externalStats.totalBytes
                         - otherData.externalStats.appBytes;
             }
@@ -306,12 +319,21 @@
     }
 
     private Intent getPhotosIntent() {
-        Intent intent = new Intent();
-        intent.setAction(android.content.Intent.ACTION_VIEW);
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
-        intent.setType(IMAGE_MIME_TYPE);
-        intent.putExtra(Intent.EXTRA_FROM_STORAGE, true);
-        return intent;
+        Bundle args = new Bundle(2);
+        args.putString(
+                ManageApplications.EXTRA_CLASSNAME, Settings.PhotosStorageActivity.class.getName());
+        args.putInt(
+                ManageApplications.EXTRA_STORAGE_TYPE,
+                ManageApplications.STORAGE_TYPE_PHOTOS_VIDEOS);
+        return Utils.onBuildStartFragmentIntent(
+                mContext,
+                ManageApplications.class.getName(),
+                args,
+                null,
+                R.string.storage_photos_videos,
+                null,
+                false,
+                mMetricsFeatureProvider.getMetricsCategory(mFragment));
     }
 
     private Intent getAudioIntent() {
@@ -320,6 +342,7 @@
         }
 
         Bundle args = new Bundle();
+        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
         args.putString(ManageApplications.EXTRA_CLASSNAME,
                 Settings.StorageUseActivity.class.getName());
         args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
@@ -336,6 +359,7 @@
         }
 
         Bundle args = new Bundle();
+        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
         args.putString(ManageApplications.EXTRA_CLASSNAME,
                 Settings.StorageUseActivity.class.getName());
         args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
@@ -347,6 +371,7 @@
 
     private Intent getGamesIntent() {
         Bundle args = new Bundle(1);
+        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
         args.putString(ManageApplications.EXTRA_CLASSNAME,
                 Settings.GamesStorageActivity.class.getName());
         return Utils.onBuildStartFragmentIntent(mContext,
@@ -356,6 +381,7 @@
 
     private Intent getMoviesIntent() {
         Bundle args = new Bundle(1);
+        args.putBoolean(ManageApplications.EXTRA_WORK_ONLY, mIsWorkProfile);
         args.putString(ManageApplications.EXTRA_CLASSNAME,
                 Settings.MoviesStorageActivity.class.getName());
         return Utils.onBuildStartFragmentIntent(mContext,
diff --git a/src/com/android/settings/deviceinfo/storage/UserProfileController.java b/src/com/android/settings/deviceinfo/storage/UserProfileController.java
index 684ac52..cf1e360 100644
--- a/src/com/android/settings/deviceinfo/storage/UserProfileController.java
+++ b/src/com/android/settings/deviceinfo/storage/UserProfileController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.UserInfo;
+import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.storage.VolumeInfo;
@@ -126,7 +127,14 @@
     public void handleUserIcons(SparseArray<Drawable> fetchedIcons) {
         Drawable userIcon = fetchedIcons.get(mUser.id);
         if (userIcon != null) {
-            mStoragePreference.setIcon(userIcon);
+            mStoragePreference.setIcon(applyTint(mContext, userIcon));
         }
     }
+
+    private static Drawable applyTint(Context context, Drawable icon) {
+        icon = icon.mutate();
+        icon.setTint(Utils.getColorAttr(context, android.R.attr.colorControlNormal));
+        return icon;
+    }
+
 }
diff --git a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
index 1647aa5..b889cfd 100644
--- a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
@@ -381,7 +381,7 @@
         // We don't allow uninstalling DO/PO on *any* users, because if it's a system app,
         // "uninstall" is actually "downgrade to the system version + disable", and "downgrade"
         // will clear data on all users.
-        if (isProfileOrDeviceOwner(mPackageInfo.packageName)) {
+        if (Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mPackageInfo.packageName)) {
             enabled = false;
         }
 
@@ -581,21 +581,6 @@
                 || (mUserManager.isSplitSystemUser() && userCount == 2);
     }
 
-    /** Returns if the supplied package is device owner or profile owner of at least one user */
-    private boolean isProfileOrDeviceOwner(String packageName) {
-        List<UserInfo> userInfos = mUserManager.getUsers();
-        if (mDpm.isDeviceOwnerAppOnAnyUser(packageName)) {
-            return true;
-        }
-        for (int i = 0, size = userInfos.size(); i < size; i++) {
-            ComponentName cn = mDpm.getProfileOwnerAsUser(userInfos.get(i).id);
-            if (cn != null && cn.getPackageName().equals(packageName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
     private final BroadcastReceiver mCheckKillProcessesReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
diff --git a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java
index 89089e5..4d1cf77 100644
--- a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java
@@ -15,17 +15,22 @@
 package com.android.settings.fuelgauge;
 
 import android.app.AppOpsManager;
+import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.UserManager;
 import android.support.annotation.VisibleForTesting;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
 import android.util.Log;
 
 import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
+import com.android.settings.enterprise.DevicePolicyManagerWrapperImpl;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 /**
@@ -39,14 +44,20 @@
 
     private final PackageManager mPackageManager;
     private final AppOpsManager mAppOpsManager;
+    private final UserManager mUserManager;
     private final String[] mPackages;
     private final int mUid;
+    @VisibleForTesting
+    DevicePolicyManagerWrapper mDpm;
 
     private String mTargetPackage;
 
     public BackgroundActivityPreferenceController(Context context, int uid) {
         super(context);
         mPackageManager = context.getPackageManager();
+        mUserManager = (UserManager) context.getSystemService(Context.USER_SERVICE);
+        mDpm = new DevicePolicyManagerWrapperImpl(
+                (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE));
         mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
         mUid = uid;
         mPackages = mPackageManager.getPackagesForUid(mUid);
@@ -56,12 +67,15 @@
     public void updateState(Preference preference) {
         final int mode = mAppOpsManager
                 .checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, mUid, mTargetPackage);
-        if (mode == AppOpsManager.MODE_ERRORED) {
-            preference.setEnabled(false);
-        } else {
+        // Set checked or not before we may set it disabled
+        if (mode != AppOpsManager.MODE_ERRORED) {
             final boolean checked = mode != AppOpsManager.MODE_IGNORED;
             ((SwitchPreference) preference).setChecked(checked);
         }
+        if (mode == AppOpsManager.MODE_ERRORED
+                || Utils.isProfileOrDeviceOwner(mUserManager, mDpm, mTargetPackage)) {
+            preference.setEnabled(false);
+        }
 
         updateSummary(preference);
     }
diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java
index 70b040d..c38ad02 100644
--- a/src/com/android/settings/widget/EntityHeaderController.java
+++ b/src/com/android/settings/widget/EntityHeaderController.java
@@ -336,6 +336,7 @@
                 final Intent intent = resolveIntent(
                         new Intent(Intent.ACTION_APPLICATION_PREFERENCES).setPackage(mPackageName));
                 if (intent == null) {
+                    button.setImageDrawable(null);
                     button.setVisibility(View.GONE);
                     return;
                 }
@@ -348,6 +349,7 @@
                         mFragment.startActivity(intent);
                     }
                 });
+                button.setImageResource(R.drawable.ic_settings_24dp);
                 button.setVisibility(View.VISIBLE);
                 return;
             }
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index d85464d..33ead1f 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -8,14 +8,17 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.UserInfo;
 import android.net.ConnectivityManager;
 import android.net.LinkAddress;
 import android.net.LinkProperties;
 import android.net.Network;
 import android.net.wifi.WifiManager;
 import android.os.Bundle;
+import android.os.UserManager;
 import android.os.storage.DiskInfo;
 import android.os.storage.StorageManager;
 import android.os.storage.VolumeInfo;
@@ -23,6 +26,7 @@
 import android.text.format.DateUtils;
 import android.text.style.TtsSpan;
 
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
@@ -34,12 +38,15 @@
 import org.robolectric.annotation.Config;
 
 import java.net.InetAddress;
+import java.util.ArrayList;
+import java.util.List;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class UtilsTest {
 
     private static final String TIME_DESCRIPTION = "1 day 20 hours 30 minutes";
+    private static final String PACKAGE_NAME = "com.android.app";
     private Context mContext;
     @Mock
     private WifiManager wifiManager;
@@ -47,6 +54,10 @@
     private Network network;
     @Mock
     private ConnectivityManager connectivityManager;
+    @Mock
+    private DevicePolicyManagerWrapper mDevicePolicyManager;
+    @Mock
+    private UserManager mUserManager;
 
     @Before
     public void setUp() {
@@ -194,4 +205,25 @@
 
         assertThat(Utils.getInstallationStatus(info)).isEqualTo(R.string.disabled);
     }
+
+    @Test
+    public void testIsProfileOrDeviceOwner_deviceOwnerApp_returnTrue() {
+        when(mDevicePolicyManager.isDeviceOwnerAppOnAnyUser(PACKAGE_NAME)).thenReturn(true);
+
+        assertThat(Utils.isProfileOrDeviceOwner(mUserManager, mDevicePolicyManager,
+                PACKAGE_NAME)).isTrue();
+    }
+
+    @Test
+    public void testIsProfileOrDeviceOwner_profileOwnerApp_returnTrue() {
+        final List<UserInfo> userInfos = new ArrayList<>();
+        userInfos.add(new UserInfo());
+
+        when(mUserManager.getUsers()).thenReturn(userInfos);
+        when(mDevicePolicyManager.getProfileOwnerAsUser(userInfos.get(0).id)).thenReturn(
+                new ComponentName(PACKAGE_NAME, ""));
+
+        assertThat(Utils.isProfileOrDeviceOwner(mUserManager, mDevicePolicyManager,
+                PACKAGE_NAME)).isTrue();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
index 1de7c9f..deef5e0 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppDetailsTest.java
@@ -45,6 +45,7 @@
 import com.android.settings.TestConfig;
 import com.android.settings.applications.instantapps.InstantAppButtonsController;
 import com.android.settings.applications.instantapps.InstantAppButtonsController.ShowDialogDelegate;
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.Utils;
@@ -103,7 +104,7 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private SettingsActivity mActivity;
     @Mock
-    private DevicePolicyManager mDevicePolicyManager;
+    private DevicePolicyManagerWrapper mDevicePolicyManager;
     @Mock
     private BatterySipper mBatterySipper;
     @Mock
diff --git a/tests/robotests/src/com/android/settings/applications/PhotosViewHolderControllerTest.java b/tests/robotests/src/com/android/settings/applications/PhotosViewHolderControllerTest.java
new file mode 100644
index 0000000..7eacba2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/PhotosViewHolderControllerTest.java
@@ -0,0 +1,88 @@
+package com.android.settings.applications;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.nullable;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.os.UserHandle;
+import android.os.storage.VolumeInfo;
+import android.view.LayoutInflater;
+
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.applications.StorageStatsSource;
+import com.android.settingslib.deviceinfo.StorageVolumeProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class PhotosViewHolderControllerTest {
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Fragment mFragment;
+
+    @Mock private StorageVolumeProvider mSvp;
+    @Mock private StorageStatsSource mSource;
+
+    private Context mContext;
+    private PhotosViewHolderController mController;
+    private VolumeInfo mVolume;
+    private AppViewHolder mHolder;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+        mVolume = new VolumeInfo("id", 0, null, "id");
+        mController =
+                new PhotosViewHolderController(
+                        mContext, mSource, mVolume.fsUuid, new UserHandle(0));
+
+        LayoutInflater inflater = LayoutInflater.from(mContext);
+        mHolder = AppViewHolder.createOrRecycle(inflater, null);
+    }
+
+    @Test
+    public void storageShouldBeZeroBytesIfQueriedBeforeStorageQueryFinishes() {
+        mController.setupView(mHolder);
+
+        assertThat(mHolder.summary.getText().toString()).isEqualTo("0.00B");
+    }
+
+    @Test
+    public void storageShouldRepresentStorageStatsQuery() throws Exception {
+        when(mSource.getExternalStorageStats(nullable(String.class), nullable(UserHandle.class)))
+                .thenReturn(new StorageStatsSource.ExternalStorageStats(1, 0, 1, 10, 0));
+
+        mController.queryStats();
+        mController.setupView(mHolder);
+
+        assertThat(mHolder.summary.getText().toString()).isEqualTo("11.00B");
+    }
+
+    @Test
+    public void clickingShouldIntentIntoFilesApp() {
+        mController.onClick(mFragment);
+
+        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(mFragment).startActivity(argumentCaptor.capture());
+        Intent intent = argumentCaptor.getValue();
+
+        assertThat(intent.getType()).isEqualTo("image/*");
+        assertThat(intent.getAction()).isEqualTo(android.content.Intent.ACTION_VIEW);
+        assertThat(intent.getBooleanExtra(Intent.EXTRA_FROM_STORAGE, false)).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
index 1599440..9d69349 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
@@ -16,12 +16,12 @@
 package com.android.settings.deviceinfo.storage;
 
 
+import static com.android.settings.applications.ManageApplications.EXTRA_WORK_ONLY;
 import static com.android.settings.utils.FileSizeFormatter.MEGABYTE_IN_BYTES;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -121,9 +121,12 @@
                 nullable(UserHandle.class));
 
         Intent intent = argumentCaptor.getValue();
-        assertThat(intent.getType()).isEqualTo("image/*");
-        assertThat(intent.getAction()).isEqualTo(android.content.Intent.ACTION_VIEW);
-        assertThat(intent.getBooleanExtra(Intent.EXTRA_FROM_STORAGE, false)).isTrue();
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
+        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ManageApplications.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.storage_photos_videos);
     }
 
     @Test
@@ -172,6 +175,29 @@
     }
 
     @Test
+    public void testClickAppsForWork() {
+        mController = new StorageItemPreferenceController(mContext, mFragment, mVolume, mSvp, true);
+        mPreference.setKey("pref_other_apps");
+        mController.handlePreferenceTreeClick(mPreference);
+
+        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
+        verify(mFragment.getActivity())
+                .startActivityAsUser(argumentCaptor.capture(), nullable(UserHandle.class));
+
+        Intent intent = argumentCaptor.getValue();
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
+        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(ManageApplications.class.getName());
+        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+                .isEqualTo(R.string.apps_storage);
+        assertThat(
+                        intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
+                                .getBoolean(EXTRA_WORK_ONLY))
+                .isTrue();
+    }
+
+    @Test
     public void handlePreferenceTreeClick_tappingAppsWhileUninitializedDoesntCrash() {
         mController.setVolume(null);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java
index 4f48945..91f4a2b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java
@@ -17,14 +17,17 @@
 package com.android.settings.fuelgauge;
 
 import android.app.AppOpsManager;
+import android.app.admin.DevicePolicyManager;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.os.Build;
+import android.os.UserManager;
 import android.support.v14.preference.SwitchPreference;
 
 import com.android.settings.R;
 import com.android.settings.TestConfig;
+import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -62,6 +65,12 @@
     private ApplicationInfo mHighApplicationInfo;
     @Mock
     private ApplicationInfo mLowApplicationInfo;
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private DevicePolicyManager mDevicePolicyManager;
+    @Mock
+    private DevicePolicyManagerWrapper mDevicePolicyManagerWrapper;
     private BackgroundActivityPreferenceController mController;
     private SwitchPreference mPreference;
     private Context mShadowContext;
@@ -73,6 +82,9 @@
         mShadowContext = RuntimeEnvironment.application;
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getSystemService(Context.APP_OPS_SERVICE)).thenReturn(mAppOpsManager);
+        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        when(mContext.getSystemService(Context.DEVICE_POLICY_SERVICE)).thenReturn(
+                mDevicePolicyManager);
         when(mPackageManager.getPackagesForUid(UID_NORMAL)).thenReturn(PACKAGES_NORMAL);
         when(mPackageManager.getPackagesForUid(UID_SPECIAL)).thenReturn(PACKAGES_SPECIAL);
 
@@ -86,6 +98,7 @@
         mPreference = new SwitchPreference(mShadowContext);
         mController = spy(new BackgroundActivityPreferenceController(mContext, UID_NORMAL));
         mController.isAvailable();
+        mController.mDpm = mDevicePolicyManagerWrapper;
     }
 
     @Test
@@ -181,6 +194,7 @@
     @Test
     public void testMultiplePackages_ReturnStatusForTargetPackage() {
         mController = new BackgroundActivityPreferenceController(mContext, UID_SPECIAL);
+        mController.mDpm = mDevicePolicyManagerWrapper;
         when(mAppOpsManager
                 .checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, UID_SPECIAL, LOW_SDK_PACKAGE))
                 .thenReturn(AppOpsManager.MODE_ALLOWED);
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index fc6071e..9c6ee45 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -16,7 +16,6 @@
 
 package com.android.settings.widget;
 
-
 import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Fragment;
@@ -30,6 +29,7 @@
 import android.support.v7.preference.Preference;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.ImageButton;
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -148,8 +148,9 @@
                 EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
-                .isEqualTo(View.VISIBLE);
+        final ImageButton button1 = appLinks.findViewById(android.R.id.button1);
+        assertThat(button1.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(button1.getDrawable()).isNotNull();
         assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
         try {
@@ -176,8 +177,9 @@
                 EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
-                .isEqualTo(View.GONE);
+        final ImageButton button1 = appLinks.findViewById(android.R.id.button1);
+        assertThat(button1.getVisibility()).isEqualTo(View.GONE);
+        assertThat(button1.getDrawable()).isNull();
         assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
     }