Loading src/com/android/documentsui/BaseActivity.java +0 −6 Original line number Diff line number Diff line Loading @@ -595,12 +595,6 @@ public abstract class BaseActivity */ @Override public final void refreshCurrentRootAndDirectory(int anim) { // The following call will crash if it's called before onCreateOptionMenu() is called in // which we install menu item to search view manager, and there is a search query we need to // restore. This happens when we're still initializing our UI so we shouldn't cancel the // search which will be restored later in onCreateOptionMenu(). Try finding a way to guard // refreshCurrentRootAndDirectory() from being called while we're restoring the state of UI // from the saved state passed in onCreate(). mSearchManager.cancelSearch(); // only set the query content in the first launch Loading src/com/android/documentsui/queries/SearchViewManager.java +23 −11 Original line number Diff line number Diff line Loading @@ -86,9 +86,9 @@ public class SearchViewManager implements private boolean mIsHistorySearch; private boolean mShowSearchBar; private Menu mMenu; private MenuItem mMenuItem; private SearchView mSearchView; private @Nullable Menu mMenu; private @Nullable MenuItem mMenuItem; private @Nullable SearchView mSearchView; public SearchViewManager( SearchManagerListener listener, Loading Loading @@ -249,7 +249,7 @@ public class SearchViewManager implements * is done before onPrepareOptionsMenu(Menu menu) that is overriding the icons visibility. */ public void updateMenu() { if (isExpanded() && mFullBar) { if (mMenu != null && isExpanded() && mFullBar) { mMenu.setGroupVisible(R.id.group_hide_when_searching, false); } } Loading @@ -258,7 +258,7 @@ public class SearchViewManager implements * @param stack New stack. */ public void update(DocumentStack stack) { if (mMenuItem == null) { if (mMenuItem == null || mSearchView == null) { if (DEBUG) { Log.d(TAG, "update called before Search MenuItem installed."); } Loading Loading @@ -364,6 +364,10 @@ public class SearchViewManager implements * change. */ public void restoreSearch(boolean keepFocus) { if (mSearchView == null) { return; } if (isTextSearching()) { onSearchBarClicked(); mSearchView.setQuery(mCurrentSearch, false); Loading @@ -377,13 +381,17 @@ public class SearchViewManager implements } public void onSearchBarClicked() { if (mMenuItem == null) { return; } mMenuItem.expandActionView(); onSearchExpanded(); } private void onSearchExpanded() { mSearchExpanded = true; if (mFullBar) { if (mFullBar && mMenu != null) { mMenu.setGroupVisible(R.id.group_hide_when_searching, false); } Loading Loading @@ -412,7 +420,7 @@ public class SearchViewManager implements mListener.onSearchChanged(mCurrentSearch); } if (mFullBar) { if (mFullBar && mMenuItem != null) { mMenuItem.collapseActionView(); } mListener.onSearchFinished(); Loading @@ -428,7 +436,7 @@ public class SearchViewManager implements * @param state Bundle to save state too */ public void onSaveInstanceState(Bundle state) { if (mSearchView.hasFocus() && mCurrentSearch == null) { if (mSearchView != null && mSearchView.hasFocus() && mCurrentSearch == null) { // Restore focus even if no text was input before screen rotation. mCurrentSearch = ""; } Loading Loading @@ -470,9 +478,9 @@ public class SearchViewManager implements @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus && !mChipViewManager.hasCheckedItems()) { if (mCurrentSearch == null) { if (mSearchView != null && mCurrentSearch == null) { mSearchView.setIconified(true); } else if (TextUtils.isEmpty(mSearchView.getQuery())) { } else if (TextUtils.isEmpty(getSearchViewText())) { cancelSearch(); } } Loading Loading @@ -542,9 +550,13 @@ public class SearchViewManager implements /** * Get current text on search view. * * @return Cuttent string on search view * @return Current string on search view */ public String getSearchViewText() { if (mSearchView == null) { return null; } return mSearchView.getQuery().toString(); } Loading Loading
src/com/android/documentsui/BaseActivity.java +0 −6 Original line number Diff line number Diff line Loading @@ -595,12 +595,6 @@ public abstract class BaseActivity */ @Override public final void refreshCurrentRootAndDirectory(int anim) { // The following call will crash if it's called before onCreateOptionMenu() is called in // which we install menu item to search view manager, and there is a search query we need to // restore. This happens when we're still initializing our UI so we shouldn't cancel the // search which will be restored later in onCreateOptionMenu(). Try finding a way to guard // refreshCurrentRootAndDirectory() from being called while we're restoring the state of UI // from the saved state passed in onCreate(). mSearchManager.cancelSearch(); // only set the query content in the first launch Loading
src/com/android/documentsui/queries/SearchViewManager.java +23 −11 Original line number Diff line number Diff line Loading @@ -86,9 +86,9 @@ public class SearchViewManager implements private boolean mIsHistorySearch; private boolean mShowSearchBar; private Menu mMenu; private MenuItem mMenuItem; private SearchView mSearchView; private @Nullable Menu mMenu; private @Nullable MenuItem mMenuItem; private @Nullable SearchView mSearchView; public SearchViewManager( SearchManagerListener listener, Loading Loading @@ -249,7 +249,7 @@ public class SearchViewManager implements * is done before onPrepareOptionsMenu(Menu menu) that is overriding the icons visibility. */ public void updateMenu() { if (isExpanded() && mFullBar) { if (mMenu != null && isExpanded() && mFullBar) { mMenu.setGroupVisible(R.id.group_hide_when_searching, false); } } Loading @@ -258,7 +258,7 @@ public class SearchViewManager implements * @param stack New stack. */ public void update(DocumentStack stack) { if (mMenuItem == null) { if (mMenuItem == null || mSearchView == null) { if (DEBUG) { Log.d(TAG, "update called before Search MenuItem installed."); } Loading Loading @@ -364,6 +364,10 @@ public class SearchViewManager implements * change. */ public void restoreSearch(boolean keepFocus) { if (mSearchView == null) { return; } if (isTextSearching()) { onSearchBarClicked(); mSearchView.setQuery(mCurrentSearch, false); Loading @@ -377,13 +381,17 @@ public class SearchViewManager implements } public void onSearchBarClicked() { if (mMenuItem == null) { return; } mMenuItem.expandActionView(); onSearchExpanded(); } private void onSearchExpanded() { mSearchExpanded = true; if (mFullBar) { if (mFullBar && mMenu != null) { mMenu.setGroupVisible(R.id.group_hide_when_searching, false); } Loading Loading @@ -412,7 +420,7 @@ public class SearchViewManager implements mListener.onSearchChanged(mCurrentSearch); } if (mFullBar) { if (mFullBar && mMenuItem != null) { mMenuItem.collapseActionView(); } mListener.onSearchFinished(); Loading @@ -428,7 +436,7 @@ public class SearchViewManager implements * @param state Bundle to save state too */ public void onSaveInstanceState(Bundle state) { if (mSearchView.hasFocus() && mCurrentSearch == null) { if (mSearchView != null && mSearchView.hasFocus() && mCurrentSearch == null) { // Restore focus even if no text was input before screen rotation. mCurrentSearch = ""; } Loading Loading @@ -470,9 +478,9 @@ public class SearchViewManager implements @Override public void onFocusChange(View v, boolean hasFocus) { if (!hasFocus && !mChipViewManager.hasCheckedItems()) { if (mCurrentSearch == null) { if (mSearchView != null && mCurrentSearch == null) { mSearchView.setIconified(true); } else if (TextUtils.isEmpty(mSearchView.getQuery())) { } else if (TextUtils.isEmpty(getSearchViewText())) { cancelSearch(); } } Loading Loading @@ -542,9 +550,13 @@ public class SearchViewManager implements /** * Get current text on search view. * * @return Cuttent string on search view * @return Current string on search view */ public String getSearchViewText() { if (mSearchView == null) { return null; } return mSearchView.getQuery().toString(); } Loading