diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java index b4b67cdb13..dbc96cf077 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java @@ -3,6 +3,7 @@ package com.mogo.module.tanlu.fragment; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.graphics.Rect; import android.location.LocationManager; import android.net.Uri; @@ -103,6 +104,7 @@ import com.mogo.service.windowview.IMogoTopViewStatusListener; import com.mogo.utils.NetworkUtils; import com.mogo.utils.TipDrawable; import com.mogo.utils.TipToast; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; //import com.shuyu.gsyvideoplayer.GSYVideoManager; @@ -515,7 +517,7 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL * 唤醒语音 */ private IMogoIntentListener mogoIntentListener = (intentStr, intent) -> { - AIAssist.getInstance(getContext()).speakTTSVoice(searchingVoiceStrings[mRandom.nextInt(3)] , null); + AIAssist.getInstance(getContext()).speakTTSVoice(searchingVoiceStrings[mRandom.nextInt(3)], null); if (TanluServiceManager.getMogoStatusManager().isMainPageOnResume()) { // 直接执行相关查询操作 Logger.d(TAG, "智慧出行在前台,可直接分享--->"); @@ -1142,21 +1144,46 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL IMogoMarker mogoMarker = TanluServiceManager.getServiceApis().getMarkerService().drawMarker(markerShowEntity); mogoMarker.setClickable(false); - //开启动画 - mogoMarker.startScaleAnimationWithAlpha(0, 1.2f, 0, 1.2f, 0f, 1f, 300, new LinearInterpolator(), new OnMarkerAnimationListener() { + //添加图片动画 + Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_circle_image, null); + MarkerShowEntity markerShowEntityAnimation = new MarkerShowEntity(); + markerShowEntityAnimation.setTextContent(address); + markerShowEntityAnimation.setMarkerType(TanluConstants.MODEL_NAME); + MogoMarkerOptions options = new MogoMarkerOptions() + .object(markerShowEntityAnimation) + .icon(bitmap) + .anchor(0.5f, 0.5f) + .latitude(lat) + .owner(TanluConstants.MODEL_NAME) + .longitude(lon); + + IMogoMarker mogoAnimationMarker = mMarkerManager.addMarker(TanluConstants.MODEL_NAME, options); + mogoAnimationMarker.startScaleAnimation(0, 4f, 0, 4f, 500, new LinearInterpolator(), new OnMarkerAnimationListener() { @Override public void onAnimStart() { - Logger.d(TAG, " onAnimStart ---1----> "); } @Override public void onAnimEnd() { - if (mogoMarker.isDestroyed()) { - return; - } - mogoMarker.startScaleAnimation(1.2f, 1, 1.2f, 1, 100, new LinearInterpolator(), null); + mogoAnimationMarker.destroy(); } }); + + //开启动画 +// mogoMarker.startScaleAnimationWithAlpha(0, 1.2f, 0, 1.2f, 0f, 1f, 300, new LinearInterpolator(), new OnMarkerAnimationListener() { +// @Override +// public void onAnimStart() { +// Logger.d(TAG, " onAnimStart ---1----> "); +// } +// +// @Override +// public void onAnimEnd() { +// if (mogoMarker.isDestroyed()) { +// return; +// } +// mogoMarker.startScaleAnimation(1.2f, 1, 1.2f, 1, 100, new LinearInterpolator(), null); +// } +// }); } } else { Logger.e(TAG, "onMarkerInfo share onCompleted poiType = -1 --- else ---->"); diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_circle_image.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_circle_image.png new file mode 100644 index 0000000000..4b3c40856e Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_circle_image.png differ diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java index 8c0bd97968..8818ec3b1c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XConst.java @@ -37,6 +37,7 @@ public class V2XConst { */ public static final String BROADCAST_TEST_PANEL_CONTROL_ACTION = "com.v2x.com.v2x.test_panel_control"; public static final String BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY = "TextPanelOpenStatus"; + public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "TextPanelOpenType"; public static final String BROADCAST_SCENE_ACTION = "com.v2x.scene_local_broadcast"; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 84121b7b8a..d92b98d136 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -28,6 +28,7 @@ import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoWindow; import com.mogo.module.v2x.utils.ChartingUtil; import com.mogo.module.v2x.utils.EventTypeUtils; import com.mogo.module.v2x.utils.SpanUtils; +import com.mogo.module.v2x.view.HeartLikeView; import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; import com.mogo.module.v2x.voice.V2XVoiceConstants; import com.mogo.module.v2x.voice.V2XVoiceManager; @@ -69,7 +70,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { private ImageView ivEventCallChart; private ImageView ivEventReportTrue; private ImageView ivEventReportErr; - private ImageView ivEventZan; + private HeartLikeView ivEventZan; // 上传事件的用户信息 @@ -273,7 +274,8 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { ivEventCallChart.setVisibility(GONE); triggerCallChart(mNoveltyInfo); }); - ivEventZan.setOnClickListener(v -> { + + ivEventZan.setOnClickCallListener(v -> { triggerZan(mNoveltyInfo); }); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java index 7123176fba..bb19973358 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/receiver/TestPanelBroadcastReceiver.java @@ -21,15 +21,17 @@ public class TestPanelBroadcastReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { try { boolean textPanelOpenStatus = intent.getBooleanExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_EXTRA_KEY, false); + int textPanelOpenType = intent.getIntExtra(V2XConst.BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0); Logger.d(TAG, "textPanelOpenStatus:" + textPanelOpenStatus); + Logger.d(TAG, "textPanelOpenType:" + textPanelOpenType); if (textPanelOpenStatus) { V2XServiceManager .getIMogoWindowManager() - .addView(V2XTestConsoleWindow.getInstance(context), 0, 0, false); + .addView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType), 0, 0, false); } else { V2XServiceManager .getIMogoWindowManager() - .removeView(V2XTestConsoleWindow.getInstance(context)); + .removeView(V2XTestConsoleWindow.getInstance(context, textPanelOpenType)); } } catch (Exception e) { e.printStackTrace(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java index f0633ddbd8..2828b96b13 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/test/V2XTestConsoleWindow.java @@ -6,6 +6,7 @@ import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; +import android.widget.LinearLayout; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.localbroadcastmanager.content.LocalBroadcastManager; @@ -39,7 +40,9 @@ import static android.text.style.TtsSpan.GENDER_MALE; public class V2XTestConsoleWindow extends ConstraintLayout { private static V2XTestConsoleWindow mV2XTestConsoleWindow; - private FlexboxLayout mFlTestPanel; + private LinearLayout mFlTestPanel; + private FlexboxLayout flTestPanelShunNormal; + private FlexboxLayout flTestPanelShunYi; private Button mBtnTriggerOpen; private Button mBtnTriggerRoadEvent; private Button mBtnClearRoadEvent; @@ -49,20 +52,25 @@ public class V2XTestConsoleWindow extends ConstraintLayout { private Button mBtnTriggerFatigueDrivingEvent; private Button mBtnTriggerSeekHelpEvent; private Button mBtnTriggerParkEvent; - private Button mBtnTriggerEventUgc; private Button mBtnTriggerCallUserInfo; + private Button mBtnTriggerEventUgc; - public static V2XTestConsoleWindow getInstance(Context context) { + public static V2XTestConsoleWindow getInstance(Context context, int showType) { if (mV2XTestConsoleWindow == null) { synchronized (V2XTestConsoleWindow.class) { if (mV2XTestConsoleWindow == null) { - mV2XTestConsoleWindow = new V2XTestConsoleWindow(context); + mV2XTestConsoleWindow = new V2XTestConsoleWindow(context, showType); } } } return mV2XTestConsoleWindow; } + public V2XTestConsoleWindow(Context context, int showType) { + super(context); + initView(context, showType); + } + public V2XTestConsoleWindow(Context context) { this(context, null); } @@ -73,13 +81,15 @@ public class V2XTestConsoleWindow extends ConstraintLayout { public V2XTestConsoleWindow(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); - initView(context); + initView(context, 0); } - private void initView(Context context) { + private void initView(Context context, int showType) { LayoutInflater.from(context).inflate(R.layout.window_test_console, this); mFlTestPanel = findViewById(R.id.flTestPanel); + flTestPanelShunNormal = findViewById(R.id.flTestPanelShunNormal); + flTestPanelShunYi = findViewById(R.id.flTestPanelShunYi); mBtnTriggerOpen = findViewById(R.id.btnTriggerOpen); mBtnClearRoadEvent = findViewById(R.id.btnClearRoadEvent); mBtnTriggerRoadEvent = findViewById(R.id.btnTriggerRoadEvent); @@ -92,6 +102,20 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerEventUgc = findViewById(R.id.btnTriggerEventUgc); mBtnTriggerCallUserInfo = findViewById(R.id.btnTriggerCallUserInfo); + switch (showType) { + case 0: + flTestPanelShunNormal.setVisibility(View.VISIBLE); + flTestPanelShunYi.setVisibility(View.VISIBLE); + break; + case 1: + flTestPanelShunNormal.setVisibility(View.VISIBLE); + break; + case 2: + flTestPanelShunYi.setVisibility(View.VISIBLE); + break; + } + + mBtnTriggerCallUserInfo.setOnClickListener(v -> { MogoDriverInfo mogoDriverInfo = new MogoDriverInfo(); mogoDriverInfo.setAge(24); @@ -105,7 +129,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { mBtnTriggerOpen.setOnClickListener(v -> V2XServiceManager .getIMogoWindowManager() - .removeView(V2XTestConsoleWindow.getInstance(context)) + .removeView(V2XTestConsoleWindow.getInstance(context, showType)) ); mBtnClearRoadEvent.setOnClickListener(v -> { @@ -168,6 +192,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); }); + mBtnTriggerEventUgc.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -188,6 +213,7 @@ public class V2XTestConsoleWindow extends ConstraintLayout { intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); }); + } } diff --git a/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_heart_like_select_bg.png b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_heart_like_select_bg.png new file mode 100644 index 0000000000..376444c213 Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-mdpi/icon_heart_like_select_bg.png differ diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_heart_like_select_bg.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_heart_like_select_bg.png new file mode 100644 index 0000000000..39d0f8fb8a Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/icon_heart_like_select_bg.png differ diff --git a/modules/mogo-module-v2x/src/main/res/drawable/selector_zan_btn.xml b/modules/mogo-module-v2x/src/main/res/drawable/selector_zan_btn.xml new file mode 100644 index 0000000000..161b630124 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/drawable/selector_zan_btn.xml @@ -0,0 +1,5 @@ + + + + /> + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2xt_dw_common_corner_bkg_dark.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2xt_dw_common_corner_bkg_dark.xml deleted file mode 100644 index b359c203e9..0000000000 --- a/modules/mogo-module-v2x/src/main/res/drawable/v2xt_dw_common_corner_bkg_dark.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml index 13ebb3bb43..99867b46ab 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail.xml @@ -192,17 +192,17 @@ app:layout_goneMarginLeft="@dimen/dp_10" tools:visibility="visible" /> - + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index 1d190c16cc..70d9c116d6 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -6,173 +6,236 @@ android:orientation="horizontal" android:paddingStart="@dimen/module_main_v2x_animation_width"> - + android:paddingEnd="@dimen/dp_100"> -