RC
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.mogo.module.main;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -10,6 +12,7 @@ import androidx.annotation.Nullable;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.mogo.commons.mvp.MvpActivity;
|
||||
import com.mogo.commons.voice.AIAssist;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
@@ -27,16 +30,21 @@ import com.mogo.module.main.cards.MogoModulesManager;
|
||||
import com.mogo.module.main.cards.OnPageChangeListenerAdapter;
|
||||
import com.mogo.module.main.cards.OrientedViewPager;
|
||||
import com.mogo.module.main.cards.VerticalStackTransformer;
|
||||
import com.mogo.module.main.constants.VoiceConstants;
|
||||
import com.mogo.module.main.windowview.WindowViewHandler;
|
||||
import com.mogo.module.service.ServiceConst;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.cardmanager.IMogoCardManager;
|
||||
import com.mogo.service.fragmentmanager.IMogoFragmentManager;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.intent.IMogoIntentManager;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.utils.logger.Logger;
|
||||
|
||||
import java.util.List;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
@@ -44,9 +52,9 @@ import java.util.List;
|
||||
* <p>
|
||||
* 描述:加载各个模块
|
||||
*/
|
||||
public class MainActivity extends MvpActivity< MainView, MainPresenter > implements MainView,
|
||||
IMogoLocationListener,
|
||||
IMogoMarkerClickListener {
|
||||
public class MainActivity extends MvpActivity<MainView, MainPresenter> implements MainView,
|
||||
IMogoLocationListener,
|
||||
IMogoMarkerClickListener, IMogoIntentListener {
|
||||
|
||||
private static final String TAG = "MainActivity";
|
||||
|
||||
@@ -78,6 +86,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
private int mCurrentPosition = 0;
|
||||
|
||||
private ViewPager.OnPageChangeListener mOnPageChangeListener;
|
||||
private IMogoIntentManager mMogoIntentManager;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -86,102 +95,110 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
|
||||
@Override
|
||||
protected void initViews() {
|
||||
mCardsContainer = findViewById( R.id.module_main_id_cards_container );
|
||||
mCardsContainer.setOrientation( OrientedViewPager.Orientation.VERTICAL );
|
||||
mTransformer = new VerticalStackTransformer( this );
|
||||
mCardsContainer.setOnPageChangeListener( mOnPageChangeListener = new OnPageChangeListenerAdapter() {
|
||||
private boolean mIsLast = true;
|
||||
private boolean mCardFlipStatus = false;
|
||||
mCardsContainer = findViewById(R.id.module_main_id_cards_container);
|
||||
mCardsContainer.setOrientation(OrientedViewPager.Orientation.VERTICAL);
|
||||
mTransformer = new VerticalStackTransformer(this);
|
||||
mCardsContainer.setOnPageChangeListener(
|
||||
mOnPageChangeListener = new OnPageChangeListenerAdapter() {
|
||||
private boolean mIsLast = true;
|
||||
private boolean mCardFlipStatus = false;
|
||||
|
||||
@Override
|
||||
public void onPageSelected( int position ) {
|
||||
final long start = System.currentTimeMillis();
|
||||
try {
|
||||
IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mPresenter.postTrackLastCardShowEvent( provider );
|
||||
mCurrentPosition = position;
|
||||
provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mMogoModuleHandler.setModuleEnable( provider.getModuleName() );
|
||||
mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Logger.i( TAG, "onPageSelected cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged( int state ) {
|
||||
final long start = System.currentTimeMillis();
|
||||
super.onPageScrollStateChanged( state );
|
||||
if ( state == ViewPager.SCROLL_STATE_DRAGGING ) {
|
||||
if ( !mCardFlipStatus ) {
|
||||
mCardFlipStatus = true;
|
||||
final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition );
|
||||
mPresenter.postTrackCardFlipEvent(provider);
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
final long start = System.currentTimeMillis();
|
||||
try {
|
||||
IMogoModuleProvider provider =
|
||||
mCardModulesAdapter.getProvider(mCurrentPosition);
|
||||
mPresenter.postTrackLastCardShowEvent(provider);
|
||||
mCurrentPosition = position;
|
||||
provider = mCardModulesAdapter.getProvider(mCurrentPosition);
|
||||
mMogoModuleHandler.setModuleEnable(provider.getModuleName());
|
||||
mMogoCardManager.invoke(position,
|
||||
mMogoModuleHandler.getCurrentModuleName());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if ( state == ViewPager.SCROLL_STATE_IDLE ) {
|
||||
mCardFlipStatus = false;
|
||||
mTransformer.resetOffsetScroll();
|
||||
Logger.i(TAG,
|
||||
"onPageSelected cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
}
|
||||
|
||||
int cardSize = mCardModulesAdapter.getCount();
|
||||
|
||||
if ( state == ViewPager.SCROLL_STATE_SETTLING ) {
|
||||
mIsLast = false;
|
||||
} else if ( state == ViewPager.SCROLL_STATE_IDLE && mIsLast ) {
|
||||
//此处为你需要的情况,再加入当前页码判断可知道是第一页还是最后一页
|
||||
if ( cardSize != 1 && mCurrentPosition == ( cardSize - 1 ) ) {
|
||||
mCardsContainer.setCurrentItem( 0, false );
|
||||
} else if ( cardSize != 1 && mCurrentPosition == 0 ) {
|
||||
mCardsContainer.setCurrentItem( cardSize - 1, false );
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
final long start = System.currentTimeMillis();
|
||||
super.onPageScrollStateChanged(state);
|
||||
if (state == ViewPager.SCROLL_STATE_DRAGGING) {
|
||||
if (!mCardFlipStatus) {
|
||||
mCardFlipStatus = true;
|
||||
final IMogoModuleProvider provider =
|
||||
mCardModulesAdapter.getProvider(mCurrentPosition);
|
||||
mPresenter.postTrackCardFlipEvent(provider);
|
||||
}
|
||||
} else if (state == ViewPager.SCROLL_STATE_IDLE) {
|
||||
mCardFlipStatus = false;
|
||||
mTransformer.resetOffsetScroll();
|
||||
}
|
||||
} else {
|
||||
mIsLast = true;
|
||||
|
||||
int cardSize = mCardModulesAdapter.getCount();
|
||||
|
||||
if (state == ViewPager.SCROLL_STATE_SETTLING) {
|
||||
mIsLast = false;
|
||||
} else if (state == ViewPager.SCROLL_STATE_IDLE && mIsLast) {
|
||||
//此处为你需要的情况,再加入当前页码判断可知道是第一页还是最后一页
|
||||
if (cardSize != 1 && mCurrentPosition == (cardSize - 1)) {
|
||||
mCardsContainer.setCurrentItem(0, false);
|
||||
} else if (cardSize != 1 && mCurrentPosition == 0) {
|
||||
mCardsContainer.setCurrentItem(cardSize - 1, false);
|
||||
}
|
||||
} else {
|
||||
mIsLast = true;
|
||||
}
|
||||
Logger.i(TAG, "onPageScrollStateChanged cost "
|
||||
+ (System.currentTimeMillis() - start)
|
||||
+ "ms");
|
||||
}
|
||||
Logger.i( TAG, "onPageScrollStateChanged cost " + ( System.currentTimeMillis() - start ) + "ms" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||
Logger.d(TAG,"pageScrolled : offset --- " + positionOffset);
|
||||
mTransformer.offsetScrollChanged(positionOffset);
|
||||
}
|
||||
} );
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset,
|
||||
int positionOffsetPixels) {
|
||||
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||
Logger.d(TAG, "pageScrolled : offset --- " + positionOffset);
|
||||
mTransformer.offsetScrollChanged(positionOffset);
|
||||
}
|
||||
});
|
||||
|
||||
mHeader = findViewById( R.id.module_main_id_header_fragment_container );
|
||||
mCards = findViewById( R.id.module_main_id_cards_container );
|
||||
mApps = findViewById( R.id.module_main_id_apps_fragment_container );
|
||||
mEntrance = findViewById( R.id.module_main_id_entrance_fragment_container );
|
||||
mFloatingLayout = findViewById( R.id.module_main_id_floating_view );
|
||||
mLeftShadowFrame = findViewById( R.id.module_main_id_map_left_shadow_frame );
|
||||
mTopShadowFrame = findViewById( R.id.module_main_id_map_top_shadow_frame );
|
||||
mCoverUpLayout = findViewById( R.id.module_main_id_cover_up );
|
||||
mCardCoverUpBottomLayout = findViewById( R.id.module_main_id_card_cover_up_bottom );
|
||||
mHeader = findViewById(R.id.module_main_id_header_fragment_container);
|
||||
mCards = findViewById(R.id.module_main_id_cards_container);
|
||||
mApps = findViewById(R.id.module_main_id_apps_fragment_container);
|
||||
mEntrance = findViewById(R.id.module_main_id_entrance_fragment_container);
|
||||
mFloatingLayout = findViewById(R.id.module_main_id_floating_view);
|
||||
mLeftShadowFrame = findViewById(R.id.module_main_id_map_left_shadow_frame);
|
||||
mTopShadowFrame = findViewById(R.id.module_main_id_map_top_shadow_frame);
|
||||
mCoverUpLayout = findViewById(R.id.module_main_id_cover_up);
|
||||
mCardCoverUpBottomLayout = findViewById(R.id.module_main_id_card_cover_up_bottom);
|
||||
|
||||
WindowViewHandler.init( mFloatingLayout );
|
||||
WindowViewHandler.init(mFloatingLayout);
|
||||
}
|
||||
|
||||
// 隐藏布局
|
||||
private void hideLayout() {
|
||||
mHeader.setVisibility( View.GONE );
|
||||
mCards.setVisibility( View.GONE );
|
||||
mApps.setVisibility( View.GONE );
|
||||
mEntrance.setVisibility( View.GONE );
|
||||
mFloatingLayout.setVisibility( View.GONE );
|
||||
mLeftShadowFrame.setVisibility( View.GONE );
|
||||
mCardCoverUpBottomLayout.setVisibility( View.GONE );
|
||||
mHeader.setVisibility(View.GONE);
|
||||
mCards.setVisibility(View.GONE);
|
||||
mApps.setVisibility(View.GONE);
|
||||
mEntrance.setVisibility(View.GONE);
|
||||
mFloatingLayout.setVisibility(View.GONE);
|
||||
mLeftShadowFrame.setVisibility(View.GONE);
|
||||
mCardCoverUpBottomLayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// 显示布局
|
||||
private void showLayout() {
|
||||
mHeader.setVisibility( View.VISIBLE );
|
||||
mCards.setVisibility( View.VISIBLE );
|
||||
mApps.setVisibility( View.VISIBLE );
|
||||
mEntrance.setVisibility( View.VISIBLE );
|
||||
mFloatingLayout.setVisibility( View.VISIBLE );
|
||||
mLeftShadowFrame.setVisibility( View.VISIBLE );
|
||||
mCardCoverUpBottomLayout.setVisibility( View.VISIBLE );
|
||||
mHeader.setVisibility(View.VISIBLE);
|
||||
mCards.setVisibility(View.VISIBLE);
|
||||
mApps.setVisibility(View.VISIBLE);
|
||||
mEntrance.setVisibility(View.VISIBLE);
|
||||
mFloatingLayout.setVisibility(View.VISIBLE);
|
||||
mLeftShadowFrame.setVisibility(View.VISIBLE);
|
||||
mCardCoverUpBottomLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -204,73 +221,89 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
|
||||
}
|
||||
|
||||
mMogoModuleHandler.setMapLoadedCallback( () -> {
|
||||
Logger.d( TAG, "map loaded." + Thread.currentThread().getName() );
|
||||
mMogoModuleHandler.setMapLoadedCallback(() -> {
|
||||
Logger.d(TAG, "map loaded." + Thread.currentThread().getName());
|
||||
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
|
||||
loadContainerModules();
|
||||
mMogoModuleHandler.loadModules();
|
||||
mPresenter.delayOperations();
|
||||
|
||||
// 显示左边遮罩
|
||||
mLeftShadowFrame.setVisibility( View.VISIBLE );
|
||||
mTopShadowFrame.setVisibility( View.VISIBLE );
|
||||
mLeftShadowFrame.setVisibility(View.VISIBLE);
|
||||
mTopShadowFrame.setVisibility(View.VISIBLE);
|
||||
|
||||
// 右移地图中心点
|
||||
mMogoMapUIController = mMogoMapService.getMapUIController();
|
||||
mMogoMapUIController.setPointToCenter( 0.66145, 0.590688 );
|
||||
mMogoMapUIController.setPointToCenter(0.66145, 0.590688);
|
||||
|
||||
// 开启定位
|
||||
startLocation();
|
||||
} );
|
||||
mMogoModuleHandler.loadMapModule( R.id.module_main_id_map_fragment_container );
|
||||
});
|
||||
mMogoModuleHandler.loadMapModule(R.id.module_main_id_map_fragment_container);
|
||||
|
||||
mMogoCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( this );
|
||||
mMogoCardManager = (IMogoCardManager) ARouter.getInstance()
|
||||
.build(MogoServicePaths.PATH_CARD_MANAGER)
|
||||
.navigation(this);
|
||||
|
||||
mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation( this );
|
||||
mMogoFragmentManager.init( this, R.id.module_main_id_search_fragment );
|
||||
mMogoFragmentManager.registerMainFragmentStackTransactionListener( ( size ) -> {
|
||||
if ( size == 0 ) {
|
||||
mMogoFragmentManager = (IMogoFragmentManager) ARouter.getInstance()
|
||||
.build(MogoServicePaths.PATH_FRAGMENT_MANAGER)
|
||||
.navigation(this);
|
||||
mMogoFragmentManager.init(this, R.id.module_main_id_search_fragment);
|
||||
mMogoFragmentManager.registerMainFragmentStackTransactionListener((size) -> {
|
||||
if (size == 0) {
|
||||
showLayout();
|
||||
} else if ( size == 1 ) {
|
||||
} else if (size == 1) {
|
||||
hideLayout();
|
||||
}
|
||||
} );
|
||||
});
|
||||
|
||||
mMogoIntentManager = (IMogoIntentManager) ARouter.getInstance()
|
||||
.build(MogoServicePaths.PATH_INTENT_MANAGER)
|
||||
.navigation(getContext());
|
||||
registerVoiceCmd();
|
||||
Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
|
||||
}
|
||||
|
||||
private void registerVoiceCmd() {
|
||||
|
||||
for (String cmd : VoiceConstants.sCmds) {
|
||||
mMogoIntentManager.registerIntentListener(cmd, this);
|
||||
}
|
||||
}
|
||||
|
||||
private void startLocation() {
|
||||
mLocationClient = mMogoMapService.getSingletonLocationClient( getApplicationContext() );
|
||||
mLocationClient.addLocationListener( this );
|
||||
mLocationClient = mMogoMapService.getSingletonLocationClient(getApplicationContext());
|
||||
mLocationClient.addLocationListener(this);
|
||||
mLocationClient.start(2_000L);
|
||||
}
|
||||
|
||||
private void loadContainerModules() {
|
||||
mMogoModuleHandler.loadAppsListModule( R.id.module_main_id_apps_fragment_container );
|
||||
mMogoModuleHandler.loadExtensionsModule( R.id.module_main_id_header_fragment_container );
|
||||
mMogoModuleHandler.loadEntrancesModule( R.id.module_main_id_entrance_fragment_container );
|
||||
mMogoModuleHandler.loadAppsListModule(R.id.module_main_id_apps_fragment_container);
|
||||
mMogoModuleHandler.loadExtensionsModule(R.id.module_main_id_header_fragment_container);
|
||||
mMogoModuleHandler.loadEntrancesModule(R.id.module_main_id_entrance_fragment_container);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postPickFirstCardEvent() {
|
||||
if ( mOnPageChangeListener != null ) {
|
||||
if (mOnPageChangeListener != null) {
|
||||
// 默认触发第一个卡片
|
||||
mOnPageChangeListener.onPageSelected( 0 );
|
||||
mOnPageChangeListener.onPageSelected(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hideCoverUpLayout() {
|
||||
mCoverUpLayout.setVisibility( View.GONE );
|
||||
mCoverUpLayout.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCardModules() {
|
||||
|
||||
List< IMogoModuleProvider > providers = mMogoModuleHandler.loadCardsModule();
|
||||
mCardModulesAdapter = new CardModulesAdapter( this, providers );
|
||||
mCardsContainer.setOffscreenPageLimit( providers.size() );
|
||||
mCardsContainer.setPageTransformer( true, mTransformer );
|
||||
mCardsContainer.setAdapter( mCardModulesAdapter );
|
||||
List<IMogoModuleProvider> providers = mMogoModuleHandler.loadCardsModule();
|
||||
mCardModulesAdapter = new CardModulesAdapter(this, providers);
|
||||
mCardsContainer.setOffscreenPageLimit(providers.size());
|
||||
mCardsContainer.setPageTransformer(true, mTransformer);
|
||||
mCardsContainer.setAdapter(mCardModulesAdapter);
|
||||
|
||||
mCardCoverUpBottomLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
@@ -278,71 +311,71 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
@NonNull
|
||||
@Override
|
||||
protected MainPresenter createPresenter() {
|
||||
return new MainPresenter( this );
|
||||
return new MainPresenter(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLocationChanged( MogoLocation location ) {
|
||||
if ( mMogoModuleHandler != null ) {
|
||||
mMogoModuleHandler.onLocationChanged( location );
|
||||
public void onLocationChanged(MogoLocation location) {
|
||||
if (mMogoModuleHandler != null) {
|
||||
mMogoModuleHandler.onLocationChanged(location);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onMarkerClicked( IMogoMarker marker ) {
|
||||
switch2Card( marker.getOwner() );
|
||||
if ( mMogoModuleHandler != null ) {
|
||||
mMogoModuleHandler.onMarkerClicked( marker );
|
||||
public boolean onMarkerClicked(IMogoMarker marker) {
|
||||
switch2Card(marker.getOwner());
|
||||
if (mMogoModuleHandler != null) {
|
||||
mMogoModuleHandler.onMarkerClicked(marker);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void switch2Card( String cardType ) {
|
||||
if ( mCardModulesAdapter != null ) {
|
||||
public void switch2Card(String cardType) {
|
||||
if (mCardModulesAdapter != null) {
|
||||
|
||||
int position = mCardModulesAdapter.getProviderPosition( cardType );
|
||||
if ( position != -1 ) {
|
||||
int lastFactPosition = mCardModulesAdapter.getFactPosition( mCurrentPosition );
|
||||
mCardsContainer.setCurrentItem( mCurrentPosition + position - lastFactPosition, Math.abs( lastFactPosition - position ) == 1 );
|
||||
int position = mCardModulesAdapter.getProviderPosition(cardType);
|
||||
if (position != -1) {
|
||||
int lastFactPosition = mCardModulesAdapter.getFactPosition(mCurrentPosition);
|
||||
mCardsContainer.setCurrentItem(mCurrentPosition + position - lastFactPosition,
|
||||
Math.abs(lastFactPosition - position) == 1);
|
||||
} else {
|
||||
Logger.e( TAG, "Can't find type of %s's position", cardType );
|
||||
Logger.e(TAG, "Can't find type of %s's position", cardType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
MapBroadCastHelper.getInstance( this ).mapFrount();
|
||||
MapBroadCastHelper.getInstance(this).mapFrount();
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
MapBroadCastHelper.getInstance( this ).mapBackground();
|
||||
MapBroadCastHelper.getInstance(this).mapBackground();
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
if ( mMogoFragmentManager.getStackSize() == 0 ) {
|
||||
if (mMogoFragmentManager.getStackSize() == 0) {
|
||||
return;
|
||||
}
|
||||
if ( mMogoFragmentManager != null ) {
|
||||
if (mMogoFragmentManager != null) {
|
||||
mMogoFragmentManager.pop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if ( mLocationClient != null ) {
|
||||
mLocationClient.removeLocationListener( this );
|
||||
if (mLocationClient != null) {
|
||||
mLocationClient.removeLocationListener(this);
|
||||
mLocationClient.destroy();
|
||||
}
|
||||
mLocationClient = null;
|
||||
if ( mMogoModuleHandler != null ) {
|
||||
if (mMogoModuleHandler != null) {
|
||||
mMogoModuleHandler.destroy();
|
||||
}
|
||||
mMogoModuleHandler = null;
|
||||
@@ -350,6 +383,59 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
mMogoMapUIController = null;
|
||||
mMogoCardManager = null;
|
||||
mMogoFragmentManager = null;
|
||||
AIAssist.getInstance( this ).release();
|
||||
AIAssist.getInstance(this).release();
|
||||
}
|
||||
|
||||
@Override public void onIntentReceived(String intentStr, Intent intent) {
|
||||
if (TextUtils.isEmpty(intentStr)) {
|
||||
return;
|
||||
}
|
||||
int currentItem = mCardsContainer.getCurrentItem();
|
||||
int cardSize = mCardModulesAdapter.getCount();
|
||||
|
||||
switch (intentStr) {
|
||||
case VoiceConstants.COMMAND_ZHIDAO_SWITCHCARD:
|
||||
|
||||
String data = intent.getStringExtra("data");
|
||||
|
||||
try {
|
||||
JSONObject jsonObject = new JSONObject(data);
|
||||
|
||||
String card = jsonObject.getString("card");
|
||||
|
||||
if (TextUtils.equals("多媒体",card)) {
|
||||
mCardsContainer.setCurrentItem(1);
|
||||
|
||||
}else if (TextUtils.equals("探路",card)){
|
||||
mCardsContainer.setCurrentItem(3);
|
||||
|
||||
|
||||
}else if (TextUtils.equals("在线车辆",card)){
|
||||
mCardsContainer.setCurrentItem(5);
|
||||
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case VoiceConstants.COMMAND_ZHIDAO_SWITCHCARD_NEXT:
|
||||
currentItem++;
|
||||
mCardsContainer.setCurrentItem(currentItem / cardSize);
|
||||
|
||||
break;
|
||||
|
||||
case VoiceConstants.COMMAND_ZHIDAO_SWITCHCARD_PREVIOUS:
|
||||
currentItem--;
|
||||
if (currentItem < 0) {
|
||||
currentItem += cardSize;
|
||||
}
|
||||
mCardsContainer.setCurrentItem(currentItem / cardSize);
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.mogo.module.main.constants;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zyz
|
||||
* 2020-03-02.
|
||||
*/
|
||||
public class VoiceConstants {
|
||||
/**
|
||||
* 切换上一张卡片
|
||||
*/
|
||||
public static final String COMMAND_ZHIDAO_SWITCHCARD_PREVIOUS = "com.zhidao.desk.switchCard.previous";
|
||||
/**
|
||||
* 切换下一张卡片
|
||||
*/
|
||||
public static final String COMMAND_ZHIDAO_SWITCHCARD_NEXT = "com.zhidao.desk.switchCard.next";
|
||||
/**
|
||||
* 查看多媒体卡片、探路卡片
|
||||
*/
|
||||
public static final String COMMAND_ZHIDAO_SWITCHCARD = "com.zhidao.desk.switchCard";
|
||||
|
||||
|
||||
|
||||
public static ArrayList<String> sCmds=new ArrayList<>();
|
||||
|
||||
static {
|
||||
sCmds.add(COMMAND_ZHIDAO_SWITCHCARD_PREVIOUS);
|
||||
sCmds.add(COMMAND_ZHIDAO_SWITCHCARD_NEXT);
|
||||
sCmds.add(COMMAND_ZHIDAO_SWITCHCARD);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user