am a4dfe05b: am 543d68cc: am 194e92d3: am 50972605: Merge "Disable ignore battery optimization items that can\'t change" into mnc-dev

* commit 'a4dfe05b29118055f9e8d4437655e2354cfb1dd7':
  Disable ignore battery optimization items that can't change
diff --git a/res/layout/app_item.xml b/res/layout/app_item.xml
index 29dd461..ea0008e 100644
--- a/res/layout/app_item.xml
+++ b/res/layout/app_item.xml
@@ -21,7 +21,8 @@
     android:paddingTop="16dp"
     android:paddingBottom="16dp"
     android:gravity="top"
-    android:columnCount="3">
+    android:columnCount="3"
+    android:duplicateParentState="true">
 
     <ImageView
         android:id="@android:id/icon"
@@ -30,7 +31,8 @@
         android:layout_gravity="center"
         android:scaleType="fitXY"
         android:layout_marginEnd="16dip"
-        android:contentDescription="@null" />
+        android:contentDescription="@null"
+        android:duplicateParentState="true" />
 
     <TextView
         android:id="@android:id/title"
@@ -41,7 +43,8 @@
         android:ellipsize="marquee"
         android:textAppearance="@android:style/TextAppearance.Material.Subhead"
         android:textColor="?android:attr/textColorPrimary"
-        android:textAlignment="viewStart" />
+        android:textAlignment="viewStart"
+        android:duplicateParentState="true" />
 
     <TextView
         android:id="@android:id/summary"
@@ -54,7 +57,8 @@
         android:singleLine="true"
         android:ellipsize="marquee"
         android:textAppearance="@android:style/TextAppearance.Material.Subhead"
-        android:textColor="?android:attr/textColorSecondary" />
+        android:textColor="?android:attr/textColorSecondary"
+        android:duplicateParentState="true" />
 
     <FrameLayout
         android:id="@android:id/widget_frame"
@@ -63,6 +67,7 @@
         android:layout_toEndOf="@android:id/icon"
         android:layout_below="@android:id/title"
         android:layout_alignParentEnd="true"
-        android:layout_gravity="fill_horizontal|top" />
+        android:layout_gravity="fill_horizontal|top"
+        android:duplicateParentState="true" />
 
 </RelativeLayout>
diff --git a/res/layout/widget_text_views.xml b/res/layout/widget_text_views.xml
index ea49fa5..d95599d 100644
--- a/res/layout/widget_text_views.xml
+++ b/res/layout/widget_text_views.xml
@@ -17,7 +17,8 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:orientation="horizontal">
+    android:orientation="horizontal"
+    android:duplicateParentState="true">
 
     <TextView
         android:id="@+id/widget_text1"
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index 7b49dd3..e4b404f 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -66,6 +66,7 @@
 import com.android.settings.applications.AppStateAppOpsBridge.PermissionState;
 import com.android.settings.applications.AppStateUsageBridge.UsageState;
 import com.android.settings.fuelgauge.HighPowerDetail;
+import com.android.settings.fuelgauge.PowerWhitelistBackend;
 import com.android.settings.notification.AppNotificationSettings;
 import com.android.settings.notification.NotificationBackend;
 import com.android.settings.notification.NotificationBackend.AppRow;
@@ -1011,6 +1012,15 @@
             return false;
         }
 
+        @Override
+        public boolean isEnabled(int position) {
+            if (mManageApplications.mListType != LIST_TYPE_HIGH_POWER) {
+                return true;
+            }
+            ApplicationsState.AppEntry entry = mEntries.get(position);
+            return !PowerWhitelistBackend.getInstance().isSysWhitelisted(entry.info.packageName);
+        }
+
         public View getView(int position, View convertView, ViewGroup parent) {
             // A ViewHolder keeps references to children views to avoid unnecessary calls
             // to findViewById() on each row.
@@ -1042,6 +1052,7 @@
             }
             mActive.remove(convertView);
             mActive.add(convertView);
+            convertView.setEnabled(isEnabled(position));
             return convertView;
         }