From 7239df725803e965d6e5ee6c6136e4904e939d83 Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Mon, 1 Feb 2021 21:18:15 -0800 Subject: [PATCH] Support shorter height row layout / Disable ICON_SLICE Bug: 178815297 Bug: 178128837 Bug: 178823469 Test: manual, attached screenshot on the bugreport Change-Id: Ie69c8928f5acc430320cfc5c85547195866e829e --- .../res/layout/search_result_icon_row.xml | 8 +- .../layout/search_result_small_icon_row.xml | 73 ++++++++ .../search/DeviceSearchAdapterProvider.java | 19 +- .../launcher3/search/SearchAdapterItem.java | 24 +-- .../launcher3/search/SearchResultIconRow.java | 14 +- .../search/SearchResultSmallIconRow.java | 142 ++++++++++++++ .../launcher3/search/SearchTargetUtil.java | 36 ++-- .../launcher3/config/FeatureFlags.java | 6 +- .../systemui/plugins/AllAppsSearchPlugin.java | 105 ----------- .../shared/SearchTargetEventLegacy.java | 95 ---------- .../plugins/shared/SearchTargetLegacy.java | 175 ------------------ 11 files changed, 279 insertions(+), 418 deletions(-) create mode 100644 quickstep/res/layout/search_result_small_icon_row.xml create mode 100644 quickstep/src/com/android/launcher3/search/SearchResultSmallIconRow.java delete mode 100644 src_plugins/com/android/systemui/plugins/AllAppsSearchPlugin.java delete mode 100644 src_plugins/com/android/systemui/plugins/shared/SearchTargetEventLegacy.java delete mode 100644 src_plugins/com/android/systemui/plugins/shared/SearchTargetLegacy.java diff --git a/quickstep/res/layout/search_result_icon_row.xml b/quickstep/res/layout/search_result_icon_row.xml index 81190cfc56..084920a8e6 100644 --- a/quickstep/res/layout/search_result_icon_row.xml +++ b/quickstep/res/layout/search_result_icon_row.xml @@ -20,10 +20,10 @@ android:padding="@dimen/dynamic_grid_edge_margin"> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + launcher:iconDisplay="hero_app" /> + + + + + + + + + + + + \ No newline at end of file diff --git a/quickstep/src/com/android/launcher3/search/DeviceSearchAdapterProvider.java b/quickstep/src/com/android/launcher3/search/DeviceSearchAdapterProvider.java index acf6c150cf..4a656c1acb 100644 --- a/quickstep/src/com/android/launcher3/search/DeviceSearchAdapterProvider.java +++ b/quickstep/src/com/android/launcher3/search/DeviceSearchAdapterProvider.java @@ -16,6 +16,7 @@ package com.android.launcher3.search; +import static com.android.launcher3.allapps.AllAppsGridAdapter.VIEW_TYPE_ALL_APPS_DIVIDER; import static com.android.launcher3.allapps.AllAppsGridAdapter.VIEW_TYPE_ICON; import android.app.search.SearchTarget; @@ -31,6 +32,7 @@ import com.android.launcher3.R; import com.android.launcher3.allapps.AllAppsContainerView; import com.android.launcher3.allapps.AllAppsGridAdapter; import com.android.launcher3.allapps.search.SearchAdapterProvider; +import com.android.launcher3.config.FeatureFlags; /** * Provides views for on-device search results @@ -41,11 +43,12 @@ public class DeviceSearchAdapterProvider extends SearchAdapterProvider { public static final int VIEW_TYPE_SEARCH_SLICE = 1 << 7; public static final int VIEW_TYPE_SEARCH_ICON = (1 << 8) | VIEW_TYPE_ICON; public static final int VIEW_TYPE_SEARCH_ICON_ROW = (1 << 9); + public static final int VIEW_TYPE_SEARCH_SMALL_ICON_ROW = (1 << 10); public static final int VIEW_TYPE_SEARCH_THUMBNAIL = 1 << 12; public static final int VIEW_TYPE_SEARCH_WIDGET_LIVE = 1 << 15; public static final int VIEW_TYPE_SEARCH_WIDGET_PREVIEW = 1 << 16; - private static final String TAG = "SearchServiceAdapterProvider"; + private static final String TAG = "SearchServiceAdapter"; private final AllAppsContainerView mAppsView; private final SparseIntArray mViewTypeToLayoutMap = new SparseIntArray(); @@ -57,11 +60,13 @@ public class DeviceSearchAdapterProvider extends SearchAdapterProvider { mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_CORPUS_TITLE, R.layout.search_section_title); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_ICON, R.layout.search_result_icon); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_ICON_ROW, R.layout.search_result_icon_row); + mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_SMALL_ICON_ROW, R.layout.search_result_small_icon_row); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_SLICE, R.layout.search_result_slice); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_THUMBNAIL, R.layout.search_result_thumbnail); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_WIDGET_LIVE, R.layout.search_result_widget_live); mViewTypeToLayoutMap.put(VIEW_TYPE_SEARCH_WIDGET_PREVIEW, R.layout.search_result_widget_preview); + mViewTypeToLayoutMap.put(VIEW_TYPE_ALL_APPS_DIVIDER, R.layout.all_apps_divider); } @Override @@ -116,25 +121,33 @@ public class DeviceSearchAdapterProvider extends SearchAdapterProvider { case LayoutType.ICON_SINGLE_VERTICAL_TEXT: return VIEW_TYPE_SEARCH_ICON; case LayoutType.ICON_SLICE: + if (FeatureFlags.DISABLE_SLICE_IN_ALLAPPS.get()) { + return -1; + } if (t.getSliceUri() != null) { return VIEW_TYPE_SEARCH_SLICE; } - Log.w(TAG, "Dropping as LayoutType.ICON_SLICE target doesn't contain sliceUri."); + Log.w(TAG, "LayoutType.ICON_SLICE target doesn't contain sliceUri."); break; case LayoutType.ICON_DOUBLE_HORIZONTAL_TEXT: case LayoutType.ICON_SINGLE_HORIZONTAL_TEXT: case LayoutType.ICON_DOUBLE_HORIZONTAL_TEXT_BUTTON: + case LayoutType.ICON_HORIZONTAL_TEXT: return VIEW_TYPE_SEARCH_ICON_ROW; + case LayoutType.SMALL_ICON_HORIZONTAL_TEXT: + return VIEW_TYPE_SEARCH_SMALL_ICON_ROW; case LayoutType.THUMBNAIL: if (t.getSearchAction() != null) { return VIEW_TYPE_SEARCH_THUMBNAIL; } - Log.w(TAG, "Dropping as LayoutType.THUMBNAIL target doesn't contain searchAction."); + Log.w(TAG, "LayoutType.THUMBNAIL target doesn't contain searchAction."); break; case LayoutType.WIDGET_PREVIEW: return VIEW_TYPE_SEARCH_WIDGET_PREVIEW; case LayoutType.WIDGET_LIVE: return VIEW_TYPE_SEARCH_WIDGET_LIVE; + case LayoutType.DIVIDER: + return VIEW_TYPE_ALL_APPS_DIVIDER; } return -1; diff --git a/quickstep/src/com/android/launcher3/search/SearchAdapterItem.java b/quickstep/src/com/android/launcher3/search/SearchAdapterItem.java index b402f61979..8983c4f3b8 100644 --- a/quickstep/src/com/android/launcher3/search/SearchAdapterItem.java +++ b/quickstep/src/com/android/launcher3/search/SearchAdapterItem.java @@ -18,6 +18,7 @@ package com.android.launcher3.search; import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_ICON; import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_ICON_ROW; +import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_SMALL_ICON_ROW; import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_SLICE; import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_THUMBNAIL; import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE_SEARCH_WIDGET_LIVE; @@ -26,7 +27,6 @@ import static com.android.launcher3.search.DeviceSearchAdapterProvider.VIEW_TYPE import android.app.search.SearchTarget; import com.android.launcher3.allapps.AllAppsGridAdapter; -import com.android.systemui.plugins.shared.SearchTargetLegacy; import java.util.ArrayList; import java.util.List; @@ -35,31 +35,23 @@ import java.util.List; * Extension of AdapterItem that contains an extra payload specific to item */ public class SearchAdapterItem extends AllAppsGridAdapter.AdapterItem { - private SearchTargetLegacy mSearchTargetLegacy; private SearchTarget mSearchTarget; private List mInlineItems = new ArrayList<>(); - private static final int AVAILABLE_FOR_ACCESSIBILITY = - VIEW_TYPE_SEARCH_SLICE | VIEW_TYPE_SEARCH_THUMBNAIL | VIEW_TYPE_SEARCH_ICON_ROW - | VIEW_TYPE_SEARCH_ICON | VIEW_TYPE_SEARCH_WIDGET_PREVIEW - | VIEW_TYPE_SEARCH_WIDGET_LIVE; - - - public SearchAdapterItem(SearchTargetLegacy searchTargetLegacy, int type) { - mSearchTargetLegacy = searchTargetLegacy; - viewType = type; - } + private static final int AVAILABLE_FOR_ACCESSIBILITY = VIEW_TYPE_SEARCH_SLICE + | VIEW_TYPE_SEARCH_THUMBNAIL + | VIEW_TYPE_SEARCH_ICON_ROW + | VIEW_TYPE_SEARCH_ICON + | VIEW_TYPE_SEARCH_SMALL_ICON_ROW + | VIEW_TYPE_SEARCH_WIDGET_PREVIEW + | VIEW_TYPE_SEARCH_WIDGET_LIVE; public SearchAdapterItem(SearchTarget searchTarget, int type) { mSearchTarget = searchTarget; viewType = type; } - public SearchTargetLegacy getSearchTargetLegacy() { - return mSearchTargetLegacy; - } - public SearchTarget getSearchTarget() { return mSearchTarget; } diff --git a/quickstep/src/com/android/launcher3/search/SearchResultIconRow.java b/quickstep/src/com/android/launcher3/search/SearchResultIconRow.java index 7c3ed69a00..12a1a1cd34 100644 --- a/quickstep/src/com/android/launcher3/search/SearchResultIconRow.java +++ b/quickstep/src/com/android/launcher3/search/SearchResultIconRow.java @@ -46,12 +46,12 @@ public class SearchResultIconRow extends LinearLayout implements SearchTargetHan public static final int MAX_INLINE_ITEMS = 3; protected final Launcher mLauncher; - private final LauncherAppState mLauncherAppState; - protected SearchResultIcon mResultIcon; + protected final SearchResultIcon[] mInlineIcons = new SearchResultIcon[MAX_INLINE_ITEMS]; + private SearchResultIcon mResultIcon; + private final LauncherAppState mLauncherAppState; private TextView mTitleView; private TextView mSubTitleView; - protected final SearchResultIcon[] mInlineIcons = new SearchResultIcon[MAX_INLINE_ITEMS]; private PackageItemInfo mProviderInfo; @@ -77,13 +77,14 @@ public class SearchResultIconRow extends LinearLayout implements SearchTargetHan @Override protected void onFinishInflate() { super.onFinishInflate(); - int iconSize = getIconSize(); mResultIcon = findViewById(R.id.icon); + mTitleView = findViewById(R.id.title); mSubTitleView = findViewById(R.id.subtitle); mSubTitleView.setVisibility(GONE); + mResultIcon.getLayoutParams().height = iconSize; mResultIcon.getLayoutParams().width = iconSize; mResultIcon.setTextVisibility(false); @@ -94,15 +95,16 @@ public class SearchResultIconRow extends LinearLayout implements SearchTargetHan for (SearchResultIcon inlineIcon : mInlineIcons) { inlineIcon.getLayoutParams().width = getIconSize(); } - setOnClickListener(mResultIcon); setOnLongClickListener(mResultIcon); } @Override public void apply(SearchTarget parentTarget, List children) { - showSubtitleIfNeeded(null); mResultIcon.apply(parentTarget, children, this::onItemInfoCreated); + + showSubtitleIfNeeded(null); + if (parentTarget.getShortcutInfo() != null) { updateWithShortcutInfo(parentTarget.getShortcutInfo()); } else if (parentTarget.getSearchAction() != null) { diff --git a/quickstep/src/com/android/launcher3/search/SearchResultSmallIconRow.java b/quickstep/src/com/android/launcher3/search/SearchResultSmallIconRow.java new file mode 100644 index 0000000000..ca8aa81ecb --- /dev/null +++ b/quickstep/src/com/android/launcher3/search/SearchResultSmallIconRow.java @@ -0,0 +1,142 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.launcher3.search; + +import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; +import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; + +import android.app.search.SearchTarget; +import android.content.Context; +import android.content.pm.ShortcutInfo; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.widget.LinearLayout; +import android.widget.TextView; + +import androidx.annotation.Nullable; + +import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherAppState; +import com.android.launcher3.R; +import com.android.launcher3.model.data.ItemInfoWithIcon; +import com.android.launcher3.model.data.PackageItemInfo; + +import java.util.List; + +/** + * A full width representation of {@link SearchResultIcon} with a secondary label and inline + * SearchTargets + */ +public class SearchResultSmallIconRow extends LinearLayout implements SearchTargetHandler { + + protected final Launcher mLauncher; + private final LauncherAppState mLauncherAppState; + protected SearchResultIcon mResultIcon; + + private TextView mTitleView; + private TextView mDelimeterView; + private TextView mSubTitleView; + + private PackageItemInfo mProviderInfo; + + public SearchResultSmallIconRow(Context context) { + this(context, null, 0); + } + + public SearchResultSmallIconRow(Context context, + @Nullable AttributeSet attrs) { + this(context, attrs, 0); + } + + public SearchResultSmallIconRow(Context context, + @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + mLauncher = Launcher.getLauncher(getContext()); + mLauncherAppState = LauncherAppState.getInstance(getContext()); + } + + protected int getIconSize() { + return mLauncher.getDeviceProfile().allAppsIconSizePx; + } + + @Override + protected void onFinishInflate() { + super.onFinishInflate(); + int iconSize = getIconSize(); + + mResultIcon = findViewById(R.id.icon); + + mTitleView = findViewById(R.id.title); + mDelimeterView = findViewById(R.id.delimeter); + mDelimeterView.setVisibility(GONE); + mSubTitleView = findViewById(R.id.subtitle); + mSubTitleView.setVisibility(GONE); + + mResultIcon.getLayoutParams().height = iconSize; + mResultIcon.getLayoutParams().width = iconSize; + mResultIcon.setTextVisibility(false); + + setOnClickListener(mResultIcon); + setOnLongClickListener(mResultIcon); + } + + @Override + public void apply(SearchTarget parentTarget, List children) { + mResultIcon.apply(parentTarget, children, this::onItemInfoCreated); + + showSubtitleIfNeeded(null); + + if (parentTarget.getShortcutInfo() != null) { + updateWithShortcutInfo(parentTarget.getShortcutInfo()); + } else if (parentTarget.getSearchAction() != null) { + showSubtitleIfNeeded(parentTarget.getSearchAction().getSubtitle()); + } + } + + @Override + public boolean quickSelect() { + this.performClick(); + return true; + } + + private void updateWithShortcutInfo(ShortcutInfo shortcutInfo) { + PackageItemInfo packageItemInfo = new PackageItemInfo(shortcutInfo.getPackage()); + if (packageItemInfo.equals(mProviderInfo)) return; + MODEL_EXECUTOR.post(() -> { + mLauncherAppState.getIconCache().getTitleAndIconForApp(packageItemInfo, true); + MAIN_EXECUTOR.post(() -> { + showSubtitleIfNeeded(packageItemInfo.title); + mProviderInfo = packageItemInfo; + }); + }); + } + + protected void showSubtitleIfNeeded(CharSequence subTitle) { + if (!TextUtils.isEmpty(subTitle)) { + mSubTitleView.setText(subTitle); + mSubTitleView.setVisibility(VISIBLE); + mDelimeterView.setVisibility(VISIBLE); + + } else { + mSubTitleView.setVisibility(GONE); + } + } + + protected void onItemInfoCreated(ItemInfoWithIcon info) { + setTag(info); + mTitleView.setText(info.title); + } +} diff --git a/quickstep/src/com/android/launcher3/search/SearchTargetUtil.java b/quickstep/src/com/android/launcher3/search/SearchTargetUtil.java index 0abed036e3..ede3b9d143 100644 --- a/quickstep/src/com/android/launcher3/search/SearchTargetUtil.java +++ b/quickstep/src/com/android/launcher3/search/SearchTargetUtil.java @@ -13,10 +13,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.android.launcher3.search; -import static com.android.app.search.LayoutType.ICON_DOUBLE_HORIZONTAL_TEXT; -import static com.android.app.search.LayoutType.ICON_SINGLE_HORIZONTAL_TEXT; +import static com.android.app.search.LayoutType.DIVIDER; +import static com.android.app.search.LayoutType.ICON_HORIZONTAL_TEXT; +import static com.android.app.search.LayoutType.SMALL_ICON_HORIZONTAL_TEXT; import static com.android.app.search.LayoutType.THUMBNAIL; import static com.android.app.search.ResultType.ACTION; import static com.android.app.search.ResultType.SCREENSHOT; @@ -54,17 +56,17 @@ public class SearchTargetUtil { /** - * Generate SearchTargetUtil for ICON_DOUBLE_HORIZONTAL_TEXT layout type. + * Generate SearchTargetUtil for ICON_HORIZONTAL_TEXT layout type. * * targets.add(SearchTargetUtil.generateIconDoubleHorizontalText_SearchAction( * mContext, "red", Color.RED)); * targets.add(SearchTargetUtil.generateIconDoubleHorizontalText_SearchAction( * mContext, "yellow", Color.YELLOW)); */ - public static SearchTarget generateIconDoubleHorizontalText_SearchAction( + public static SearchTarget generateIcoHorizontalText_usingSearchAction( Context context, String id, int color) { SearchTarget.Builder builder = - new SearchTarget.Builder(ACTION, ICON_DOUBLE_HORIZONTAL_TEXT, id) + new SearchTarget.Builder(ACTION, ICON_HORIZONTAL_TEXT, id) .setPackageName(PACKAGE2) /* required */ .setUserHandle(USERHANDLE); /* required */ @@ -102,7 +104,7 @@ public class SearchTargetUtil { * targets.add(SearchTargetUtil.generateThumbnail_SearchAction("red", Color.RED)); * targets.add(SearchTargetUtil.generateThumbnail_SearchAction("green", Color.GREEN)); */ - public static SearchTarget generateThumbnail_SearchAction(String id, int color) { + public static SearchTarget generateThumbnail_usingSearchAction(String id, int color) { SearchTarget.Builder builder = new SearchTarget.Builder(SCREENSHOT, THUMBNAIL, id) .setPackageName(PACKAGE2) /* required */ @@ -130,16 +132,19 @@ public class SearchTargetUtil { } /** + * Generate SearchTargetUtil for SMALL_ICON_HORIZONTAL_TEXT layout type. + * * targets.add(SearchTargetUtil.generateIconHorizontalText_SearchAction( * mContext, "red", Color.RED)); * targets.add(SearchTargetUtil.generateIconHorizontalText_SearchAction( * mContext, "yellow", Color.YELLOW)); */ - public static SearchTarget generateIconHorizontalText_SearchAction( + public static SearchTarget generateSmallIconHorizontalText_usingSearchAction( Context context, String id, int color) { - String fallbackQuery = "How to make cookie"; + String title = "Ask the assistant"; + String fallbackQuery = "sourdough bread"; SearchTarget.Builder builder = - new SearchTarget.Builder(SUGGEST, ICON_SINGLE_HORIZONTAL_TEXT, id) + new SearchTarget.Builder(SUGGEST, SMALL_ICON_HORIZONTAL_TEXT, id) .setPackageName(PACKAGE2) /* required */ .setUserHandle(USERHANDLE); /* required */ @@ -159,7 +164,8 @@ public class SearchTargetUtil { Bundle extra = new Bundle(); extra.putBoolean(BUNDLE_EXTRA_SHOULD_START_FOR_RESULT, true); - SearchAction searchAction = new SearchAction.Builder(id, fallbackQuery) + SearchAction searchAction = new SearchAction.Builder(id, title) + .setSubtitle(fallbackQuery) .setPendingIntent(pendingIntent3) .setIcon(icon) .setExtras(extra) @@ -167,6 +173,14 @@ public class SearchTargetUtil { return builder.setSearchAction(searchAction).build(); } + public static SearchTarget generateDivider() { + SearchTarget.Builder builder = + new SearchTarget.Builder(SUGGEST, DIVIDER, "divider") + .setPackageName("") /* required but not used*/ + .setUserHandle(USERHANDLE); /* required */ + return builder.build(); + } + /** * Generate SearchTargetUtil for ICON_DOUBLE_HORIZONTAL_TEXT layout type. @@ -174,7 +188,7 @@ public class SearchTargetUtil { public static SearchTarget generateIconDoubleHorizontalText_ShortcutInfo(Context context) { String id = "23456"; SearchTarget.Builder builder = - new SearchTarget.Builder(ResultType.SHORTCUT, ICON_DOUBLE_HORIZONTAL_TEXT, id) + new SearchTarget.Builder(ResultType.SHORTCUT, SMALL_ICON_HORIZONTAL_TEXT, id) .setPackageName("com.google.android.gm") /* required */ .setUserHandle(UserHandle.CURRENT); /* required */ diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index 086d665fcb..b61799f79c 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -98,12 +98,12 @@ public final class FeatureFlags { public static final BooleanFlag ENABLE_DEVICE_SEARCH = new DeviceFlag( "ENABLE_DEVICE_SEARCH", false, "Allows on device search in all apps"); - public static final BooleanFlag USE_SEARCH_API = getDebugFlag( - "USE_SEARCH_API", true, "Use SearchUIManager api for device search"); - public static final BooleanFlag DISABLE_INITIAL_IME_IN_ALLAPPS = getDebugFlag( "DISABLE_INITIAL_IME_IN_ALLAPPS", false, "Disable default IME state in all apps"); + public static final BooleanFlag DISABLE_SLICE_IN_ALLAPPS = getDebugFlag( + "DISABLE_SLICE_IN_ALLAPPS", true, "Disable slice in all apps"); + public static final BooleanFlag FOLDER_NAME_SUGGEST = new DeviceFlag( "FOLDER_NAME_SUGGEST", true, "Suggests folder names instead of blank text."); diff --git a/src_plugins/com/android/systemui/plugins/AllAppsSearchPlugin.java b/src_plugins/com/android/systemui/plugins/AllAppsSearchPlugin.java deleted file mode 100644 index 0b48c07d01..0000000000 --- a/src_plugins/com/android/systemui/plugins/AllAppsSearchPlugin.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.plugins; - -import android.app.Activity; -import android.os.Bundle; -import android.os.CancellationSignal; -import android.os.Parcelable; -import android.view.View; - -import com.android.systemui.plugins.annotations.ProvidesInterface; -import com.android.systemui.plugins.shared.SearchTargetEventLegacy; -import com.android.systemui.plugins.shared.SearchTargetLegacy; - -import java.util.List; -import java.util.function.Consumer; - -/** - * Implement this plugin interface to fetch search result data from the plugin side. - */ -@ProvidesInterface(action = AllAppsSearchPlugin.ACTION, version = AllAppsSearchPlugin.VERSION) -public interface AllAppsSearchPlugin extends Plugin { - String ACTION = "com.android.systemui.action.PLUGIN_ALL_APPS_SEARCH_ACTIONS"; - int VERSION = 9; - - /** - * init plugin - */ - void setup(Activity activity, View view, boolean useLegacy); - - /** - * Send launcher state related signals. - */ - void onStateTransitionStart(int fromState, int toState); - - void onStateTransitionComplete(int state); - - /** - * Send launcher window focus and visibility changed signals. - */ - void onWindowFocusChanged(boolean hasFocus); - - void onWindowVisibilityChanged(int visibility); - - /** - * Send signal when user starts typing, perform search, notify search target - * event when search ends. - */ - void startedSearchSession(); - - /** - * Main function that triggers search. - * - * @param input string that has been typed by a user - * @param inputArgs extra info that may be relevant for the input query - * @param results contains the result that will be rendered in all apps search - * surface - * @param cancellationSignal {@link CancellationSignal} can be used to share status of current - */ - void queryLegacy(String input, Bundle inputArgs, Consumer> results, - CancellationSignal cancellationSignal); - - /** - * Main function that triggers search. - * - * @param input string that has been typed by a user - * @param inputArgs extra info that may be relevant for the input query - * @param results contains the result that will be rendered in all apps search - * surface - * @param cancellationSignal {@link CancellationSignal} can be used to share status of current - */ - void query(String input, Bundle inputArgs, Consumer> results, - CancellationSignal cancellationSignal); - - /** - * Send over search target interaction events to Plugin - */ - void notifySearchTargetEventLegacy(SearchTargetEventLegacy event); - - /** - * Send over search target interaction events to Plugin - */ - void notifySearchTargetEvent(Parcelable event); - - /** - * Launcher activity lifecycle callbacks - */ - void onResume(int state); - - void onStop(int state); -} \ No newline at end of file diff --git a/src_plugins/com/android/systemui/plugins/shared/SearchTargetEventLegacy.java b/src_plugins/com/android/systemui/plugins/shared/SearchTargetEventLegacy.java deleted file mode 100644 index 0fc61f04dc..0000000000 --- a/src_plugins/com/android/systemui/plugins/shared/SearchTargetEventLegacy.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.systemui.plugins.shared; - -import android.os.Bundle; - -/** - * Event used for the feedback loop to the plugin. (and future aiai) - * - * @deprecated Use {@link android.app.search.SearchTargetEvent} - */ -@Deprecated -public class SearchTargetEventLegacy { - 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; - - private final SearchTargetLegacy mSearchTarget; - private final int mEventType; - private final int mShortcutPosition; - private final Bundle mExtras; - - public SearchTargetEventLegacy(SearchTargetLegacy searchTarget, int eventType, - int shortcutPosition, - Bundle extras) { - mSearchTarget = searchTarget; - mEventType = eventType; - mShortcutPosition = shortcutPosition; - mExtras = extras; - } - - - public SearchTargetLegacy getSearchTarget() { - return mSearchTarget; - } - - public int getShortcutPosition() { - return mShortcutPosition; - } - - public int getEventType() { - return mEventType; - } - - public Bundle getExtras() { - return mExtras; - } - - /** - * A builder for {@link SearchTargetLegacy} - */ - public static final class Builder { - private final SearchTargetLegacy mSearchTarget; - private final int mEventType; - private int mShortcutPosition = POSITION_NONE; - private Bundle mExtras; - - public Builder(SearchTargetLegacy 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 SearchTargetEventLegacy build() { - return new SearchTargetEventLegacy(mSearchTarget, mEventType, mShortcutPosition, - mExtras); - } - } - -} diff --git a/src_plugins/com/android/systemui/plugins/shared/SearchTargetLegacy.java b/src_plugins/com/android/systemui/plugins/shared/SearchTargetLegacy.java deleted file mode 100644 index 2a6ba8829f..0000000000 --- a/src_plugins/com/android/systemui/plugins/shared/SearchTargetLegacy.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.systemui.plugins.shared; - -import android.app.RemoteAction; -import android.content.ComponentName; -import android.content.pm.ShortcutInfo; -import android.os.Bundle; -import android.os.UserHandle; - -import java.util.List; - -/** - * Used to return all apps search targets. - * - * @deprecated Use SearchTarget - */ -@Deprecated -public class SearchTargetLegacy implements Comparable { - - private final String mItemId; - private final String mItemType; - private final float mScore; - - private final ComponentName mComponentName; - private final UserHandle mUserHandle; - private final List mShortcutInfos; - //TODO: (sfufa) replace with a list of a custom type - private final RemoteAction mRemoteAction; - private final Bundle mExtras; - - private SearchTargetLegacy(String itemId, String itemType, float score, - ComponentName componentName, UserHandle userHandle, List shortcutInfos, - RemoteAction remoteAction, Bundle extras) { - mItemId = itemId; - mItemType = itemType; - mScore = score; - mComponentName = componentName; - mUserHandle = userHandle; - mShortcutInfos = shortcutInfos; - mExtras = extras; - mRemoteAction = remoteAction; - } - - public String getItemId() { - return mItemId; - } - - public String getItemType() { - return mItemType; - } - - public ComponentName getComponentName() { - return mComponentName; - } - - public UserHandle getUserHandle() { - return mUserHandle; - } - - public float getScore() { - return mScore; - } - - public List getShortcutInfos() { - return mShortcutInfos; - } - - public Bundle getExtras() { - return mExtras; - } - - public RemoteAction getRemoteAction() { - return mRemoteAction; - } - - @Override - public int compareTo(SearchTargetLegacy o) { - return Float.compare(o.mScore, mScore); - } - - /** - * A builder for {@link SearchTargetLegacy} - */ - public static final class Builder { - - - private String mItemId; - - private final String mItemType; - private final float mScore; - - - private ComponentName mComponentName; - private UserHandle mUserHandle; - private List mShortcutInfos; - private Bundle mExtras; - private RemoteAction mRemoteAction; - - public Builder(String itemType, float score) { - this(itemType, score, null, null); - } - - public Builder(String itemType, float score, ComponentName cn, - UserHandle user) { - mItemType = itemType; - mScore = score; - mComponentName = cn; - mUserHandle = user; - } - - public String getItemId() { - return mItemId; - } - - public float getScore() { - return mScore; - } - - public Builder setItemId(String itemId) { - mItemId = itemId; - return this; - } - - public Builder setComponentName(ComponentName componentName) { - mComponentName = componentName; - return this; - } - - public Builder setUserHandle(UserHandle userHandle) { - mUserHandle = userHandle; - return this; - } - - public Builder setShortcutInfos(List shortcutInfos) { - mShortcutInfos = shortcutInfos; - return this; - } - - public Builder setExtras(Bundle extras) { - mExtras = extras; - return this; - } - - public Builder setRemoteAction(RemoteAction remoteAction) { - mRemoteAction = remoteAction; - return this; - } - - /** - * Builds a {@link SearchTargetLegacy} - */ - public SearchTargetLegacy build() { - if (mItemId == null) { - throw new IllegalStateException("Item ID is required for building SearchTarget"); - } - return new SearchTargetLegacy(mItemId, mItemType, mScore, mComponentName, mUserHandle, - mShortcutInfos, - mRemoteAction, mExtras); - } - } -}