From 8c5d08f320167e55d996be7721194689def96adf Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Fri, 10 Jan 2020 15:32:01 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=AE=B6=E5=92=8C?= =?UTF-8?q?=E5=85=AC=E5=8F=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/impl/amap/AMapNaviViewWrapper.java | 9 ++ .../amap/uicontroller/AMapUIController.java | 7 ++ .../java/com/mogo/map/navi/IMogoNavi.java | 1 + .../uicontroller/IMogoMapUIController.java | 7 ++ .../com/mogo/map/MogoMapUIController.java | 67 +++++++------ .../src/main/AndroidManifest.xml | 6 +- .../navi/constants/SearchServiceHolder.kt | 30 +++++- .../module/navi/ui/base/BaseFragment.java | 11 +++ .../navi/ui/search/CategorySearchFragment.kt | 12 ++- .../navi/ui/search/ChoosePathFragment.kt | 31 ++++-- .../module/navi/ui/search/SearchFragment.java | 1 + .../navi/ui/setting/SettingAddressFragment.kt | 94 ++++++++----------- .../src/main/res/layout/fragment_search.xml | 3 + .../res/layout/fragment_setting_address.xml | 58 ------------ .../src/main/res/values/dimens.xml | 1 + 15 files changed, 180 insertions(+), 158 deletions(-) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 150fa1c5dd..c5e3a8b1fb 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -489,6 +489,15 @@ public class AMapNaviViewWrapper implements IMogoMapView, return null; } + @Override public MogoLatLng getTarget() { + try { + return ObjectUtils.fromAMap( mMapView.getMap().getCameraPosition().target ); + } catch ( Exception e ) { + + } + return null; + } + @Override public void setPointToCenter( double mapCenterX, double mapCenterY ) { if ( checkAMapView() ) { diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index 26e98dee48..73813df119 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -130,6 +130,13 @@ public class AMapUIController implements IMogoMapUIController { return null; } + @Override public MogoLatLng getTarget() { + if ( mClient != null ) { + return mClient.getCameraSouthWestPosition(); + } + return null; + } + @Override public void setPointToCenter( double mapCenterX, double mapCenterY ) { if ( mClient != null ) { diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 9cfd922372..85626c4231 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -94,4 +94,5 @@ public interface IMogoNavi { * 清除规划的路线 */ void clearCalculatePaths(); + } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index a9968af5ec..e87b0a3682 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -88,6 +88,13 @@ public interface IMogoMapUIController { */ MogoLatLng getCameraSouthWestPosition(); + /** + * 获取视图中心点坐标 + * + * @return + */ + MogoLatLng getTarget(); + /** * 设置地图中心点 * diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index b6ab623020..5b54dbb5ca 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -21,9 +21,9 @@ public class MogoMapUIController implements IMogoMapUIController { } public static MogoMapUIController getInstance() { - if ( sInstance == null ) { - synchronized ( MogoMapUIController.class ) { - if ( sInstance == null ) { + if (sInstance == null) { + synchronized (MogoMapUIController.class) { + if (sInstance == null) { sInstance = new MogoMapUIController(); } } @@ -36,64 +36,64 @@ public class MogoMapUIController implements IMogoMapUIController { } @Override - public void setTrafficEnabled( boolean visible ) { - if ( mDelegate != null ) { - mDelegate.setTrafficEnabled( visible ); + public void setTrafficEnabled(boolean visible) { + if (mDelegate != null) { + mDelegate.setTrafficEnabled(visible); } } @Override - public void changeZoom( boolean zoom ) { - if ( mDelegate != null ) { - mDelegate.changeZoom( zoom ); + public void changeZoom(boolean zoom) { + if (mDelegate != null) { + mDelegate.changeZoom(zoom); } } @Override - public void changeZoom( float zoom ) { - if ( mDelegate != null ) { - mDelegate.changeZoom( zoom ); + public void changeZoom(float zoom) { + if (mDelegate != null) { + mDelegate.changeZoom(zoom); } } @Override - public void changeMapMode( EnumMapUI mode ) { - if ( mDelegate != null ) { - mDelegate.changeMapMode( mode ); + public void changeMapMode(EnumMapUI mode) { + if (mDelegate != null) { + mDelegate.changeMapMode(mode); } } @Override - public void moveToCenter( MogoLatLng latLng ) { - if ( mDelegate != null ) { - mDelegate.moveToCenter( latLng ); + public void moveToCenter(MogoLatLng latLng) { + if (mDelegate != null) { + mDelegate.moveToCenter(latLng); } } @Override - public void showMyLocation( boolean visible ) { - if ( mDelegate != null ) { - mDelegate.showMyLocation( visible ); + public void showMyLocation(boolean visible) { + if (mDelegate != null) { + mDelegate.showMyLocation(visible); } } @Override public void recoverLockMode() { - if ( mDelegate != null ) { + if (mDelegate != null) { mDelegate.recoverLockMode(); } } @Override public void displayOverview() { - if ( mDelegate != null ) { + if (mDelegate != null) { mDelegate.displayOverview(); } } @Override public float getScalePerPixel() { - if ( mDelegate != null ) { + if (mDelegate != null) { return mDelegate.getScalePerPixel(); } return 0; @@ -101,7 +101,7 @@ public class MogoMapUIController implements IMogoMapUIController { @Override public float getZoomLevel() { - if ( mDelegate != null ) { + if (mDelegate != null) { return mDelegate.getZoomLevel(); } return 0; @@ -109,7 +109,7 @@ public class MogoMapUIController implements IMogoMapUIController { @Override public MogoLatLng getCameraNorthEastPosition() { - if ( mDelegate != null ) { + if (mDelegate != null) { return mDelegate.getCameraNorthEastPosition(); } return null; @@ -117,16 +117,23 @@ public class MogoMapUIController implements IMogoMapUIController { @Override public MogoLatLng getCameraSouthWestPosition() { - if ( mDelegate != null ) { + if (mDelegate != null) { return mDelegate.getCameraSouthWestPosition(); } return null; } + @Override public MogoLatLng getTarget() { + if (mDelegate != null) { + return mDelegate.getTarget(); + } + return null; + } + @Override - public void setPointToCenter( double mapCenterX, double mapCenterY ) { - if ( mDelegate != null ) { - mDelegate.setPointToCenter( mapCenterX, mapCenterY ); + public void setPointToCenter(double mapCenterX, double mapCenterY) { + if (mDelegate != null) { + mDelegate.setPointToCenter(mapCenterX, mapCenterY); } } } diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml index a793893503..7abf891f3c 100644 --- a/modules/mogo-module-main/src/main/AndroidManifest.xml +++ b/modules/mogo-module-main/src/main/AndroidManifest.xml @@ -18,9 +18,9 @@ - - - + + + diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt index c6b92c006c..3ff7d0d5fe 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt @@ -1,21 +1,29 @@ package com.mogo.module.navi.constants +import android.annotation.SuppressLint +import android.app.StatusBarManager import android.content.Context import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.map.marker.IMogoMarkerManager import com.mogo.map.navi.IMogoNavi +import com.mogo.map.uicontroller.IMogoMapUIController import com.mogo.service.MogoServicePaths import com.mogo.service.fragmentmanager.FragmentDescriptor import com.mogo.service.fragmentmanager.IMogoFragmentManager import com.mogo.service.map.IMogoMapService import com.mogo.service.module.IMogoRegisterCenter +import com.mogo.service.statusmanager.IMogoStatusManager +import kotlin.isInitialized as isInitialized1 /** *@author zyz * 2020-01-08. */ +@SuppressLint("StaticFieldLeak") object SearchServiceHolder { - +// 单例对象,要使用Application Context + private lateinit var context: Context val fragmentManager:IMogoFragmentManager = ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation() as IMogoFragmentManager @@ -25,8 +33,16 @@ object SearchServiceHolder { val listenerCenter:IMogoRegisterCenter = ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation() as IMogoRegisterCenter + val statusManager:IMogoStatusManager = ARouter.getInstance().build( + MogoServicePaths.PATH_STATUS_MANAGER + ).navigation() as IMogoStatusManager + + fun init(context: Context){ + this.context=context + } + fun push( fragment: Fragment, tag: String @@ -39,8 +55,18 @@ object SearchServiceHolder { } - fun getNavi(context: Context):IMogoNavi{ + fun getNavi():IMogoNavi{ return mapService.getNavi(context) } + fun getMapUIController(): IMogoMapUIController { + return mapService.mapUIController + } + + + + fun getMarkerManger():IMogoMarkerManager{ + return mapService.getMarkerManager(context) + } + } \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java index 369cf25c78..de9e7b1e93 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java @@ -10,6 +10,8 @@ import androidx.annotation.IdRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; +import com.mogo.module.common.MogoModulePaths; +import com.mogo.module.navi.constants.SearchServiceHolder; import com.mogo.utils.NetworkUtils; /** @@ -70,4 +72,13 @@ public abstract class BaseFragment extends Fragment { Toast.makeText( mContext, msg, Toast.LENGTH_LONG ).show(); } } + + + protected void setMarkerStatus(boolean show){ + SearchServiceHolder.INSTANCE.getStatusManager().setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, show + ); + } + + } 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 e0727b9007..eb41b4276e 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 @@ -11,8 +11,8 @@ import com.mogo.module.navi.bean.SearchPoi import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.ui.adapter.SearchCategoryAdapter import kotlinx.android.synthetic.main.fragment_search_category.cv_search_result +import kotlinx.android.synthetic.main.fragment_search_category.rv_search_result import kotlinx.android.synthetic.main.fragment_search_category.tv_navi_navi -import kotlinx.android.synthetic.main.fragment_setting_address.rv_search_result import kotlinx.android.synthetic.main.include_search_bar.et_navi_search import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back @@ -28,6 +28,9 @@ class CategorySearchFragment : BaseSearchFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) category=arguments?.getString("category") + SearchServiceHolder.statusManager.setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, false + ) } override fun getLayoutId(): Int { return R.layout.fragment_search_category @@ -83,6 +86,13 @@ class CategorySearchFragment : BaseSearchFragment() { } + override fun onDestroy() { + super.onDestroy() + SearchServiceHolder.statusManager.setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, false + ) + } + companion object{ fun newInstance( category:String):Fragment{ var bundle = Bundle() diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 4e5209e411..291f803492 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -40,12 +40,12 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { } override fun onCalculateSuccess() { - var calculatedStrategies = SearchServiceHolder.getNavi(activity!!) + var calculatedStrategies = SearchServiceHolder.getNavi() .calculatedStrategies - if (calculatedStrategies != null&&calculatedStrategies.size>0) { + if (calculatedStrategies != null && calculatedStrategies.size > 0) { mAdapter.setDatas(calculatedStrategies) - mAdapter.selectTag=calculatedStrategies[0].tagId + mAdapter.selectTag = calculatedStrategies[0].tagId } } @@ -61,6 +61,9 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mogoTip = arguments?.getParcelable(AMapConstants.KEY_PARCELABLE) + SearchServiceHolder.statusManager.setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, true + ) } override fun onViewCreated( @@ -70,14 +73,15 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { super.onViewCreated(view, savedInstanceState) iv_navi_back.setOnClickListener { SearchServiceHolder.fragmentManager.pop() - SearchServiceHolder.getNavi(context!!).clearCalculatePaths() + SearchServiceHolder.getNavi() + .clearCalculatePaths() } tv_navi_navi.text = getString(R.string.start_navi) et_navi_search.setText(getString(R.string.choose_path)) et_navi_search.isEnabled = false - SearchServiceHolder.getNavi(context!!) + SearchServiceHolder.getNavi() .naviTo(mogoTip?.point) SearchServiceHolder.listenerCenter.registerMogoNaviListener( @@ -91,12 +95,11 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { rv_search_result.adapter = mAdapter tv_navi_navi.setOnClickListener { - SearchServiceHolder.fragmentManager.clearAll() - SearchServiceHolder.getNavi(activity!!) + SearchServiceHolder.getNavi() .startNavi(false) } - SearchServiceHolder.getNavi(context!!) + SearchServiceHolder.getNavi() .setLineClickInteraction { mAdapter.setSelectTag(it) } @@ -104,11 +107,21 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { mAdapter.setOnClickListener { var item = it.getTag(R.id.tag_item) as MogoCalculatePath mAdapter.setSelectTag(item.tagId) - SearchServiceHolder.getNavi(context!!) + SearchServiceHolder.getNavi() .itemClickInteraction.onItemClicked(item.tagId) } } + override fun onDestroy() { + super.onDestroy() + SearchServiceHolder.listenerCenter.unregisterMogoNaviListener( + MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT + ) + SearchServiceHolder.statusManager.setSearchUIShow( + MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false + ) + } + companion object { fun newInstance(searchPoi: MogoTip): Fragment { var bundle = Bundle() 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 fd430efb94..cd8931cb66 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 @@ -81,6 +81,7 @@ public class SearchFragment extends BaseSearchFragment implements SearchView, Vi @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + SearchServiceHolder.INSTANCE.init(getActivity().getApplicationContext()); } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt index e406299042..e8115b04e3 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt @@ -1,52 +1,46 @@ package com.mogo.module.navi.ui.setting +import android.graphics.BitmapFactory import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment -import androidx.recyclerview.widget.LinearLayoutManager import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.map.search.inputtips.MogoTip +import com.mogo.map.marker.MogoMarkerOptions import com.mogo.module.common.MogoModulePaths import com.mogo.module.navi.R -import com.mogo.module.navi.bean.SearchPoi import com.mogo.module.navi.constants.AMapConstants import com.mogo.module.navi.constants.SearchServiceHolder -import com.mogo.module.navi.ui.adapter.SearchPoiAdapter import com.mogo.module.navi.ui.base.BaseFragment -import com.mogo.module.navi.ui.search.BaseSearchFragment -import kotlinx.android.synthetic.main.fragment_navi_setting.iv_back -import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back -import kotlinx.android.synthetic.main.fragment_setting_address.group_set_address -import kotlinx.android.synthetic.main.fragment_setting_address.rv_search_result -import kotlinx.android.synthetic.main.fragment_setting_address.tv_navi_choose_point -import kotlinx.android.synthetic.main.fragment_setting_address.tv_navi_my_location import kotlinx.android.synthetic.main.fragment_setting_address.tv_set_as_home -import kotlinx.android.synthetic.main.include_search_bar.et_navi_search +import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back /** * @author zyz * 2020-01-07. */ @Route(path = MogoModulePaths.PATH_FRAGMENT_SETTING_HOME) -class SettingAddressFragment : BaseSearchFragment() { - override fun renderSearchPoiResult( - datums: MutableList?, - showDelete: Boolean - ) { - mAdapter.setDatas(datums) - group_set_address.visibility = View.GONE - rv_search_result.visibility = View.VISIBLE - - } - - override fun showHistory(datums: MutableList?) { - } +class SettingAddressFragment : BaseFragment() { +// override fun renderSearchPoiResult( +// datums: MutableList?, +// showDelete: Boolean +// ) { +// mAdapter.setDatas(datums) +// group_set_address.visibility = View.GONE +// rv_search_result.visibility = View.VISIBLE +// +// } +// +// override fun showHistory(datums: MutableList?) { +// } + private val TAG:String="SettingAddressFragment" private var style: Int = 0 - private lateinit var mAdapter: SearchPoiAdapter override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) style = arguments?.getInt(AMapConstants.KEY_SET_HOME_COMPONY) ?: 0 + setMarkerStatus(true) + SearchServiceHolder.getMapUIController().showMyLocation(false) + } override fun getLayoutId(): Int { @@ -61,9 +55,7 @@ class SettingAddressFragment : BaseSearchFragment() { return style == 1 } - fun isSearch(): Boolean { - return group_set_address.visibility == View.GONE - } + override fun onViewCreated( view: View, @@ -78,46 +70,38 @@ class SettingAddressFragment : BaseSearchFragment() { tv_set_as_home.text = resources.getString(R.string.set_as_compony_navi) } - mAdapter = SearchPoiAdapter(activity, ArrayList()) - - rv_search_result.layoutManager = - LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false) - - rv_search_result.adapter = mAdapter iv_navi_back.setOnClickListener { - if (group_set_address.visibility == View.VISIBLE) { - SearchServiceHolder.fragmentManager.pop() - } else { - reset() - } + SearchServiceHolder.fragmentManager.pop() } + var target = SearchServiceHolder.getMapUIController() + .target + + var decodeResource = BitmapFactory.decodeResource(resources, R.mipmap.icon_choose_position) + val options = MogoMarkerOptions() + .icon(decodeResource) + .latitude(target.lat.toDouble()) + .owner(TAG) + .longitude(target.lng.toDouble()) + var addMarker = SearchServiceHolder.getMarkerManger() + .addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options) + - tv_navi_choose_point.setOnClickListener { - group_set_address.visibility = View.GONE - tv_set_as_home.visibility = View.VISIBLE - } - tv_navi_my_location.setOnClickListener { - group_set_address.visibility = View.GONE - tv_set_as_home.visibility = View.VISIBLE - } } - private fun reset() { - group_set_address.visibility = View.VISIBLE - rv_search_result.visibility = View.GONE - mAdapter.clear() - et_navi_search.setText("") - tv_set_as_home.visibility = View.GONE + override fun onDestroy() { + super.onDestroy() + setMarkerStatus(true) + SearchServiceHolder.getMapUIController().showMyLocation(true) } + companion object { fun newInstance(type: Int = 0): Fragment { - var settingAddressFragment = SettingAddressFragment() val bundle = Bundle() bundle.putInt(AMapConstants.KEY_SET_HOME_COMPONY, type) 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 75cdaf87f6..ed0f0a99cd 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 @@ -121,6 +121,9 @@ android:layout_marginTop="@dimen/dp_32" android:layout_width="600dp" android:layout_height="0dp" + android:gravity="center" + android:textColor="@color/white" + android:textSize="@dimen/txt_large" app:layout_constraintBottom_toBottomOf="@id/tv_navi_wash" android:background="@drawable/shape_round_gray" app:layout_constraintTop_toBottomOf="@id/ll_navi_search" diff --git a/modules/mogo-module-search/src/main/res/layout/fragment_setting_address.xml b/modules/mogo-module-search/src/main/res/layout/fragment_setting_address.xml index cf04d068c7..decb6eea15 100644 --- a/modules/mogo-module-search/src/main/res/layout/fragment_setting_address.xml +++ b/modules/mogo-module-search/src/main/res/layout/fragment_setting_address.xml @@ -11,52 +11,6 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/res/values/dimens.xml b/modules/mogo-module-search/src/main/res/values/dimens.xml index a5f6465305..8928f1fa1e 100644 --- a/modules/mogo-module-search/src/main/res/values/dimens.xml +++ b/modules/mogo-module-search/src/main/res/values/dimens.xml @@ -3,4 +3,5 @@ @dimen/sp_32 @dimen/dp_60 @dimen/sp_40 + 25sp \ No newline at end of file From b5dfac1c2da7311e800ee798b9be8ccf7ff07010 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 10 Jan 2020 15:32:35 +0800 Subject: [PATCH 2/6] opt --- .../com/mogo/launcher/MogoApplication.java | 2 +- .../map/impl/amap/AMapNaviViewWrapper.java | 10 ++- .../java/com/mogo/map/marker/IMogoMarker.java | 5 ++ .../com/mogo/map/uicontroller/EnumMapUI.java | 9 ++- .../module/extensions/anim/JSurfaceView.java | 2 +- .../com/mogo/module/map/MapPresenter.java | 46 +++++++++++--- .../com/mogo/module/map/VoiceConstants.java | 63 +++++++++++++++++-- .../com/mogo/module/service/ServiceConst.java | 2 +- .../tanlu/fragment/TanluCardViewFragment.java | 2 +- .../tanlu/fragment/TanluCardViewProvider.java | 2 +- 10 files changed, 120 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index c34b0e72b4..bb32ee6236 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -28,7 +28,7 @@ public class MogoApplication extends AbsMogoApplication { // MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); DebugConfig.setNetMode( DebugConfig.NET_MODE_QA ); MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, "CARD_TYPE_ROAD_ONLINECAR")); - MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CODITION" ) ); + MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, "CARD_TYPE_ROAD_CONDITION" ) ); MogoModulePaths.addModule(new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); MogoModulePaths.addModule(new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE) ); } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 150fa1c5dd..b7a14bf192 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -130,7 +130,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, } mMapView.setRouteOverlayVisible( false ); mMapView.setCarOverlayVisible( false ); - mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE ); + mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE ); } } @@ -378,6 +378,10 @@ public class AMapNaviViewWrapper implements IMogoMapView, case Type_Night: options.setNaviNight( true ); break; + case Type_AUTO_LIGHT_Night: + options.setNaviNight( false ); + options.setAutoNaviViewNightMode( true ); + break; } mMapView.setViewOptions( options ); } @@ -425,7 +429,9 @@ public class AMapNaviViewWrapper implements IMogoMapView, @Override public void displayOverview() { if ( checkAMapView() ) { - mMapView.displayOverview(); + if ( NaviClient.getInstance( getContext() ).isNaviing() ) { + mMapView.displayOverview(); + } } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java index 3e6928da2d..46efbd15ec 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java @@ -107,6 +107,11 @@ public interface IMogoMarker { */ void setPosition( double lat, double lng ); + /** + * 获取坐标点 + * + * @return + */ MogoLatLng getPosition(); /** diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/EnumMapUI.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/EnumMapUI.java index 560cb92a30..bae12fe5a7 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/EnumMapUI.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/EnumMapUI.java @@ -25,12 +25,17 @@ public enum EnumMapUI { /** * 白天模式 */ - Type_Light( 3, 4 ), + Type_Light( 3, 5 ), /** * 夜晚模式 */ - Type_Night( 4, 3 ); + Type_Night( 4, 4 ), + + /** + * 夜晚模式 + */ + Type_AUTO_LIGHT_Night( 5, 3 ); private int next; private int code; diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java index 6d4c941c8e..51fa4b404a 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java @@ -50,7 +50,7 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder private void init() { mHolder = getHolder(); mHolder.addCallback( this ); - setZOrderOnTop( false ); + setZOrderOnTop( true ); mHolder.setFormat( PixelFormat.TRANSLUCENT ); } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index a7964b911b..5e6fa0e289 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -7,11 +7,18 @@ import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.map.navi.IMogoNavi; import com.mogo.map.uicontroller.EnumMapUI; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.map.IMogoMapService; import com.mogo.service.voice.IMogoVoiceListener; +import com.mogo.utils.logger.Logger; + +import java.util.Map; /** * @author congtaowang @@ -21,6 +28,9 @@ import com.mogo.service.voice.IMogoVoiceListener; */ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceListener, IMogoVoiceCmdCallBack { + private static final String TAG = "MapPresenter"; + + private IMogoMapService mMogoMapService; public MapPresenter( MapView view ) { super( view ); @@ -29,18 +39,19 @@ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceList @Override public void onCreate( @NonNull LifecycleOwner owner ) { super.onCreate( owner ); + mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() ); registerUnWakeupCmd(); } private void registerUnWakeupCmd() { - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_ZOOM_IN, VoiceConstants.CMD_MAP_ZOOM_IN_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_ZOOM_OUT, VoiceConstants.CMD_MAP_ZOOM_OUT_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_2D, VoiceConstants.CMD_MAP_2D_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_3D, VoiceConstants.CMD_MAP_3D_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_LIGHT_MODE, VoiceConstants.CMD_MAP_LIGHT_MODE_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_NIGHT_MODE, VoiceConstants.CMD_MAP_NIGHT_MODE_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_TRAFFIC_MODE, VoiceConstants.CMD_MAP_TRAFFIC_MODE_WAKE_UP_WORDS, this ); - AIAssist.getInstance( getContext() ).registerUnWakeupCommand( VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE, VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_WAKE_UP_WORDS, this ); + if ( VoiceConstants.sUnWakeupCmds.isEmpty() ) { + Logger.w( TAG, "no unwakeup words" ); + return; + } + + for ( Map.Entry< String, String[] > entry : VoiceConstants.sUnWakeupCmds.entrySet() ) { + AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this ); + } } @Override @@ -111,7 +122,7 @@ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceList * @param action actionType = 0 -> 0 - 开、1 - 关 * actionType = 1 -> 0 - 放大地图、1 - 缩小地图 * actionType = 2 -> 0 - 切换到2D车头朝上、1 - 切换2D正北模式、2 - 切换3D车头朝上 - * actionType = 3 -> 0 - 黑夜、1 - 正常 + * actionType = 3 -> 0 - 黑夜、1 - 正常、2 - 自动 */ public void onMapUISetting( int actionType, int action ) { switch ( actionType ) { @@ -146,6 +157,8 @@ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceList mView.getUIController().changeMapMode( EnumMapUI.Type_Night ); } else if ( action == 1 ) { mView.getUIController().changeMapMode( EnumMapUI.Type_Light ); + } else if( action == 2){ + mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night ); } break; } @@ -178,6 +191,21 @@ public class MapPresenter extends Presenter< MapView > implements IMogoVoiceList case VoiceConstants.CMD_MAP_NIGHT_MODE: onMapUISetting( 3, 0 ); break; + case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE: + onMapUISetting( 3, 2 ); + break; + case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE: + mMogoMapService.getMapUIController().displayOverview(); + break; + case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE: + mMogoMapService.getMapUIController().recoverLockMode(); + break; + case VoiceConstants.CMD_MAP_CAR_UP_MODE: + mMogoMapService.getMapUIController().changeMapMode( EnumMapUI.CarUp_2D ); + break; + case VoiceConstants.CMD_MAP_NORTH_UP_MODE: + mMogoMapService.getMapUIController().changeMapMode( EnumMapUI.NorthUP_2D ); + break; } } diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java index 2a34dd679f..5fde381bd2 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/VoiceConstants.java @@ -1,5 +1,8 @@ package com.mogo.module.map; +import java.util.HashMap; +import java.util.Map; + /** * @author congtaowang * @since 2020-01-09 @@ -99,12 +102,13 @@ public class VoiceConstants { * 2D模式 */ public static final String CMD_MAP_2D = "CMD_MAP_2D"; - public static final String[] CMD_MAP_2D_WAKE_UP_WORDS = {"2D模式"}; + public static final String[] CMD_MAP_2D_WAKE_UP_WORDS = {"二地模式"}; + /** * 3D模式 */ public static final String CMD_MAP_3D = "CMD_MAP_3D"; - public static final String[] CMD_MAP_3D_WAKE_UP_WORDS = {"3D模式"}; + public static final String[] CMD_MAP_3D_WAKE_UP_WORDS = {"三地模式"}; /** * 白天模式 @@ -116,18 +120,67 @@ public class VoiceConstants { * 黑夜模式 */ public static final String CMD_MAP_NIGHT_MODE = "CMD_MAP_NIGHT_MODE"; - public static final String[] CMD_MAP_NIGHT_MODE_WAKE_UP_WORDS = {"黑夜模式"}; + public static final String[] CMD_MAP_NIGHT_MODE_WAKE_UP_WORDS = {"夜间模式"}; + + /** + * 自动模式 + */ + public static final String CMD_MAP_AUTO_LIGHT_NIGHT_MODE = "CMD_MAP_AUTO_LIGHT_NIGHT_MODE"; + public static final String[] CMD_MAP_AUTO_LIGHT_NIGHT_MODE_WAKE_UP_WORDS = {"自动模式"}; /** * 查看路况 */ public static final String CMD_MAP_TRAFFIC_MODE = "CMD_MAP_TRAFFIC_MODE"; - public static final String[] CMD_MAP_TRAFFIC_MODE_WAKE_UP_WORDS = {"查看路况"}; + public static final String[] CMD_MAP_TRAFFIC_MODE_WAKE_UP_WORDS = {"打开路况", "打开实况"}; /** * 关闭路况 */ public static final String CMD_MAP_UN_TRAFFIC_MODE = "CMD_MAP_UN_TRAFFIC_MODE"; - public static final String[] CMD_MAP_UN_TRAFFIC_MODE_WAKE_UP_WORDS = {"关闭路况"}; + public static final String[] CMD_MAP_UN_TRAFFIC_MODE_WAKE_UP_WORDS = {"关闭路况","关闭实况"}; + + /** + * 导航全览 + */ + public static final String CMD_MAP_DISPLAY_OVERVIEW_MODE = "CMD_MAP_DISPLAY_OVERVIEW_MODE"; + public static final String[] CMD_MAP_DISPLAY_OVERVIEW_MODE_WAKE_UP_WORDS = {"进入全览", "查看全程"}; + + /** + * 继续导航 + */ + public static final String CMD_MAP_CONTINUE_NAVI_MODE = "CMD_MAP_CONTINUE_NAVI_MODE"; + public static final String[] CMD_MAP_CONTINUE_NAVI_MODE_MODE_WAKE_UP_WORDS = {"继续导航"}; + + /** + * 车头朝上 + */ + public static final String CMD_MAP_CAR_UP_MODE = "CMD_MAP_CAR_UP_MODE"; + public static final String[] CMD_MAP_CAR_UP_MODE_WAKE_UP_WORDS = {"车头朝上"}; + + /** + * 北朝上 + */ + public static final String CMD_MAP_NORTH_UP_MODE = "CMD_MAP_NORTH_UP_MODE"; + public static final String[] CMD_MAP_NORTH_UP_MODE_WAKE_UP_WORDS = {"北朝上"}; + + public static final Map< String, String[] > sUnWakeupCmds = new HashMap<>(); + + + static { + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_ZOOM_IN, VoiceConstants.CMD_MAP_ZOOM_IN_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_ZOOM_OUT, VoiceConstants.CMD_MAP_ZOOM_OUT_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_2D, VoiceConstants.CMD_MAP_2D_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_3D, VoiceConstants.CMD_MAP_3D_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_LIGHT_MODE, VoiceConstants.CMD_MAP_LIGHT_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_NIGHT_MODE, VoiceConstants.CMD_MAP_NIGHT_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_TRAFFIC_MODE, VoiceConstants.CMD_MAP_TRAFFIC_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE, VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE, VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE, VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE, VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_CAR_UP_MODE, VoiceConstants.CMD_MAP_CAR_UP_MODE_WAKE_UP_WORDS ); + sUnWakeupCmds.put( VoiceConstants.CMD_MAP_NORTH_UP_MODE, VoiceConstants.CMD_MAP_NORTH_UP_MODE_WAKE_UP_WORDS ); + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index 40d2849481..46f1cff8a6 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -36,7 +36,7 @@ public class ServiceConst { /** * 卡片 探路数据 */ - public static final String CARD_TYPE_ROAD_CODITION = "CARD_TYPE_ROAD_CODITION"; + public static final String CARD_TYPE_ROAD_CONDITION = "CARD_TYPE_ROAD_CONDITION"; /** * 卡片 分享音乐 diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java index 6be31d2b46..49e0392f42 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java @@ -352,7 +352,7 @@ public class TanluCardViewFragment extends MvpFragment> public void onPerform() { Logger.d(TAG, "tanlu卡片 有效 ---->"); mMarkerManager = mMogoMapService.getMarkerManager(getActivity()); - List markers = mMarkerManager.getMarkers("CARD_TYPE_ROAD_CODITION"); + List markers = mMarkerManager.getMarkers("CARD_TYPE_ROAD_CONDITION"); if (markers != null && markers.size() > 0) { mEmptyLayout.setVisibility(View.GONE); mRootLayout.setVisibility(View.VISIBLE); diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java index 882fdf0f15..1d40495348 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewProvider.java @@ -45,7 +45,7 @@ public class TanluCardViewProvider implements IMogoModuleProvider { @Override public String getModuleName() { - return "CARD_TYPE_ROAD_CODITION"; + return "CARD_TYPE_ROAD_CONDITION"; } @Override From 3597505a3483186cfb098d5df051b9738d0c4bc2 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 10 Jan 2020 15:55:01 +0800 Subject: [PATCH 3/6] add adapter --- .idea/misc.xml | 2 +- .../map/location/IMogoLocationClient.java | 5 ++ modules/mogo-module-common/build.gradle | 11 +++- .../adapter/MogoMapListenerAdapter.java | 52 +++++++++++++++++++ 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 modules/mogo-module-common/src/main/java/com/mogo/module/common/adapter/MogoMapListenerAdapter.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 703e5d4b89..8a8f75bfe2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java index 3dd0406c2a..0c724f645e 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java @@ -39,6 +39,11 @@ public interface IMogoLocationClient { */ void removeLocationListener( IMogoLocationListener listener ); + /** + * 返回上一次有效定位 + * + * @return + */ MogoLocation getLastKnowLocation(); void destroy(); diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index a73706e0f3..df6bc596ba 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -27,8 +27,17 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat if (Boolean.valueOf(RELEASE)) { + api rootProject.ext.dependencies.mogomap + api rootProject.ext.dependencies.mogomapapi + api rootProject.ext.dependencies.mogoutils + api rootProject.ext.dependencies.mogocommons + api rootProject.ext.dependencies.mogoserviceapi } else { - + api project(":libraries:mogo-map") + api project(":libraries:mogo-map-api") + api project(":foudations:mogo-utils") + api project(":foudations:mogo-commons") + api project(':services:mogo-service-api') } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/adapter/MogoMapListenerAdapter.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/adapter/MogoMapListenerAdapter.java new file mode 100644 index 0000000000..2d21ddc754 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/adapter/MogoMapListenerAdapter.java @@ -0,0 +1,52 @@ +package com.mogo.module.common.adapter; + +import android.view.MotionEvent; + +import com.mogo.map.MogoLatLng; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.model.MogoPoi; +import com.mogo.map.uicontroller.EnumMapUI; + +/** + * @author congtaowang + * @since 2020-01-10 + *

+ * 适配器 + */ +public abstract class MogoMapListenerAdapter implements IMogoMapListener { + + @Override + public void onMapLoaded() { + + } + + @Override + public void onTouch( MotionEvent motionEvent ) { + + } + + @Override + public void onPOIClick( MogoPoi poi ) { + + } + + @Override + public void onMapClick( MogoLatLng latLng ) { + + } + + @Override + public void onLockMap( boolean isLock ) { + + } + + @Override + public void onMapModeChanged( EnumMapUI ui ) { + + } + + @Override + public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { + + } +} From fdecf6a2de1a20240769cd13b7592c67dc21c743 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Fri, 10 Jan 2020 16:34:18 +0800 Subject: [PATCH 4/6] opt --- .../mogo/map/impl/amap/AMapNaviViewWrapper.java | 16 +++++++++++++++- .../map/impl/amap/marker/AMapMarkerWrapper.java | 8 ++++++++ .../impl/amap/uicontroller/AMapUIController.java | 10 ++++++++++ .../java/com/mogo/map/marker/IMogoMarker.java | 8 ++++++++ .../map/uicontroller/IMogoMapUIController.java | 10 ++++++++++ .../java/com/mogo/map/MogoMapUIController.java | 10 ++++++++++ .../extensions/entrance/EntranceFragment.java | 9 ++++++++- .../src/main/AndroidManifest.xml | 6 +++--- 8 files changed, 72 insertions(+), 5 deletions(-) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index bbc77b4409..0890090d00 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -3,6 +3,7 @@ package com.mogo.map.impl.amap; import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Point; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; @@ -495,7 +496,8 @@ public class AMapNaviViewWrapper implements IMogoMapView, return null; } - @Override public MogoLatLng getTarget() { + @Override + public MogoLatLng getTarget() { try { return ObjectUtils.fromAMap( mMapView.getMap().getCameraPosition().target ); } catch ( Exception e ) { @@ -512,4 +514,16 @@ public class AMapNaviViewWrapper implements IMogoMapView, mMapView.setViewOptions( options ); } } + + @Override + public Point getLocationPointInScreen( MogoLatLng latLng ) { + if ( checkAMapView() ) { + try { + return mMapView.getMap().getProjection().toScreenLocation( ObjectUtils.fromMogo2( latLng ) ); + } catch ( Exception e ) { + return null; + } + } + return null; + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java index 61891b1f92..ac464d5de0 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/marker/AMapMarkerWrapper.java @@ -1,6 +1,7 @@ package com.mogo.map.impl.amap.marker; import android.graphics.Bitmap; +import android.graphics.Point; import android.view.View; import com.amap.api.maps.model.BitmapDescriptor; @@ -281,4 +282,11 @@ public class AMapMarkerWrapper implements IMogoMarker, Observer { public String getOwner() { return this.mOwner == null ? mMogoMarkerOptions.getOwner() : mOwner; } + + @Override + public void setPositionByPixels( Point position ) { + if ( mMarker != null ) { + mMarker.setPositionByPixels( position.x, position.y ); + } + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index 73813df119..99c9a7e88a 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -1,5 +1,7 @@ package com.mogo.map.impl.amap.uicontroller; +import android.graphics.Point; + import com.mogo.map.MogoLatLng; import com.mogo.map.MogoMap; import com.mogo.map.uicontroller.EnumMapUI; @@ -143,4 +145,12 @@ public class AMapUIController implements IMogoMapUIController { mClient.setPointToCenter( mapCenterX, mapCenterY ); } } + + @Override + public Point getLocationPointInScreen( MogoLatLng latLng ) { + if ( mClient != null ) { + return mClient.getLocationPointInScreen( latLng ); + } + return null; + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java index 46efbd15ec..e9640ab43c 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/marker/IMogoMarker.java @@ -1,6 +1,7 @@ package com.mogo.map.marker; import android.graphics.Bitmap; +import android.graphics.Point; import com.mogo.map.MogoLatLng; @@ -214,4 +215,11 @@ public interface IMogoMarker { * @return */ String getOwner(); + + /** + * 设置marker在window的位置 + * + * @param position window 的位置。 + */ + void setPositionByPixels( Point position ); } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index e87b0a3682..9bedc384c0 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -1,5 +1,7 @@ package com.mogo.map.uicontroller; +import android.graphics.Point; + import com.mogo.map.MogoLatLng; /** @@ -102,4 +104,12 @@ public interface IMogoMapUIController { * @param mapCenterY y 点位置x值与地图高度的比例 */ void setPointToCenter( double mapCenterX, double mapCenterY ); + + /** + * 获取经纬度对应的屏幕的位置 + * + * @param latLng + * @return + */ + Point getLocationPointInScreen( MogoLatLng latLng ); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 5b54dbb5ca..744ed62532 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -1,5 +1,7 @@ package com.mogo.map; +import android.graphics.Point; + import com.mogo.map.impl.amap.uicontroller.AMapUIController; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; @@ -136,4 +138,12 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.setPointToCenter(mapCenterX, mapCenterY); } } + + @Override + public Point getLocationPointInScreen( MogoLatLng latLng ) { + if (mDelegate != null) { + return mDelegate.getLocationPointInScreen(latLng); + } + return null; + } } 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 37ab97b7b6..d1eefcb5a3 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 @@ -1,5 +1,6 @@ package com.mogo.module.extensions.entrance; +import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; @@ -15,6 +16,8 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.MogoLocation; +import com.mogo.map.marker.IMogoMarkerManager; +import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.IMogoNaviListener; @@ -63,6 +66,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private IMogoLocationClient mMogoLocationClient; private IMogoNavi mMogoNavi; private IMogoFragmentManager mMogoFragmentManager; + private IMogoMarkerManager mMogoMarkerManager; private IMogoRegisterCenter mMogoRegisterCenter; @@ -80,7 +84,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override protected void initViews() { mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation(); - mCommonAddress = findViewById( R.id.module_entrance_id_common_address ); mSearch = findViewById( R.id.module_entrance_id_search ); @@ -97,6 +100,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCompany = findViewById( R.id.module_entrance_id_company ); mCompany.setOnClickListener( view -> { + mMogoMarkerManager.addMarker( "tag", new MogoMarkerOptions().owner( "tag" ) + .latitude( 39.000 ).longitude( 136.000 ).icon( BitmapFactory.decodeResource( getResources(), R.drawable.module_ext_ic_voice ) ).anchor( 0.5f, 0.5f ) ); } ); mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition ); @@ -146,6 +151,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mMogoRegisterCenter.registerMogoNaviListener( ExtensionsModuleConst.TYPE_ENTRANCE, this ); mMogoRegisterCenter.registerMogoMapListener( ExtensionsModuleConst.TYPE_ENTRANCE, this ); + + mMogoMarkerManager = mService.getMarkerManager( getContext() ); } diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml index 7abf891f3c..a793893503 100644 --- a/modules/mogo-module-main/src/main/AndroidManifest.xml +++ b/modules/mogo-module-main/src/main/AndroidManifest.xml @@ -18,9 +18,9 @@ - - - + + + From 58f8c53116471e9f57cc6818c4248bf93b103c46 Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Fri, 10 Jan 2020 17:36:49 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E9=80=86=E5=9C=B0=E7=90=86=E7=BC=96?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/impl/amap/AMapNaviViewWrapper.java | 2 +- .../amap/uicontroller/AMapUIController.java | 2 +- .../uicontroller/IMogoMapUIController.java | 2 +- .../com/mogo/map/MogoMapUIController.java | 4 +- .../navi/constants/SearchServiceHolder.kt | 36 +++--- .../module/navi/ui/base/BaseFragment.java | 14 +++ .../navi/ui/setting/SettingAddressFragment.kt | 112 ++++++++++++------ .../src/main/res/values/strings.xml | 1 + 8 files changed, 117 insertions(+), 56 deletions(-) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 0890090d00..dd29093db8 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -497,7 +497,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, } @Override - public MogoLatLng getTarget() { + public MogoLatLng getWindowCenterLocation() { try { return ObjectUtils.fromAMap( mMapView.getMap().getCameraPosition().target ); } catch ( Exception e ) { diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index 99c9a7e88a..584a88ee3c 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -132,7 +132,7 @@ public class AMapUIController implements IMogoMapUIController { return null; } - @Override public MogoLatLng getTarget() { + @Override public MogoLatLng getWindowCenterLocation() { if ( mClient != null ) { return mClient.getCameraSouthWestPosition(); } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 9bedc384c0..04b6bf7cf0 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -95,7 +95,7 @@ public interface IMogoMapUIController { * * @return */ - MogoLatLng getTarget(); + MogoLatLng getWindowCenterLocation(); /** * 设置地图中心点 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 744ed62532..8071a90446 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -125,9 +125,9 @@ public class MogoMapUIController implements IMogoMapUIController { return null; } - @Override public MogoLatLng getTarget() { + @Override public MogoLatLng getWindowCenterLocation() { if (mDelegate != null) { - return mDelegate.getTarget(); + return mDelegate.getWindowCenterLocation(); } return null; } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt index 3ff7d0d5fe..4073ef2887 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt @@ -5,8 +5,10 @@ import android.app.StatusBarManager import android.content.Context import androidx.fragment.app.Fragment import com.alibaba.android.arouter.launcher.ARouter +import com.amap.api.services.interfaces.IGeocodeSearch import com.mogo.map.marker.IMogoMarkerManager import com.mogo.map.navi.IMogoNavi +import com.mogo.map.search.geo.IMogoGeoSearch import com.mogo.map.uicontroller.IMogoMapUIController import com.mogo.service.MogoServicePaths import com.mogo.service.fragmentmanager.FragmentDescriptor @@ -22,28 +24,28 @@ import kotlin.isInitialized as isInitialized1 */ @SuppressLint("StaticFieldLeak") object SearchServiceHolder { -// 单例对象,要使用Application Context + // 单例对象,要使用Application Context private lateinit var context: Context - val fragmentManager:IMogoFragmentManager = ARouter.getInstance().build( + val fragmentManager: IMogoFragmentManager = ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation() as IMogoFragmentManager - val mapService:IMogoMapService = ARouter.getInstance().build( + val mapService: IMogoMapService = ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation() as IMogoMapService - val listenerCenter:IMogoRegisterCenter = ARouter.getInstance().build( + val listenerCenter: IMogoRegisterCenter = ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation() as IMogoRegisterCenter - val statusManager:IMogoStatusManager = ARouter.getInstance().build( - MogoServicePaths.PATH_STATUS_MANAGER + val statusManager: IMogoStatusManager = ARouter.getInstance().build( + MogoServicePaths.PATH_STATUS_MANAGER ).navigation() as IMogoStatusManager + var geoSearch: IMogoGeoSearch? = null - - fun init(context: Context){ - this.context=context + fun init(context: Context) { + this.context = context } - fun push( + fun push( fragment: Fragment, tag: String ) { @@ -54,8 +56,7 @@ object SearchServiceHolder { fragmentManager.push(build) } - - fun getNavi():IMogoNavi{ + fun getNavi(): IMogoNavi { return mapService.getNavi(context) } @@ -63,10 +64,15 @@ object SearchServiceHolder { return mapService.mapUIController } - - - fun getMarkerManger():IMogoMarkerManager{ + fun getMarkerManger(): IMogoMarkerManager { return mapService.getMarkerManager(context) } + fun getGeoSearcher(): IMogoGeoSearch { + if (geoSearch == null) { + geoSearch = mapService.getGeoSearch(context) + } + return geoSearch!! + } + } \ No newline at end of file diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java index de9e7b1e93..027aa724ce 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/base/BaseFragment.java @@ -80,5 +80,19 @@ public abstract class BaseFragment extends Fragment { ); } + /** + * 移动地图中心点到屏幕中心 + */ + protected void moveMapToCenter(){ + SearchServiceHolder.INSTANCE.getMapUIController().setPointToCenter(0.5,0.5); + } + + //mMogoMapUIController.setPointToCenter( 0.66145, 0.590688 ); + /** + * 移动地图中心点到屏幕右侧 + */ + protected void moveMapToRight(){ + SearchServiceHolder.INSTANCE.getMapUIController().setPointToCenter(0.66145, 0.590688); + } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt index e8115b04e3..d186fc7eb8 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt @@ -5,13 +5,25 @@ import android.os.Bundle import android.view.View import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.map.MogoLatLng +import com.mogo.map.listener.IMogoMapListener +import com.mogo.map.location.IMogoLocationListener +import com.mogo.map.location.MogoLocation +import com.mogo.map.marker.IMogoMarker import com.mogo.map.marker.MogoMarkerOptions +import com.mogo.map.search.geo.IMogoGeoSearchListener +import com.mogo.map.search.geo.MogoGeocodeResult +import com.mogo.map.search.geo.MogoRegeocodeResult +import com.mogo.map.search.geo.query.MogoRegeocodeQuery import com.mogo.module.common.MogoModulePaths +import com.mogo.module.common.adapter.MogoMapListenerAdapter import com.mogo.module.navi.R +import com.mogo.module.navi.R.string import com.mogo.module.navi.constants.AMapConstants import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.ui.base.BaseFragment import kotlinx.android.synthetic.main.fragment_setting_address.tv_set_as_home +import kotlinx.android.synthetic.main.include_search_bar.et_navi_search import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back /** @@ -19,27 +31,49 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back * 2020-01-07. */ @Route(path = MogoModulePaths.PATH_FRAGMENT_SETTING_HOME) -class SettingAddressFragment : BaseFragment() { -// override fun renderSearchPoiResult( -// datums: MutableList?, -// showDelete: Boolean -// ) { -// mAdapter.setDatas(datums) -// group_set_address.visibility = View.GONE -// rv_search_result.visibility = View.VISIBLE -// -// } -// -// override fun showHistory(datums: MutableList?) { -// } +class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener { + override fun onRegeocodeSearched(regeocodeResult: MogoRegeocodeResult?) { - private val TAG:String="SettingAddressFragment" + et_navi_search.setText(regeocodeResult?.regeocodeAddress?.formatAddress) + } + + override fun onGeocodeSearched(geocodeResult: MogoGeocodeResult?) { + + } + + private val TAG: String = "SettingAddressFragment" private var style: Int = 0 + var addMarker: IMogoMarker? = null + + private var mapListener: IMogoMapListener = object : MogoMapListenerAdapter() { + override fun onMapChanged( + latLng: MogoLatLng?, + zoom: Float, + tilt: Float, + bearing: Float + ) { + super.onMapChanged(latLng, zoom, tilt, bearing) + var mogoRegeocodeQuery = MogoRegeocodeQuery() + mogoRegeocodeQuery.point = latLng + SearchServiceHolder.getGeoSearcher() + .getFromLocationAsyn(mogoRegeocodeQuery) + + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) style = arguments?.getInt(AMapConstants.KEY_SET_HOME_COMPONY) ?: 0 setMarkerStatus(true) - SearchServiceHolder.getMapUIController().showMyLocation(false) + SearchServiceHolder.listenerCenter.registerMogoMapListener( + MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, mapListener + ) + SearchServiceHolder.getMapUIController() + .showMyLocation(false) + moveMapToCenter() + + SearchServiceHolder.getGeoSearcher() + .setGeoSearchListener(this) } @@ -55,8 +89,6 @@ class SettingAddressFragment : BaseFragment() { return style == 1 } - - override fun onViewCreated( view: View, savedInstanceState: Bundle? @@ -70,36 +102,44 @@ class SettingAddressFragment : BaseFragment() { tv_set_as_home.text = resources.getString(R.string.set_as_compony_navi) } - - iv_navi_back.setOnClickListener { SearchServiceHolder.fragmentManager.pop() } - var target = SearchServiceHolder.getMapUIController() - .target - - var decodeResource = BitmapFactory.decodeResource(resources, R.mipmap.icon_choose_position) - val options = MogoMarkerOptions() - .icon(decodeResource) - .latitude(target.lat.toDouble()) - .owner(TAG) - .longitude(target.lng.toDouble()) - var addMarker = SearchServiceHolder.getMarkerManger() - .addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options) - - + et_navi_search.isEnabled = false + et_navi_search.setText(getString(string.drag_map_to_choose)) + var location = SearchServiceHolder.getMapUIController() + .windowCenterLocation + if (addMarker == null) { + var decodeResource = BitmapFactory.decodeResource(resources, R.mipmap.icon_choose_position) + val options = MogoMarkerOptions() + .icon(decodeResource) + .latitude(location?.lat ?: 0.0) + .owner(TAG) + .anchor(0.5f, 0.5f) + .longitude(location?.lng ?: 0.0) + addMarker = SearchServiceHolder.getMarkerManger() + .addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options) + var locationPointInScreen = SearchServiceHolder.getMapUIController() + .getLocationPointInScreen(location) + addMarker?.setPositionByPixels(locationPointInScreen) + } } - override fun onDestroy() { - super.onDestroy() + override fun onDestroyView() { + super.onDestroyView() setMarkerStatus(true) - SearchServiceHolder.getMapUIController().showMyLocation(true) + SearchServiceHolder.getMapUIController() + .showMyLocation(true) + SearchServiceHolder.listenerCenter.unregisterMogoMapListener( + MogoModulePaths.PATH_FRAGMENT_SETTING_HOME + ) + addMarker?.destroy() + moveMapToRight() } - companion object { fun newInstance(type: Int = 0): Fragment { var settingAddressFragment = SettingAddressFragment() diff --git a/modules/mogo-module-search/src/main/res/values/strings.xml b/modules/mogo-module-search/src/main/res/values/strings.xml index 35f5830081..481a899dbc 100644 --- a/modules/mogo-module-search/src/main/res/values/strings.xml +++ b/modules/mogo-module-search/src/main/res/values/strings.xml @@ -33,4 +33,5 @@ 导航去这里 开始导航 路线选择 + 拖动地图选点 From 058eb515f035a631253edada2dd339f97c117286 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 10 Jan 2020 18:05:53 +0800 Subject: [PATCH 6/6] add share page --- .idea/gradle.xml | 1 + build.gradle | 4 +- config.gradle | 1 + gradle.properties | 1 + modules/mogo-module-extensions/build.gradle | 2 + .../extensions/entrance/EntranceFragment.java | 4 ++ modules/mogo-module-share/.gitignore | 1 + modules/mogo-module-share/build.gradle | 63 ++++++++++++++++++ modules/mogo-module-share/consumer-rules.pro | 0 modules/mogo-module-share/gradle.properties | 3 + modules/mogo-module-share/proguard-rules.pro | 21 ++++++ .../ExampleInstrumentedTest.kt | 24 +++++++ .../src/main/AndroidManifest.xml | 2 + .../com/mogo/module/share/IShareControl.java | 25 +++++++ .../com/mogo/module/share/ShareControl.java | 22 ++++++ .../share/dialog}/LaucherShareDialog.java | 49 +++++++------- .../main_video_play_btn_normal.png | Bin 0 -> 3415 bytes .../main/res/layout/launcher_dialog_share.xml | 18 ++--- .../src/main/res/values/colors.xml | 18 +++++ .../src/main/res/values/strings.xml | 3 + .../mogo_module_share/ExampleUnitTest.kt | 17 +++++ .../tanlu/fragment/TanluCardViewFragment.java | 21 +++--- settings.gradle | 1 + 23 files changed, 257 insertions(+), 44 deletions(-) create mode 100644 modules/mogo-module-share/.gitignore create mode 100644 modules/mogo-module-share/build.gradle create mode 100644 modules/mogo-module-share/consumer-rules.pro create mode 100644 modules/mogo-module-share/gradle.properties create mode 100644 modules/mogo-module-share/proguard-rules.pro create mode 100644 modules/mogo-module-share/src/androidTest/java/com/example/mogo_module_share/ExampleInstrumentedTest.kt create mode 100644 modules/mogo-module-share/src/main/AndroidManifest.xml create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/IShareControl.java create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java rename modules/{mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/view => mogo-module-share/src/main/java/com/mogo/module/share/dialog}/LaucherShareDialog.java (57%) create mode 100644 modules/mogo-module-share/src/main/res/drawable-xhdpi/main_video_play_btn_normal.png rename modules/{mogo-module-tanlu => mogo-module-share}/src/main/res/layout/launcher_dialog_share.xml (72%) create mode 100644 modules/mogo-module-share/src/main/res/values/colors.xml create mode 100644 modules/mogo-module-share/src/main/res/values/strings.xml create mode 100644 modules/mogo-module-share/src/test/java/com/example/mogo_module_share/ExampleUnitTest.kt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 1a786d501e..26618df6e9 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -25,6 +25,7 @@