void onAssistantProgress(float progress) = 12;
/**
+ * Proxies the assistant gesture fling velocity (in pixels per millisecond) upon completion.
+ * Velocity is 0 for drag gestures.
+ */
+ void onAssistantGestureCompletion(float velocity) = 18;
+
+ /**
* Start the assistant.
*/
void startAssistant(in Bundle bundle) = 13;
// intentional no-op, vendor's AssistManager implementation should override if needed.
}
+ /** Called when the user has invoked the assistant with the incoming velocity, in pixels per
+ * millisecond. For invocations without a velocity (e.g. slow drag), the velocity is set to
+ * zero.
+ */
+ public void onAssistantGestureCompletion(float velocity) {
+ // intentional no-op, vendor's AssistManager implementation should override if needed.
+ }
+
public void hideAssist() {
mAssistUtils.hideCurrentSession();
}
}
@Override
+ public void onAssistantGestureCompletion(float velocity) {
+ if (!verifyCaller("onAssistantGestureCompletion")) {
+ return;
+ }
+ long token = Binder.clearCallingIdentity();
+ try {
+ mHandler.post(() -> notifyAssistantGestureCompletion(velocity));
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override
public void startAssistant(Bundle bundle) {
if (!verifyCaller("startAssistant")) {
return;
}
}
+ private void notifyAssistantGestureCompletion(float velocity) {
+ for (int i = mConnectionCallbacks.size() - 1; i >= 0; --i) {
+ mConnectionCallbacks.get(i).onAssistantGestureCompletion(velocity);
+ }
+ }
+
private void notifyStartAssistant(Bundle bundle) {
for (int i = mConnectionCallbacks.size() - 1; i >= 0; --i) {
mConnectionCallbacks.get(i).startAssistant(bundle);
default void onQuickScrubStarted() {}
default void onBackButtonAlphaChanged(float alpha, boolean animate) {}
default void onAssistantProgress(@FloatRange(from = 0.0, to = 1.0) float progress) {}
+ default void onAssistantGestureCompletion(float velocity) {}
default void startAssistant(Bundle bundle) {}
}
}