This commit is contained in:
wangcongtao
2020-04-13 09:52:40 +08:00
parent da875fc233
commit 45e480cefa
28 changed files with 768 additions and 756 deletions

View File

@@ -34,4 +34,11 @@ public class AMapConstants {
public static final float AMAP_ROUTE_OVERLAY_TRANSPARENCY_SELECTED = 1f;
public static final float AMAP_ROUTE_OVERLAY_TRANSPARENCY_UNSELECTED = 0.3f;
public static final String PATH_FRAGMENT_SEARCH = "PATH_FRAGMENT_SEARCH";
public static final String PATH_FRAGMENT_CHOOSE_PATH = "PATH_FRAGMENT_CHOOSE_PATH";
public static final String PATH_FRAGMENT_SEARCH_CATEGORY = "PATH_FRAGMENT_SEARCH_CATEGORY";
public static final String PATH_FRAGMENT_SETTING = "PATH_FRAGMENT_SETTING";
public static final String PATH_FRAGMENT_NAVI_SETTING = "PATH_FRAGMENT_NAVI_SETTING";
public static final String PATH_FRAGMENT_SETTING_HOME = "PATH_FRAGMENT_SETTING_HOME";
}

View File

@@ -16,6 +16,7 @@ import com.mogo.service.MogoServicePaths
import com.mogo.service.analytics.IMogoAnalytics
import com.mogo.service.fragmentmanager.FragmentDescriptor
import com.mogo.service.fragmentmanager.IMogoFragmentManager
import com.mogo.service.launcher.IMogoLauncher
import com.mogo.service.map.IMogoMapService
import com.mogo.service.module.IMogoRegisterCenter
import com.mogo.service.statusmanager.IMogoStatusManager
@@ -28,24 +29,14 @@ import com.mogo.service.statusmanager.IMogoStatusManager
object SearchServiceHolder{
// 单例对象要使用Application Context
private lateinit var context: Context
val fragmentManager: IMogoFragmentManager = ARouter.getInstance().build(
MogoServicePaths.PATH_FRAGMENT_MANAGER
).navigation() as IMogoFragmentManager
val mapService: IMogoMapService = ARouter.getInstance().build(
MogoServicePaths.PATH_SERVICES_MAP
).navigation() as IMogoMapService
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
val analyticsManager: IMogoAnalytics = ARouter.getInstance().build(
MogoServicePaths.PATH_UTILS_ANALYTICS
).navigation() as IMogoAnalytics
val guideShowProvider: IGuideShowProvider = ARouter.getInstance().build(
GuideShowProviderConstant.GUIDE_SHOW_PROVIDER
).navigation() as IGuideShowProvider
val fragmentManager: IMogoFragmentManager = ARouter.getInstance().build(MogoServicePaths.PATH_FRAGMENT_MANAGER).navigation() as IMogoFragmentManager
val mapService: IMogoMapService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation() as IMogoMapService
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
val analyticsManager: IMogoAnalytics = ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation() as IMogoAnalytics
val guideShowProvider: IGuideShowProvider = ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation() as IGuideShowProvider
val mogoLauncher: IMogoLauncher = ARouter.getInstance().build(MogoServicePaths.PATH_LAUNCHER_API).navigation() as IMogoLauncher
var geoSearch: IMogoGeoSearch? = null
fun init(context: Context) {
@@ -86,10 +77,4 @@ object SearchServiceHolder{
return geoSearch!!
}
fun setMarkerStatus(show: Boolean) {
statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, show
)
}
}

View File

