add: docs searching backward support

This commit is contained in:
hyb1996
2017-12-06 21:26:28 +08:00
parent cf4c4af31f
commit 093c299fc1
3 changed files with 54 additions and 7 deletions

View File

@@ -101,12 +101,16 @@ public class DocsFragment extends ViewPagerFragment implements BackPressedHandle
mPreviousQuery = null; mPreviousQuery = null;
return; return;
} }
if (event.getQuery().equals(mPreviousQuery)) { if (event.isFindForward()) {
mWebView.findNext(false); mWebView.findNext(false);
} else { return;
mWebView.findAllAsync(event.getQuery());
mPreviousQuery = event.getQuery();
} }
if (event.getQuery().equals(mPreviousQuery)) {
mWebView.findNext(true);
return;
}
mWebView.findAllAsync(event.getQuery());
mPreviousQuery = event.getQuery();
} }
@Override @Override

View File

@@ -73,6 +73,8 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
private VersionGuard mVersionGuard; private VersionGuard mVersionGuard;
private BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer(); private BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer();
private SearchViewItem mSearchViewItem; private SearchViewItem mSearchViewItem;
private MenuItem mLogMenuItem;
private boolean mDocsSearchItemExpanded;
@Override @Override
@@ -254,6 +256,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu); getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchMenuItem = menu.findItem(R.id.action_search); MenuItem searchMenuItem = menu.findItem(R.id.action_search);
mLogMenuItem = menu.findItem(R.id.action_log);
setUpSearchMenuItem(searchMenuItem); setUpSearchMenuItem(searchMenuItem);
return true; return true;
} }
@@ -261,14 +264,37 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_log) { if (item.getItemId() == R.id.action_log) {
LogActivity_.intent(this).start(); if (mDocsSearchItemExpanded) {
submitForwardQuery();
} else {
LogActivity_.intent(this).start();
}
return true; return true;
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
private void setUpSearchMenuItem(MenuItem searchMenuItem) { private void setUpSearchMenuItem(MenuItem searchMenuItem) {
mSearchViewItem = new SearchViewItem(this, searchMenuItem); mSearchViewItem = new SearchViewItem(this, searchMenuItem) {
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
if (mViewPager.getCurrentItem() == 1) {
mDocsSearchItemExpanded = true;
mLogMenuItem.setIcon(R.drawable.ic_ali_up);
}
return super.onMenuItemActionExpand(item);
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
if (mDocsSearchItemExpanded) {
mDocsSearchItemExpanded = false;
mLogMenuItem.setIcon(R.drawable.ic_ali_log);
}
return super.onMenuItemActionCollapse(item);
}
};
mSearchViewItem.setQueryCallback(this::submitQuery); mSearchViewItem.setQueryCallback(this::submitQuery);
} }
@@ -284,4 +310,10 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
} }
} }
private void submitForwardQuery() {
QueryEvent event = QueryEvent.FIND_FORWARD;
EventBus.getDefault().post(event);
}
} }

View File

@@ -7,12 +7,19 @@ package com.stardust.scriptdroid.ui.main;
public class QueryEvent { public class QueryEvent {
public static final QueryEvent CLEAR = new QueryEvent(null); public static final QueryEvent CLEAR = new QueryEvent(null);
public static final QueryEvent FIND_FORWARD = new QueryEvent("", true);
private boolean mShouldCollapseSearchView = false; private boolean mShouldCollapseSearchView = false;
private final String mQuery; private final String mQuery;
private final boolean mFindForward;
public QueryEvent(String query, boolean b) {
mQuery = query;
mFindForward = b;
}
public QueryEvent(String query) { public QueryEvent(String query) {
mQuery = query; this(query, false);
} }
public String getQuery() { public String getQuery() {
@@ -26,5 +33,9 @@ public class QueryEvent {
public boolean shouldCollapseSearchView() { public boolean shouldCollapseSearchView() {
return mShouldCollapseSearchView; return mShouldCollapseSearchView;
} }
public boolean isFindForward() {
return mFindForward;
}
} }