Loading src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java +3 −21 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.widget.TextView.OnEditorActionListener; import com.android.launcher3.ExtendedEditText; import com.android.launcher3.Launcher; import com.android.launcher3.Utilities; import com.android.launcher3.allapps.AlphabeticalAppsList; import com.android.launcher3.discovery.AppDiscoveryItem; import com.android.launcher3.discovery.AppDiscoveryUpdateState; import com.android.launcher3.util.ComponentKey; Loading @@ -46,12 +45,11 @@ public class AllAppsSearchBarController implements TextWatcher, OnEditorActionListener, ExtendedEditText.OnBackKeyListener { protected Launcher mLauncher; protected AlphabeticalAppsList mApps; protected Callbacks mCb; protected ExtendedEditText mInput; protected String mQuery; protected DefaultAppSearchAlgorithm mSearchAlgorithm; protected SearchAlgorithm mSearchAlgorithm; protected InputMethodManager mInputMethodManager; public void setVisibility(int visibility) { Loading @@ -61,9 +59,8 @@ public class AllAppsSearchBarController * Sets the references to the apps model and the search result callback. */ public final void initialize( AlphabeticalAppsList apps, ExtendedEditText input, SearchAlgorithm searchAlgorithm, ExtendedEditText input, Launcher launcher, Callbacks cb) { mApps = apps; mCb = cb; mLauncher = launcher; Loading @@ -75,22 +72,7 @@ public class AllAppsSearchBarController mInputMethodManager = (InputMethodManager) mInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); mSearchAlgorithm = onInitializeSearch(); onInitialized(); } /** * You can override this method to perform custom initialization. */ protected void onInitialized() { } /** * This method will get called when the controller is set. */ public DefaultAppSearchAlgorithm onInitializeSearch() { return new DefaultAppSearchAlgorithm(mApps.getApps()); mSearchAlgorithm = searchAlgorithm; } @Override Loading src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +2 −2 Original line number Diff line number Diff line Loading @@ -118,8 +118,8 @@ public class AppsSearchContainerLayout extends FrameLayout mAppsRecyclerView = recyclerView; mAppsRecyclerView.addOnScrollListener(mElevationController); mAdapter = (AllAppsGridAdapter) mAppsRecyclerView.getAdapter(); mSearchBarController.initialize(appsList, mSearchInput, mLauncher, this); mSearchBarController.initialize( new DefaultAppSearchAlgorithm(appsList.getApps()), mSearchInput, mLauncher, this); } @Override Loading src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java +6 −4 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import java.util.List; /** * The default search implementation. */ public class DefaultAppSearchAlgorithm { public class DefaultAppSearchAlgorithm implements SearchAlgorithm { private final List<AppInfo> mApps; protected final Handler mResultHandler; Loading @@ -36,12 +36,14 @@ public class DefaultAppSearchAlgorithm { mResultHandler = new Handler(); } @Override public void cancel(boolean interruptActiveRequests) { if (interruptActiveRequests) { mResultHandler.removeCallbacksAndMessages(null); } } @Override public void doSearch(final String query, final AllAppsSearchBarController.Callbacks callback) { final ArrayList<ComponentKey> result = getTitleMatchResult(query); Loading @@ -54,7 +56,7 @@ public class DefaultAppSearchAlgorithm { }); } public ArrayList<ComponentKey> getTitleMatchResult(String query) { private ArrayList<ComponentKey> getTitleMatchResult(String query) { // Do an intersection of the words in the query and each title, and filter out all the // apps that don't match all of the words in the query. final String queryTextLower = query.toLowerCase(); Loading @@ -67,7 +69,7 @@ public class DefaultAppSearchAlgorithm { return result; } public boolean matches(AppInfo info, String query) { public static boolean matches(AppInfo info, String query) { int queryLength = query.length(); String title = info.title.toString(); Loading Loading @@ -103,7 +105,7 @@ public class DefaultAppSearchAlgorithm { * 3) Any capital character after a digit or small character * 4) Any capital character before a small character */ protected boolean isBreak(int thisType, int prevType, int nextType) { private static boolean isBreak(int thisType, int prevType, int nextType) { switch (thisType) { case Character.UPPERCASE_LETTER: if (nextType == Character.UPPERCASE_LETTER) { Loading src/com/android/launcher3/allapps/search/SearchAlgorithm.java 0 → 100644 +32 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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.allapps.search; /** * An interface for handling search. */ public interface SearchAlgorithm { /** * Performs search and sends the result to the callback. */ void doSearch(String query, AllAppsSearchBarController.Callbacks callback); /** * Cancels any active request. */ void cancel(boolean interruptActiveRequests); } Loading
src/com/android/launcher3/allapps/search/AllAppsSearchBarController.java +3 −21 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.widget.TextView.OnEditorActionListener; import com.android.launcher3.ExtendedEditText; import com.android.launcher3.Launcher; import com.android.launcher3.Utilities; import com.android.launcher3.allapps.AlphabeticalAppsList; import com.android.launcher3.discovery.AppDiscoveryItem; import com.android.launcher3.discovery.AppDiscoveryUpdateState; import com.android.launcher3.util.ComponentKey; Loading @@ -46,12 +45,11 @@ public class AllAppsSearchBarController implements TextWatcher, OnEditorActionListener, ExtendedEditText.OnBackKeyListener { protected Launcher mLauncher; protected AlphabeticalAppsList mApps; protected Callbacks mCb; protected ExtendedEditText mInput; protected String mQuery; protected DefaultAppSearchAlgorithm mSearchAlgorithm; protected SearchAlgorithm mSearchAlgorithm; protected InputMethodManager mInputMethodManager; public void setVisibility(int visibility) { Loading @@ -61,9 +59,8 @@ public class AllAppsSearchBarController * Sets the references to the apps model and the search result callback. */ public final void initialize( AlphabeticalAppsList apps, ExtendedEditText input, SearchAlgorithm searchAlgorithm, ExtendedEditText input, Launcher launcher, Callbacks cb) { mApps = apps; mCb = cb; mLauncher = launcher; Loading @@ -75,22 +72,7 @@ public class AllAppsSearchBarController mInputMethodManager = (InputMethodManager) mInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); mSearchAlgorithm = onInitializeSearch(); onInitialized(); } /** * You can override this method to perform custom initialization. */ protected void onInitialized() { } /** * This method will get called when the controller is set. */ public DefaultAppSearchAlgorithm onInitializeSearch() { return new DefaultAppSearchAlgorithm(mApps.getApps()); mSearchAlgorithm = searchAlgorithm; } @Override Loading
src/com/android/launcher3/allapps/search/AppsSearchContainerLayout.java +2 −2 Original line number Diff line number Diff line Loading @@ -118,8 +118,8 @@ public class AppsSearchContainerLayout extends FrameLayout mAppsRecyclerView = recyclerView; mAppsRecyclerView.addOnScrollListener(mElevationController); mAdapter = (AllAppsGridAdapter) mAppsRecyclerView.getAdapter(); mSearchBarController.initialize(appsList, mSearchInput, mLauncher, this); mSearchBarController.initialize( new DefaultAppSearchAlgorithm(appsList.getApps()), mSearchInput, mLauncher, this); } @Override Loading
src/com/android/launcher3/allapps/search/DefaultAppSearchAlgorithm.java +6 −4 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ import java.util.List; /** * The default search implementation. */ public class DefaultAppSearchAlgorithm { public class DefaultAppSearchAlgorithm implements SearchAlgorithm { private final List<AppInfo> mApps; protected final Handler mResultHandler; Loading @@ -36,12 +36,14 @@ public class DefaultAppSearchAlgorithm { mResultHandler = new Handler(); } @Override public void cancel(boolean interruptActiveRequests) { if (interruptActiveRequests) { mResultHandler.removeCallbacksAndMessages(null); } } @Override public void doSearch(final String query, final AllAppsSearchBarController.Callbacks callback) { final ArrayList<ComponentKey> result = getTitleMatchResult(query); Loading @@ -54,7 +56,7 @@ public class DefaultAppSearchAlgorithm { }); } public ArrayList<ComponentKey> getTitleMatchResult(String query) { private ArrayList<ComponentKey> getTitleMatchResult(String query) { // Do an intersection of the words in the query and each title, and filter out all the // apps that don't match all of the words in the query. final String queryTextLower = query.toLowerCase(); Loading @@ -67,7 +69,7 @@ public class DefaultAppSearchAlgorithm { return result; } public boolean matches(AppInfo info, String query) { public static boolean matches(AppInfo info, String query) { int queryLength = query.length(); String title = info.title.toString(); Loading Loading @@ -103,7 +105,7 @@ public class DefaultAppSearchAlgorithm { * 3) Any capital character after a digit or small character * 4) Any capital character before a small character */ protected boolean isBreak(int thisType, int prevType, int nextType) { private static boolean isBreak(int thisType, int prevType, int nextType) { switch (thisType) { case Character.UPPERCASE_LETTER: if (nextType == Character.UPPERCASE_LETTER) { Loading
src/com/android/launcher3/allapps/search/SearchAlgorithm.java 0 → 100644 +32 −0 Original line number Diff line number Diff line /* * Copyright (C) 2017 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.allapps.search; /** * An interface for handling search. */ public interface SearchAlgorithm { /** * Performs search and sends the result to the callback. */ void doSearch(String query, AllAppsSearchBarController.Callbacks callback); /** * Cancels any active request. */ void cancel(boolean interruptActiveRequests); }