diff --git a/.idea/misc.xml b/.idea/misc.xml index 703e5d4b89..8a8f75bfe2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java index 9c1717affb..59f78dc16b 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java @@ -1,6 +1,5 @@ package com.mogo.map.listener; -import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.IMogoMarkerClickListenerRegister; import com.mogo.map.navi.IMogoNaviListenerRegister; diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java index 60481bc255..ba5561c1a7 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java @@ -10,6 +10,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.mogo.commons.mvp.MvpFragment; +import com.mogo.module.extensions.anim.AnimRes; +import com.mogo.module.extensions.anim.JSurfaceView; /** * @author congtaowang @@ -19,7 +21,7 @@ import com.mogo.commons.mvp.MvpFragment; */ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsPresenter > implements ExtensionsView { - private View mVoiceIcon; + private JSurfaceView mVoiceIcon; private View mVoiceMsg; private TextView mTime; @@ -66,6 +68,8 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP mMsgContainer = findViewById( R.id.module_ext_id_msg ); mMsgCounter = findViewById( R.id.module_ext_id_msg_counter ); + + mVoiceIcon.setFrames( AnimRes.sRes ); } @NonNull @@ -77,7 +81,18 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP @Override public void onActivityCreated( @Nullable Bundle savedInstanceState ) { super.onActivityCreated( savedInstanceState ); + } + @Override + public void onResume() { + super.onResume(); + mVoiceIcon.startAnim(); + } + + @Override + public void onStop() { + super.onStop(); + mVoiceIcon.stop(); } @Override diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java new file mode 100644 index 0000000000..13628228da --- /dev/null +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/AnimRes.java @@ -0,0 +1,83 @@ +package com.mogo.module.extensions.anim; + +import com.mogo.module.extensions.R; + +/** + * @author congtaowang + * @since 2020-01-09 + *

+ * 描述 + */ +public class AnimRes { + + public static final int sRes[] = { + R.drawable.mogo_tts_icon_00000, + R.drawable.mogo_tts_icon_00001, + R.drawable.mogo_tts_icon_00002, + R.drawable.mogo_tts_icon_00003, + R.drawable.mogo_tts_icon_00004, + R.drawable.mogo_tts_icon_00005, + R.drawable.mogo_tts_icon_00006, + R.drawable.mogo_tts_icon_00007, + R.drawable.mogo_tts_icon_00008, + R.drawable.mogo_tts_icon_00009, + R.drawable.mogo_tts_icon_00010, + R.drawable.mogo_tts_icon_00011, + R.drawable.mogo_tts_icon_00012, + R.drawable.mogo_tts_icon_00013, + R.drawable.mogo_tts_icon_00014, + R.drawable.mogo_tts_icon_00015, + R.drawable.mogo_tts_icon_00016, + R.drawable.mogo_tts_icon_00017, + R.drawable.mogo_tts_icon_00018, + R.drawable.mogo_tts_icon_00019, + R.drawable.mogo_tts_icon_00020, + R.drawable.mogo_tts_icon_00021, + R.drawable.mogo_tts_icon_00022, + R.drawable.mogo_tts_icon_00023, + R.drawable.mogo_tts_icon_00024, + R.drawable.mogo_tts_icon_00025, + R.drawable.mogo_tts_icon_00026, + R.drawable.mogo_tts_icon_00027, + R.drawable.mogo_tts_icon_00028, + R.drawable.mogo_tts_icon_00029, + R.drawable.mogo_tts_icon_00030, + R.drawable.mogo_tts_icon_00031, + R.drawable.mogo_tts_icon_00032, + R.drawable.mogo_tts_icon_00033, + R.drawable.mogo_tts_icon_00034, + R.drawable.mogo_tts_icon_00035, + R.drawable.mogo_tts_icon_00036, + R.drawable.mogo_tts_icon_00037, + R.drawable.mogo_tts_icon_00038, + R.drawable.mogo_tts_icon_00039, + R.drawable.mogo_tts_icon_00040, + R.drawable.mogo_tts_icon_00041, + R.drawable.mogo_tts_icon_00042, + R.drawable.mogo_tts_icon_00043, + R.drawable.mogo_tts_icon_00044, + R.drawable.mogo_tts_icon_00045, + R.drawable.mogo_tts_icon_00046, + R.drawable.mogo_tts_icon_00047, + R.drawable.mogo_tts_icon_00048, + R.drawable.mogo_tts_icon_00049, + R.drawable.mogo_tts_icon_00050, + R.drawable.mogo_tts_icon_00051, + R.drawable.mogo_tts_icon_00052, + R.drawable.mogo_tts_icon_00053, + R.drawable.mogo_tts_icon_00054, + R.drawable.mogo_tts_icon_00055, + R.drawable.mogo_tts_icon_00056, + R.drawable.mogo_tts_icon_00057, + R.drawable.mogo_tts_icon_00058, + R.drawable.mogo_tts_icon_00059, + R.drawable.mogo_tts_icon_00060, + R.drawable.mogo_tts_icon_00061, + R.drawable.mogo_tts_icon_00062, + R.drawable.mogo_tts_icon_00063, + R.drawable.mogo_tts_icon_00064, + R.drawable.mogo_tts_icon_00065, + R.drawable.mogo_tts_icon_00066, + R.drawable.mogo_tts_icon_00067 + }; +} diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java new file mode 100644 index 0000000000..6d4c941c8e --- /dev/null +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java @@ -0,0 +1,127 @@ +package com.mogo.module.extensions.anim; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Paint; +import android.graphics.PixelFormat; +import android.graphics.PorterDuff; +import android.graphics.Rect; +import android.util.AttributeSet; +import android.view.SurfaceHolder; +import android.view.SurfaceView; + +import com.mogo.utils.ThreadPoolService; + +public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder.Callback { + + private SurfaceHolder mHolder; + + /** + * 动画是否执行中 + */ + private boolean bRunning = false; + /** + * 当前执行的第几帧 + */ + private int mCurrentPos; + /** + * 动画集合 + */ + private int[] mFrames; + + public JSurfaceView( Context context ) { + super( context ); + init(); + } + + public JSurfaceView( Context context, AttributeSet attrs ) { + super( context, attrs ); + init(); + } + + public JSurfaceView( Context context, AttributeSet attrs, int defStyleAttr ) { + super( context, attrs, defStyleAttr ); + init(); + } + + private void init() { + mHolder = getHolder(); + mHolder.addCallback( this ); + setZOrderOnTop( false ); + mHolder.setFormat( PixelFormat.TRANSLUCENT ); + } + + public void setFrames( int[] frames ) { + mFrames = frames; + } + + public void startAnim() { + if ( bRunning ) { + return; + } + ThreadPoolService.execute( this ); + bRunning = true; + } + + public void stop() { + bRunning = false; + } + + @Override + public void run() { + while ( bRunning ) { + drawBitmap(); + mCurrentPos++; + try { + Thread.sleep( 100 ); + } catch ( InterruptedException e ) { + e.printStackTrace(); + } + } + } + + + private void drawBitmap() { + //获取画布并锁定 + Canvas mCanvas = mHolder.lockCanvas(); + if ( mCanvas == null ) { + return; + } + //绘制透明色 + mCanvas.drawColor( Color.TRANSPARENT, PorterDuff.Mode.CLEAR ); + Bitmap mBitmap = BitmapFactory.decodeResource( getResources(), mFrames[mCurrentPos % mFrames.length] ); + + Paint paint = new Paint(); + Rect mSrcRect = new Rect( 0, + 0, + mBitmap.getWidth(), + mBitmap.getHeight() ); // 图片绘制 + Rect mDestRect = new Rect( 0, + 0, + getWidth(), + getHeight() );// 图片绘制位置 + + mCanvas.drawBitmap( mBitmap, mSrcRect, mDestRect, paint ); + //解锁画布,并展示bitmap到surface + mHolder.unlockCanvasAndPost( mCanvas ); + mBitmap.recycle(); + } + + @Override + public void surfaceCreated( SurfaceHolder holder ) { + + } + + @Override + public void surfaceChanged( SurfaceHolder holder, int format, int width, int height ) { + + } + + @Override + public void surfaceDestroyed( SurfaceHolder holder ) { + + } +} \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 7ac2b024e6..69cedcc90d 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -13,8 +13,6 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.MogoLocation; import com.mogo.map.navi.IMogoNavi; -import com.mogo.map.navi.IMogoNaviListener; -import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.extensions.R; @@ -31,7 +29,7 @@ import com.mogo.service.module.IMogoModuleProvider; *

* 描述 */ -public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter > implements EntranceView, IMogoNaviListener { +public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter > implements EntranceView { private View mSearch; @@ -126,64 +124,4 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mMogoLocationClient = mService.getLocationClient( getContext() ); mMogoNavi = mService.getNavi( getContext() ); } - - - @Override - public void onInitNaviFailure() { - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onInitNaviFailure(); - } - } - - @Override - public void onInitNaviSuccess() { - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onInitNaviSuccess(); - } - } - - @Override - public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { - if ( naviinfo == null ) { - return; - } - mNaviInfo.notifyChanged( naviinfo ); - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onNaviInfoUpdate( naviinfo ); - } - } - - @Override - public void onStartNavi() { - mCommonAddress.setVisibility( View.GONE ); - mNaviInfo.setVisibility( View.VISIBLE ); - mExitNavi.setVisibility( View.VISIBLE ); - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onStartNavi(); - } - } - - @Override - public void onStopNavi() { - mCommonAddress.setVisibility( View.VISIBLE ); - mNaviInfo.setVisibility( View.GONE ); - mExitNavi.setVisibility( View.GONE ); - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onStopNavi(); - } - } - - @Override - public void onCalculateSuccess() { - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onCalculateSuccess(); - } - } - - @Override - public void onoCalculateFailed() { - if ( mSearchProvider != null && mSearchProvider.getNaviListener() != null ) { - mSearchProvider.getNaviListener().onoCalculateFailed(); - } - } } diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png new file mode 100644 index 0000000000..cf76dec7ee Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00000.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png new file mode 100644 index 0000000000..759b133363 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00001.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png new file mode 100644 index 0000000000..2acc31fd75 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00002.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png new file mode 100644 index 0000000000..fcd2de6ab0 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00003.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png new file mode 100644 index 0000000000..0185747f28 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00004.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png new file mode 100644 index 0000000000..133e230955 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00005.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png new file mode 100644 index 0000000000..01a2614deb Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00006.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png new file mode 100644 index 0000000000..21b59f46d2 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00007.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png new file mode 100644 index 0000000000..c0fb4687d6 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00008.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png new file mode 100644 index 0000000000..636d45d153 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00009.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png new file mode 100644 index 0000000000..4c84c50a6a Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00010.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png new file mode 100644 index 0000000000..27c7cd20ca Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00011.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png new file mode 100644 index 0000000000..a7ccf5f35f Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00012.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png new file mode 100644 index 0000000000..a2d6aec518 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00013.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png new file mode 100644 index 0000000000..65ead253fb Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00014.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png new file mode 100644 index 0000000000..4a565bdcb2 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00015.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png new file mode 100644 index 0000000000..a752fa5f60 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00016.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png new file mode 100644 index 0000000000..0c089db1a0 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00017.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png new file mode 100644 index 0000000000..496de625bd Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00018.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png new file mode 100644 index 0000000000..a805ad75aa Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00019.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png new file mode 100644 index 0000000000..656ab722d4 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00020.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png new file mode 100644 index 0000000000..73e02f07b1 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00021.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png new file mode 100644 index 0000000000..04fd01e5a9 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00022.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png new file mode 100644 index 0000000000..2b42ab31ec Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00023.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png new file mode 100644 index 0000000000..f25ca2c8e8 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00024.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png new file mode 100644 index 0000000000..2cb7d768da Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00025.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png new file mode 100644 index 0000000000..a30ed348b5 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00026.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png new file mode 100644 index 0000000000..37977fdbcd Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00027.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png new file mode 100644 index 0000000000..c461373d86 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00028.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png new file mode 100644 index 0000000000..6eb46799ee Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00029.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png new file mode 100644 index 0000000000..c874c287ae Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00030.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png new file mode 100644 index 0000000000..fd1ee80c15 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00031.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png new file mode 100644 index 0000000000..f89fdb368d Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00032.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png new file mode 100644 index 0000000000..d199137e5b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00033.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png new file mode 100644 index 0000000000..5e612da15b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00034.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png new file mode 100644 index 0000000000..bf394dbcd3 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00035.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png new file mode 100644 index 0000000000..ca5ad37df8 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00036.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png new file mode 100644 index 0000000000..76bc2391e8 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00037.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png new file mode 100644 index 0000000000..d9a2049f96 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00038.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png new file mode 100644 index 0000000000..3a46da466e Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00039.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png new file mode 100644 index 0000000000..f89b0d748c Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00040.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png new file mode 100644 index 0000000000..41ba5ebe7b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00041.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png new file mode 100644 index 0000000000..a99b80df64 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00042.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png new file mode 100644 index 0000000000..75cbaec133 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00043.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png new file mode 100644 index 0000000000..95caadf725 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00044.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png new file mode 100644 index 0000000000..935cb08383 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00045.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png new file mode 100644 index 0000000000..54ad3719dc Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00046.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png new file mode 100644 index 0000000000..e7c4c6dd7d Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00047.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png new file mode 100644 index 0000000000..358b8b442b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00048.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png new file mode 100644 index 0000000000..83c7946a1d Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00049.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png new file mode 100644 index 0000000000..ff7a6cfbaa Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00050.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png new file mode 100644 index 0000000000..52c81af36b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00051.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png new file mode 100644 index 0000000000..6c22bb0827 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00052.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png new file mode 100644 index 0000000000..df233a72ab Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00053.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png new file mode 100644 index 0000000000..ee9eaf6588 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00054.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png new file mode 100644 index 0000000000..f3f6bfdfe3 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00055.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png new file mode 100644 index 0000000000..a4460ef16c Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00056.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png new file mode 100644 index 0000000000..23e1fa00b6 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00057.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png new file mode 100644 index 0000000000..1331514201 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00058.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png new file mode 100644 index 0000000000..a897f3750b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00059.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png new file mode 100644 index 0000000000..ab92e11b21 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00060.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png new file mode 100644 index 0000000000..aa8a1a7628 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00061.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png new file mode 100644 index 0000000000..0aad924d12 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00062.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png new file mode 100644 index 0000000000..a166e7fe19 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00063.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png new file mode 100644 index 0000000000..46a47ead66 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00064.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png new file mode 100644 index 0000000000..52c9430792 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00065.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png new file mode 100644 index 0000000000..04d556923b Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00066.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png new file mode 100644 index 0000000000..b7dab9a929 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/mogo_tts_icon_00067.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_anim_frame_voice.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_anim_frame_voice.xml deleted file mode 100644 index 48d4c76465..0000000000 --- a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_anim_frame_voice.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml index 758656e960..0323fe0232 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml @@ -9,10 +9,10 @@ android:paddingLeft="@dimen/dp_70" android:paddingRight="@dimen/dp_70"> - > entries = mModuleProviders.entrySet(); if ( !entries.isEmpty() ) { for ( Map.Entry< MogoModule, IMogoModuleProvider > entry : entries ) { @@ -166,7 +170,7 @@ public class MogoModulesManager implements MogoModulesHandler, // 仅卡片需要生命周期 continue; } - final IMogoModuleLifecycle lifecycle = provider.getCardLifecycle(); + final IMogoModuleLifecycle lifecycle = MogoRegisterCenterHandler.getInstance().getLifecycleListener( key.getName() ); if ( lifecycle != null ) { if ( TextUtils.equals( key.getName(), mEnableModuleName ) ) { lifecycle.onPerform(); @@ -185,249 +189,122 @@ public class MogoModulesManager implements MogoModulesHandler, mMapLoadedCallback.run(); mMapLoadedCallback = null; } - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapLoaded(); - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onMapLoaded(); } } @Override public void onTouch( MotionEvent motionEvent ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onTouch( motionEvent ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onTouch( motionEvent ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onTouch( motionEvent ); } } @Override public void onPOIClick( MogoPoi poi ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onPOIClick( poi ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onPOIClick( poi ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onPOIClick( poi ); } } @Override public void onMapClick( MogoLatLng latLng ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapClick( latLng ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapClick( latLng ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onMapClick( latLng ); } } @Override public void onLockMap( boolean isLock ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onLockMap( isLock ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onLockMap( isLock ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onLockMap( isLock ); } } @Override public void onMapModeChanged( EnumMapUI ui ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapModeChanged( ui ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapModeChanged( ui ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onMapModeChanged( ui ); } } @Override public void onMapChanged( MogoLatLng location, float zoom, float tilt, float bearing ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapChanged( location, zoom, tilt, bearing ); - } - } - } else { - if ( value.getMapListener() != null ) { - value.getMapListener().onMapChanged( location, zoom, tilt, bearing ); - } - } + Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + while ( iterator.hasNext() ) { + iterator.next().onMapChanged( location, zoom, tilt, bearing ); } } @Override public void onInitNaviFailure() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onInitNaviFailure(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onInitNaviFailure(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onInitNaviFailure(); } } @Override public void onInitNaviSuccess() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onInitNaviSuccess(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onInitNaviSuccess(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onInitNaviSuccess(); } } @Override public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onNaviInfoUpdate( naviinfo ); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onNaviInfoUpdate( naviinfo ); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onNaviInfoUpdate( naviinfo ); } } @Override public void onStartNavi() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onStartNavi(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onStartNavi(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onStartNavi(); } } @Override public void onStopNavi() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onStopNavi(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onStopNavi(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onStopNavi(); } } @Override public void onCalculateSuccess() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onCalculateSuccess(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onCalculateSuccess(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onCalculateSuccess(); } } @Override public void onoCalculateFailed() { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onoCalculateFailed(); - } - } - } else { - if ( value.getNaviListener() != null ) { - value.getNaviListener().onoCalculateFailed(); - } - } + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + while ( iterator.hasNext() ) { + iterator.next().onoCalculateFailed(); } } @Override public void onLocationChanged( MogoLocation location ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getType() == ModuleType.TYPE_CARD_FRAGMENT ) { - if ( mEnableModuleName != null && TextUtils.equals( value.getModuleName(), mEnableModuleName ) ) { - if ( value.getLocationListener() != null ) { - value.getLocationListener().onLocationChanged( location ); - } - } - } else { - if ( value.getLocationListener() != null ) { - value.getLocationListener().onLocationChanged( location ); - } - } + Iterator< IMogoLocationListener > iterator = MogoRegisterCenterHandler.getInstance().getLocationListeners(); + while ( iterator.hasNext() ) { + iterator.next().onLocationChanged( location ); } } @@ -437,10 +314,9 @@ public class MogoModulesManager implements MogoModulesHandler, public void onReceive( Context context, Intent intent ) { final String action = intent.getAction(); if ( TextUtils.equals( action, Intent.ACTION_POWER_CONNECTED ) ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getCardLifecycle() != null ) { - value.getCardLifecycle().accOn(); - } + Iterator< IMogoModuleLifecycle > iterator = MogoRegisterCenterHandler.getInstance().getLifecycleListeners(); + if ( iterator.hasNext() ) { + iterator.next().accOn(); } } if ( TextUtils.equals( action, Intent.ACTION_POWER_DISCONNECTED ) ) { @@ -474,12 +350,9 @@ public class MogoModulesManager implements MogoModulesHandler, @Override public void onMarkerReceive( String cardType, IMogoMarker marker ) { - for ( IMogoModuleProvider value : mModuleProviders.values() ) { - if ( value.getModuleName().equals( cardType ) ) { - if ( value.getMarkerClickListener() != null ) { - value.getMarkerClickListener().onMarkerClicked( marker ); - } - } + IMogoMarkerClickListener listener = MogoRegisterCenterHandler.getInstance().getMarkerListener( cardType ); + if ( listener != null ) { + listener.onMarkerClicked( marker ); } } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java new file mode 100644 index 0000000000..879a992f9b --- /dev/null +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenter.java @@ -0,0 +1,77 @@ +package com.mogo.module.main.registercenter; + +import android.content.Context; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.navi.IMogoNaviListener; +import com.mogo.service.MogoServicePaths; +import com.mogo.service.module.IMogoModuleLifecycle; +import com.mogo.service.module.IMogoRegisterCenter; + +/** + * @author congtaowang + * @since 2020-01-09 + *

+ * 描述 + */ +@Route( path = MogoServicePaths.PATH_REGISTER_CENTER ) +public class MogoRegisterCenter implements IMogoRegisterCenter { + + @Override + public void registerMogoModuleLifecycle( String moduleName, IMogoModuleLifecycle lifecycle ) { + MogoRegisterCenterHandler.getInstance().registerMogoModuleLifecycle( moduleName, lifecycle ); + } + + @Override + public void unregisterMogoModuleLifecycle( String moduleName ) { + MogoRegisterCenterHandler.getInstance().unregisterMogoModuleLifecycle( moduleName ); + } + + @Override + public void registerMogoMapListener( String moduleName, IMogoMapListener listener ) { + MogoRegisterCenterHandler.getInstance().registerMogoMapListener( moduleName, listener ); + } + + @Override + public void unregisterMogoMapListener( String moduleName ) { + MogoRegisterCenterHandler.getInstance().unregisterMogoMapListener( moduleName ); + } + + @Override + public void registerMogoNaviListener( String moduleName, IMogoNaviListener listener ) { + MogoRegisterCenterHandler.getInstance().registerMogoNaviListener( moduleName, listener ); + } + + @Override + public void unregisterMogoNaviListener( String moduleName ) { + MogoRegisterCenterHandler.getInstance().unregisterMogoNaviListener( moduleName ); + } + + @Override + public void registerMogoLocationListener( String moduleName, IMogoLocationListener listener ) { + MogoRegisterCenterHandler.getInstance().registerMogoLocationListener( moduleName, listener ); + } + + @Override + public void unregisterMogoLocationListener( String moduleName ) { + MogoRegisterCenterHandler.getInstance().unregisterMogoLocationListener( moduleName ); + } + + @Override + public void registerMogoMarkerClickListener( String moduleName, IMogoMarkerClickListener listener ) { + MogoRegisterCenterHandler.getInstance().registerMogoMarkerClickListener( moduleName, listener ); + } + + @Override + public void unregisterMogoMarkerClickListener( String moduleName ) { + MogoRegisterCenterHandler.getInstance().unregisterMogoMarkerClickListener( moduleName ); + } + + @Override + public void init( Context context ) { + + } +} diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java new file mode 100644 index 0000000000..36323552a5 --- /dev/null +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/registercenter/MogoRegisterCenterHandler.java @@ -0,0 +1,148 @@ +package com.mogo.module.main.registercenter; + +import android.content.Context; + +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.navi.IMogoNaviListener; +import com.mogo.service.module.IMogoModuleLifecycle; +import com.mogo.service.module.IMogoRegisterCenter; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +/** + * @author congtaowang + * @since 2020-01-09 + *

+ * 描述 + */ +public class MogoRegisterCenterHandler implements IMogoRegisterCenter { + + private static volatile MogoRegisterCenterHandler sInstance; + private Context mContext; + + private Map< String, IMogoModuleLifecycle > mLifecycle = new HashMap<>(); + private Map< String, IMogoMapListener > mMap = new HashMap<>(); + private Map< String, IMogoNaviListener > mNavi = new HashMap<>(); + private Map< String, IMogoLocationListener > mLocation = new HashMap<>(); + private Map< String, IMogoMarkerClickListener > mMarker = new HashMap<>(); + + private MogoRegisterCenterHandler() { + } + + public static MogoRegisterCenterHandler getInstance() { + if ( sInstance == null ) { + synchronized ( MogoRegisterCenterHandler.class ) { + if ( sInstance == null ) { + sInstance = new MogoRegisterCenterHandler(); + } + } + } + return sInstance; + } + + public synchronized void release() { + sInstance = null; + } + + + @Override + public void registerMogoModuleLifecycle( String tag, IMogoModuleLifecycle lifecycle ) { + mLifecycle.put( tag, lifecycle ); + } + + @Override + public void unregisterMogoModuleLifecycle( String tag ) { + mLifecycle.remove( tag ); + } + + @Override + public void registerMogoMapListener( String tag, IMogoMapListener listener ) { + mMap.put( tag, listener ); + } + + @Override + public void unregisterMogoMapListener( String tag ) { + mMap.remove( tag ); + } + + @Override + public void registerMogoNaviListener( String tag, IMogoNaviListener listener ) { + mNavi.put( tag, listener ); + } + + @Override + public void unregisterMogoNaviListener( String tag ) { + mNavi.remove( tag ); + } + + @Override + public void registerMogoLocationListener( String tag, IMogoLocationListener listener ) { + mLocation.put( tag, listener ); + } + + @Override + public void unregisterMogoLocationListener( String tag ) { + mLocation.remove( tag ); + } + + @Override + public void registerMogoMarkerClickListener( String tag, IMogoMarkerClickListener listener ) { + mMarker.put( tag, listener ); + } + + @Override + public void unregisterMogoMarkerClickListener( String tag ) { + mMarker.remove( tag ); + } + + @Override + public void init( Context context ) { + if ( mContext == null && context != null ) { + mContext = context.getApplicationContext(); + } + } + + public IMogoModuleLifecycle getLifecycleListener( String tag ) { + return mLifecycle.get( tag ); + } + + public IMogoMapListener getMapListener( String tag ) { + return mMap.get( tag ); + } + + public IMogoNaviListener getNaviListener( String tag ) { + return mNavi.get( tag ); + } + + public IMogoLocationListener getLocationListener( String tag ) { + return mLocation.get( tag ); + } + + public IMogoMarkerClickListener getMarkerListener( String tag ) { + return mMarker.get( tag ); + } + + public Iterator< IMogoModuleLifecycle > getLifecycleListeners() { + return mLifecycle.values().iterator(); + } + + public Iterator< IMogoMapListener > getMapListeners() { + return mMap.values().iterator(); + } + + public Iterator< IMogoNaviListener > getNaviListeners() { + return mNavi.values().iterator(); + } + + public Iterator< IMogoLocationListener > getLocationListeners() { + return mLocation.values().iterator(); + } + + public Iterator< IMogoMarkerClickListener > getMarkerListeners() { + return mMarker.values().iterator(); + } +} diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java index 375b48bb41..20827fc69e 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java @@ -76,5 +76,10 @@ public class MogoServicePaths { */ public static final String PATH_VOICE_MANAGER = "/voicemanager/api"; + /** + * 基础功能监听回调注册 + */ + public static final String PATH_REGISTER_CENTER = "/registercenter/api"; + } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java index 7e6ddc1b1b..a9391d094d 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoModuleProvider.java @@ -47,6 +47,7 @@ public interface IMogoModuleProvider extends IProvider { /** * 生命周期控制方法 + * use {@link IMogoRegisterCenter#registerMogoModuleLifecycle(String, IMogoModuleLifecycle)} instead. * * @return */ @@ -54,6 +55,7 @@ public interface IMogoModuleProvider extends IProvider { /** * 地图监听对象 + * use {@link IMogoRegisterCenter#registerMogoMapListener(String, IMogoMapListener)} instead. * * @return */ @@ -70,22 +72,28 @@ public interface IMogoModuleProvider extends IProvider { /** * 导航监听 + * use {@link IMogoRegisterCenter#registerMogoNaviListener(String, IMogoNaviListener)} instead. * * @return */ + @Deprecated IMogoNaviListener getNaviListener(); /** * 定位变化监听:此接口接受地图定位信息 + * use {@link IMogoRegisterCenter#registerMogoLocationListener(String, IMogoLocationListener)} instead. * * @return */ + @Deprecated IMogoLocationListener getLocationListener(); /** * marker 点击回调 + * use {@link IMogoRegisterCenter#registerMogoMarkerClickListener(String, IMogoMarkerClickListener)} instead. * * @return */ + @Deprecated IMogoMarkerClickListener getMarkerClickListener(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java new file mode 100644 index 0000000000..5fc070796e --- /dev/null +++ b/services/mogo-service-api/src/main/java/com/mogo/service/module/IMogoRegisterCenter.java @@ -0,0 +1,96 @@ +package com.mogo.service.module; + +import com.alibaba.android.arouter.facade.template.IProvider; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.navi.IMogoNaviListener; + +/** + * @author congtaowang + * @since 2020-01-09 + *

+ * 监听注册中心 + */ +public interface IMogoRegisterCenter extends IProvider { + + /** + * 注册模块生命周期函数 + * + * @param tag + * @param lifecycle + */ + void registerMogoModuleLifecycle( String tag, IMogoModuleLifecycle lifecycle ); + + /** + * 注销模块生命周期函数 + * + * @param tag + */ + void unregisterMogoModuleLifecycle( String tag ); + + /** + * 注册地图监听函数 + * + * @param tag + * @param listener + * @return + */ + void registerMogoMapListener( String tag, IMogoMapListener listener ); + + /** + * 注销地图监听函数 + * + * @param tag + */ + void unregisterMogoMapListener( String tag ); + + /** + * 注册导航监听函数 + * + * @param tag + * @param listener + * @return + */ + void registerMogoNaviListener( String tag, IMogoNaviListener listener ); + + /** + * 注销导航监听函数 + * + * @param tag + */ + void unregisterMogoNaviListener( String tag ); + + /** + * 注册定位监听函数 + * + * @param tag + * @param listener + * @return + */ + void registerMogoLocationListener( String tag, IMogoLocationListener listener ); + + /** + * 注销定位监听函数 + * + * @param tag + */ + void unregisterMogoLocationListener( String tag ); + + /** + * 注册marker点击监听函数 + * + * @param tag + * @param listener + * @return + */ + void registerMogoMarkerClickListener( String tag, IMogoMarkerClickListener listener ); + + /** + * 注销定位监听函数 + * + * @param tag + */ + void unregisterMogoMarkerClickListener( String tag ); + +}