[fix] 登录界面1s只展示1次 taxi 乘客端 视频播放进程和主进程关联解除
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -261,6 +261,9 @@ class TaxiLoginDialogFragment : MvpDialogFragment<TaxiLoginDialogFragment?, OchC
|
||||
} catch (e: Exception) {
|
||||
Log.e("DialogFragment", "show", e.fillInStackTrace())
|
||||
}
|
||||
if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
|
||||
return
|
||||
}
|
||||
val ft: FragmentTransaction = manager.beginTransaction()
|
||||
ft.add(this, tag)
|
||||
ft.commitAllowingStateLoss()
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.mogo.och.taxi.passenger.ui.leftmenu
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.ContentResolver
|
||||
import android.database.Cursor
|
||||
import android.os.DeadObjectException
|
||||
import android.os.IBinder
|
||||
import android.os.RemoteCallbackList
|
||||
import android.os.RemoteException
|
||||
@@ -27,6 +28,7 @@ import com.mogo.och.taxi.passenger.ui.video.VideoActivity
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import rx.Observable
|
||||
import rx.Observer
|
||||
import rx.exceptions.OnCompletedFailedException
|
||||
import rx.schedulers.Schedulers
|
||||
import java.util.*
|
||||
|
||||
@@ -43,8 +45,6 @@ object LeftMenuOpen {
|
||||
private var open: ((view: View, windowManager: WindowManager?) -> Unit)? = null
|
||||
|
||||
|
||||
private var cu: Cursor? = null
|
||||
|
||||
// 两部分主进程和子进程
|
||||
private var dragList = mutableSetOf<View>()
|
||||
|
||||
@@ -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<String?>().subscribeOn(Schedulers.io())
|
||||
.subscribe(object : Observer<String?> {
|
||||
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<String?>().subscribeOn(Schedulers.io())
|
||||
.subscribe(object : Observer<String?> {
|
||||
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()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user