diff --git a/.idea/misc.xml b/.idea/misc.xml
index 54d948bbf1..9f65ae86e1 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -22,6 +22,7 @@
+
@@ -76,7 +77,7 @@
-
+
\ No newline at end of file
diff --git a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java
index f861c7641b..c5952774c7 100644
--- a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java
+++ b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java
@@ -54,6 +54,11 @@ public abstract class BaseOchFragment> e
return R.layout.module_mogo_och_base_fragment;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
private View panelView;
@Override
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
index df34d85e24..ffef99ade6 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
@@ -58,6 +58,10 @@ class MoGoHmiFragment : MvpFragment
return R.layout.fragment_hmi
}
+ override fun getTagName(): String {
+ return TAG
+ }
+
override fun createPresenter(): WaringPresenter {
return WaringPresenter(this)
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoHDMapFragment.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoHDMapFragment.java
new file mode 100644
index 0000000000..75861a56ec
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoHDMapFragment.java
@@ -0,0 +1,41 @@
+package com.mogo.eagle.core.function.map;
+
+import androidx.annotation.NonNull;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.commons.mvp.MvpFragment;
+import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
+import com.mogo.utils.logger.Logger;
+
+/**
+ * @author donghongyu
+ * @since 2021-11-09
+ * 高精度地图层UI
+ */
+@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_MAP)
+public class MoGoHDMapFragment extends MvpFragment implements MoGoMapView {
+
+ private static final String TAG = "MoGoHDMapFragment";
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.function_map_fragment_hd_map;
+ }
+
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
+ @Override
+ protected void initViews() {
+ Logger.d(TAG, "initViews");
+ }
+
+ @NonNull
+ @Override
+ protected MoGoMapPresenter createPresenter() {
+ return new MoGoMapPresenter(this);
+ }
+
+}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapPresenter.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapPresenter.java
new file mode 100644
index 0000000000..9b95c75073
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapPresenter.java
@@ -0,0 +1,9 @@
+package com.mogo.eagle.core.function.map;
+
+import com.mogo.commons.mvp.Presenter;
+
+public class MoGoMapPresenter extends Presenter {
+ public MoGoMapPresenter(MoGoMapView view) {
+ super(view);
+ }
+}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapView.java
new file mode 100644
index 0000000000..e8a3f18706
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/MoGoMapView.java
@@ -0,0 +1,6 @@
+package com.mogo.eagle.core.function.map;
+
+import com.mogo.commons.mvp.IView;
+
+public interface MoGoMapView extends IView {
+}
diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/function_map_fragment_hd_map.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/function_map_fragment_hd_map.xml
new file mode 100644
index 0000000000..7a8bfb151f
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/res/layout/function_map_fragment_hd_map.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MoGoFragmentPaths.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MoGoFragmentPaths.java
new file mode 100644
index 0000000000..b0f6016b09
--- /dev/null
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MoGoFragmentPaths.java
@@ -0,0 +1,25 @@
+package com.mogo.eagle.core.data.constants;
+
+import androidx.annotation.Keep;
+
+/**
+ * 有关UI的路径
+ */
+@Keep
+public class MoGoFragmentPaths {
+
+ /**
+ * 高精地图Fragment
+ */
+ @Keep
+ @Deprecated
+ public static final String PATH_FRAGMENT_MAP = "/hd_map_ui/";
+
+ /**
+ * HMI 业务相关的
+ */
+ @Keep
+ @Deprecated
+ public static final String PATH_FRAGMENT_HMI = "/hmi_ui/";
+
+}
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java
index d0b513a1c3..74186f0834 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java
@@ -1,8 +1,11 @@
package com.mogo.commons.mvp;
+import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
+import android.provider.Settings;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
@@ -13,6 +16,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.mogo.commons.debug.DebugConfig;
+import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.utils.SoftKeyBoardJobber;
/**
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java
index 2c417a6a58..3cd0acc457 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpFragment.java
@@ -56,6 +56,12 @@ public abstract class MvpFragment> exten
*/
protected abstract int getLayoutId();
+ /**
+ * 获取绑定的TAG标记
+ * @return 返回唯一TAG标记
+ */
+ public abstract String getTagName();
+
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
index b2cfb35812..5f4708a62c 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppNavigatorFragment.java
@@ -56,6 +56,11 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
return R.layout.module_apps_fragment_apps_navigator;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
index 446a9f8d90..5bcb68b9bf 100644
--- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
+++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/AppsFragment.java
@@ -39,6 +39,11 @@ public class AppsFragment extends MvpFragment< AppsView, AppsPresenter > impleme
return R.layout.module_apps_fragment_apps;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
mAppsPager = findViewById( R.id.module_apps_id_apps_pager );
diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamFragment.java b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamFragment.java
index ac13cc4030..bdb99b09f1 100644
--- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamFragment.java
+++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamFragment.java
@@ -23,6 +23,8 @@ import java.util.List;
* describe:车队信息
*/
public class VehicleTeamFragment extends MvpFragment implements VehicleTeamView {
+ private static final String TAG = "VehicleTeamFragment";
+
private TextView tvNum;
private ImageView ivClose;
private RecyclerView rvTeammates;
@@ -40,6 +42,11 @@ public class VehicleTeamFragment extends MvpFragment implement
* 加载其它模块
*/
protected void loadOthersModules() {
+ //loadFunctionFragment();
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
loadContainerModules();
MogoModulesManager.getInstance().loadModules();
@@ -276,6 +282,12 @@ public class MainActivity extends MvpActivity implement
mServiceApis.getAdasControllerApi().showADAS();
}
+ @Override
+ public void loadFunctionFragment() {
+ MvpFragment fragmentHdMap = (MvpFragment) ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_MAP).navigation();
+ addFragment(fragmentHdMap, fragmentHdMap.getTagName(), R.id.module_main_id_hd_map_fragment_container);
+ }
+
@NonNull
@Override
protected MainPresenter createPresenter() {
@@ -454,4 +466,26 @@ public class MainActivity extends MvpActivity implement
}
}
+
+ /**
+ * 由于应用是单页面的,所以采用Fragment将各模块的UI进行分割解耦合
+ *
+ * @param newFragment 功能UI
+ * @param tagName UI绑定的Tag
+ * @param containerId 要加入的资源ID
+ */
+ private void addFragment(Fragment newFragment, String tagName, int containerId) {
+ Fragment fragment = getSupportFragmentManager().findFragmentByTag(tagName);
+ if (fragment == null) {
+ fragment = newFragment;
+ }
+ if (fragment == null) {
+ Logger.e(TAG, "add fragment fail cause fragment == null, container is %s", ResourcesHelper.getResNameById(getApplicationContext(), containerId));
+ return;
+ }
+ getSupportFragmentManager().beginTransaction()
+ .replace(containerId, fragment, tagName)
+ .commitAllowingStateLoss();
+ }
+
}
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
index e2555d5f8c..5ad69da59a 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainView.java
@@ -16,6 +16,11 @@ public interface MainView extends IView {
*/
void hideCoverUpLayout();
+ /**
+ * 加载各模块中的Fragment
+ */
+ void loadFunctionFragment();
+
/**
* 加载模块
*/
diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
index 066073f5d0..2717e7ecf2 100644
--- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
+++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml
@@ -13,6 +13,12 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
+
+
+
implements
return R.layout.module_map_fragment_map;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
MogoApisHandler.getInstance().getApis().getMapFrameControllerApi().initDelegate( this );
diff --git a/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java b/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java
index cea74ae303..a7386aa260 100644
--- a/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java
+++ b/modules/mogo-module-push/src/main/java/com/mogo/module/push/fragment/MessageHistoryFragment.java
@@ -56,6 +56,11 @@ class MessageHistoryFragment extends MvpFragment< MessageHistoryView, MessageHis
return R.layout.module_push_message_hisotry_fragment;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
mClear = findViewById( R.id.module_push_id_clear );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java
index 731c17122b..6a81343fff 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/onlinecar/panel/OnlineCarPanelFragment.java
@@ -27,6 +27,7 @@ import java.util.Map;
* 描述
*/
public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, OnlineCarPanelPresenter > implements IOnlineCarPanelView {
+ private String TAG = "OnlineCarPanelFragment";
private RecyclerView mList;
private View mErrorPanel;
@@ -45,6 +46,11 @@ public class OnlineCarPanelFragment extends MvpFragment< IOnlineCarPanelView, On
return R.layout.module_services_fragment_online_car_panel;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
findViewById( R.id.module_services_id_close ).setOnClickListener( new OnPreventFastClickListener() {
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
index dacdce36b3..2166148759 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XEventPanelFragment.kt
@@ -55,7 +55,7 @@ import org.greenrobot.eventbus.ThreadMode
*/
class V2XEventPanelFragment : MvpFragment(), SurroundingDetailItemListener ,IMogoStatusChangedListener{
- private val TAG = "EventPanelFragment"
+ private val TAG = "V2XEventPanelFragment"
private var isFirstLoad = false
@@ -143,6 +143,10 @@ class V2XEventPanelFragment : MvpFragment {
- private String TAG = "ScenarioHistoryFragment";
+ private String TAG = "V2XScenarioHistoryFragment";
public Boolean fromVoice = false;
private V2XListEmptyView mEmptyView;
private LinearLayout mClHistoryList;
@@ -51,6 +51,11 @@ public class V2XScenarioHistoryFragment
return R.layout.module_v2x_event_panel_fragment_scenario_history;
}
+ @Override
+ public String getTagName() {
+ return TAG;
+ }
+
@Override
protected void initViews() {
Log.d(TAG, "initViews --------> ");
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java
index 864cf9a72e..10d4831bd8 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java
@@ -33,7 +33,7 @@ import java.util.ArrayList;
public class V2XShareEventsFragment extends MvpFragment implements AdapterCallback {
- private static final String TAG = "ShareEventsFragment";
+ private static final String TAG = "V2XShareEventsFragment";
private RecyclerView recyclerView;
private V2XShareEventAdapter adapter;
private ArrayList dataArrayList = new ArrayList();
@@ -50,6 +50,11 @@ public class V2XShareEventsFragment extends MvpFragment implements SurroundingEventView,
View.OnClickListener, SurroundingItemClickListener {
- private static final String TAG = "SurroundingFragment";
+ private static final String TAG = "V2XSurroundingFragment";
private RelativeLayout mSurroundingLayout;
private RecyclerView mRecyclerView;
private TextView mTotalTv;
@@ -90,6 +90,11 @@ public class V2XSurroundingFragment extends MvpFragment