From 33b1451dc0c3868056d1030eb4f7077f9ed35cc4 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 13 Jul 2020 17:39:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=20=E4=BC=98=E5=8C=96=E9=9F=B3=E9=A2=91?= =?UTF-8?q?=E6=B5=AE=E7=AA=97=E5=8A=A8=E7=94=BB=EF=BC=9B=202.=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=9F=B3=E9=A2=91=E6=9B=B4=E6=96=B0=E4=B8=8D=E5=8F=8A?= =?UTF-8?q?=E6=97=B6=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/media/presenter/KwPresenter.java | 55 ++++++++++++++++++- .../media/widget/AnimCircleImageView.java | 16 +++++- .../module/media/window/MediaWindow2.java | 12 ++-- 3 files changed, 74 insertions(+), 9 deletions(-) diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java index a43c30f4af..a45a42bb6d 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/KwPresenter.java @@ -68,13 +68,27 @@ public class KwPresenter extends BaseMediaPresenter { }); kwapi.registerPlayerStatusListener((playerStatus, music) -> { - Logger.d(TAG, "onPlayerStatusListener: " + playerStatus); - Log.d(TAG, "onPlayerStatusListener: " + playerStatus); + Logger.d(TAG, "onPlayerStatusListener: " + playerStatus + " music: " + music.name); switch (playerStatus) { case BUFFERING: + if (currentMedia.getMediaName() == null || !currentMedia.getMediaName().equals(music.name)) { + // 说明是切了新歌,需要及时同步一下状态 + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + currentMedia.setMediaName(music.name); + currentMedia.setMediaImg(""); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + } kwapi.getSongPicUrl(music, onGetSongImgUrlListener); break; case PLAYING: + if (currentMedia.getMediaName() == null || !currentMedia.getMediaName().equals(music.name)) { + // 说明是切了新歌,需要及时同步一下状态 + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + currentMedia.setMediaName(music.name); + currentMedia.setMediaImg(""); + mView.onMediaInfoChanged(currentMedia); + } currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); kwapi.getSongPicUrl(music, onGetSongImgUrlListener); startTrackTrackProgress(); @@ -105,6 +119,43 @@ public class KwPresenter extends BaseMediaPresenter { if (!isBind) { // 未绑定,需要重新绑定,同时第一次绑定初始化也是在此处 kwapi.bindAutoSdkService(); + }else if(kwapi.isKuwoRunning()){ + Music currentMusic = kwapi.getNowPlayingMusic(); + if (currentMedia.getMediaName() == null && currentMusic != null) { + // 当前处于绑定状态,且有音乐信息,需判断是否正在播放,进行界面刷新 + Log.d(TAG, "step1==" + currentMusic.name); + if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=1=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); + } else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=3=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicStopped(); + } + } else if (currentMedia.getMediaName() != null && currentMusic != null && !currentMedia.getMediaName().equals(currentMusic.name)) { + Log.d(TAG, "step2==media: " + currentMedia.getMediaName() + " " + + "musicName: " + currentMusic.name + " status: " + kwapi.getPlayerStatus()); + if (kwapi.getPlayerStatus() == PlayerStatus.BUFFERING || kwapi.getPlayerStatus() == PlayerStatus.PLAYING) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=2=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicPlaying(); + kwapi.getSongPicUrl(currentMusic, onGetSongImgUrlListener); + }else if (kwapi.getPlayerStatus() == PlayerStatus.INIT) { + Logger.d(TAG, "当前可能正在播放音乐,需要更新=4=" + currentMusic.name); + currentMedia.setMediaName(currentMusic.name); + currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP); + mView.onMediaInfoChanged(currentMedia); + mView.onMusicStopped(); + } + } } } } diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java index 77cee5ce4e..6a0a8daab1 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/AnimCircleImageView.java @@ -13,6 +13,7 @@ import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.NinePatchDrawable; import android.util.AttributeSet; +import android.util.Log; import android.widget.ImageView; import com.mogo.module.common.utils.CarSeries; @@ -32,7 +33,8 @@ public class AnimCircleImageView extends ImageView { int savedDegree; boolean isRotateEnable; boolean isRotating; - private int delayMilliseconds = 450; +// private int delayMilliseconds = 450; + private int delayMilliseconds = 2000; private int mRotateAngleStep = 3; public AnimCircleImageView(Context context) { @@ -79,6 +81,7 @@ public class AnimCircleImageView extends ImageView { } public void startAnim() { + Log.d("AnimCircle", "startAnim====" + isRotating); if (isRotating){ return; } @@ -86,9 +89,12 @@ public class AnimCircleImageView extends ImageView { isRotating = true; currentDegree = savedDegree; invalidate(); + Log.d("AnimCircle", "invalidate=="); } public void stopAnim() { + Log.d("AnimCircle", "stopAnim==="); + removeCallbacks(loopInvalidate); isRotating = false; isRotateEnable = false; savedDegree = currentDegree; @@ -100,7 +106,7 @@ public class AnimCircleImageView extends ImageView { @Override protected void onDraw(Canvas canvas) { - + Log.d("AnimCircle", "onDraw===="); try { if (mDrawbleSrc == null) return; @@ -146,7 +152,9 @@ public class AnimCircleImageView extends ImageView { canvas.drawBitmap(output, defaultWidth / 2 - radius, defaultHeight / 2 - radius, null); canvas.restore(); if (isRotateEnable) { - postInvalidateDelayed(delayMilliseconds); + removeCallbacks(loopInvalidate); + postDelayed(loopInvalidate, delayMilliseconds); +// postInvalidateDelayed(delayMilliseconds); } } else { canvas.save(); @@ -161,6 +169,8 @@ public class AnimCircleImageView extends ImageView { } + private Runnable loopInvalidate = this::invalidate; + private Bitmap getCuttedPicture(Drawable DrawbleSrc) { Bitmap mBitmapOrigin = ((BitmapDrawable) DrawbleSrc).getBitmap(); int mWidth = mBitmapOrigin.getWidth(); diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java index 818bf5e792..5a8ab8bafc 100644 --- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java +++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java @@ -182,10 +182,14 @@ public class MediaWindow2 implements IMusicView { } if (mCircleImg != null) { - com.bumptech.glide.request.RequestOptions options = - new com.bumptech.glide.request.RequestOptions() - .placeholder(R.drawable.module_media_default_music_img); - GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(mCircleImg); + if(mMediaInfoData!=null&&mMediaInfoData.getMediaImg()!=null&&!mMediaInfoData.getMediaImg().isEmpty()) { + com.bumptech.glide.request.RequestOptions options = + new com.bumptech.glide.request.RequestOptions() + .placeholder(R.drawable.module_media_default_music_img); + GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(mCircleImg); + }else{ + mCircleImg.setImageResource(R.drawable.module_media_default_music_img); + } } } From d1f1e2968f49b1adf242a9b6754ea7fdaf012951 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Tue, 14 Jul 2020 11:49:49 +0800 Subject: [PATCH 2/2] bugfix: E85XJD-94 --- .../java/com/mogo/module/service/MogoServices.java | 13 ++++++++++--- .../module/service/marker/MapMarkerManager.java | 3 +-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 9082bcadea..26572251a6 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -474,10 +474,10 @@ public class MogoServices implements IMogoMapListener, } private void stopAutoRefreshStrategy() { - stopAutoRefreshStrategy(true); + stopAutoRefreshStrategy( true ); } - private void stopAutoRefreshStrategy(boolean stopOnlineCarRefresh) { + private void stopAutoRefreshStrategy( boolean stopOnlineCarRefresh ) { if ( DebugConfig.isDebug() ) { Logger.d( TAG, Log.getStackTraceString( new Throwable() ) ); } @@ -714,6 +714,13 @@ public class MogoServices implements IMogoMapListener, case ACC_STATUS: if ( isTrue ) { mADASController.showADAS(); + refreshStrategy(); + } else { + try { + MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( mContext ).removeMarkers(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } } break; } @@ -756,7 +763,7 @@ public class MogoServices implements IMogoMapListener, Logger.w( TAG, "ignore refresh request case time < 0" ); return; } - stopAutoRefreshStrategy(stopOnlineCarRefresh); + stopAutoRefreshStrategy( stopOnlineCarRefresh ); mRefreshRemainingTime = time; long delay = ServiceConst.DECREASE_INTERVAL; if ( mRefreshRemainingTime < ServiceConst.DECREASE_INTERVAL ) { diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java index d762476e0c..7e0c094b6f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/marker/MapMarkerManager.java @@ -349,8 +349,7 @@ public class MapMarkerManager implements IMogoMarkerClickListener, } int size = getAppropriateSize( maxAmount, exploreWayList ); Map< String, IMogoMarker > existCarMap = purgeMarkerData( exploreWayList, ModuleNames.CARD_TYPE_ROAD_CONDITION ); - Logger.i( TAG, "existCarMap: size = %d", existCarMap.size() ); - for ( int i = 0; i < size; i++ ) { + Logger.i( TAG, "existCarMap: size = %d", existCarMap.size() );for ( int i = 0; i < size; i++ ) { MarkerExploreWay markerExploreWay = exploreWayList.get( i ); if ( !markerExploreWay.getCanLive() ) { MarkerLocation markerLocation = markerExploreWay.getLocation();