summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-05-18 17:35:26 -0700
committerJorim Jaggi <jjaggi@google.com>2015-05-18 21:39:05 -0700
commit9d91083034654b37461c891308a1d426054170a8 (patch)
tree4ff94f232c2820c929db20fff10718dda103b89f
parentae1eac53a77a8f1cd6f1df0f8628cc64439e6a22 (diff)
downloadframeworks_base-9d91083034654b37461c891308a1d426054170a8.zip
frameworks_base-9d91083034654b37461c891308a1d426054170a8.tar.gz
frameworks_base-9d91083034654b37461c891308a1d426054170a8.tar.bz2
Add setting to disable assist data (1/2)
Bug: 20944446 Change-Id: I8050df3177b6d540829c3f0989a4e4b1381c87ec
-rw-r--r--core/java/android/provider/Settings.java8
-rw-r--r--core/java/com/android/internal/logging/MetricsConstants.java1
-rw-r--r--services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java9
3 files changed, 17 insertions, 1 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ef0dc3e..37645b5 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -5417,6 +5417,14 @@ public final class Settings {
public static final String EMERGENCY_ASSISTANCE_APPLICATION = "emergency_assistance_application";
/**
+ * Specifies whether the current app context on scren (assist data) will be sent to the
+ * assist application (active voice interaction service).
+ *
+ * @hide
+ */
+ public static final String ASSIST_STRUCTURE_ENABLED = "assist_structure_enabled";
+
+ /**
* Names of the packages that the current user has explicitly allowed to
* see all of the user's notifications, separated by ':'.
*
diff --git a/core/java/com/android/internal/logging/MetricsConstants.java b/core/java/com/android/internal/logging/MetricsConstants.java
index 65dc743..b9a75d3 100644
--- a/core/java/com/android/internal/logging/MetricsConstants.java
+++ b/core/java/com/android/internal/logging/MetricsConstants.java
@@ -208,6 +208,7 @@ public interface MetricsConstants {
public static final int APPLICATIONS_USAGE_ACCESS_DETAIL = 183;
public static final int APPLICATIONS_HIGH_POWER_APPS = 184;
public static final int FUELGAUGE_HIGH_POWER_DETAILS = 185;
+ public static final int APPLICATIONS_MANAGE_ASSIST = 186;
//aliases
public static final int DEVICEINFO_STORAGE = DEVICEINFO_MEMORY;
diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
index 42eb6c3..58a8272 100644
--- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
+++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionSessionConnection.java
@@ -35,6 +35,7 @@ import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
+import android.provider.Settings;
import android.service.voice.IVoiceInteractionSession;
import android.service.voice.IVoiceInteractionSessionService;
import android.service.voice.VoiceInteractionService;
@@ -190,7 +191,8 @@ final class VoiceInteractionSessionConnection implements ServiceConnection {
mHaveAssistData = false;
if ((flags&VoiceInteractionService.START_WITH_ASSIST) != 0) {
if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ASSIST_STRUCTURE, mCallingUid,
- mSessionComponentName.getPackageName()) == AppOpsManager.MODE_ALLOWED) {
+ mSessionComponentName.getPackageName()) == AppOpsManager.MODE_ALLOWED
+ && isStructureEnabled()) {
try {
mAm.requestAssistContextExtras(ActivityManager.ASSIST_CONTEXT_FULL,
mAssistReceiver);
@@ -455,6 +457,11 @@ final class VoiceInteractionSessionConnection implements ServiceConnection {
}
}
+ private boolean isStructureEnabled() {
+ return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.ASSIST_STRUCTURE_ENABLED, 1, mUser) != 0;
+ }
+
public void dump(String prefix, PrintWriter pw) {
pw.print(prefix); pw.print("mToken="); pw.println(mToken);
pw.print(prefix); pw.print("mShown="); pw.println(mShown);