Remove hardcoded itemTypes from SearchTarget

- Introduces componentName and userHandle members to SearchTarget
- SearchTargetEvent now has searchTarget member
- Builder pattern for SearchTarget and SearchTargetEvent
- Search backend should add headers manually instead of launcher inferring sections

Bug: 171026321
Test: Manual
Change-Id: I28e0455e82b925277a17703b9aa061c8f9f15262
This commit is contained in:
Samuel Fufa
2020-10-16 02:01:31 -07:00
parent 9228ff53c2
commit 1f79eeda76
15 changed files with 313 additions and 391 deletions

View File

@@ -15,32 +15,76 @@
*/
package com.android.systemui.plugins.shared;
import android.app.RemoteAction;
import android.content.pm.ShortcutInfo;
import android.os.Bundle;
/**
* Event used for the feedback loop to the plugin. (and future aiai)
*/
public class SearchTargetEvent {
public static final int POSITION_NONE = -1;
public static final int SELECT = 0;
public static final int QUICK_SELECT = 1;
public static final int LONG_PRESS = 2;
public static final int CHILD_SELECT = 3;
public SearchTarget.ItemType type;
public ShortcutInfo shortcut;
public RemoteAction remoteAction;
public int eventType;
public Bundle bundle;
public int index;
public String sessionIdentifier;
private final SearchTarget mSearchTarget;
private final int mEventType;
private final int mShortcutPosition;
private final Bundle mExtras;
public SearchTargetEvent(SearchTarget.ItemType itemType, int eventType, int index,
String sessionId) {
this.type = itemType;
this.eventType = eventType;
this.index = index;
this.sessionIdentifier = sessionId;
public SearchTargetEvent(SearchTarget searchTarget, int eventType, int shortcutPosition,
Bundle extras) {
mSearchTarget = searchTarget;
mEventType = eventType;
mShortcutPosition = shortcutPosition;
mExtras = extras;
}
public SearchTarget getSearchTarget() {
return mSearchTarget;
}
public int getShortcutPosition() {
return mShortcutPosition;
}
public int getEventType() {
return mEventType;
}
public Bundle getExtras() {
return mExtras;
}
/**
* A builder for {@link SearchTarget}
*/
public static final class Builder {
private final SearchTarget mSearchTarget;
private final int mEventType;
private int mShortcutPosition = POSITION_NONE;
private Bundle mExtras;
public Builder(SearchTarget searchTarget, int eventType) {
mSearchTarget = searchTarget;
mEventType = eventType;
}
public Builder setShortcutPosition(int shortcutPosition) {
mShortcutPosition = shortcutPosition;
return this;
}
public Builder setExtras(Bundle extras) {
mExtras = extras;
return this;
}
public SearchTargetEvent build() {
return new SearchTargetEvent(mSearchTarget, mEventType, mShortcutPosition, mExtras);
}
}
}