Settings - add support for Launch by Default
- implement UX spec
Change-Id: I7ee8962f83983273d809e0ef6fc81b0eb2df15dd
diff --git a/res/layout/app_domains_dialog.xml b/res/layout/app_domains_dialog.xml
new file mode 100644
index 0000000..c00bff0
--- /dev/null
+++ b/res/layout/app_domains_dialog.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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
+
+ 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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingStart="24dp"
+ android:paddingTop="16dp"
+ android:paddingEnd="24dp">
+
+ <ListView
+ android:id="@android:id/list"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:scrollbarStyle="insideOverlay" />
+
+</FrameLayout>
diff --git a/res/layout/app_domains_item.xml b/res/layout/app_domains_item.xml
new file mode 100644
index 0000000..90fc0e4
--- /dev/null
+++ b/res/layout/app_domains_item.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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
+
+ 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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/domain_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingStart="4dp"
+ android:paddingEnd="4dp"
+ android:paddingTop="16dp"
+ />
diff --git a/res/layout/app_preferred_settings.xml b/res/layout/app_preferred_settings.xml
index 533887d..2e54068 100644
--- a/res/layout/app_preferred_settings.xml
+++ b/res/layout/app_preferred_settings.xml
@@ -23,7 +23,6 @@
android:scrollbarStyle="@integer/preference_scrollbar_style">
<LinearLayout
- android:id="@+id/all_details"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
@@ -31,52 +30,19 @@
android:paddingBottom="5dip"
android:orientation="vertical">
- <!-- Prefered activities section -->
- <TextView android:id="@+id/auto_launch_title"
- style="?android:attr/listSeparatorTextViewStyle"
- android:layout_marginTop="8dip"
- android:text="@string/auto_launch_label" />
-
- <RelativeLayout
+ <TextView android:id="@+id/auto_launch"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:layout_alignParentStart="true"
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:paddingTop="6dip" />
- <TextView android:id="@+id/auto_launch"
- android:textAppearance="?android:attr/textAppearanceSmall"
- android:layout_alignParentStart="true"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="6dip" />
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/auto_launch"
- android:paddingTop="4dip"
- android:orientation="horizontal">
-
- <View
- android:layout_width="120dip"
- android:layout_height="0dip"
- android:layout_weight="0.4" />
- <View
- android:layout_width="0dip"
- android:layout_height="0dip"
- android:visibility="invisible"
- android:layout_weight="0.2" />
- <Button
- android:id="@+id/clear_activities_button"
- android:layout_width="120dip"
- android:layout_height="wrap_content"
- android:layout_weight="0.4"
- android:text="@string/clear_activities" />
-
- </LinearLayout>
-
- </RelativeLayout>
+ <Button
+ android:id="@+id/clear_activities_button"
+ android:layout_marginStart="-4dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/clear_activities" />
</LinearLayout>
diff --git a/res/layout/default_apps_view.xml b/res/layout/default_apps_view.xml
new file mode 100644
index 0000000..3c8cc29
--- /dev/null
+++ b/res/layout/default_apps_view.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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
+
+ 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="0px"
+ android:layout_weight="1">
+
+ <ListView android:id="@android:id/list"
+ style="@style/PreferenceFragmentListSinglePane"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:drawSelectorOnTop="false"
+ android:scrollbarStyle="outsideOverlay"
+ android:fastScrollEnabled="true" />
+
+ <TextView android:id="@android:id/empty"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:text="@string/no_default_apps"
+ android:textAppearance="?android:attr/textAppearanceLarge" />
+
+ </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/default_apps_view_item.xml b/res/layout/default_apps_view_item.xml
new file mode 100644
index 0000000..2ded826
--- /dev/null
+++ b/res/layout/default_apps_view_item.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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
+
+ 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="4">
+
+ <ImageView
+ android:id="@+id/app_icon"
+ android:layout_width="@android:dimen/app_icon_size"
+ android:layout_height="@android:dimen/app_icon_size"
+ android:layout_rowSpan="2"
+ android:layout_marginEnd="8dip"
+ android:scaleType="centerInside"
+ android:contentDescription="@null" />
+
+ <TextView
+ android:id="@+id/app_name"
+ android:layout_width="0dip"
+ android:layout_columnSpan="2"
+ android:layout_gravity="fill_horizontal"
+ android:layout_marginTop="2dip"
+ android:singleLine="true"
+ android:ellipsize="marquee"
+ android:textAppearance="@android:style/TextAppearance.Material.Subhead"
+ android:textAlignment="viewStart"/>
+
+ <TextView
+ android:id="@+id/app_domains"
+ android:layout_column="1"
+ android:layout_row="1"
+ android:layout_gravity="fill_horizontal|top"
+ android:textAppearance="@android:style/TextAppearance.Material.Body1"
+ android:textColor="?android:attr/textColorSecondary"
+ android:textAlignment="viewStart" />
+
+</GridLayout>
diff --git a/res/layout/manage_applications_item.xml b/res/layout/manage_applications_item.xml
index 5471aa9..042d518 100755
--- a/res/layout/manage_applications_item.xml
+++ b/res/layout/manage_applications_item.xml
@@ -34,7 +34,8 @@
android:layout_rowSpan="2"
android:layout_marginEnd="8dip"
android:scaleType="centerInside"
- android:contentDescription="@null" />
+ android:contentDescription="@null"
+ android:duplicateParentState="true" />
<TextView
android:id="@+id/app_name"
@@ -45,7 +46,8 @@
android:singleLine="true"
android:ellipsize="marquee"
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
- android:textAlignment="viewStart"/>
+ android:textAlignment="viewStart"
+ android:duplicateParentState="true" />
<CheckBox android:id="@+id/app_on_sdcard"
android:layout_marginStart="8dip"
@@ -53,7 +55,8 @@
android:layout_rowSpan="2"
android:visibility="gone"
android:clickable="false"
- android:focusable="false" />
+ android:focusable="false"
+ android:duplicateParentState="true" />
<TextView
android:id="@+id/app_size"
@@ -62,7 +65,8 @@
android:layout_gravity="fill_horizontal|top"
android:textAppearance="@android:style/TextAppearance.Material.Body1"
android:textColor="?android:attr/textColorSecondary"
- android:textAlignment="viewStart" />
+ android:textAlignment="viewStart"
+ android:duplicateParentState="true" />
<TextView
android:id="@+id/app_disabled"
@@ -73,6 +77,7 @@
android:textColor="?android:attr/textColorSecondary"
android:textAlignment="viewEnd"
android:singleLine="true"
- android:ellipsize="marquee" />
+ android:ellipsize="marquee"
+ android:duplicateParentState="true" />
</GridLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3eaf38d..630d2a4 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3052,6 +3052,9 @@
<!-- [CHAR LIMIT=NONE] Time label for an operation that has never executed. -->
<string name="app_ops_never_used">(Never used)</string>
+ <!-- [CHAR LIMIT=25] Text shown when there are no default Apps -->
+ <string name="no_default_apps">No default Apps.</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 -->
@@ -6068,6 +6071,20 @@
<!-- Summary for app storage preference [CHAR LIMIT=15] -->
<string name="storage_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used in <xliff:g id="storage_type" example="internal storage">%2$s</xliff:g></string>
+ <!-- Category name for App Launch -->
+ <string name="app_launch_domain_links_title">Domain links</string>
+ <string name="app_launch_open_domain_urls_title">Open Domain URLs</string>
+ <string name="app_launch_open_domain_urls_summary">Allow app to directly open Domain URLs</string>
+ <string name="app_launch_supported_domain_urls_title">Supported domains URLs</string>
+ <string name="app_launch_other_defaults_title">Other defaults</string>
+
+ <!-- Summary for app storage preference -->
+ <string name="storage_summary_format"><xliff:g id="size" example="30.00MB">%1$s</xliff:g> used in <xliff:g id="storage_type" example="internal memory">%2$s</xliff:g></string>
+ <!-- Internal storage label -->
+ <string name="storage_type_internal">internal memory</string>
+ <!-- External storage label -->
+ <string name="storage_type_external">external memory</string>
+
<!-- Summary describing internal storage for applications [CHAR LIMIT=25] -->
<string name="storage_type_internal">Internal storage</string>
<!-- Summary describing external storage for applications [CHAR LIMIT=25] -->
@@ -6117,12 +6134,13 @@
<string name="filter_notif_priority_apps">Priority</string>
<!-- Label for showing apps with sensitive notifications in list [CHAR LIMIT=30] -->
<string name="filter_notif_sensitive_apps">Sensitive</string>
+ <!-- Label for showing apps with domain URLs (data URI with http or https) in list [CHAR LIMIT=30] -->
+ <string name="filter_with_domain_urls_apps">With domain URLs</string>
<!-- Description for advanced menu option to reset app preferences [CHAR LIMIT=NONE] -->
<string name="reset_app_preferences_description">Reset preferences across all apps to defaults</string>
- <!-- Description of settings item that leads to list of all apps
- [CHAR LIMIT=NONE] -->
+ <!-- Description of settings item that leads to list of all apps [CHAR LIMIT=NONE] -->
<string name="all_apps_summary"><xliff:g id="count" example="10">%d</xliff:g> apps installed, including system and downloaded apps</string>
<!-- Title for advanced application management settings [CHAR LIMIT=30] -->
@@ -6142,4 +6160,23 @@
LIMIT=45] -->
<string name="app_permissions_group_summary"><xliff:g id="count" example="10">%d</xliff:g> of <xliff:g id="count" example="10">%d</xliff:g> apps allowed</string>
+ <!-- Label for the Domain URLs list that shows domain urls per App [CHAR LIMIT=30] -->
+ <string name="domain_urls_title">Domain URLs</string>
+
+ <!-- Summary for an App that dont open any domain URLs [CHAR LIMIT=45] -->
+ <string name="domain_urls_summary_none">Don\'t open any domain URL</string>
+
+ <!-- Summary of number of App that can open one and only one domain URLs [CHAR LIMIT=45] -->
+ <string name="domain_urls_summary_one">Open \'<xliff:g id="domain" example="mail.google.com">%s</xliff:g>\'</string>
+
+ <!-- Summary of number of App that can open several domain URLs [CHAR LIMIT=45] -->
+ <string name="domain_urls_summary_some">Open \'<xliff:g id="domain" example="mail.google.com">%s</xliff:g>\' and related URLs</string>
+
+ <!-- Description of settings item that leads to list of all apps with Domain URLs [CHAR LIMIT=NONE] -->
+ <plurals name="domain_urls_apps_summary">
+ <item quantity="zero">No app can open any domain URL</item>
+ <item quantity="one">One app can open its domain URLs</item>
+ <item quantity="other"><xliff:g id="count" example="10">%d</xliff:g> apps can open their domain URLs</item>
+ </plurals>
+
</resources>
diff --git a/res/xml/advanced_apps.xml b/res/xml/advanced_apps.xml
index 2bbd5be..682ab2d 100644
--- a/res/xml/advanced_apps.xml
+++ b/res/xml/advanced_apps.xml
@@ -26,6 +26,15 @@
settings:keywords="@string/keywords_app_permissions" />
<PreferenceScreen
+ android:key="domain_urls"
+ android:title="@string/domain_urls_title"
+ android:fragment="com.android.settings.applications.ManageApplications">
+ <extra
+ android:name="classname"
+ android:value="com.android.settings.Settings$DomainsURLsAppListActivity" />
+ </PreferenceScreen>
+
+ <PreferenceScreen
android:key="all_apps"
android:fragment="com.android.settings.applications.ManageApplications"
android:title="@string/filter_all_apps"
diff --git a/res/xml/installed_app_launch_settings.xml b/res/xml/installed_app_launch_settings.xml
new file mode 100644
index 0000000..7d6642c
--- /dev/null
+++ b/res/xml/installed_app_launch_settings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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
+
+ 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.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ android:title="@string/application_info_label">
+
+ <PreferenceCategory android:key="app_launch_domain_links"
+ android:title="@string/app_launch_domain_links_title">
+
+ <SwitchPreference
+ android:key="app_launch_open_domain_urls"
+ android:title="@string/app_launch_open_domain_urls_title"
+ android:summary="@string/app_launch_open_domain_urls_summary"
+ />
+
+
+ <com.android.settings.applications.AppDomainsPreference
+ android:key="app_launch_supported_domain_urls"
+ android:title="@string/app_launch_supported_domain_urls_title"
+ android:persistent="false"
+ android:dependency="app_launch_open_domain_urls"
+ />
+
+ </PreferenceCategory>
+
+ <PreferenceCategory android:key="app_launch_other_defaults"
+ android:title="@string/app_launch_other_defaults_title">
+
+ <com.android.settings.applications.ClearDefaultsPreference
+ android:key="app_launch_clear_defaults"
+ android:persistent="false"
+ />
+
+ </PreferenceCategory>
+
+</PreferenceScreen>