Merge branch 'dev_robotaxi-d-app-module_2110_220915_2.11.0' of gitlab.zhidaoauto.com:zhjt/AndroidApp/MoGoEagleEye into dev_robotaxi-d-app-module_2110_220915_2.11.0

This commit is contained in:
xinfengkun
2022-10-06 23:36:20 +08:00
16 changed files with 140 additions and 50 deletions

View File

@@ -459,7 +459,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .addMarker(uuid, options);
CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(
longi,lat,-1);
if (null != centerLine){ // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
if (null != centerLine && marker != null) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
marker.setRotateAngle(centerLine.getAngle().floatValue());
}
}

View File

@@ -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()
}

View File

@@ -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()

View File

@@ -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()
}
}

View File

@@ -677,7 +677,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
IMogoMarker marker = MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).addMarker(uuid, options);
CenterLine centerLine = CallerHDMapManager.INSTANCE.getCenterLineInfo(station.get(0)
, station.get(1), -1);
if (null != centerLine) {// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
if (null != centerLine && marker != null) {// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致
marker.setRotateAngle(centerLine.getAngle().floatValue());
}
}

View File

@@ -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;
}

View File

@@ -81,7 +81,7 @@ public class UpgradeAppNetWorkManager {
CallerLogger.INSTANCE.d(TAG, "UpgradeAppInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode());
Log.d(TAG, "UpgradeAppInfo url = " + info.result.getAppUrl() + "----code = " + info.result.getVersionCode() + "--versionCode =" + versionCode + "--info.result = " + info.result);
if (info.result.getVersionCode() > versionCode) {
CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl(), info.result.getInstallTitle(), info.result.getInstallContent());
CallerHmiManager.INSTANCE.showUpgradeDialog(info.result.getAppUrl().substring(info.result.getAppUrl().lastIndexOf("/")+1), info.result.getAppUrl(), info.result.getInstallTitle(), info.result.getInstallContent(), info.result.getInstallType());
}
} else {
Log.e(TAG, "onNext info == null");

View File

@@ -1304,11 +1304,12 @@ class MoGoHmiFragment : MvpFragment<MoGoHmiContract.View?, HmiPresenter?>(),
/**
* 升级app弹框
*/
override fun showUpgradeDialog(name: String, url: String, title: String, content: String) {
override fun showUpgradeDialog(name: String, url: String, title: String, content: String, installType: String) {
if (upgradeAppDialog == null) {
upgradeAppDialog = UpgradeAppDialog(requireContext())
}
upgradeAppDialog!!.showUpgradeAppDialog(name, url, title, content)
upgradeAppDialog!!.setCanceledOnTouchOutside(false)
upgradeAppDialog!!.showUpgradeAppDialog(name, url, title, content, installType)
}
/**

View File

@@ -1,7 +1,9 @@
package com.mogo.eagle.core.function.hmi.ui.bindingcar
import android.content.Context
import android.opengl.Visibility
import android.util.Log
import android.view.View
import android.widget.TextView
import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
@@ -23,6 +25,8 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb
private var cancleTv: TextView? = null
private var upgradeTitleTv: TextView? = null
private var upgradeContentTv: TextView? = null
private var verticalLineView: View? = null
private var confirmForceTv: TextView? = null
private var tag: String? = null
private var downloarUrl: String? = null
@@ -34,6 +38,8 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb
upgradeContentTv = findViewById(R.id.tv_upgrade_content)
confirmTv = findViewById(R.id.tv_upgrade_confirm)
cancleTv = findViewById(R.id.tv_upgrade_cancel)
verticalLineView = findViewById(R.id.view_vertical_line)
confirmForceTv = findViewById(R.id.tv_upgrade_confirm_force)
confirmTv?.setOnClickListener {
downloadApp()
@@ -42,6 +48,11 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb
cancleTv?.setOnClickListener {
dismiss()
}
confirmForceTv?.setOnClickListener {
downloadApp()
}
}
/**
@@ -58,16 +69,31 @@ class UpgradeAppDialog(context: Context) : BaseFloatDialog(context), LifecycleOb
super.dismiss()
}
fun showUpgradeAppDialog(name: String, url: String, title: String, content: String) {
// 升级类型 1:提示升级 2:静默升级 3:强制升级
fun showUpgradeAppDialog(name: String, url: String, title: String, content: String, installType: String) {
if (isShowing) {
return
}
tag = name
downloarUrl = url
upgradeTitleTv?.text = title
upgradeContentTv?.text = content
if (installType.equals("1")) {
confirmForceTv?.visibility = View.GONE
confirmTv?.visibility = View.VISIBLE
cancleTv?.visibility = View.VISIBLE
verticalLineView?.visibility = View.VISIBLE
} else if (installType.equals("3")) {
confirmTv?.visibility = View.GONE
cancleTv?.visibility = View.GONE
verticalLineView?.visibility = View.GONE
confirmForceTv?.visibility = View.VISIBLE
} else if (installType.equals("2")) {
//静默安装
}
show()
}

View File

@@ -304,7 +304,12 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
.setLoopInterval(50000)
.setMonitorThreshold(16)
.setNativeHeapAllocatedThreshold(0)
.setIgnoredSoList(new String[]{"libart", "libc"})
.setSelectedSoList(new String[]{"libhdmap", "libmap",
"libAMapSDK_NAVI_v8_0_1", "librouting", "libZegoExpressEngine",
"libUtils", "libcommon", "libcntts", "libduiutils",
"libdatamgr", "libdatascript", "libguidance", "libndsprovider",
"libndssqlite", "libpbjni", "libsearch"
})
.setEnableLocalSymbolic(BuildConfig.DEBUG)
.setLeakListener(leaks -> {
StringBuilder stringBuilder = new StringBuilder();

View File

@@ -93,5 +93,18 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
<TextView
android:id="@+id/tv_upgrade_confirm_force"
android:layout_width="match_parent"
android:layout_height="100px"
android:gravity="center"
android:text="@string/confirm"
android:textColor="#FFFFFFFF"
android:textSize="46px"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/view_vertical_line"
app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" />
</com.mogo.eagle.core.widget.RoundConstraintLayout>

View File

@@ -22,6 +22,7 @@ import com.mogo.eagle.core.function.overview.InfStructureManager;
import com.mogo.eagle.core.function.overview.ViewModelExtKt;
import com.mogo.eagle.core.function.overview.vm.OverViewModel;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoMapView;
@@ -213,7 +214,9 @@ public class MapFragment extends MvpFragment<MapView, MapPresenter>
@Override
public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp globalPathResp) {
InfStructureManager.INSTANCE.savePlanningData(globalPathResp.getWayPointsList());
UiThreadHandler.post(() -> {
InfStructureManager.INSTANCE.savePlanningData(globalPathResp.getWayPointsList());
});
}
@Override

View File

@@ -322,13 +322,14 @@ public class AMapCustomView
* @param locationList
*/
private void drawInfrastructureMarkers(List<MessagePad.Location> locationList) {
if (locationList == null) return;
if (!pathMap.isEmpty()) {
pathMap.clear();
}
String geoHash;
ArrayList<Infrastructure> infList;
for (MessagePad.Location location : locationList) {
LatLng latLng = MarkerDrawerManager.INSTANCE.coordinateConverterWgsToGcj(mContext, location);
for (int i = 0; i < locationList.size(); i++) {
LatLng latLng = MarkerDrawerManager.INSTANCE.coordinateConverterWgsToGcj(mContext, locationList.get(i));
geoHash = GeoHash.withCharacterPrecision(latLng.latitude, latLng.longitude, 7).toBase32();
// 网格内的轨迹点只取一次s
if (!pathMap.containsKey(geoHash)) {

View File

@@ -14,7 +14,7 @@ public class AppInfo implements Serializable {
private String screenType;
private String installTitle;
private String installContent;
private String installType;
private String installType; // 升级类型 1:提示升级 2:静默升级 3:强制升级
private String beginTime;
private String endTime;

View File

@@ -222,7 +222,7 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy {
/**
* 展示升级app弹框
*/
fun showUpgradeDialog(name: String, url: String, title: String, content: String)
fun showUpgradeDialog(name: String, url: String, title: String, content: String, installType: String)
/**
* 呈现工控机升级确认框

View File

@@ -292,8 +292,8 @@ object CallerHmiManager : CallerBase() {
waringProviderApi?.showModifyBindingcarDialog()
}
fun showUpgradeDialog(name: String, url: String, title: String, content: String) {
waringProviderApi?.showUpgradeDialog(name, url, title, content)
fun showUpgradeDialog(name: String, url: String, title: String, content: String, installType: String) {
waringProviderApi?.showUpgradeDialog(name, url, title, content, installType)
}
/**