diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java index 42ed9b596b..a2b25b8e8b 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/SearchFragment.java @@ -134,15 +134,7 @@ public class SearchFragment extends BaseSearchFragment mPoiAdapter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { MogoTip tag = (MogoTip) v.getTag(R.id.tag_position); - SearchPoi searchPoi = EntityConvertUtils.tipToPoi(tag); - if (tag.getPoint() == null) { - goCategory(tag.getName()); - } else { - mSearchPresenter.insert(searchPoi); - SearchServiceHolder.INSTANCE.push( - ChoosePathFragment.Companion.newInstance(tag.getPoint()), - MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT); - } + goResult(tag); } }); @@ -190,6 +182,18 @@ public class SearchFragment extends BaseSearchFragment registerVoidCmd(); } + private void goResult(MogoTip tag) { + SearchPoi searchPoi = EntityConvertUtils.tipToPoi(tag); + if (tag.getPoint() == null) { + goCategory(tag.getName()); + } else { + mSearchPresenter.insert(searchPoi); + SearchServiceHolder.INSTANCE.push( + ChoosePathFragment.Companion.newInstance(tag.getPoint()), + MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT); + } + } + private void goSetting() { SearchServiceHolder.INSTANCE.getAnalyticsManager() .track("Navigation_button_setting", new HashMap()); @@ -331,6 +335,7 @@ public class SearchFragment extends BaseSearchFragment } showResult(); mPoiAdapter.setDatas(datums); + registerResult(); } @Override public void showHistory(List datums) { @@ -358,6 +363,21 @@ public class SearchFragment extends BaseSearchFragment } } + + private void registerResult() { + List datums = mPoiAdapter.getList(); + for (int i = 0; i < datums.size(); i++) { + String s = StringUtils.int2String(i + 1); + AIAssist.getInstance(getContext()) + .registerUnWakeupCommand("history" + i, + new String[] { "第" + s + "个", "第" + s + "条" }, this); + if (cmds.contains("history" + i)) { + continue; + } + cmds.add("history" + i); + } + } + private List cmds = new ArrayList(); @Override @@ -470,6 +490,10 @@ public class SearchFragment extends BaseSearchFragment tvEmpty.setVisibility(View.VISIBLE); } + private boolean isHistory(){ + return rlHistory.getVisibility()==View.VISIBLE; + } + /** * 类别 */ @@ -552,10 +576,18 @@ public class SearchFragment extends BaseSearchFragment if (!TextUtils.isEmpty(cmd) && cmd.startsWith("history")) { String index = cmd.substring(7); Integer integer = Integer.valueOf(index); + if (isHistory()){ if (integer < mHistoryAdapter.getItemCount()) { SearchPoi item = mHistoryAdapter.getItem(integer); goHistory(item); } + }else { + if (integer < mPoiAdapter.getItemCount()) { + MogoTip item = mPoiAdapter.getItem(integer); + goResult(item); + } + } + return; } switch (cmd) {