Add setting to disable assist data (2/2).
Bug: 20944446
Change-Id: I3c518176cab88ce9b5031a0241bee30240e6f896
diff --git a/res/layout/manage_assist_footer.xml b/res/layout/manage_assist_footer.xml
new file mode 100644
index 0000000..8e10d62
--- /dev/null
+++ b/res/layout/manage_assist_footer.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
+ -->
+<TextView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@android:style/TextAppearance.Material.Body1"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:textColor="?android:attr/textColorSecondary"
+ android:paddingTop="16dp"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
+ android:paddingBottom="16dp"
+ android:selectable="false"
+ android:clickable="false"
+ android:text="@string/assist_footer">
+</TextView>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3bea360..e6c9bce 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -6508,6 +6508,12 @@
<!-- Title for Default Apps settings [CHAR LIMIT=30] -->
<string name="default_apps_title">Default Apps</string>
+ <!-- Title for Default Assist settings [CHAR LIMIT=30] -->
+ <string name="default_assist_title">Assist</string>
+
+ <!-- Summary for No Default Assist settings [CHAR LIMIT=45] -->
+ <string name="default_assist_none">No default Assist</string>
+
<!-- Title for Default Browser settings [CHAR LIMIT=30] -->
<string name="default_browser_title">Browser app</string>
@@ -6635,4 +6641,12 @@
<!-- Settings item summary for active app [CHAR LIMIT=100] -->
<string name="inactive_app_active_summary">Active. Touch to toggle.</string>
+ <!-- Title for the "context" preference to determine whether assist can access the data currently displayed on-screen [CHAR LIMIT=40] -->
+ <string name="assist_access_context_title">Use current context</string>
+
+ <!-- Summary for the "context" preference to determine whether assist can access the data currently displayed on-screen [CHAR LIMIT=NONE] -->
+ <string name="assist_access_context_summary">When you open the assist app, let it see what you\'ve been doing on your screen</string>
+
+ <!-- Footer text in the manage assist screen. [CHAR LIMIT=NONE] -->
+ <string name="assist_footer">Assist apps help you identify and act on useful information without having to ask. Some apps support both launcher and voice input services to give you integrated assistance.</string>
</resources>
diff --git a/res/xml/default_apps.xml b/res/xml/default_apps.xml
index 7fc32fd..ab65ac8 100644
--- a/res/xml/default_apps.xml
+++ b/res/xml/default_apps.xml
@@ -19,6 +19,12 @@
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:key="default_apps">
+ <Preference
+ android:key="default_assist"
+ android:fragment="com.android.settings.applications.ManageAssist"
+ android:title="@string/default_assist_title"
+ />
+
<com.android.settings.applications.DefaultBrowserPreference
android:key="default_browser"
android:title="@string/default_browser_title"
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
new file mode 100644
index 0000000..00e86ad
--- /dev/null
+++ b/res/xml/manage_assist.xml
@@ -0,0 +1,27 @@
+<?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:key="manage_assist">
+
+ <SwitchPreference
+ android:key="context"
+ android:title="@string/assist_access_context_title"
+ android:summary="@string/assist_access_context_summary"
+ android:persistent="false" />
+</PreferenceScreen>
diff --git a/src/com/android/settings/applications/ManageAssist.java b/src/com/android/settings/applications/ManageAssist.java
new file mode 100644
index 0000000..e222e1c
--- /dev/null
+++ b/src/com/android/settings/applications/ManageAssist.java
@@ -0,0 +1,76 @@
+/*
+ * 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
+ */
+
+package com.android.settings.applications;
+
+import android.annotation.Nullable;
+import android.os.Bundle;
+import android.preference.Preference;
+import android.preference.SwitchPreference;
+import android.provider.Settings;
+import android.text.method.LinkMovementMethod;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.settings.InstrumentedFragment;
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+
+/**
+ * Settings screen to manage everything about assist.
+ */
+public class ManageAssist extends SettingsPreferenceFragment
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_CONTEXT = "context";
+
+ private SwitchPreference mContextPref;
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ addPreferencesFromResource(R.xml.manage_assist);
+ mContextPref = (SwitchPreference) findPreference(KEY_CONTEXT);
+ mContextPref.setChecked(Settings.Secure.getInt(getContentResolver(),
+ Settings.Secure.ASSIST_STRUCTURE_ENABLED, 1) != 0);
+ mContextPref.setOnPreferenceChangeListener(this);
+ }
+
+ @Override
+ public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ TextView v = (TextView) LayoutInflater.from(view.getContext()).inflate(
+ R.layout.manage_assist_footer, null);
+ getListView().addFooterView(v);
+ }
+
+ @Override
+ protected int getMetricsCategory() {
+ return MetricsLogger.APPLICATIONS_MANAGE_ASSIST;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (preference == mContextPref) {
+ Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSIST_STRUCTURE_ENABLED,
+ (boolean) newValue ? 1 : 0);
+ return true;
+ }
+ return false;
+ }
+}