From 99d1012b77b73cd30732d9c6c8c670cbd9cdf51b Mon Sep 17 00:00:00 2001 From: EmArrow Date: Fri, 27 Sep 2024 19:41:42 +0800 Subject: [PATCH] [6.7.0] replace taxi base f view to new bone --- .../presenter/BusPassengerPresenter.kt | 4 +- .../mogo/och/biz/login/model/LoginModel.kt | 4 +- .../manager/autopilot/line/LineManager.kt | 5 +- .../mogo/och/facade/route/FacadeProvider.kt | 6 +- .../weaknet/ui/fragment/ShuttleFragment.kt | 2 - .../och/taxi/presenter/TaxiPresenter.java | 22 +- .../mogo/och/taxi/ui/BaseTaxiTabFragment.java | 218 ------------------ .../ui/TaxiBeingServerdOrdersFragment.java | 2 - .../com/mogo/och/taxi/ui/TaxiFragment.java | 142 +++++------- .../main/res/layout/taxi_base_fragment.xml | 200 ++-------------- .../passenger/model/TaxiPassengerModel.kt | 6 +- .../passenger/model/TaxiPassengerModel.kt | 6 +- .../datacenter/biz/DataCenterBizProvider.kt | 20 ++ .../badcase/BadCaseManager.kt | 14 +- .../status/flow/fsm/FSMImpl.kt | 14 +- .../workorder/FaultReasonWindow.kt | 214 +++++++++-------- .../function/hmi/bone/BoneContainerView.kt | 5 + .../function/hmi/bone/tab/FaultReasonView.kt | 211 ++++++++++------- .../function/hmi/bone/tab/MsgBoxTabView.kt | 14 +- .../hmi/bone/toolkit/ToolKitDataManager.kt | 13 +- .../function/hmi/map/MapContainerLayout.kt | 13 +- .../hmi/ui/msgbox/DriverMsgBoxBubbleView.kt | 120 ++++++---- .../hmi/ui/msgbox/DriverMsgBoxListView.kt | 16 +- .../hmi/ui/msgbox/MMsgBoxButtonView.kt | 14 +- .../function/hmi/ui/msgbox/MMsgBoxListView.kt | 19 +- .../function/hmi/ui/msgbox/MsgBoxToastView.kt | 98 ++++---- .../ui/msgbox/PassengerMsgBoxBubbleView.kt | 14 +- .../hmi/ui/msgbox/PassengerMsgBoxListView.kt | 12 +- .../function/hmi/ui/setting/StatusView.kt | 19 +- .../main/res/layout/view_bone_container.xml | 4 +- .../main/res/layout/view_map_container.xml | 4 +- .../api/datacenter/IDataCenterBizListener.kt | 15 ++ .../api/och/IEagleBaseFunctionCall4Och.kt | 29 +++ .../api/och/IOchFunctionCallNotify.kt | 16 +- .../core/function/api/order/IOrderListener.kt | 38 --- .../datacenter/CallerDataCenterBizListener.kt | 56 ++++- .../datacenter/CallerDataCenterBizManager.kt | 20 ++ .../CallerEagleBaseFunctionCall4OchManager.kt | 20 ++ .../call/order/CallerOrderListenerManager.kt | 78 ------- 39 files changed, 729 insertions(+), 998 deletions(-) delete mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/order/IOrderListener.kt delete mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/order/CallerOrderListenerManager.kt diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt index eb7e57493d..41b4bdcbb1 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/charter/passenger/presenter/BusPassengerPresenter.kt @@ -12,12 +12,12 @@ import com.mogo.commons.voice.AIAssist import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.function.view.SiteMarkerBean import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.och.charter.passenger.R import com.mogo.och.charter.passenger.bean.response.LineInfoResponse import com.mogo.och.charter.passenger.bean.response.OrderInfoResponse @@ -115,7 +115,7 @@ class BusPassengerPresenter(view: MainFragment?) : } OrderStatusEnum.OrderNoLine -> { - CallerOrderListenerManager.invokeOrderRemoval() + CallerEagleBaseFunctionCall4OchManager.onOrderRemoval() showNoviceGuidance() } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt index 332303bbf8..eb97b5ca52 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -11,7 +11,7 @@ import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02 -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager +import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -179,7 +179,7 @@ object LoginModel { if (null != data && 0 == data.code) { // 不用登录也可以获得支持的业务模式 LoginStatusManager.setBusinessType(data.data.businessType) - CallerOrderListenerManager.invokeTenantIdUpdate(data.data.tenantId) + CallerEagleBaseFunctionCall4OchManager.updateTenantId(data.data.tenantId) iTaxiLoginCallback?.searchStatusSuccess() // 后台已登录 if(!FunctionBuildConfig.isOffLine){ diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt index 3ec090b544..a367fbb68f 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/autopilot/line/LineManager.kt @@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.map.CallerMapGlobalTrajectoryDrawManager import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS @@ -137,7 +136,7 @@ object LineManager : CallerBase() { fun setLineInfo(lineInfo: LineInfo?) { if (lineInfo == null) { clearGlobalTrajectory(true) - CallerOrderListenerManager.invokeOrderLineUpdate("") + CallerEagleBaseFunctionCall4OchManager.updateOrderLine("") } this._lineInfos = lineInfo setAutopilotControlParameters() @@ -148,7 +147,7 @@ object LineManager : CallerBase() { line.multiMap?.forEach { sb.append(it.value) } - CallerOrderListenerManager.invokeOrderLineUpdate(sb.toString()) + CallerEagleBaseFunctionCall4OchManager.updateOrderLine(sb.toString()) } } } diff --git a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt index 04def142ee..1f49d547c8 100644 --- a/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt +++ b/OCH/facade/src/main/java/com/mogo/och/facade/route/FacadeProvider.kt @@ -16,7 +16,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager +import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager import com.mogo.eagle.core.function.hmi.ui.setting.SopView import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView @@ -176,10 +176,10 @@ abstract class FacadeProvider : IMoGoFunctionProvider, ILoginCallback { d(TAG, "登录状态发生改变 $currentStatus") when (currentStatus) { LoginStatusEnum.Login -> { - CallerOrderListenerManager.invokeLoginStatusUpdate(true) + CallerEagleBaseFunctionCall4OchManager.updateLoginStatus(true) } else -> { - CallerOrderListenerManager.invokeLoginStatusUpdate(false) + CallerEagleBaseFunctionCall4OchManager.updateLoginStatus(false) } } UiThreadHandler.post { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt index 7a83fdeaf7..a43ebf6b09 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt @@ -55,8 +55,6 @@ class ShuttleFragment : MvpFragment() { override fun initViews() { context?.let { - boneContainerView.addBizView(SwitchBizView(it)) - CallerEagleBaseFunctionCall4OchManager.addSingleToolKitDefaultItem(runningTaskGateWay,"本地缓存任务", R.drawable.bus_running_task_history,4) CallerEagleBaseFunctionCall4OchManager.addToolKitDefaultItemClickListener(runningTaskGateWay,object : IToolKitItemClickListener{ diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index e1d4d56a69..ec2067785f 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -14,7 +14,7 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager; +import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.common.module.biz.login.ILoginCallback; @@ -313,7 +313,7 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS public void run() { if(mView!=null) { mView.updateCtvAutopilotStatusTag(true); - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(true); + CallerEagleBaseFunctionCall4OchManager.INSTANCE.updateOrderStatus(true); mView.setGuidHide(); } } @@ -338,7 +338,7 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS mView.updateCtvAutopilotStatusTag(false); if (TaxiOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus) { - CallerOrderListenerManager.INSTANCE.invokeOrderStatus(false); + CallerEagleBaseFunctionCall4OchManager.INSTANCE.updateOrderStatus(false); } } } @@ -512,14 +512,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS } } String finalRole = role; - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.setRole(finalRole); - } - } - }, UiThreadHandler.MODE.QUEUE); } @Override @@ -527,13 +519,5 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS if(businessEnum==OpenOrderStatusEnum.Ordering){ TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&LoginStatusManager.isOpenOrderType()); } - UiThreadHandler.post(new Runnable() { - @Override - public void run() { - if(mView!=null) { - mView.updateOperationStatus(LoginStatusManager.getOpenOrderType()); - } - } - }, UiThreadHandler.MODE.QUEUE); } } diff --git a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java index 5fc43f454f..3b628cb458 100644 --- a/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java +++ b/OCH/taxi/driver/src/main/java/com/mogo/och/taxi/ui/BaseTaxiTabFragment.java @@ -55,19 +55,9 @@ import java.lang.ref.WeakReference; public abstract class BaseTaxiTabFragment> extends MvpFragment implements IMogoMapListener { private static final String TAG = "BaseOchFragment"; - private RelativeLayout ctvAutopilotStatusRL; - protected OrderStatusView tvOperationStatus; - protected TextView mDriverRole; - protected FrameLayout flStationPanelContainer; private FrameLayout flNaviPanelContainer; private MapRoamView mapRoamView; - private Group groupTestPanel; - // private FrameLayout mSpeedView; - private ImageView mAutopilotImage; - private TextView mAutopilotTv; private ImageView mCloseNaviIcon; -// protected VisualViewDirver visualViewDirver; - protected TaxiAmapNaviFragment ochAmapNaviFragment = null; protected TaxiRottingNaviFragment taxiRottingNaviFragment = null; @@ -92,100 +82,17 @@ public abstract class BaseTaxiTabFragment { -// if (groupTestPanel.getVisibility() == View.VISIBLE) { -// groupTestPanel.setVisibility(View.GONE); -// } else { -// groupTestPanel.setVisibility(View.VISIBLE); -// } -// return false; -// }); CallerHmiViewControlListenerManager.INSTANCE.invokeMainPageViewVisible(View.VISIBLE); - onAutopilotStatusChanged(CallerAutoPilotStatusListenerManager.INSTANCE.getState(), CallerAutoPilotControlManager.INSTANCE.isCanStartAutopilot(false, 0)); - // 模拟 不可自动驾驶,目前场景是刚开机,adas还未和工控机连接 - findViewById(R.id.btnAutopilotDisable).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE, true) - - ); - - // 模拟 可自动驾驶,工控机连接正常,且处于人工干预状态 - findViewById(R.id.btnAutopilotEnable).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE, true) - - ); - - // 模拟 自动驾驶能力,自动驾驶中,可能是停车,可能是行进,但是是机器在处理车的前进后退,不是人 - findViewById(R.id.btnAutopilotRunning).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING, true) - - ); - - findViewById(R.id.btnAutopilotmanco).setOnClickListener(view -> - onAutopilotStatusChanged(IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING, true)); - - tvOperationStatus.setOnClickListener(new OnPreventFastClickListener() { - @Override - public void onClickImpl(View v) { - onChangeOperationStatus(); - } - }); mCloseNaviIcon.setOnClickListener(v -> { showAmapNaviToStationFragment(false); showRottingToStationFragment(false); }); -// smallMapView = findViewById(R.id.smallMapView); -// acivShowGuid = findViewById(R.id.aciv_show_guid); -// smallMapView.setOnClickListener(new View.OnClickListener() { -// @Override -// public void onClick(View v) { -// if(overMapDialog==null){ -// overMapDialog = new OverMapDialog(getContext()); -// } -// acivShowGuid.setVisibility(View.GONE); -// overMapDialog.showDialog(); -// } -// }); - if (getContext() != null) { CallerEagleBaseFunctionCall4OchManager.INSTANCE.addSingleToolKitDefaultItem(runningTaskGateWay, "运营面板", R.drawable.common_biz_operation, 4); CallerEagleBaseFunctionCall4OchManager.INSTANCE.addToolKitDefaultItemClickListener(runningTaskGateWay, new IToolKitItemClickListener() { @@ -252,16 +159,9 @@ public abstract class BaseTaxiTabFragment(TaxiServerOrdersFragment.newInstance()); - grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - //默认显示OCHTaxiServerOrdersFragment - transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()).show(serverOrdersFragmentWR.get()); - transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()).hide(grabOrderFragmentWR.get()); - transaction.commitAllowingStateLoss(); +// serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance()); +//// grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); +// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); +// //默认显示OCHTaxiServerOrdersFragment +// transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()).show(serverOrdersFragmentWR.get()); +// transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()).hide(grabOrderFragmentWR.get()); +// transaction.commitAllowingStateLoss(); } private void showGrabFragmentAndUpdate() { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - if (grabOrderFragmentWR == null || grabOrderFragmentWR.get() == null) { - grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); - transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()) - .show(grabOrderFragmentWR.get()).commitAllowingStateLoss(); - } else { - transaction.show(grabOrderFragmentWR.get()).hide(serverOrdersFragmentWR.get()).commitAllowingStateLoss(); - } +// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); +// if (grabOrderFragmentWR == null || grabOrderFragmentWR.get() == null) { +// grabOrderFragmentWR = new WeakReference<>(TaxiGrabOrderFragment.newInstance()); +// transaction.add(R.id.fragment_container, grabOrderFragmentWR.get()) +// .show(grabOrderFragmentWR.get()).commitAllowingStateLoss(); +// } else { +// transaction.show(grabOrderFragmentWR.get()).hide(serverOrdersFragmentWR.get()).commitAllowingStateLoss(); +// } } public void showServerFragmentAndUpdate() { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - if (serverOrdersFragmentWR == null || serverOrdersFragmentWR.get() == null) { - serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance()); - transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()) - .show(serverOrdersFragmentWR.get()); - } else { - transaction.show(serverOrdersFragmentWR.get()).hide(grabOrderFragmentWR.get()).commitAllowingStateLoss(); - } +// FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); +// if (serverOrdersFragmentWR == null || serverOrdersFragmentWR.get() == null) { +// serverOrdersFragmentWR = new WeakReference<>(TaxiServerOrdersFragment.newInstance()); +// transaction.add(R.id.fragment_container, serverOrdersFragmentWR.get()) +// .show(serverOrdersFragmentWR.get()); +// } else { +// transaction.show(serverOrdersFragmentWR.get()).hide(grabOrderFragmentWR.get()).commitAllowingStateLoss(); +// } } @NonNull @@ -166,36 +163,15 @@ public class TaxiFragment extends BaseTaxiTabFragment { - TaxiModel.getInstance().setArriveAtStartStation(); - }); - findViewById(R.id.test_bar_to_end).setOnClickListener(v -> { - TaxiModel.getInstance().setArriveAtEndStation(); - }); - findViewById(R.id.test_bar_start_service_confirm).setOnClickListener(v -> { - TaxiModel.getInstance().setDriverConfirmCondition(); - }); - findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> { - if (!isStarting){ - mPresenter.startAutoPilot(); - } - TaxiModel.getInstance().setOnTheWayToEndStation(); - }); - findViewById(R.id.test_bar_route).setOnClickListener(v -> { - testRouteInfoUpload(); - }); +// findViewById(R.id.test_bar_to_start).setOnClickListener(v -> { +// TaxiModel.getInstance().setArriveAtStartStation(); +// }); +// findViewById(R.id.test_bar_to_end).setOnClickListener(v -> { +// TaxiModel.getInstance().setArriveAtEndStation(); +// }); +// findViewById(R.id.test_bar_start_service_confirm).setOnClickListener(v -> { +// TaxiModel.getInstance().setDriverConfirmCondition(); +// }); +// findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> { +// if (!isStarting){ +// mPresenter.startAutoPilot(); +// } +// TaxiModel.getInstance().setOnTheWayToEndStation(); +// }); +// findViewById(R.id.test_bar_route).setOnClickListener(v -> { +// testRouteInfoUpload(); +// }); } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml index 752cc1816d..bd2467b60b 100644 --- a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml @@ -1,62 +1,24 @@ - - - - - - - - - - + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - - - - - - -