From 5f3a464e11515a8ed3f1f7b05eedea67d023a2dc Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 29 Sep 2022 17:03:54 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A21s?= =?UTF-8?q?=E5=8F=AA=E5=B1=95=E7=A4=BA1=E6=AC=A1=20taxi=20=E4=B9=98?= =?UTF-8?q?=E5=AE=A2=E7=AB=AF=20=E8=A7=86=E9=A2=91=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E5=92=8C=E4=B8=BB=E8=BF=9B=E7=A8=8B=E5=85=B3?= =?UTF-8?q?=E8=81=94=E8=A7=A3=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/biz/provider/LoginServiceImpl.kt | 25 +++--- .../module/biz/ui/TaxiLoginDialogFragment.kt | 3 + .../passenger/ui/leftmenu/LeftMenuOpen.kt | 79 +++++++++++++------ .../taxi/ui/TaxiPersonalDialogFragment.java | 4 +- 4 files changed, 76 insertions(+), 35 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt index dbaa5c5c53..17e0d21e9a 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt @@ -6,9 +6,10 @@ import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.AppStateManager.currentActivity +import com.mogo.eagle.core.utilcode.util.ClickUtils import com.mogo.och.common.module.biz.callback.ILoginCallback import com.mogo.och.common.module.biz.callback.ILoginViewCallback import com.mogo.och.common.module.biz.constant.LoginStatusManager @@ -57,7 +58,7 @@ class LoginServiceImpl : LoginService,ILoginViewCallback { if(uiModel) { fragment?.let { CallerHmiManager.hideToolsView() - val parentFragmentManager = it.parentFragmentManager + val parentFragmentManager = it.childFragmentManager val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG) if (fragmentByTag is DialogFragment) { if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) { @@ -65,7 +66,7 @@ class LoginServiceImpl : LoginService,ILoginViewCallback { } if (fragmentByTag.dialog != null && fragmentByTag.isAdded) { if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用 - d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证") + CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证") return } } @@ -83,18 +84,22 @@ class LoginServiceImpl : LoginService,ILoginViewCallback { parentFragmentManager.beginTransaction().remove(taxiLoginDialog) .commitAllowingStateLoss() } - d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面") - taxiLoginDialog.show(parentFragmentManager, TAG) - taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? -> - taxiLoginDialogFragment?.clear() - presenter?.queryLoginStatus() - }) + if (ClickUtils.isFastClick()) { + taxiLoginDialog.show(parentFragmentManager, TAG) + taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? -> + taxiLoginDialogFragment?.clear() + presenter?.queryLoginStatus() + }) + CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面") + }else{ + CallerLogger.d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面 1s内执行一次") + } } } } } override fun hideLoginDialogFragment() { - d(SceneConstant.M_TAXI + TAG, "hideLoginDialogFragment 隐藏登录界面") + CallerLogger.d(SceneConstant.M_TAXI + TAG, "hideLoginDialogFragment 隐藏登录界面") if (taxiLoginDialogFragment?.get() != null) { taxiLoginDialogFragment?.get()?.dismissAllowingStateLoss() } diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt index 63efc0fd19..3dfc3389e2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt @@ -261,6 +261,9 @@ class TaxiLoginDialogFragment : MvpDialogFragment Unit)? = null - private var cu: Cursor? = null - // 两部分主进程和子进程 private var dragList = mutableSetOf() @@ -85,11 +85,8 @@ object LeftMenuOpen { this.windowManager = null this.wl = null - cu?.let { - it.close() - cu = null - orderService = null - } + orderService = null + val iterator = dragList.iterator() while (iterator.hasNext()) { val next = iterator.next() @@ -208,11 +205,19 @@ object LeftMenuOpen { Observable.empty().subscribeOn(Schedulers.io()) .subscribe(object : Observer { override fun onCompleted() { - CallerLogger.d(M_TAXI_P + TAG, "tran--transmissionIndex---$index") - if (orderService == null) { - registerC() + try { + CallerLogger.d(M_TAXI_P + TAG, "tran--transmissionIndex---$index") + if (orderService == null) { + registerC() + } + orderService?.transmissionIndex(index) + }catch (ill:IllegalStateException){ + ill.printStackTrace() + }catch (onCo: OnCompletedFailedException){ + onCo.printStackTrace() + }catch (deadobjectexception: DeadObjectException){ + deadobjectexception.printStackTrace() } - orderService?.transmissionIndex(index) } override fun onError(e: Throwable?) {} override fun onNext(t: String?) {} @@ -250,13 +255,22 @@ object LeftMenuOpen { Observable.empty().subscribeOn(Schedulers.io()) .subscribe(object : Observer { override fun onCompleted() { - CallerLogger.d(M_TAXI_P + TAG, "tran--registerCallback--注册") - if (orderService == null) { - registerC() - } - cb?.let { - orderService?.registerCallback(it) - } + try { + CallerLogger.d(M_TAXI_P + TAG, "tran--registerCallback--注册") + if (orderService == null) { + registerC() + } + cb?.let { + orderService?.registerCallback(it) + } + }catch (ill:IllegalStateException){ + ill.printStackTrace() + }catch (onCo: OnCompletedFailedException){ + onCo.printStackTrace() + }catch (deadobjectexception: DeadObjectException){ + deadobjectexception.printStackTrace() + } + } override fun onError(e: Throwable?) {} override fun onNext(t: String?) {} @@ -272,7 +286,15 @@ object LeftMenuOpen { override fun onCompleted() { CallerLogger.d(M_TAXI_P + TAG, "tran--unregisterCallback--反注册") cb?.let { - orderService?.unRegisterCallback(it) + try { + orderService?.unRegisterCallback(it) + }catch (ill:IllegalStateException){ + ill.printStackTrace() + }catch (onCo: OnCompletedFailedException){ + onCo.printStackTrace() + }catch (deadobjectexception: DeadObjectException){ + deadobjectexception.printStackTrace() + } } } override fun onError(e: Throwable?) {} @@ -350,7 +372,7 @@ object LeftMenuOpen { CallerLogger.d(M_TAXI_P + TAG, "tran--registerC--获取jni") val resolver: ContentResolver = Utils.getApp().contentResolver - cu = resolver.query( + val cu = resolver.query( BinderProvider.CONTENT_URI, null, null, @@ -358,13 +380,22 @@ object LeftMenuOpen { null ) ?: return - val binder: IBinder = getBinder(cu!!) + val binder: IBinder = getBinder(cu) try { - orderService = ILeftMenuService.Stub.asInterface(binder) + try { + orderService = ILeftMenuService.Stub.asInterface(binder) + }catch (ill:IllegalStateException){ + ill.printStackTrace() + }catch (onCo: OnCompletedFailedException){ + onCo.printStackTrace() + }catch (deadobjectexception: DeadObjectException){ + deadobjectexception.printStackTrace() + } + } catch (e: RemoteException) { e.printStackTrace() - cu?.close() - cu = null + } finally { + cu.close() } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java index 0cbec4fdce..919214147e 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiPersonalDialogFragment.java @@ -283,7 +283,9 @@ public class TaxiPersonalDialogFragment extends DialogFragment implements View.O } serverHadNoData = false; orders.addAll(ordersList); - mAdapter.notifyDataSetChanged(); + if(mAdapter!=null) { + mAdapter.notifyDataSetChanged(); + } mNextPage = mNextPage +1; }