Merge branch 'dev_1.1.2' of gitlab.zhidaoauto.com:ecos/yycp-service/Launcher into dev_1.1.2

This commit is contained in:
wangcongtao
2020-08-14 15:04:59 +08:00
20 changed files with 338 additions and 277 deletions

View File

@@ -73,31 +73,6 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
}
}
private float getEnthusuasmIndex(double score) {
if (score <= 0) {
return 0;
} else if (0 < score && score <= 5) {
return (float) 0.5;
} else if (5 < score && score <= 10) {
return 1;
} else if (10 < score && score <= 15) {
return (float) 1.5;
} else if (15 < score && score <= 20) {
return 2;
} else if (20 < score && score <= 25) {
return (float) 2.5;
} else if (25 < score && score <= 30) {
return 3;
} else if (30 < score && score <= 35) {
return (float) 3.5;
} else if (35 < score && score <= 40) {
return 4;
} else if (40 < score && score <= 45) {
return (float) 4.5;
}
return 5;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
@@ -115,7 +90,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
if (likeNum != null) {
((shareDescriptionViewHolder) holder).approveNumTextView.setText(likeNum);
}
((shareDescriptionViewHolder) holder).ratingBar.setRating(getEnthusuasmIndex(enthusiasmIndex));
((shareDescriptionViewHolder) holder).ratingBar.setRating((float) enthusiasmIndex);
}
}
} else if (holder instanceof shareItemViewHolder) {
@@ -223,7 +198,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
refresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
callback.loadMoreShareEventList(false);
callback.getShareEventResponse();
}
});
}
@@ -242,7 +217,7 @@ public class V2XShareEventAdapter extends RecyclerView.Adapter<RecyclerView.View
@Override
public void onClick(View v) {
callback.loadMoreShareEventList(true);
callback.loadMoreShareEventList();
}
});
}

View File

