From 97a8174e86670198daf4d282fb5951c2a8059fda Mon Sep 17 00:00:00 2001 From: zhangyuanzhen Date: Fri, 3 Apr 2020 16:08:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=B6=E5=92=8C=E5=85=AC=E5=8F=B8=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/navi/cp/AddressHelper.java | 23 ++++++++----------- .../module/navi/manager/AddressManager.kt | 9 ++++++-- .../navi/ui/setting/NaviSettingFragment.kt | 4 +--- .../navi/ui/setting/SettingAddressFragment.kt | 7 ++++-- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/cp/AddressHelper.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/cp/AddressHelper.java index 4d7d7e435b..676063c156 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/cp/AddressHelper.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/cp/AddressHelper.java @@ -1,6 +1,7 @@ package com.mogo.module.navi.cp; import android.content.Context; +import com.mogo.commons.AbsMogoApplication; import com.mogo.module.navi.bean.SearchPoi; import com.mogo.module.navi.constants.DataConstants; import org.jetbrains.annotations.NotNull; @@ -14,27 +15,21 @@ import org.jetbrains.annotations.Nullable; */ public class AddressHelper { - public static void notifyHomeAddressChanged( Context context ) { - if ( context == null ) { - return; - } - context.getContentResolver().notifyChange( DataConstants.CONTENT_HOME_ADDRESS_URI, null ); + public static void notifyHomeAddressChanged( ) { + AbsMogoApplication.getApp().getContentResolver().notifyChange( DataConstants.CONTENT_HOME_ADDRESS_URI, null ); } - public static void notifyCompanyAddressChanged( Context context ) { - if ( context == null ) { - return; - } - context.getContentResolver().notifyChange( DataConstants.CONTENT_COMPANY_ADDRESS_URI, null ); + public static void notifyCompanyAddressChanged( ) { + + AbsMogoApplication.getApp().getContentResolver().notifyChange( DataConstants.CONTENT_COMPANY_ADDRESS_URI, null ); } - public static void notifyAddressChanged(@Nullable Context context, + public static void notifyAddressChanged( @NotNull SearchPoi searchPoi) { - if (searchPoi.getType()== DataConstants.TYPE_HOME_ADDRESS) { - notifyHomeAddressChanged(context); + notifyHomeAddressChanged(); }else { - notifyCompanyAddressChanged(context); + notifyCompanyAddressChanged(); } } } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt index 2ddfb4a538..3f1b9aa4ed 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt @@ -13,6 +13,7 @@ import com.mogo.module.navi.database.AppDataBase import com.mogo.module.navi.ui.search.ChoosePathFragment 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 @@ -24,6 +25,7 @@ import org.greenrobot.eventbus.EventBus * @author zyz * 2020-01-12. */ +@SuppressLint("StaticFieldLeak") object AddressManager { var homeAddress: SearchPoi? = null var companyAddress: SearchPoi? = null @@ -60,6 +62,7 @@ object AddressManager { SearchServiceHolder.push( newInstance, MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT ) + } } @@ -80,8 +83,10 @@ object AddressManager { SearchServiceHolder.fragmentManager.push(build) } + private lateinit var context: Context @SuppressLint("CheckResult") fun init(context: Context) { + this.context=context poiDao = AppDataBase.getDatabase(context) .poiDao() poiDao @@ -120,7 +125,7 @@ object AddressManager { ObservableOnSubscribe { poiDao.delete(homeAddress) homeAddress?.name="" - AddressHelper.notifyAddressChanged(context, homeAddress!!) + AddressHelper.notifyAddressChanged( homeAddress!!) homeAddress=null }) @@ -135,7 +140,7 @@ object AddressManager { ObservableOnSubscribe { poiDao.delete(companyAddress) companyAddress?.name="" - AddressHelper.notifyAddressChanged(context, companyAddress!!) + AddressHelper.notifyAddressChanged( companyAddress!!) companyAddress=null }) diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt index 3f6e80d2b4..8d2418e841 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/NaviSettingFragment.kt @@ -300,9 +300,7 @@ class NaviSettingFragment : BaseFragment(), OnCheckedChangeListener { } - UiThreadHandler.postDelayed(Runnable { - AddressHelper.notifyAddressChanged(activity, searchPoi) - }, 100) + } override fun onDestroyView() { 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 6a686b80b2..bd197ab5e7 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 @@ -159,6 +159,9 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener { .windowCenterLocation moveMapToCenter() UiThreadHandler.postDelayed({ + if (!isAdded) { + return@postDelayed + } var decodeResource = BitmapFactory.decodeResource(resources, R.mipmap.icon_choose_position2) val options = MogoMarkerOptions() .icon(decodeResource) @@ -180,10 +183,10 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener { AddressManager.insert(searchPoi) Observable.create( ObservableOnSubscribe { - AppDataBase.getDatabase(context) + AppDataBase.getDatabase(activity) .poiDao() .insert(searchPoi) - + AddressHelper.notifyAddressChanged(searchPoi) }) .subscribeOn(Schedulers.io()) .subscribe()