Migrate from Plugin SearchTarget to API search Target [2/3]

- Adds support for android.app.search.SearchTarget in plugin while maintaining plugin SearchTarget support
- Introduces SEARCH_TARGET_LEGACY temporary to switch between plugin and sdk variants.
- Maps resultType and layoutType pairs to the appropriate view

Bug: 177223401
Test: Manual
Change-Id: If8d4bb7c21c47a12447dcb0c56eed8781bd21e54
This commit is contained in:
Samuel Fufa
2021-01-12 20:39:46 -06:00
parent 992ab43390
commit a60d1f9be7
21 changed files with 209 additions and 111 deletions

View File

@@ -19,8 +19,11 @@ import android.os.Bundle;
/**
* Event used for the feedback loop to the plugin. (and future aiai)
*
* @deprecated Use SearchTargetEvent
*/
public class SearchTargetEvent {
@Deprecated
public class SearchTargetEventLegacy {
public static final int POSITION_NONE = -1;
public static final int SELECT = 0;
@@ -28,12 +31,13 @@ public class SearchTargetEvent {
public static final int LONG_PRESS = 2;
public static final int CHILD_SELECT = 3;
private final SearchTarget mSearchTarget;
private final SearchTargetLegacy mSearchTarget;
private final int mEventType;
private final int mShortcutPosition;
private final Bundle mExtras;
public SearchTargetEvent(SearchTarget searchTarget, int eventType, int shortcutPosition,
public SearchTargetEventLegacy(SearchTargetLegacy searchTarget, int eventType,
int shortcutPosition,
Bundle extras) {
mSearchTarget = searchTarget;
mEventType = eventType;
@@ -42,7 +46,7 @@ public class SearchTargetEvent {
}
public SearchTarget getSearchTarget() {
public SearchTargetLegacy getSearchTarget() {
return mSearchTarget;
}
@@ -59,15 +63,15 @@ public class SearchTargetEvent {
}
/**
* A builder for {@link SearchTarget}
* A builder for {@link SearchTargetLegacy}
*/
public static final class Builder {
private final SearchTarget mSearchTarget;
private final SearchTargetLegacy mSearchTarget;
private final int mEventType;
private int mShortcutPosition = POSITION_NONE;
private Bundle mExtras;
public Builder(SearchTarget searchTarget, int eventType) {
public Builder(SearchTargetLegacy searchTarget, int eventType) {
mSearchTarget = searchTarget;
mEventType = eventType;
}
@@ -82,8 +86,9 @@ public class SearchTargetEvent {
return this;
}
public SearchTargetEvent build() {
return new SearchTargetEvent(mSearchTarget, mEventType, mShortcutPosition, mExtras);
public SearchTargetEventLegacy build() {
return new SearchTargetEventLegacy(mSearchTarget, mEventType, mShortcutPosition,
mExtras);
}
}

View File

@@ -25,8 +25,11 @@ import java.util.List;
/**
* Used to return all apps search targets.
*
* @deprecated Use SearchTarget
*/
public class SearchTarget implements Comparable<SearchTarget> {
@Deprecated
public class SearchTargetLegacy implements Comparable<SearchTargetLegacy> {
private final String mItemId;
private final String mItemType;
@@ -39,7 +42,7 @@ public class SearchTarget implements Comparable<SearchTarget> {
private final RemoteAction mRemoteAction;
private final Bundle mExtras;
private SearchTarget(String itemId, String itemType, float score,
private SearchTargetLegacy(String itemId, String itemType, float score,
ComponentName componentName, UserHandle userHandle, List<ShortcutInfo> shortcutInfos,
RemoteAction remoteAction, Bundle extras) {
mItemId = itemId;
@@ -85,12 +88,12 @@ public class SearchTarget implements Comparable<SearchTarget> {
}
@Override
public int compareTo(SearchTarget o) {
public int compareTo(SearchTargetLegacy o) {
return Float.compare(o.mScore, mScore);
}
/**
* A builder for {@link SearchTarget}
* A builder for {@link SearchTargetLegacy}
*/
public static final class Builder {
@@ -158,13 +161,13 @@ public class SearchTarget implements Comparable<SearchTarget> {
}
/**
* Builds a {@link SearchTarget}
* Builds a {@link SearchTargetLegacy}
*/
public SearchTarget build() {
public SearchTargetLegacy build() {
if (mItemId == null) {
throw new IllegalStateException("Item ID is required for building SearchTarget");
}
return new SearchTarget(mItemId, mItemType, mScore, mComponentName, mUserHandle,
return new SearchTargetLegacy(mItemId, mItemType, mScore, mComponentName, mUserHandle,
mShortcutInfos,
mRemoteAction, mExtras);
}