diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java index 6f470a39a4..028ad45b24 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ObuTest.java @@ -27,6 +27,7 @@ import com.mogo.support.obu.model.advance.VehControl; import com.mogo.support.obu.model.advance.VehSize; import com.mogo.support.obu.model.advance.VerticalLLV; import com.mogo.support.obu.model.advance.WarningData; +import com.mogo.support.obu.model.result.BaseResult; import com.zhidao.support.adas.high.common.ThreadPoolManager; import com.zhidao.support.obu.ObuManager; import com.zhidao.support.obu.OnObuListener; @@ -294,6 +295,11 @@ public class ObuTest { } + @Override + public void onObuCallResult(BaseResult result) { + + } + @Override public void onObuSystemStatus(MogoObuSystemStatusData data) { diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/BackCameraFloatWindow.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/BackCameraFloatWindow.java index 5d57765dbb..8294ce3b40 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/BackCameraFloatWindow.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/BackCameraFloatWindow.java @@ -39,9 +39,17 @@ public class BackCameraFloatWindow implements View.OnTouchListener { private float mInScreenX; private float mInScreenY; private ImageView image_view; + private final boolean isFullScreen; + private final OnBackCameraFloatWindowListener onBackCameraFloatWindowListener; - public BackCameraFloatWindow(Activity context) { + public interface OnBackCameraFloatWindowListener { + void onClose(); + } + + public BackCameraFloatWindow(Activity context, boolean isFullScreen, OnBackCameraFloatWindowListener onBackCameraFloatWindowListener) { this.mContext = context; + this.isFullScreen = isFullScreen; + this.onBackCameraFloatWindowListener = onBackCameraFloatWindowListener; initHandler(); initFloatWindow(); } @@ -53,6 +61,15 @@ public class BackCameraFloatWindow implements View.OnTouchListener { return; mFloatLayout = (View) inflater.inflate(R.layout.layout_back_camera, null); image_view = mFloatLayout.findViewById(R.id.image_view); + ImageView btn_close = mFloatLayout.findViewById(R.id.btn_close); + btn_close.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + if (onBackCameraFloatWindowListener != null) { + onBackCameraFloatWindowListener.onClose(); + } + } + }); mFloatLayout.setOnTouchListener(this); mWindowParams = new WindowManager.LayoutParams(); // mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); @@ -67,10 +84,13 @@ public class BackCameraFloatWindow implements View.OnTouchListener { mWindowParams.format = PixelFormat.RGBA_8888; mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; mWindowParams.gravity = Gravity.START | Gravity.TOP; -// mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT; -// mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; - mWindowParams.width = 1280; - mWindowParams.height = 720; + if (isFullScreen) { + mWindowParams.width = WindowManager.LayoutParams.MATCH_PARENT; + mWindowParams.height = WindowManager.LayoutParams.MATCH_PARENT; + } else { + mWindowParams.width = 1280; + mWindowParams.height = 720; + } // mWindowParams.alpha = 0.9F; } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java index 254347a1db..cae37b48c3 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/InfoFragment.java @@ -99,19 +99,20 @@ public class InfoFragment extends BaseFragment { } tvTitle.setGravity(Gravity.CENTER); if (Constants.TITLE.RECEIVE_BACK_CAMERA_VIDEO.equals(title)) { + Button button_full_screen = view.findViewById(R.id.btn_render_full_screen); Button button = view.findViewById(R.id.btn_render); button.setVisibility(View.VISIBLE); + button_full_screen.setVisibility(View.VISIBLE); + button_full_screen.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + showBackCameraFloatWindow(button_full_screen, true); + } + }); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (backCameraFloatWindow == null) { - backCameraFloatWindow = new BackCameraFloatWindow(getActivity()); - final int[] location = new int[2]; - button.getLocationOnScreen(location); - backCameraFloatWindow.showFloatWindow(location[1]); - } else { - hideFloatWindow(); - } + showBackCameraFloatWindow(button, false); } }); } @@ -154,6 +155,25 @@ public class InfoFragment extends BaseFragment { rvInfo.setAdapter(adapter); } + private void showBackCameraFloatWindow(View v, boolean isFullScreen) { + if (isFullScreen) { + hideFloatWindow(); + } + if (backCameraFloatWindow == null) { + backCameraFloatWindow = new BackCameraFloatWindow(getActivity(), isFullScreen, new BackCameraFloatWindow.OnBackCameraFloatWindowListener() { + @Override + public void onClose() { + hideFloatWindow(); + } + }); + final int[] location = new int[2]; + v.getLocationOnScreen(location); + backCameraFloatWindow.showFloatWindow(location[1]); + } else { + hideFloatWindow(); + } + } + private void setData() { if (Constants.TITLE.RECEIVE_GNSS_INFO.equals(title)) { adapter.setData(DataDistribution.getInstance().listGnssInfo); @@ -241,9 +261,11 @@ public class InfoFragment extends BaseFragment { } } - public void onBackCameraVideo(byte[] data) { + public boolean onBackCameraVideo(byte[] data) { if (backCameraFloatWindow != null) { backCameraFloatWindow.onBackCameraVideo(data); + return true; } + return false; } } diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 440c1c01eb..2b00adea2d 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -1114,12 +1114,15 @@ public class MainActivity extends BaseActivity implements OnAdasListener, OnAdas @Override public void onBackCameraVideo(@NotNull MessagePad.Header header, @NotNull byte[] data) { + boolean isAddLog = true; if (fromFragment instanceof InfoFragment) { InfoFragment fragment = (InfoFragment) fromFragment; - fragment.onBackCameraVideo(data); + isAddLog = !fragment.onBackCameraVideo(data); + } + if (isAddLog) { + ReceiveBytesData base = new ReceiveBytesData(header, data, sdf); + DataDistribution.getInstance().addData(base); } - ReceiveBytesData base = new ReceiveBytesData(header, data, sdf); - DataDistribution.getInstance().addData(base); } @Override diff --git a/app_ipc_monitoring/src/main/res/drawable/ic_close.xml b/app_ipc_monitoring/src/main/res/drawable/ic_close.xml new file mode 100644 index 0000000000..a25a07f33f --- /dev/null +++ b/app_ipc_monitoring/src/main/res/drawable/ic_close.xml @@ -0,0 +1,9 @@ + + + diff --git a/app_ipc_monitoring/src/main/res/layout/fragment_info.xml b/app_ipc_monitoring/src/main/res/layout/fragment_info.xml index adad72cb90..3f2f9f8df7 100644 --- a/app_ipc_monitoring/src/main/res/layout/fragment_info.xml +++ b/app_ipc_monitoring/src/main/res/layout/fragment_info.xml @@ -24,15 +24,28 @@ android:textSize="16sp" android:textStyle="bold" /> - + + - \ No newline at end of file + + + + + +