Merge "Adjusted margins of Ongoing App Ops Dialog"
diff --git a/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml b/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
index 2f7d486..bc15f2c4 100644
--- a/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
+++ b/packages/SystemUI/res/layout/ongoing_privacy_dialog_content.xml
@@ -26,9 +26,7 @@
         android:id="@+id/dialog_container"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:orientation="vertical"
-        android:padding="@dimen/ongoing_appops_dialog_content_padding">
-
+        android:orientation="vertical" >
         <TextView
             android:id="@+id/title"
             android:layout_width="match_parent"
@@ -37,21 +35,29 @@
             android:textDirection="locale"
             android:textAppearance="@style/TextAppearance.AppOpsDialog.Title"
             android:textColor="@*android:color/text_color_primary"
-            android:paddingStart="@dimen/ongoing_appops_dialog_title_padding"
-            android:paddingEnd="@dimen/ongoing_appops_dialog_title_padding"
-            android:paddingBottom="@dimen/ongoing_appops_dialog_sep"
+            android:layout_marginStart="@dimen/ongoing_appops_dialog_title_margin_sides"
+            android:layout_marginEnd="@dimen/ongoing_appops_dialog_title_margin_sides"
+            android:layout_marginBottom="@dimen/ongoing_appops_dialog_title_margin_top_bottom"
+            android:layout_marginTop="@dimen/ongoing_appops_dialog_title_margin_top_bottom"
         />
 
         <LinearLayout
-            android:id="@+id/items_container"
+            android:orientation="vertical"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:orientation="vertical"
-            android:gravity="start"
-        />
+            android:layout_marginBottom="@dimen/ongoing_appops_dialog_items_bottom_margin" >
 
-        <include android:id="@+id/overflow" layout="@layout/ongoing_privacy_dialog_item"
-                 android:visibility="gone" />
+            <LinearLayout
+                android:id="@+id/items_container"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:gravity="start"
+            />
+
+            <include android:id="@+id/overflow" layout="@layout/ongoing_privacy_dialog_item"
+                     android:visibility="gone" />
+        </LinearLayout>
 
     </LinearLayout>
 
diff --git a/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml b/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
index f05f7ba..ecfbfb4 100644
--- a/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
+++ b/packages/SystemUI/res/layout/ongoing_privacy_dialog_item.xml
@@ -17,37 +17,39 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="@dimen/ongoing_appops_dialog_line_height"
+    android:layout_marginStart="@dimen/ongoing_appops_dialog_text_padding"
+    android:layout_marginEnd="@dimen/ongoing_appops_dialog_text_padding"
     android:fillViewport="true"
     android:orientation="horizontal"
-    android:layout_marginTop="@dimen/ongoing_appops_dialog_text_margin"
-    android:focusable="true" >
+    android:focusable="true"
+    android:layout_gravity="center_vertical">
 
     <ImageView
         android:id="@+id/app_icon"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
-        android:layout_width="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="@dimen/ongoing_appops_dialog_app_icon_size"
+        android:layout_width="@dimen/ongoing_appops_dialog_app_icon_size"
+        android:layout_gravity="start|center_vertical"
     />
 
     <TextView
         android:id="@+id/app_name"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="match_parent"
         android:layout_width="0dp"
         android:layout_weight="1"
-        android:gravity="bottom|start"
+        android:gravity="start|center_vertical"
         android:textDirection="locale"
         android:textAppearance="@style/TextAppearance.AppOpsDialog.Item"
         android:textColor="@*android:color/text_color_primary"
-        android:paddingStart="@dimen/ongoing_appops_dialog_text_padding"
-        android:paddingEnd="@dimen/ongoing_appops_dialog_text_padding"
-
+        android:layout_marginStart="@dimen/ongoing_appops_dialog_text_padding"
     />
 
     <LinearLayout
         android:id="@+id/icons"
-        android:layout_height="@dimen/ongoing_appops_dialog_icon_height"
+        android:layout_height="match_parent"
         android:layout_width="wrap_content"
         android:gravity="end"
+        android:layout_gravity="end|center_vertical"
         android:visibility="gone"
     />
 </LinearLayout>
\ No newline at end of file
diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index d8648fa..9e97cd8 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -464,4 +464,6 @@
     <string-array name="config_pluginWhitelist" translatable="false">
         <item>com.android.systemui</item>
     </string-array>
+
+    <integer name="ongoing_appops_dialog_max_apps">5</integer>
 </resources>
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 0997c5b1..b0a519c 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -945,14 +945,20 @@
     <dimen name="ongoing_appops_dialog_sep">16dp</dimen>
     <!--Padding around text items in Ongoing App Ops dialog -->
     <dimen name="ongoing_appops_dialog_text_padding">16dp</dimen>
-    <!-- Height of icons in Ongoing App Ops dialog. Both App Op icon and application icon -->
-    <dimen name="ongoing_appops_dialog_icon_height">28dp</dimen>
-    <!-- Margin between text lines in Ongoing App Ops dialog -->
-    <dimen name="ongoing_appops_dialog_text_margin">15dp</dimen>
-    <!-- Side padding of title in Ongoing App Ops dialog -->
-    <dimen name="ongoing_appops_dialog_title_padding">10dp</dimen>
-    <!-- Padding around Ongoing App Ops dialog content -->
-    <dimen name="ongoing_appops_dialog_content_padding">24dp</dimen>
+    <!-- Height and width of App Opp icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_icon_size">24dp</dimen>
+    <!-- Left margin of App Opp icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_icon_margin">8dp</dimen>
+    <!-- Height and width of Application icons in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_app_icon_size">32dp</dimen>
+    <!-- Height of line in Ongoing App Ops dialog-->
+    <dimen name="ongoing_appops_dialog_line_height">48dp</dimen>
+    <!-- Side margin of title in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_title_margin_sides">24dp</dimen>
+    <!-- Bottom margin of items in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_items_bottom_margin">24dp</dimen>
+    <!-- Top and bottom margin of title in Ongoing App Ops dialog -->
+    <dimen name="ongoing_appops_dialog_title_margin_top_bottom">18dp</dimen>
     <!-- Side margins around the Ongoing App Ops chip-->
     <dimen name="ongoing_appops_chip_margin">12dp</dimen>
     <!-- Top and bottom margins around the Ongoing App Ops chip -->
@@ -968,9 +974,9 @@
     <!-- Radius of Ongoing App Ops chip corners -->
     <dimen name="ongoing_appops_chip_bg_corner_radius">12dp</dimen>
     <!-- Text size for Ongoing App Ops dialog title -->
-    <dimen name="ongoing_appops_dialog_title_size">24sp</dimen>
+    <dimen name="ongoing_appops_dialog_title_size">20sp</dimen>
     <!-- Text size for Ongoing App Ops dialog items -->
-    <dimen name="ongoing_appops_dialog_item_size">20sp</dimen>
+    <dimen name="ongoing_appops_dialog_item_size">16sp</dimen>
 
     <!-- How much a bubble is elevated -->
     <dimen name="bubble_elevation">8dp</dimen>
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index f68656b..c5654f0 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -2301,6 +2301,6 @@
     <!-- Text for indicating extra apps using app ops [CHAR LIMIT=NONE] -->
     <plurals name="ongoing_privacy_dialog_overflow_text">
         <item quantity="one"><xliff:g id="num_apps" example="1">%d</xliff:g> other app</item>
-        <item quantity="other"><xliff:g id="num_apps" example="3">%d</xliff:g> other app</item>
+        <item quantity="other"><xliff:g id="num_apps" example="3">%d</xliff:g> other apps</item>
     </plurals>
 </resources>
diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml
index e9aa1b6..fede934 100644
--- a/packages/SystemUI/res/values/styles.xml
+++ b/packages/SystemUI/res/values/styles.xml
@@ -262,7 +262,7 @@
 
     <style name="TextAppearance.AppOpsDialog.Item">
         <item name="android:textSize">@dimen/ongoing_appops_dialog_item_size</item>
-        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
+        <item name="android:fontFamily">sans-serif</item>
     </style>
 
     <style name="BaseBrightnessDialogContainer" parent="@style/Theme.SystemUI">
diff --git a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
index f6a95af..bbdae29 100644
--- a/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
+++ b/packages/SystemUI/src/com/android/systemui/privacy/OngoingPrivacyDialog.kt
@@ -20,6 +20,7 @@
 import android.content.DialogInterface
 import android.content.Intent
 import android.content.res.ColorStateList
+import android.view.Gravity
 import android.view.LayoutInflater
 import android.view.View
 import android.widget.ImageView
@@ -34,13 +35,13 @@
     val dialogBuilder: PrivacyDialogBuilder
 ) {
 
-    val iconSize = context.resources.getDimensionPixelSize(
-            R.dimen.ongoing_appops_dialog_icon_height)
-    val iconColor = context.resources.getColor(
+    private val iconSize = context.resources.getDimensionPixelSize(
+            R.dimen.ongoing_appops_dialog_icon_size)
+    private val iconColor = context.resources.getColor(
             com.android.internal.R.color.text_color_primary, context.theme)
-    companion object {
-        private const val MAX_ITEMS = 10
-    }
+    private val iconMargin = context.resources.getDimensionPixelSize(
+            R.dimen.ongoing_appops_dialog_icon_margin)
+    private val MAX_ITEMS = context.resources.getInteger(R.integer.ongoing_appops_dialog_max_apps)
 
     fun createDialog(): Dialog {
         val builder = AlertDialog.Builder(context).apply {
@@ -105,6 +106,11 @@
         val appName = item.findViewById(R.id.app_name) as TextView
         val icons = item.findViewById(R.id.icons) as LinearLayout
 
+        var lp = LinearLayout.LayoutParams(iconSize, iconSize).apply {
+            gravity = Gravity.CENTER_VERTICAL
+            marginStart = iconMargin
+        }
+
         app.icon?.let {
             appIcon.setImageDrawable(it)
         }
@@ -117,7 +123,7 @@
                     imageTintList = ColorStateList.valueOf(iconColor)
                     setImageDrawable(it)
                 }
-                icons.addView(image, iconSize, LinearLayout.LayoutParams.WRAP_CONTENT)
+                icons.addView(image, lp)
             }
             icons.visibility = View.VISIBLE
         } else {