summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2015-07-09 19:19:04 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-07-09 19:19:05 +0000
commit3cc5c24b83edaab66c97b161e25ff0bd93b3e1b4 (patch)
tree7edbfdf412fcef2960ad113a7cd5a4264293842b /packages/SystemUI/src
parent279678e1ffc72090a56a1ccd7f782d3c7c0b228f (diff)
parent165ce066b701ba0153000f0692bfc7032655d17d (diff)
downloadframeworks_base-3cc5c24b83edaab66c97b161e25ff0bd93b3e1b4.zip
frameworks_base-3cc5c24b83edaab66c97b161e25ff0bd93b3e1b4.tar.gz
frameworks_base-3cc5c24b83edaab66c97b161e25ff0bd93b3e1b4.tar.bz2
Merge "Fix assist for hardware long-press" into mnc-dev
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r--packages/SystemUI/src/com/android/systemui/assist/AssistManager.java34
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java10
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java13
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java3
5 files changed, 43 insertions, 30 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
index 51d0bf1..0daa5c9 100644
--- a/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
+++ b/packages/SystemUI/src/com/android/systemui/assist/AssistManager.java
@@ -30,6 +30,7 @@ import android.widget.ImageView;
import com.android.internal.app.AssistUtils;
import com.android.internal.app.IVoiceInteractionSessionShowCallback;
import com.android.systemui.R;
+import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
@@ -45,11 +46,6 @@ public class AssistManager {
private static final String ASSIST_ICON_METADATA_NAME =
"com.android.systemui.action_assist_icon";
- private static final AudioAttributes VIBRATION_ATTRIBUTES = new AudioAttributes.Builder()
- .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
- .setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
- .build();
-
private static final long TIMEOUT_SERVICE = 2500;
private static final long TIMEOUT_ACTIVITY = 1000;
@@ -58,7 +54,7 @@ public class AssistManager {
private final AssistDisclosure mAssistDisclosure;
private AssistOrbContainer mView;
- private final PhoneStatusBar mBar;
+ private final BaseStatusBar mBar;
private final AssistUtils mAssistUtils;
private ComponentName mAssistComponent;
@@ -92,7 +88,7 @@ public class AssistManager {
}
};
- public AssistManager(PhoneStatusBar bar, Context context) {
+ public AssistManager(BaseStatusBar bar, Context context) {
mContext = context;
mBar = bar;
mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
@@ -125,7 +121,8 @@ public class AssistManager {
}
}
- public void onGestureInvoked() {
+ public void startAssist(Bundle args) {
+ updateAssistInfo();
if (mAssistComponent == null) {
return;
}
@@ -137,7 +134,7 @@ public class AssistManager {
? TIMEOUT_SERVICE
: TIMEOUT_ACTIVITY);
}
- startAssist();
+ startAssistInternal(args);
}
public void hideAssist() {
@@ -168,17 +165,17 @@ public class AssistManager {
mView.show(true /* show */, true /* animate */);
}
- private void startAssist() {
+ private void startAssistInternal(Bundle args) {
if (mAssistComponent != null) {
if (isAssistantService()) {
- startVoiceInteractor();
+ startVoiceInteractor(args);
} else {
- startAssistActivity();
+ startAssistActivity(args);
}
}
}
- private void startAssistActivity() {
+ private void startAssistActivity(Bundle args) {
if (!mBar.isDeviceProvisioned()) {
return;
}
@@ -191,13 +188,14 @@ public class AssistManager {
Settings.Secure.ASSIST_STRUCTURE_ENABLED, 1, UserHandle.USER_CURRENT) != 0;
final Intent intent = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE))
- .getAssistIntent(mContext, structureEnabled, UserHandle.USER_CURRENT);
+ .getAssistIntent(structureEnabled);
if (intent == null) {
return;
}
if (mAssistComponent != null) {
intent.setComponent(mAssistComponent);
}
+ intent.putExtras(args);
if (structureEnabled) {
showDisclosure();
@@ -219,8 +217,8 @@ public class AssistManager {
}
}
- private void startVoiceInteractor() {
- mAssistUtils.showSessionForActiveService(mShowCallback);
+ private void startVoiceInteractor(Bundle args) {
+ mAssistUtils.showSessionForActiveService(args, mShowCallback);
}
public void launchVoiceAssistFromKeyguard() {
@@ -304,8 +302,4 @@ public class AssistManager {
public void onUserSwitched(int newUserId) {
updateAssistInfo();
}
-
- public void prepareBeforeInvocation() {
- updateAssistInfo();
- }
}
diff --git a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
index b60c66f..17db471 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/misc/SystemServicesProxy.java
@@ -52,6 +52,7 @@ import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;
import android.util.MutableBoolean;
@@ -62,6 +63,8 @@ import android.view.DisplayInfo;
import android.view.SurfaceControl;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityManager;
+
+import com.android.internal.app.AssistUtils;
import com.android.systemui.Prefs;
import com.android.systemui.R;
import com.android.systemui.recents.Constants;
@@ -89,7 +92,7 @@ public class SystemServicesProxy {
AppWidgetManager mAwm;
PackageManager mPm;
IPackageManager mIpm;
- SearchManager mSm;
+ AssistUtils mAssistUtils;
WindowManager mWm;
Display mDisplay;
String mRecentsPackage;
@@ -114,7 +117,7 @@ public class SystemServicesProxy {
mAwm = AppWidgetManager.getInstance(context);
mPm = context.getPackageManager();
mIpm = AppGlobals.getPackageManager();
- mSm = (SearchManager) context.getSystemService(Context.SEARCH_SERVICE);
+ mAssistUtils = new AssistUtils(context);
mWm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
mDisplay = mWm.getDefaultDisplay();
mRecentsPackage = context.getPackageName();
@@ -133,10 +136,7 @@ public class SystemServicesProxy {
mBgProtectionCanvas = new Canvas();
// Resolve the assist intent
- Intent assist = mSm.getAssistIntent(context, false);
- if (assist != null) {
- mAssistComponent = assist.getComponent();
- }
+ mAssistComponent = mAssistUtils.getAssistComponentForUser(UserHandle.myUserId());
if (Constants.DebugFlags.App.EnableSystemServicesProxy) {
// Create a dummy icon
@@ -580,6 +580,7 @@ public class SystemServicesProxy {
* Returns the first Recents widget from the same package as the global assist activity.
*/
private AppWidgetProviderInfo resolveSearchAppWidget() {
+ if (mAssistComponent == null) return null;
List<AppWidgetProviderInfo> widgets = mAwm.getInstalledProviders(
AppWidgetProviderInfo.WIDGET_CATEGORY_SEARCHBOX);
for (AppWidgetProviderInfo info : widgets) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index 6ad0ef9..f62dc59 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -41,9 +41,9 @@ import android.content.res.Resources;
import android.database.ContentObserver;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
-import android.graphics.drawable.Icon;
import android.os.AsyncTask;
import android.os.Build;
+import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -65,7 +65,6 @@ import android.util.Slog;
import android.util.SparseArray;
import android.util.SparseBooleanArray;
import android.view.Display;
-import android.view.Gravity;
import android.view.IWindowManager;
import android.view.LayoutInflater;
import android.view.MotionEvent;
@@ -2125,4 +2124,11 @@ public abstract class BaseStatusBar extends SystemUI implements
mAssistManager.showDisclosure();
}
}
+
+ @Override
+ public void startAssist(Bundle args) {
+ if (mAssistManager != null) {
+ mAssistManager.startAssist(args);
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
index 0deff08..a1b07b5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -16,6 +16,7 @@
package com.android.systemui.statusbar;
+import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
@@ -62,6 +63,7 @@ public class CommandQueue extends IStatusBar.Stub {
private static final int MSG_APP_TRANSITION_CANCELLED = 20 << MSG_SHIFT;
private static final int MSG_APP_TRANSITION_STARTING = 21 << MSG_SHIFT;
private static final int MSG_ASSIST_DISCLOSURE = 22 << MSG_SHIFT;
+ private static final int MSG_START_ASSIST = 23 << MSG_SHIFT;
public static final int FLAG_EXCLUDE_NONE = 0;
public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -106,6 +108,7 @@ public class CommandQueue extends IStatusBar.Stub {
public void appTransitionCancelled();
public void appTransitionStarting(long startTime, long duration);
public void showAssistDisclosure();
+ public void startAssist(Bundle args);
}
public CommandQueue(Callbacks callbacks, StatusBarIconList list) {
@@ -283,6 +286,13 @@ public class CommandQueue extends IStatusBar.Stub {
}
}
+ public void startAssist(Bundle args) {
+ synchronized (mList) {
+ mHandler.removeMessages(MSG_START_ASSIST);
+ mHandler.obtainMessage(MSG_START_ASSIST, args).sendToTarget();
+ }
+ }
+
private final class H extends Handler {
public void handleMessage(Message msg) {
final int what = msg.what & MSG_MASK;
@@ -378,6 +388,9 @@ public class CommandQueue extends IStatusBar.Stub {
case MSG_ASSIST_DISCLOSURE:
mCallbacks.showAssistDisclosure();
break;
+ case MSG_START_ASSIST:
+ mCallbacks.startAssist((Bundle) msg.obj);
+ break;
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index b996724..bda1374 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -1038,8 +1038,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (shouldDisableNavbarGestures()) {
return false;
}
- mAssistManager.prepareBeforeInvocation();
- mAssistManager.onGestureInvoked();
+ mAssistManager.startAssist(new Bundle() /* args */);
awakenDreams();
if (mNavigationBarView != null) {
mNavigationBarView.abortCurrentGesture();