App ops: add UI for viewing and controlling ops per-app.
Change-Id: Iadd68cbd429af4d431dcd09b9adacd09c5092ae6
diff --git a/res/layout/app_ops_details.xml b/res/layout/app_ops_details.xml
new file mode 100644
index 0000000..d28689d
--- /dev/null
+++ b/res/layout/app_ops_details.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2013, 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.
+*/
+-->
+<ScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:clipToPadding="false"
+ android:scrollbarStyle="@*android:integer/preference_fragment_scrollbarStyle">
+
+ <LinearLayout
+ android:id="@+id/all_details"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingBottom="5dip"
+ android:orientation="vertical">
+
+ <!-- App snippet -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:orientation="vertical">
+
+ <!-- Application snippet label, version and icon -->
+ <include
+ layout="@layout/manage_applications_item"
+ android:id="@+id/app_snippet" />
+
+ </LinearLayout>
+
+ <!-- Operations list -->
+ <LinearLayout
+ android:id="@+id/operations_section"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ </LinearLayout>
+ </LinearLayout>
+</ScrollView>
diff --git a/res/layout/app_ops_details_item.xml b/res/layout/app_ops_details_item.xml
new file mode 100644
index 0000000..a0434fc
--- /dev/null
+++ b/res/layout/app_ops_details_item.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2008, 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.
+*/
+-->
+
+<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeight"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:paddingTop="8dip"
+ android:paddingBottom="8dip"
+ android:columnCount="3">
+
+ <ImageView
+ android:id="@+id/op_icon"
+ android:layout_width="@android:dimen/app_icon_size"
+ android:layout_height="@android:dimen/app_icon_size"
+ android:layout_column="0"
+ android:layout_row="0"
+ android:layout_rowSpan="2"
+ android:layout_marginEnd="8dip"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ <TextView
+ android:id="@+id/op_name"
+ android:layout_column="1"
+ android:layout_row="0"
+ android:layout_gravity="fill_horizontal"
+ android:layout_marginTop="2dip"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:textAlignment="viewStart" />
+
+ <TextView
+ android:id="@+id/op_time"
+ android:layout_column="1"
+ android:layout_row="1"
+ android:layout_gravity="fill_horizontal"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textAlignment="viewStart" />
+
+ <Switch android:id="@+id/switchWidget"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="8dip"
+ android:layout_column="2"
+ android:layout_row="0"
+ android:layout_rowSpan="2"
+ android:padding="8dip"
+ android:focusable="false"
+ android:clickable="true" />
+
+</GridLayout>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index a8a371f..797e634 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -572,6 +572,9 @@
<item>Write contacts</item>
<item>Read calls</item>
<item>Write calls</item>
+ <item>Read calendar</item>
+ <item>Write calendar</item>
+ <item>Wi-Fi scan</item>
</string-array>
<!-- Titles for the list of long press timeout options. -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 419cb11..01a5215 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2705,7 +2705,9 @@
<string name="app_ops_settings">App ops</string>
<!-- [CHAR LIMIT=NONE] Time label for an operation that is currently running. -->
<string name="app_ops_running">Running</string>
-
+ <!-- [CHAR LIMIT=NONE] Time label for an operation that has never executed. -->
+ <string name="app_ops_never_used">(Never used)</string>
+
<!-- [CHAR LIMIT=25] Services settings screen, setting option name for the user to go to the screen to view app storage use -->
<string name="storageuse_settings_title">Storage use</string>
<!-- Services settings screen, setting option summary for the user to go to the screen to app storage use -->