@@ -64,7 +64,7 @@ public class V2XScenarioHistoryRoadEventVH extends V2XBaseViewHolder<V2XHistoryS
try {
mTvIllegalNum.setText(mExploreWay.getUserInfo().getUserName() + " 的分享 时间:" +
TimeUtils.millis2String(mExploreWay.getGenerateTime(), "MM月dd日 HH:mm"));
TimeUtils.millis2String(mOldScenarioData.getTriggerTime(), "MM月dd日 HH:mm"));
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -1,7 +1,7 @@
package com.mogo.module.v2x.fragment
import android.content.Intent
import android.view.View
import android.widget.RadioGroup
import androidx.fragment.app.Fragment
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayoutMediator
@@ -12,8 +12,10 @@ import com.mogo.module.v2x.V2XServiceManager
import com.mogo.module.v2x.adapter.V2XEventPagerAdapter
import com.mogo.module.v2x.presenter.EventPanelPresenter
import com.mogo.module.v2x.utils.TrackUtils
import com.mogo.module.v2x.utils.V2XSQLiteUtils
import com.mogo.module.v2x.view.V2XEventPanelHistoryCountView
import com.mogo.module.v2x.voice.V2XVoiceCallbackListener
import com.mogo.module.v2x.voice.V2XVoiceConstants
import com.mogo.module.v2x.voice.V2XVoiceManager
import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.module_v2x_event_panel_fragment_event_panel.*
@@ -40,57 +42,93 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
}
}
// 打开出行动态TAB
private val mCheckHistoryEventCb = V2XVoiceCallbackListener { command: String?, intent: Intent? ->
try {
rgTabSelect?.check(R.id.rbScenarioHistory)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
// 打开周边事件TAB
private val mCheckSurroundingCb = V2XVoiceCallbackListener { command: String?, intent: Intent? ->
try {
rgTabSelect?.check(R.id.rbSurroundingEvent)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
// 打开我的分享TAB
private val mCheckShearEventCb = V2XVoiceCallbackListener { command: String?, intent: Intent? ->
try {
rgTabSelect?.check(R.id.rbShareEvents)
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
// 打关闭事件面板
private val mCloeEventCb = V2XVoiceCallbackListener { command: String?, intent: Intent? ->
try {
hidePanel()
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}
override fun getLayoutId(): Int {
return R.layout.module_v2x_event_panel_fragment_event_panel
}
override fun initViews() {
Logger.d(MODULE_NAME, "事件面板初始化……")
fragments = arrayOf(
V2XScenarioHistoryFragment(),
V2XSurroundingFragment(),
V2XShareEventsFragment()
)
//禁用预加载
vpEventPanel.offscreenPageLimit = ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT
vpEventPanel.adapter = V2XEventPagerAdapter(this, fragments!!)
vpEventPanel.isUserInputEnabled = false; //true:滑动false禁止滑动
try {
fragments = arrayOf(
V2XScenarioHistoryFragment(),
V2XSurroundingFragment(),
V2XShareEventsFragment()
)
//禁用预加载
vpEventPanel.offscreenPageLimit = ViewPager2.OFFSCREEN_PAGE_LIMIT_DEFAULT
vpEventPanel.adapter = V2XEventPagerAdapter(this, fragments!!)
vpEventPanel.isUserInputEnabled = false; //true:滑动false禁止滑动
val radioGroup = findViewById<View>(R.id.rgTabSelect) as RadioGroup?
radioGroup!!.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.rbScenarioHistory -> {
TrackUtils.trackV2xHistoryEvent(2)
vpEventPanel.setCurrentItem(0, false)
}
R.id.rbSurroundingEvent -> {
TrackUtils.trackV2xHistoryEvent(3)
vpEventPanel.setCurrentItem(1, false)
}
R.id.rbShareEvents -> {
TrackUtils.trackV2xHistoryEvent(4)
vpEventPanel.setCurrentItem(2, false)
rgTabSelect?.setOnCheckedChangeListener { group, checkedId ->
when (checkedId) {
R.id.rbScenarioHistory -> {
TrackUtils.trackV2xHistoryEvent(2)
vpEventPanel.setCurrentItem(0, false)
}
R.id.rbSurroundingEvent -> {
TrackUtils.trackV2xHistoryEvent(3)
vpEventPanel.setCurrentItem(1, false)
}
R.id.rbShareEvents -> {
TrackUtils.trackV2xHistoryEvent(4)
vpEventPanel.setCurrentItem(2, false)
}
}
}
}
btnHidePanels.setOnClickListener {
TrackUtils.trackV2xHistoryEvent(5)
hidePanel()
}
mV2XEventPanelHistoryCountView = V2XEventPanelHistoryCountView(context)
mV2XEventPanelHistoryCountView!!.setOnClickListener {
TrackUtils.trackV2xHistoryEvent(1)
if (!isPanelShow()) {
showPanel()
} else {
btnHidePanels.setOnClickListener {
TrackUtils.trackV2xHistoryEvent(5)
hidePanel()
}
}
V2XServiceManager.getMogoEntranceButtonController().addBottomLayerView(mV2XEventPanelHistoryCountView)
changeEventCount()
mV2XEventPanelHistoryCountView = V2XEventPanelHistoryCountView(context)
mV2XEventPanelHistoryCountView!!.setOnClickListener {
if (!isPanelShow()) {
TrackUtils.trackV2xHistoryEvent(1)
showPanel()
}
}
V2XServiceManager.getMogoEntranceButtonController().addBottomLayerView(mV2XEventPanelHistoryCountView)
changeEventCount()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onDestroyView() {
@@ -105,13 +143,26 @@ class V2XEventPanelFragment : MvpFragment<V2XEventPanelFragment, EventPanelPrese
fun showPanel() {
Logger.d(MODULE_NAME, "in fragment show panel")
clPanelContainer.visibility = View.VISIBLE
V2XServiceManager.getMoGoV2XStatusManager().setEventPanelWindowShow(TAG, true)
// V2XServiceManager.getMoGoV2XStatusManager().setEventPanelWindowShow(TAG, true)
// 注册语音交互
//Logger.w(MODULE_NAME, "列表View V2XPushEventDetailVH 触发 onViewAttachedToWindow");
// 注册语音交互
V2XVoiceManager.registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP, mCheckHistoryEventCb)
.registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP, mCheckSurroundingCb)
.registerUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP, mCheckShearEventCb)
.registerUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP, mCloeEventCb)
}
fun hidePanel() {
Logger.d(MODULE_NAME, "in fragment hide panel")
clPanelContainer.visibility = View.GONE
V2XServiceManager.getMoGoV2XStatusManager().setEventPanelWindowShow(TAG, false)
// V2XServiceManager.getMoGoV2XStatusManager().setEventPanelWindowShow(TAG, false)
// 注册语音交互
V2XVoiceManager.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP)
.unRegisterUnWakeVoice(V2XVoiceConstants.COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP)
}
fun isPanelShow(): Boolean {

View File

@@ -18,6 +18,7 @@ import com.mogo.module.v2x.adapter.V2XScenarioHistoryAdapter;
import com.mogo.module.v2x.manager.IMoGoV2XStatusChangedListener;
import com.mogo.module.v2x.manager.V2XStatusDescriptor;
import com.mogo.module.v2x.presenter.ScenarioHistoryPresenter;
import com.mogo.module.v2x.utils.ThreadUtils;
import com.mogo.module.v2x.view.V2XListEmptyView;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
@@ -72,6 +73,7 @@ public class V2XScenarioHistoryFragment
@Override
public void onShearClick() {
V2XServiceManager.getMogoShareManager().showShareDialog();
V2XEventPanelFragment.Companion.getInstance().hidePanel();
}
@Override
@@ -108,16 +110,21 @@ public class V2XScenarioHistoryFragment
*/
public void loadHistory(List<V2XHistoryScenarioData> v2XHistoryScenarioData) {
Logger.d(TAG, "查询到历史消息:" + GsonUtil.jsonFromObject(v2XHistoryScenarioData));
mV2XHistoryScenarioData.clear();
if (v2XHistoryScenarioData.size() > 0) {
mEmptyView.setVisibility(View.GONE);
mClHistoryList.setVisibility(View.VISIBLE);
mV2XHistoryScenarioData.addAll(v2XHistoryScenarioData);
} else {
mEmptyView.setVisibility(View.VISIBLE);
mClHistoryList.setVisibility(View.GONE);
}
mV2XScenarioHistoryAdapter.notifyDataSetChanged();
ThreadUtils.runOnUiThread(new Runnable() {
@Override
public void run() {
mV2XHistoryScenarioData.clear();
if (v2XHistoryScenarioData.size() > 0) {
mEmptyView.setVisibility(View.GONE);
mClHistoryList.setVisibility(View.VISIBLE);
mV2XHistoryScenarioData.addAll(v2XHistoryScenarioData);
} else {
mEmptyView.setVisibility(View.VISIBLE);
mClHistoryList.setVisibility(View.GONE);
}
mV2XScenarioHistoryAdapter.notifyDataSetChanged();
}
});
}
@Override

View File

@@ -32,7 +32,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
private static final String TAG = "ShareEventsFragment";
private RecyclerView recyclerView;
private V2XShareEventAdapter adapter;
private ArrayList dataArrayList = new ArrayList();
private ArrayList dataArrayList =new ArrayList();
;
private int pageNum = 1;
private V2XShareNetworkModel v2XShareNetworkModel;
@@ -77,7 +77,8 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
/*
* 获取热心指数,分享列表等分享内容
* */
private void getShareEventResponse() {
@Override
public void getShareEventResponse() {
animatioonAcction(View.VISIBLE);
v2XShareNetworkModel.getShareEventResponse(pageNum, 10, new V2XRefreshCallback() {
@Override
@@ -97,7 +98,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
@Override
public void onFail(String msg) {
loadingView.stopWithError(msg);
loadingView.stopWithError(msg,View.VISIBLE);
loadingView.refresButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -106,6 +107,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
});
}
});
}
@@ -170,12 +172,10 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
}
@Override
public void loadMoreShareEventList(boolean moreOnePage) {
public void loadMoreShareEventList() {
Log.d(TAG, "page--" + pageNum);
animatioonAcction(View.VISIBLE);
if (moreOnePage == true){
pageNum += 1;
}
pageNum += 1;
v2XShareNetworkModel.getShareEventList(pageNum, 10, new V2XRefreshCallback() {
@Override
public void onSuccess(Object result) {
@@ -184,7 +184,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
@Override
public void onFail(String msg) {
loadingView.stopWithError(msg,View.INVISIBLE);
}
});
}

View File

@@ -5,5 +5,7 @@ package com.mogo.module.v2x.listener;
*/
public interface AdapterCallback {
//分享列表加载更多
void loadMoreShareEventList(boolean moreOnePage);
void loadMoreShareEventList();
//分享列表首次刷新
void getShareEventResponse();
}

View File

@@ -136,7 +136,7 @@ public class V2XShareNetworkModel {
public void onError(Throwable e) {
super.onError(e);
if (callback != null){
callback.onFail("当前服务不可以, 请稍后重试");
callback.onFail("网络异常,点击刷新重试");
}
}
});
@@ -180,7 +180,7 @@ public class V2XShareNetworkModel {
public void onError(Throwable e) {
super.onError(e);
if (callback != null){
callback.onFail("当前服务不可以, 请稍后重试");
callback.onFail("网络异常,点击刷新重试");
}
}
});

View File

@@ -4,7 +4,9 @@ package com.mogo.module.v2x.presenter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.module.common.entity.V2XHistoryScenarioData;
import com.mogo.module.v2x.fragment.V2XScenarioHistoryFragment;
import com.mogo.module.v2x.utils.ThreadUtils;
import com.mogo.module.v2x.utils.V2XSQLiteUtils;
import com.mogo.utils.WorkThreadHandler;
import java.util.List;
@@ -18,7 +20,9 @@ public class ScenarioHistoryPresenter extends Presenter<V2XScenarioHistoryFragme
}
public void loadHistory() {
List<V2XHistoryScenarioData> v2XHistoryScenarioData = V2XSQLiteUtils.getScenarioHistoryData();
mView.loadHistory(v2XHistoryScenarioData);
WorkThreadHandler.getInstance().post(() -> {
List<V2XHistoryScenarioData> v2XHistoryScenarioData = V2XSQLiteUtils.getScenarioHistoryData();
mView.loadHistory(v2XHistoryScenarioData);
});
}
}

View File

@@ -76,7 +76,7 @@ public class V2XNetworkLoadingView extends RelativeLayout {
}
}
public void stopWithError(String errormsg) {
public void stopWithError(String errormsg, int showRefreshButton) {
if (v2XAnimationManager != null) {
v2XAnimationManager.soptWithError();
}
@@ -84,7 +84,7 @@ public class V2XNetworkLoadingView extends RelativeLayout {
textView.setText(errormsg);
}
if (refresButton != null) {
refresButton.setVisibility(VISIBLE);
refresButton.setVisibility(showRefreshButton);
}
}

View File

@@ -151,7 +151,7 @@ public class V2XVoiceConstants {
* 关闭路况详情
*/
public static final String COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP = "COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP";
public static final String[] COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP_WORDS = {"关闭"};
public static final String[] COMMAND_V2X_TO_CLOSE_WINDOW_UN_WAKEUP_WORDS = {"关闭", "关闭页面"};
/**
* 应用内免唤醒
* 反馈"正确"语音回调
@@ -207,6 +207,24 @@ public class V2XVoiceConstants {
public static final String COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP_WORDS = {"没用"};
/**
* 出行动态
*/
public static final String COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP_WORDS = {"出行动态"};
/**
* 周边事件
*/
public static final String COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP_WORDS = {"周边事件"};
/**
* 我的分享
*/
public static final String COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP = "COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP";
public static final String[] COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP_WORDS = {"我的分享"};
static {
// 免唤醒 默认
sVoiceCmds.put(COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP, COMMAND_V2X_TO_CHAT_MORE_UN_WAKEUP_WORDS);
@@ -230,6 +248,10 @@ public class V2XVoiceConstants {
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_YOUYONG_UN_WAKEUP, COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_YOUYONG_UN_WAKEUP_WORDS);
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP, COMMAND_ZHIDAO_V2X_ILLEGAL_PARKMARKER_FEEDBACK_MEIYONG_UN_WAKEUP_WORDS);
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_HISTORY_EVENT_UN_WAKEUP_WORDS);
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_SURROUNDING_EVENT_UN_WAKEUP_WORDS);
sVoiceCmds.put(COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP, COMMAND_ZHIDAO_V2X_OPEN_SHEAR_EVENT_UN_WAKEUP_WORDS);
//默认
/* sCmds.add(COMMAND_ZHIDAO_V2X_CALL_CHATTING);

View File

@@ -20,7 +20,7 @@
<RadioGroup
android:id="@+id/rgTabSelect"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_130"
android:layout_height="@dimen/dp_154"
android:gravity="center_vertical"
android:orientation="horizontal">