@@ -2,20 +2,25 @@ package com.mogo.module.navi.manager
import android.annotation.SuppressLint
import android.content.Context
import com.mogo.map.MogoLatLng
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
import com.mogo.module.navi.bean.EntityConvertUtils
import com.mogo.module.navi.bean.SearchPoi
import com.mogo.module.navi.constants.AMapConstants
import com.mogo.module.navi.constants.DataConstants
import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.cp.AddressHelper
import com.mogo.module.navi.dao.SearchPoiDao
import com.mogo.module.navi.database.AppDataBase
import com.mogo.module.navi.ui.search.CategorySearchFragment
import com.mogo.module.navi.ui.search.ChoosePathFragment
import com.mogo.module.navi.ui.search.SearchFragment
import com.mogo.module.navi.ui.setting.NaviSettingFragment
import com.mogo.module.navi.ui.setting.SettingAddressFragment
import com.mogo.service.fragmentmanager.FragmentDescriptor
import com.mogo.utils.UiThreadHandler
import io.reactivex.Observable
import io.reactivex.ObservableEmitter
import io.reactivex.ObservableOnSubscribe
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
@@ -27,124 +32,153 @@ import org.greenrobot.eventbus.EventBus
*/
@SuppressLint("StaticFieldLeak")
object AddressManager {
var homeAddress: SearchPoi? = null
var companyAddress: SearchPoi? = null
private lateinit var poiDao:SearchPoiDao
fun goHome() {
if (homeAddress == null) {
pushSettingAddress(
DataConstants.TYPE_HOME_ADDRESS
)
} else {
var newInstance = ChoosePathFragment.newInstance(
EntityConvertUtils.poi2MogoTip(
homeAddress
).point
)
SearchServiceHolder.push(
newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
}
}
fun goCompany() {
if (companyAddress == null) {
pushSettingAddress(
DataConstants.TYPE_COMPANY_ADDRESS
)
} else {
var newInstance =
ChoosePathFragment.newInstance(
EntityConvertUtils.poi2MogoTip(
companyAddress
).point
val TAG: String = "AddressManager.kt"
var homeAddress: SearchPoi? = null
var companyAddress: SearchPoi? = null
private lateinit var poiDao: SearchPoiDao
fun hasHome(): Boolean {
return homeAddress != null
}
fun hasCompany(): Boolean {
return companyAddress != null
}
private fun choosePoint(type: Int){
MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CHOOSE_POINT)
val builder = FragmentDescriptor.Builder()
builder.fragment(SettingAddressFragment.newInstance(type))
val build = builder.tag(AMapConstants.PATH_FRAGMENT_SETTING_HOME).build()
SearchServiceHolder.fragmentManager.push(build)
}
private lateinit var context: Context
@SuppressLint("CheckResult")
fun init(context: Context) {
this.context = context
poiDao = AppDataBase.getDatabase(context).poiDao()
poiDao.companyAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { t1, t2 ->
if (t1.size > 0) {
companyAddress = t1[0]
}
}
poiDao.homeAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { t1, t2 ->
if (t1.size > 0) {
homeAddress = t1[0]
}
}
}
fun insert(searchPoi: SearchPoi) {
EventBus.getDefault().post(searchPoi)
if (searchPoi.type == DataConstants.TYPE_COMPANY_ADDRESS) {
companyAddress = searchPoi
} else {
homeAddress = searchPoi
}
}
fun deleteHome(context: Context) {
Observable.create(
ObservableOnSubscribe<String> {
poiDao.delete(homeAddress)
homeAddress?.name = ""
AddressHelper.notifyAddressChanged(1)
homeAddress = null
})
.subscribeOn(Schedulers.io())
.subscribe()
}
fun deleteCompany(context: Context) {
Observable.create(
ObservableOnSubscribe<String> {
poiDao.delete(companyAddress)
companyAddress?.name = ""
AddressHelper.notifyAddressChanged(0)
companyAddress = null
})
.subscribeOn(Schedulers.io())
.subscribe()
}
/**
* 回家
*/
fun goHome() {
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (homeAddress == null) {
choosePoint(DataConstants.TYPE_HOME_ADDRESS)
} else {
calculatePath(EntityConvertUtils.poi2MogoTip(homeAddress).point)
}
}
/**
* 去公司
*/
fun goCompany() {
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
if (companyAddress == null) {
choosePoint( DataConstants.TYPE_COMPANY_ADDRESS)
} else {
calculatePath(EntityConvertUtils.poi2MogoTip(companyAddress).point)
}
}
/**
* 搜索
*/
fun goSearch() {
SearchServiceHolder.statusManager.setSearchUIShow(TAG, true)
SearchServiceHolder.fragmentManager.push(
FragmentDescriptor.Builder().fragment(SearchFragment())
.tag(AMapConstants.PATH_FRAGMENT_SEARCH)
.notifyMainModule(true)
.build()
)
SearchServiceHolder.push(
newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
}
}
fun hasHome(): Boolean {
return homeAddress != null
}
fun hasCompany(): Boolean {
return companyAddress != null
}
private fun pushSettingAddress(type: Int) {
val builder = FragmentDescriptor.Builder()
builder.fragment(SettingAddressFragment.newInstance(type))
val build = builder.tag(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME)
.build()
SearchServiceHolder.fragmentManager.push(build)
}
private lateinit var context: Context
@SuppressLint("CheckResult") fun init(context: Context) {
this.context=context
poiDao = AppDataBase.getDatabase(context)
.poiDao()
poiDao
.companyAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { t1, t2 ->
if (t1.size > 0) {
companyAddress = t1[0]
}
/**
* 路径规划
*/
fun calculatePath(destination: MogoLatLng?) {
destination?.let {
var newInstance = ChoosePathFragment.newInstance(destination)
SearchServiceHolder.push(newInstance, AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
}
poiDao
.homeAddress
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { t1, t2 ->
if (t1.size > 0) {
homeAddress = t1[0]
}
}
}
fun insert(searchPoi: SearchPoi) {
EventBus.getDefault().post(searchPoi)
if (searchPoi.type == DataConstants.TYPE_COMPANY_ADDRESS) {
companyAddress = searchPoi
} else {
homeAddress = searchPoi
}
}
fun deleteHome(context: Context){
Observable.create(
ObservableOnSubscribe<String> {
poiDao.delete(homeAddress)
homeAddress?.name=""
AddressHelper.notifyAddressChanged( 1)
fun categorySearch(category: String){
val searchFragment = CategorySearchFragment.newInstance(category)
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(searchFragment)
.tag(AMapConstants.PATH_FRAGMENT_SEARCH_CATEGORY)
.notifyMainModule(true)
.build())
}
homeAddress=null
})
.subscribeOn(Schedulers.io())
.subscribe()
fun goSettings(){
val naviSettingFragment = NaviSettingFragment()
SearchServiceHolder.fragmentManager.push(FragmentDescriptor.Builder().fragment(naviSettingFragment)
.tag(AMapConstants.PATH_FRAGMENT_NAVI_SETTING)
.notifyMainModule(true)
.build())
}
}
fun deleteCompany(context: Context){
Observable.create(
ObservableOnSubscribe<String> {
poiDao.delete(companyAddress)
companyAddress?.name=""
AddressHelper.notifyAddressChanged( 0)
companyAddress=null
})
.subscribeOn(Schedulers.io())
.subscribe()
}
}

View File

@@ -2,6 +2,7 @@ package com.mogo.module.navi.manager;
import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.MogoLatLng;
import com.mogo.module.navi.constants.SearchServiceHolder;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.IMogoAddressManager;
@@ -12,6 +13,7 @@ import com.mogo.service.module.IMogoAddressManager;
*/
@Route( path = MogoServicePaths.PATH_ADDRESS_MANAGER )
public class MogoAddressManager implements IMogoAddressManager {
@Override public void goHome() {
AddressManager.INSTANCE.goHome();
}
@@ -20,7 +22,27 @@ public class MogoAddressManager implements IMogoAddressManager {
AddressManager.INSTANCE.goCompany();
}
@Override public void init(Context context) {
@Override
public void goSearch() {
AddressManager.INSTANCE.goSearch();
}
@Override
public void calculatePath( MogoLatLng destination ) {
AddressManager.INSTANCE.calculatePath( destination );
}
@Override
public void categorySearch( String category ) {
AddressManager.INSTANCE.categorySearch( category );
}
@Override
public void goSettings() {
AddressManager.INSTANCE.goSettings();
}
@Override public void init( Context context) {
AddressManager.INSTANCE.init(context);
SearchServiceHolder.INSTANCE.init(context);
SettingManager.INSTANCE.init(context);

View File

@@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.constants.BroadcastMode;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.navi.constants.AMapConstants;
import com.mogo.module.navi.constants.SearchServiceHolder;
import com.mogo.module.navi.ui.search.CategorySearchFragment;
import com.mogo.module.navi.ui.search.SearchFragment;
@@ -30,7 +31,7 @@ public class MogoSearchManager implements IMogoSearchManager {
SearchFragment searchFragment = new SearchFragment();
SearchServiceHolder.INSTANCE.getFragmentManager()
.push(new FragmentDescriptor.Builder().fragment(searchFragment)
.tag(MogoModulePaths.PATH_FRAGMENT_SEARCH)
.tag( AMapConstants.PATH_FRAGMENT_SEARCH)
.notifyMainModule(true)
.build());
}
@@ -49,12 +50,7 @@ public class MogoSearchManager implements IMogoSearchManager {
}
@Override public void showCategory(String keyword) {
Fragment searchFragment = CategorySearchFragment.Companion.newInstance(keyword);
SearchServiceHolder.INSTANCE.getFragmentManager()
.push(new FragmentDescriptor.Builder().fragment(searchFragment)
.tag(MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY)
.notifyMainModule(true)
.build());
AddressManager.INSTANCE.categorySearch( keyword );
}
@Override public void init(Context context) {

View File

@@ -1,109 +1,90 @@
package com.mogo.module.navi.manager
import android.app.SearchManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.text.TextUtils
import com.mogo.map.MogoLatLng
import com.mogo.map.navi.MogoNaviConfig
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.ui.search.ChoosePathFragment
import com.mogo.utils.logger.Logger
import androidx.core.content.ContextCompat.startActivity
import com.mogo.map.navi.MogoNaviConfig
import com.mogo.module.navi.ui.search.SearchFragment
import com.mogo.service.fragmentmanager.FragmentDescriptor
import com.mogo.utils.logger.Logger
/**
*@author zyz
* 2020-01-18.
*/
object NaviManager {
private lateinit var mReceiver: BroadcastReceiver
private val AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"
private lateinit var mReceiver: BroadcastReceiver
private val AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"
fun init(context: Context) {
mReceiver = object : BroadcastReceiver() {
override fun onReceive(
context: Context,
intent: Intent
) {
val action = intent.action
if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
val key_type = intent.getIntExtra("KEY_TYPE", 0)
Logger.d("NaviManager", "key_type" + key_type, null)
if (key_type == 10038 || key_type == 10007) {
val lat: Double
val lon: Double
fun init(context: Context) {
mReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (TextUtils.equals(action, AUTONAVI_STANDARD_BROADCAST_RECV)) {
val key_type = intent.getIntExtra("KEY_TYPE", 0)
Logger.d("NaviManager", "key_type" + key_type, null)
if (key_type == 10038 || key_type == 10007) {
SearchServiceHolder.mogoLauncher.backToLauncher(context)
choosePath(intent, key_type)
} else if (key_type == 10021) {
SearchServiceHolder.getNavi().stopNavi()
} else if (key_type == 20009) {
SearchServiceHolder.mogoLauncher.backToLauncher(context)
gotoSearch()
if (key_type == 10007) {
lat = intent.getDoubleExtra("ENTRY_LAT", 0.0)
lon = intent.getDoubleExtra("ENTRY_LON", 0.0)
} else {
lat = intent.getDoubleExtra("LAT", 0.0)
lon = intent.getDoubleExtra("LON", 0.0)
}
showHome()
SearchServiceHolder.setMarkerStatus(true)
var newInstance =
ChoosePathFragment.newInstance(
MogoLatLng(lat, lon)
)
SearchServiceHolder.push(
newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
} else if (key_type == 10021) {
SearchServiceHolder.getNavi()
.stopNavi()
} else if (key_type == 20009) {
showHome()
SearchServiceHolder.setMarkerStatus(true)
SearchServiceHolder.fragmentManager
.clearAll()
val searchFragment = SearchFragment()
SearchServiceHolder.fragmentManager
.push(
FragmentDescriptor.Builder().fragment(searchFragment)
.tag(MogoModulePaths.PATH_FRAGMENT_SEARCH)
.notifyMainModule(true)
.build()
)
} else if (key_type == 10005) {
} else if (key_type == 10005) {
// * 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
// * `避免收费` |`1` `多策略算路` |`2` `不走高速` |`3` ` 躲避拥堵` |`4` `不走高速且避免收费` |`5` `不走高速且躲避拥堵` |`6`
// * `躲避收费和拥堵` |`7` `不走高速躲避收费和拥堵` |`8` `高速优先` |`20` `躲避拥堵且高速优先` |`24`
// *
var prefer = intent.getIntExtra("NAVI_ROUTE_PREFER", 0)
var prefer = intent.getIntExtra("NAVI_ROUTE_PREFER", 0)
var avoidSpeed = MogoNaviConfig().congestion(prefer == 4)
.cost(prefer == 1||prefer == 7)
.highSpeed(prefer == 20)
.avoidSpeed(prefer == 3)
SearchServiceHolder.getNavi()
.reCalculateRoute(avoidSpeed)
var avoidSpeed = MogoNaviConfig().congestion(prefer == 4)
.cost(prefer == 1 || prefer == 7)
.highSpeed(prefer == 20)
.avoidSpeed(prefer == 3)
SearchServiceHolder.getNavi().reCalculateRoute(avoidSpeed)
}
}
}
}
/**
* 打开地图
*/
private fun gotoSearch() {
AddressManager.goSearch()
}
/**
* 唤醒指令导航去哪里
*/
private fun choosePath(intent: Intent, type: Int) {
val lat: Double
val lon: Double
if (type == 10007) {
lat = intent.getDoubleExtra("ENTRY_LAT", 0.0)
lon = intent.getDoubleExtra("ENTRY_LON", 0.0)
} else {
lat = intent.getDoubleExtra("LAT", 0.0)
lon = intent.getDoubleExtra("LON", 0.0)
}
AddressManager.calculatePath(MogoLatLng(lat, lon))
}
}
}
val inputFilter = IntentFilter()
inputFilter.addAction(AUTONAVI_STANDARD_BROADCAST_RECV)
context.registerReceiver(mReceiver, inputFilter)
private fun showHome() {
val intent = Intent(Intent.ACTION_MAIN)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
intent.addCategory(Intent.CATEGORY_HOME)
context.startActivity(intent)
}
}
val inputFilter = IntentFilter()
inputFilter.addAction(AUTONAVI_STANDARD_BROADCAST_RECV)
context.registerReceiver(mReceiver, inputFilter)
}
}

View File

@@ -1,16 +1,11 @@
package com.mogo.module.navi.ui
import android.app.Activity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.navi.R
import com.mogo.module.navi.ui.base.BaseActivity
@Route(path = MogoModulePaths.PATH_MODULE_NAV_ACTIVITY)
class NaviActivity : BaseActivity() {

View File

@@ -72,27 +72,4 @@ 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
);
}
/**
* 移动地图中心点到屏幕中心
*/
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.661094);
}
}

View File

@@ -17,9 +17,13 @@ import com.mogo.map.marker.MogoMarkerOptions
import com.mogo.map.search.geo.MogoPoiItem
import com.mogo.map.search.inputtips.MogoTip
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
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.manager.AddressManager
import com.mogo.module.navi.ui.adapter.SearchCategoryAdapter
import com.mogo.module.navi.ui.base.BaseFragment
import com.mogo.module.navi.uitls.BitmapUtils
@@ -175,9 +179,6 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
category = arguments?.getString("category")
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, true
)
mSearchPresenter = CategoryPresenter(this)
lifecycle.addObserver(mSearchPresenter)
cmds = ArrayList<String>()
@@ -223,8 +224,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
private fun goPath() {
mAdapter.currentItem?.let {
var newInstance = ChoosePathFragment.newInstance(mAdapter.currentItem.point)
SearchServiceHolder.push(newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT)
AddressManager.calculatePath(mAdapter.currentItem.point)
}
}
@@ -279,13 +279,11 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa
override fun onDestroy() {
super.onDestroy()
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, false
)
}
companion object {
fun newInstance(category: String): Fragment {
MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CATEGORY_SEARCH)
var bundle = Bundle()
bundle.putString("category", category)
var categorySerachFragment = CategorySearchFragment()

View File

@@ -1,7 +1,5 @@
package com.mogo.module.navi.ui.search
import android.app.SearchManager
import android.app.Service
import android.os.Bundle
import android.text.TextUtils
import android.view.View
@@ -14,15 +12,16 @@ import com.mogo.map.navi.IMogoNaviListener
import com.mogo.map.navi.MogoCalculatePath
import com.mogo.map.navi.MogoNaviInfo
import com.mogo.map.navi.MogoTraffic
import com.mogo.map.search.inputtips.MogoTip
import com.mogo.module.common.MogoModulePaths
import com.mogo.module.navi.BuildConfig
import com.mogo.module.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
import com.mogo.module.navi.R
import com.mogo.module.navi.constants.AMapConstants
import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.manager.SettingManager
import com.mogo.module.navi.ui.adapter.CalculatePathAdapter
import com.mogo.module.navi.ui.base.BaseFragment
import com.mogo.utils.UiThreadHandler
import kotlinx.android.synthetic.main.fragment_search_category.group_path
import kotlinx.android.synthetic.main.fragment_search_category.pb_path
import kotlinx.android.synthetic.main.fragment_search_category.rv_search_result
@@ -35,263 +34,233 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back
* 2020-01-09.
*/
class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack {
override fun onCmdSelected(cmd: String?) {
override fun onCmdSelected(cmd: String?) {
when (cmd) {
"firstPath" -> {
selectItem(0)
startNavi()
when (cmd) {
"firstPath" -> {
selectItem(0)
startNavi()
}
"secondPath" -> {
selectItem(1)
startNavi()
}
"secondPath" -> {
selectItem(1)
startNavi()
}
"thirdPath" -> {
selectItem(2)
startNavi()
}
"thirdPath" -> {
selectItem(2)
startNavi()
}
"startNavi" -> {
startNavi()
}
"retry" -> {
retry()
}
"cancel" -> {
SearchServiceHolder.fragmentManager
.clearAll()
}
}
"startNavi" -> {
startNavi()
}
"retry" -> {
retry()
}
"cancel" -> {
SearchServiceHolder.fragmentManager.clearAll()
}
}
}
private fun selectItem(index: Int) {
if (mAdapter.list.size > index) {
selectPath(mAdapter.list[index])
}
}
override fun onCmdAction(speakText: String?) {
}
override fun onCmdCancel(speakText: String?) {
}
override fun onSpeakEnd(speakText: String?) {
}
override fun onSpeakSelectTimeOut(speakText: String?) {
}
override fun onInitNaviFailure() {
}
override fun onInitNaviSuccess() {
}
override fun onNaviInfoUpdate(naviinfo: MogoNaviInfo?) {
}
override fun onStartNavi() {
}
override fun onStopNavi() {
}
override fun onCalculateSuccess() {
var calculatedStrategies = SearchServiceHolder.getNavi()
.calculatedStrategies
if (calculatedStrategies != null && calculatedStrategies.size > 0) {
mAdapter.setDatas(calculatedStrategies)
mAdapter.selectTag = calculatedStrategies[0].tagId
}
AIAssist.getInstance(context)
.speakTTSVoice(String.format("已为你规划处%d条路线请选择", calculatedStrategies.size))
pb_path.visibility = View.GONE
group_path.visibility = View.GONE
tv_navi_navi.text = getString(R.string.start_navi)
unregisterRetryVoice()
}
override fun onoCalculateFailed() {
group_path.visibility = View.VISIBLE
tv_navi_navi.text = "重试"
pb_path.visibility = View.GONE
registerRetryVoice()
}
override fun onUpdateTraffic(traffic: MogoTraffic?) {
}
private lateinit var mAdapter: CalculatePathAdapter
override fun getLayoutId(): Int {
return R.layout.fragment_search_category
}
val firstPath: String = "第一个"
val secondPath: String = "第二个"
val thirdPath: String = "第三个"
val startNavi: String = "开始导航"
var mogoTip: MogoLatLng? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mogoTip = arguments?.getParcelable<MogoLatLng>(AMapConstants.KEY_PARCELABLE)
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, true
)
}
// 是否开启导航
var isStartedNavi = false
override fun onViewCreated(
view: View,
savedInstanceState: Bundle?
) {
super.onViewCreated(view, savedInstanceState)
iv_navi_back.setOnClickListener {
SearchServiceHolder.fragmentManager.pop()
}
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()
.naviTo(mogoTip)
SearchServiceHolder.listenerCenter.registerMogoNaviListener(
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, this
)
var arrayList = ArrayList<MogoCalculatePath>()
mAdapter = CalculatePathAdapter(activity, arrayList)
rv_search_result.layoutManager =
LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
rv_search_result.adapter = mAdapter
tv_navi_navi.setOnClickListener {
if (group_path.visibility == View.VISIBLE) {
retry()
} else {
startNavi()
}
}
SearchServiceHolder.getNavi()
.setLineClickInteraction {
mAdapter.setSelectTag(it)
}
mAdapter.setOnClickListener {
var item = it.getTag(R.id.tag_item) as MogoCalculatePath
selectPath(item)
}
// rv_search_result.scroto
private fun selectItem(index: Int) {
if (mAdapter.list.size > index) {
selectPath(mAdapter.list[index])
}
}
override fun onCmdAction(speakText: String?) {
}
override fun onCmdCancel(speakText: String?) {
}
override fun onSpeakEnd(speakText: String?) {
}
override fun onSpeakSelectTimeOut(speakText: String?) {
}
override fun onInitNaviFailure() {
}
override fun onInitNaviSuccess() {
}
override fun onNaviInfoUpdate(naviinfo: MogoNaviInfo?) {
}
override fun onStartNavi() {
}
override fun onStopNavi() {
}
override fun onCalculateSuccess() {
var calculatedStrategies = SearchServiceHolder.getNavi().calculatedStrategies
if (calculatedStrategies != null && calculatedStrategies.size > 0) {
mAdapter.setDatas(calculatedStrategies)
mAdapter.selectTag = calculatedStrategies[0].tagId
UiThreadHandler.postDelayed( {
SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(calculatedStrategies[0].tagId)
}, 500L)
}
AIAssist.getInstance(context).speakTTSVoice(String.format("已为你规划处%d条路线请选择", calculatedStrategies.size))
pb_path.visibility = View.GONE
group_path.visibility = View.GONE
tv_navi_navi.text = getString(R.string.start_navi)
unregisterRetryVoice()
}
SearchServiceHolder.getMarkerManger()
.removeMarkers()
override fun onoCalculateFailed() {
group_path.visibility = View.VISIBLE
tv_navi_navi.text = "重试"
pb_path.visibility = View.GONE
AIAssist.getInstance(context)
.registerUnWakeupCommand("firstPath", arrayOf<String>(firstPath), this)
AIAssist.getInstance(context)
.registerUnWakeupCommand("secondPath", arrayOf<String>(secondPath), this)
AIAssist.getInstance(context)
.registerUnWakeupCommand("thirdPath", arrayOf<String>(thirdPath), this)
AIAssist.getInstance(context)
.registerUnWakeupCommand("startNavi", arrayOf<String>(startNavi,"开始"), this)
registerRetryVoice()
}
private fun registerRetryVoice() {
AIAssist.getInstance(context)
.registerUnWakeupCommand("retry", arrayOf<String>("重试"), this)
}
private fun unregisterRetryVoice() {
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("retry")
}
private fun retry() {
SearchServiceHolder.getNavi()
.naviTo(mogoTip)
pb_path.visibility = View.VISIBLE
group_path.visibility = View.GONE
}
private fun startNavi() {
if (TextUtils.isEmpty(mAdapter.selectTag)) {
return
}
moveMapToRight()
SearchServiceHolder.getNavi()
.startNavi(!SettingManager.isMonitor())
SearchServiceHolder.getMapUIController()
.recoverLockMode()
if (SearchServiceHolder.guideShowProvider.isPlayingVideo()) {
SearchServiceHolder.guideShowProvider.closeGuideShowView()
}
isStartedNavi = true
SearchServiceHolder.fragmentManager.clearAll()
}
private fun selectPath(item: MogoCalculatePath?) {
item?.let {
mAdapter.setSelectTag(item.tagId)
SearchServiceHolder.getNavi()
.itemClickInteraction.onItemClicked(item.tagId)
}
}
override fun onDestroyView() {
super.onDestroyView()
SearchServiceHolder.listenerCenter.unregisterMogoNaviListener(
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false
)
if (!isStartedNavi) {
SearchServiceHolder.getNavi()
.clearCalculatePaths()
}
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("firstPath")
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("secondPath")
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("thirdPath")
AIAssist.getInstance(context)
.unregisterUnWakeupCommand("startNavi")
}
companion object {
fun newInstance(searchPoi: MogoLatLng): Fragment {
var bundle = Bundle()
bundle.putParcelable(AMapConstants.KEY_PARCELABLE, searchPoi)
var choosePathFragment = ChoosePathFragment()
choosePathFragment.arguments = bundle
return choosePathFragment
override fun onUpdateTraffic(traffic: MogoTraffic?) {
}
private lateinit var mAdapter: CalculatePathAdapter
override fun getLayoutId(): Int {
return R.layout.fragment_search_category
}
val firstPath: String = "第一个"
val secondPath: String = "第二个"
val thirdPath: String = "第三个"
val startNavi: String = "开始导航"
var mogoTip: MogoLatLng? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
mogoTip = arguments?.getParcelable<MogoLatLng>(AMapConstants.KEY_PARCELABLE)
}
// 是否开启导航
var isStartedNavi = false
override fun onViewCreated(
view: View,
savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
iv_navi_back.setOnClickListener {
SearchServiceHolder.fragmentManager.pop()
}
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()
.naviTo(mogoTip)
SearchServiceHolder.listenerCenter.registerMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH, this)
var arrayList = ArrayList<MogoCalculatePath>()
mAdapter = CalculatePathAdapter(activity, arrayList)
rv_search_result.layoutManager =
LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false)
rv_search_result.adapter = mAdapter
tv_navi_navi.setOnClickListener {
if (group_path.visibility == View.VISIBLE) {
retry()
} else {
startNavi()
}
}
SearchServiceHolder.getNavi().setLineClickInteraction {
mAdapter.selectTag = it
}
mAdapter.setOnClickListener {
var item = it.getTag(R.id.tag_item) as MogoCalculatePath
selectPath(item)
}
SearchServiceHolder.getMarkerManger().removeMarkers()
AIAssist.getInstance(context).registerUnWakeupCommand("firstPath", arrayOf<String>(firstPath), this)
AIAssist.getInstance(context).registerUnWakeupCommand("secondPath", arrayOf<String>(secondPath), this)
AIAssist.getInstance(context).registerUnWakeupCommand("thirdPath", arrayOf<String>(thirdPath), this)
AIAssist.getInstance(context).registerUnWakeupCommand("startNavi", arrayOf<String>(startNavi, "开始"), this)
}
private fun registerRetryVoice() {
AIAssist.getInstance(context).registerUnWakeupCommand("retry", arrayOf<String>("重试"), this)
}
private fun unregisterRetryVoice() {
AIAssist.getInstance(context).unregisterUnWakeupCommand("retry")
}
private fun retry() {
SearchServiceHolder.getNavi().naviTo(mogoTip)
pb_path.visibility = View.VISIBLE
group_path.visibility = View.GONE
}
private fun startNavi() {
if (TextUtils.isEmpty(mAdapter.selectTag)) {
return
}
// moveMapToRight()
SearchServiceHolder.getNavi().startNavi(!SettingManager.isMonitor())
SearchServiceHolder.getMapUIController().recoverLockMode()
if (SearchServiceHolder.guideShowProvider.isPlayingVideo()) {
SearchServiceHolder.guideShowProvider.closeGuideShowView()
}
isStartedNavi = true
SearchServiceHolder.fragmentManager.clearAll()
}
private fun selectPath(item: MogoCalculatePath?) {
item?.let {
mAdapter.setSelectTag(item.tagId)
SearchServiceHolder.getNavi().itemClickInteraction.onItemClicked(item.tagId)
}
}
override fun onDestroyView() {
super.onDestroyView()
SearchServiceHolder.listenerCenter.unregisterMogoNaviListener(AMapConstants.PATH_FRAGMENT_CHOOSE_PATH)
if (!isStartedNavi) {
SearchServiceHolder.getNavi().clearCalculatePaths()
}
AIAssist.getInstance(context).unregisterUnWakeupCommand("firstPath")
AIAssist.getInstance(context).unregisterUnWakeupCommand("secondPath")
AIAssist.getInstance(context).unregisterUnWakeupCommand("thirdPath")
AIAssist.getInstance(context).unregisterUnWakeupCommand("startNavi")
}
companion object {
fun newInstance(searchPoi: MogoLatLng): Fragment {
MapCenterPointStrategy.setMapCenterPointByScene(SearchServiceHolder.getMapUIController(), Scene.CALCULATE_PATH)
var bundle = Bundle()
bundle.putParcelable(AMapConstants.KEY_PARCELABLE, searchPoi)
var choosePathFragment = ChoosePathFragment()
choosePathFragment.arguments = bundle
return choosePathFragment
}
}
}
}

View File

@@ -20,6 +20,7 @@ import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.navi.R;
import com.mogo.module.navi.bean.EntityConvertUtils;
import com.mogo.module.navi.bean.SearchPoi;
import com.mogo.module.navi.constants.AMapConstants;
import com.mogo.module.navi.manager.AddressManager;
import com.mogo.module.navi.constants.SearchServiceHolder;
import com.mogo.module.navi.ui.adapter.HistoryPoiAdapter;
@@ -43,7 +44,6 @@ import java.util.List;
* {@link SearchConstants#SEARCH_TYPE_MULTI_COMPANY}
* {@link SearchConstants#SEARCH_TYPE_MULTI_HOME}
*/
@Route(path = MogoModulePaths.PATH_FRAGMENT_SEARCH)
public class SearchFragment extends BaseSearchFragment
implements SearchView, View.OnClickListener, IMogoVoiceCmdCallBack,
FragmentStackTransactionListener {
@@ -92,7 +92,6 @@ public class SearchFragment extends BaseSearchFragment
super.onActivityCreated(savedInstanceState);
SearchServiceHolder.INSTANCE.getMarkerManger().removeMarkers();
SearchServiceHolder.INSTANCE.getMapUIController().showMyLocation(false);
moveMapToCenter();
}
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
@@ -186,24 +185,18 @@ public class SearchFragment extends BaseSearchFragment
goCategory(tag.getName());
} else {
mSearchPresenter.insert(searchPoi);
SearchServiceHolder.INSTANCE.push(
ChoosePathFragment.Companion.newInstance(tag.getPoint()),
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT);
AddressManager.INSTANCE.calculatePath( tag.getPoint() );
}
}
private void goSetting() {
SearchServiceHolder.INSTANCE.getAnalyticsManager()
.track("Navigation_button_setting", new HashMap<String, Object>());
push(new NaviSettingFragment(), MogoModulePaths.PATH_FRAGMENT_SETTING);
SearchServiceHolder.INSTANCE.getAnalyticsManager().track("Navigation_button_setting", new HashMap<String, Object>());
AddressManager.INSTANCE.goSettings();
}
private void goHistory(SearchPoi item) {
MogoTip mogoTip = EntityConvertUtils.poi2MogoTip(item);
SearchServiceHolder.INSTANCE.push(
ChoosePathFragment.Companion.newInstance(mogoTip.getPoint()),
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT);
AddressManager.INSTANCE.calculatePath( mogoTip.getPoint() );
}
private static final String GO_HOME_CMD = "goHome";
@@ -501,8 +494,7 @@ public class SearchFragment extends BaseSearchFragment
}
private void goCategory(String text) {
push(CategorySearchFragment.Companion.newInstance(text),
MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY);
AddressManager.INSTANCE.categorySearch( text );
}
@Override public void onResume() {
@@ -517,7 +509,7 @@ public class SearchFragment extends BaseSearchFragment
public void onDestroyView() {
super.onDestroyView();
SearchServiceHolder.INSTANCE.getMapUIController().showMyLocation(true);
moveMapToRight();
// moveMapToRight();
unRegisterVoice();
}

View File

@@ -1,92 +0,0 @@
package com.mogo.module.navi.ui.search;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.map.location.IMogoLocationListener;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.navi.IMogoNaviListener;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.ModuleType;
/**
* @author congtaowang
* @since 2019-12-30
* <p>
* 描述
*/
@Route( path = MogoModulePaths.PATH_MODULE_SEARCH )
public class SearchFragmentProvider implements IMogoModuleProvider {
private SearchFragment mAppsFragment;
@Override
public Fragment createFragment( Context context, Bundle data ) {
mAppsFragment = new SearchFragment();
mAppsFragment.setArguments( data );
return mAppsFragment;
}
@Override
public View createView( Context context ) {
return null;
}
@NonNull
@Override
public String getModuleName() {
return MogoModulePaths.PATH_MODULE_SEARCH;
}
@Override
public IMogoModuleLifecycle getCardLifecycle() {
return null;
}
@Override
public IMogoMapListener getMapListener() {
return null;
}
@Override
public int getType() {
return ModuleType.TYPE_NAVI;
}
@Override
public IMogoNaviListener getNaviListener() {
return null;
}
@Override
public IMogoLocationListener getLocationListener() {
return null;
}
@Override
public void init( Context context ) {
}
@Override
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
@Override
public String getAppPackage() {
return null;
}
@Override
public String getAppName() {
return null;
}
}

View File

@@ -30,7 +30,6 @@ import org.greenrobot.eventbus.ThreadMode
* @author zyz
* 2020-01-07.
*/
@Route(path = MogoModulePaths.PATH_FRAGMENT_SETTING)
class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener {
private var type: Int = 0

View File

@@ -17,6 +17,8 @@ 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.common.map.MapCenterPointStrategy
import com.mogo.module.common.map.Scene
import com.mogo.module.navi.R
import com.mogo.module.navi.R.string
import com.mogo.module.navi.bean.EntityConvertUtils
@@ -40,7 +42,6 @@ import kotlinx.android.synthetic.main.fragment_setting_address.tv_set_as_home
* @author zyz
* 2020-01-07.
*/
@Route(path = MogoModulePaths.PATH_FRAGMENT_SETTING_HOME)
class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
override fun onRegeocodeSearched(regeocodeResult: MogoRegeocodeResult?) {
et_navi_search.setText(regeocodeResult?.regeocodeAddress?.formatAddress)
@@ -97,22 +98,14 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
style = arguments?.getInt(AMapConstants.KEY_SET_HOME_COMPONY) ?: DataConstants.TYPE_HOME_ADDRESS
setMarkerStatus(true)
SearchServiceHolder.listenerCenter.registerMogoMapListener(
MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, mapListener
AMapConstants.PATH_FRAGMENT_SETTING_HOME, mapListener
)
SearchServiceHolder.getMapUIController()
.showMyLocation(false)
SearchServiceHolder.getMapUIController().showMyLocation(false)
SearchServiceHolder.getGeoSearcher()
.setGeoSearchListener(this)
SearchServiceHolder.getGeoSearcher().setGeoSearchListener(this)
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, true
)
SearchServiceHolder.getMarkerManger()
.removeMarkers()
SearchServiceHolder.getMarkerManger().removeMarkers()
}
override fun getLayoutId(): Int {
@@ -155,9 +148,8 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
et_navi_search.isEnabled = false
et_navi_search.setText(getString(string.drag_map_to_choose))
var location = SearchServiceHolder.getMapUIController()
.windowCenterLocation
moveMapToCenter()
var location = SearchServiceHolder.getMapUIController().windowCenterLocation
UiThreadHandler.postDelayed({
if (!isAdded) {
return@postDelayed
@@ -170,10 +162,9 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
.anchor(0.5f, 1f)
.longitude(location?.lng ?: 0.0)
addMarker = SearchServiceHolder.getMarkerManger()
.addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options)
.addMarker(AMapConstants.PATH_FRAGMENT_SETTING_HOME, options)
var locationPointInScreen = SearchServiceHolder.getMapUIController()
.getLocationPointInScreen(location)
var locationPointInScreen = SearchServiceHolder.getMapUIController().getLocationPointInScreen(location)
addMarker?.setPositionByPixels(locationPointInScreen)
}, 500L)
}
@@ -190,31 +181,14 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
})
.subscribeOn(Schedulers.io())
.subscribe()
}
override fun onDestroyView() {
super.onDestroyView()
// setMarkerStatus(true)
// SearchServiceHolder.getMapUIController()
// .showMyLocation(true)
SearchServiceHolder.listenerCenter.unregisterMogoMapListener(
MogoModulePaths.PATH_FRAGMENT_SETTING_HOME
AMapConstants.PATH_FRAGMENT_SETTING_HOME
)
addMarker?.destroy()
SearchServiceHolder.statusManager.setSearchUIShow(
MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, false
)
if (SearchServiceHolder.fragmentManager.stackSize == 0) {
moveMapToRight()
SearchServiceHolder.getMapUIController()
.showMyLocation(true)
}
// moveMapToRight()
}
companion object {