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;
return;
}
if (event.getQuery().equals(mPreviousQuery)) {
if (event.isFindForward()) {
mWebView.findNext(false);
} else {
mWebView.findAllAsync(event.getQuery());
mPreviousQuery = event.getQuery();
return;
}
if (event.getQuery().equals(mPreviousQuery)) {
mWebView.findNext(true);
return;
}
mWebView.findAllAsync(event.getQuery());
mPreviousQuery = event.getQuery();
}
@Override

View File

@@ -73,6 +73,8 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
private VersionGuard mVersionGuard;
private BackPressedHandler.Observer mBackPressObserver = new BackPressedHandler.Observer();
private SearchViewItem mSearchViewItem;
private MenuItem mLogMenuItem;
private boolean mDocsSearchItemExpanded;
@Override
@@ -254,6 +256,7 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
mLogMenuItem = menu.findItem(R.id.action_log);
setUpSearchMenuItem(searchMenuItem);
return true;
}
@@ -261,14 +264,37 @@ public class MainActivity extends BaseActivity implements OnActivityResultDelega
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_log) {
LogActivity_.intent(this).start();
if (mDocsSearchItemExpanded) {
submitForwardQuery();
} else {
LogActivity_.intent(this).start();
}
return true;
}
return super.onOptionsItemSelected(item);
}
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);
}
@@ -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 static final QueryEvent CLEAR = new QueryEvent(null);
public static final QueryEvent FIND_FORWARD = new QueryEvent("", true);
private boolean mShouldCollapseSearchView = false;
private final String mQuery;
private final boolean mFindForward;
public QueryEvent(String query, boolean b) {
mQuery = query;
mFindForward = b;
}
public QueryEvent(String query) {
mQuery = query;
this(query, false);
}
public String getQuery() {
@@ -26,5 +33,9 @@ public class QueryEvent {
public boolean shouldCollapseSearchView() {
return mShouldCollapseSearchView;
}
public boolean isFindForward() {
return mFindForward;
}
}