From a1a6b05a141f6dc99fc722736f35974bc6576ed9 Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Tue, 14 Jan 2020 15:26:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/commons/mvp/MvpActivity.java | 18 +++++++++++++++ .../extensions/entrance/EntranceFragment.java | 5 +++++ .../navi/ui/search/BaseSearchFragment.java | 2 +- .../navi/ui/search/CategoryPresenter.java | 1 + .../navi/ui/search/CategorySearchFragment.kt | 7 ++++-- .../module/navi/ui/search/SearchFragment.java | 15 +++++++++++-- .../navi/ui/setting/NaviSettingFragment.kt | 22 +++++++++++++++++++ .../src/main/res/layout/fragment_search.xml | 14 ++++++++++++ 8 files changed, 79 insertions(+), 5 deletions(-) diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java index e2a4538d34..82ed20b2f0 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java @@ -3,9 +3,11 @@ package com.mogo.commons.mvp; import android.content.Context; import android.os.Bundle; +import android.view.MotionEvent; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import com.mogo.utils.SoftKeyBoardJobber; /** * @author congtaowang @@ -53,6 +55,22 @@ public abstract class MvpActivity< V extends IView, P extends Presenter< V > > return this; } + @Override + public boolean dispatchTouchEvent( MotionEvent ev ) { + if ( ev.getAction() == MotionEvent.ACTION_DOWN && enableDispatchTouchEventToDismissSoftKeyBoard() ) { + SoftKeyBoardJobber.hideIfNecessary( this, ev ); + return super.dispatchTouchEvent( ev ); + } + // 必不可少,否则所有的组件都不会有TouchEvent了 + if ( getWindow().superDispatchTouchEvent( ev ) ) { + return true; + } + return onTouchEvent( ev ); + } + protected boolean enableDispatchTouchEventToDismissSoftKeyBoard() { + return true; + } + @Override protected void onDestroy() { super.onDestroy(); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 1261f45817..f02dad8dff 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -11,6 +11,7 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.analytics.AnalyticsUtils; import com.mogo.commons.mvp.MvpFragment; import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; @@ -40,6 +41,7 @@ import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.windowview.IMogoWindowManager; import com.mogo.utils.TipToast; +import java.util.HashMap; /** * @author congtaowang @@ -186,6 +188,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.GONE ); mNaviInfo.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); + AnalyticsUtils.track("Navigation_guide_type", new HashMap<>()); mMApUIController.setPointToCenter(0.675926, 0.77552); } @@ -195,6 +198,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.VISIBLE ); mNaviInfo.setVisibility( View.GONE ); mExitNavi.setVisibility( View.GONE ); + AnalyticsUtils.track("Navigation_guide_type", new HashMap<>()); + mMApUIController.setPointToCenter(0.66145, 0.590688); } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java index 9b0edd0b1f..0c64b6f1d6 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/BaseSearchFragment.java @@ -45,7 +45,7 @@ public abstract class BaseSearchFragment extends BaseFragment implements SearchV protected SearchPresenter mSearchPresenter; private View mClose; - private EditText mSearchBox; + protected EditText mSearchBox; diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java index 83bd92f070..ed54b88002 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java @@ -63,6 +63,7 @@ public class CategoryPresenter extends Presenter { public void startSearchLocalPoiByInput(String keyword) { MogoPoiSearchQuery mogoInputtipsQuery = new MogoPoiSearchQuery("", keyword); + mogoInputtipsQuery.setPageSize(10); mogoInputtipsQuery.setLocation( SearchServiceHolder.INSTANCE.getMapUIController().getWindowCenterLocation()); IMogoPoiSearch inputtipsSearch = diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt index e09c725af4..0a0038bc5b 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt @@ -57,9 +57,11 @@ class CategorySearchFragment : BaseFragment(), CategoryView { } addMarkers = SearchServiceHolder.getMarkerManger() .addMarkers(TAG, arrayList, true) - + moveMapToRight() } + + private lateinit var mAdapter: SearchCategoryAdapter private lateinit var mSearchPresenter: CategoryPresenter @@ -73,6 +75,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView { mSearchPresenter = CategoryPresenter(this) lifecycle.addObserver(mSearchPresenter) + } override fun getLayoutId(): Int { @@ -137,7 +140,6 @@ class CategorySearchFragment : BaseFragment(), CategoryView { override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) mSearchPresenter.startSearchLocalPoiByInput(category) - } override fun onDestroyView() { @@ -146,6 +148,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView { lifecycle.removeObserver(mSearchPresenter) SearchServiceHolder.getMarkerManger() .removeMarkers(TAG) + moveMapToCenter() } override fun onDestroy() { 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 73f2322349..1c873d36f6 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 @@ -10,6 +10,7 @@ import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.commons.analytics.AnalyticsUtils; import com.mogo.map.search.inputtips.MogoTip; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.navi.R; @@ -23,6 +24,7 @@ import com.mogo.module.navi.ui.base.UiController; import com.mogo.module.navi.ui.setting.NaviSettingFragment; import com.mogo.service.fragmentmanager.FragmentDescriptor; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -114,6 +116,7 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi mHistoryAdapter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + AnalyticsUtils.track("Navigation_History_destination", new HashMap()); SearchPoi item = (SearchPoi) v.getTag(R.id.tag_item); MogoTip mogoTip = EntityConvertUtils.poi2MogoTip(item); SearchServiceHolder.INSTANCE.push(ChoosePathFragment.Companion.newInstance(mogoTip.getPoint()), @@ -139,6 +142,8 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi findViewById(R.id.tv_navi_setting).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + AnalyticsUtils.track("Navigation_button_setting", new HashMap()); + push(new NaviSettingFragment(), MogoModulePaths.PATH_FRAGMENT_SETTING); } }); @@ -160,6 +165,14 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi findViewById(R.id.tv_navi_gas).setOnClickListener(this); findViewById(R.id.tv_navi_restaurant).setOnClickListener(this); findViewById(R.id.tv_navi_park).setOnClickListener(this); + + findViewById(R.id.tv_navi_search).setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + AnalyticsUtils.track("Navigation_button_search", new HashMap()); + + mSearchPresenter.startSearchPoiByInput(mSearchBox.getText().toString()); + } + }); } private void push(Fragment fragment, String tag) { @@ -170,8 +183,6 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi SearchServiceHolder.INSTANCE.getFragmentManager().push(build); } - - /** * 显示我的位置,并且可设置为家 */ diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt index eab135cf33..f742cec150 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt @@ -10,6 +10,7 @@ import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.analytics.AnalyticsUtils import com.mogo.map.constants.BroadcastMode import com.mogo.map.uicontroller.EnumMapUI import com.mogo.module.common.MogoModulePaths @@ -36,6 +37,7 @@ import kotlinx.android.synthetic.main.fragment_navi_setting.rb_navi_no_high_way import kotlinx.android.synthetic.main.fragment_navi_setting.rg_navi_day_night import kotlinx.android.synthetic.main.fragment_navi_setting.rg_navi_sound_type import kotlinx.android.synthetic.main.fragment_navi_setting.sb_navi_volume_progress +import java.util.HashMap /** * @author zyz @@ -44,6 +46,8 @@ import kotlinx.android.synthetic.main.fragment_navi_setting.sb_navi_volume_progr @Route(path = MogoModulePaths.PATH_FRAGMENT_SETTING) class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { + private var type: Int = 0 + override fun onCheckedChanged( buttonView: CompoundButton?, isChecked: Boolean @@ -51,22 +55,33 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { if (buttonView?.id == R.id.rb_navi_fee) { SettingManager.cost(isChecked) if (isChecked) { + type = 2 rb_navi_high_way.isChecked = false } } else if (buttonView?.id == R.id.rb_navi_high_way) { SettingManager.highSpeed(isChecked) + type = 4 + if (isChecked) { rb_navi_no_high_way.isChecked = false rb_navi_fee.isChecked = false } } else if (buttonView?.id == R.id.rb_navi_no_high_way) { SettingManager.avoidSpeed(isChecked) + type = 3 + if (isChecked) { rb_navi_high_way.isChecked = false } } else if (buttonView?.id == R.id.rb_navi_jam) { SettingManager.congestion(isChecked) + type = 1 + } + if (isChecked) { + AnalyticsUtils.track("Navigation_preference", mapOf("type" to type)) + } + } override fun getLayoutId(): Int { @@ -161,6 +176,13 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { .setBroadcastMode( if (checkedId == R.id.rb_navi_detail) BroadcastMode.DETAIL else BroadcastMode.CONCISE ) + + + if (checkedId == R.id.rb_navi_detail) { + AnalyticsUtils.track("Navigation_guide_type", mapOf("type" to 1)) + } else { + AnalyticsUtils.track("Navigation_guide_type", mapOf("type" to 2)) + } } } diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_search.xml b/modules/mogo-module-search/src/main/res/layout/fragment_search.xml index ed0f0a99cd..5b815aa9f0 100644 --- a/modules/mogo-module-search/src/main/res/layout/fragment_search.xml +++ b/modules/mogo-module-search/src/main/res/layout/fragment_search.xml @@ -16,6 +16,20 @@ + +