diff --git a/modules/mogo-module-media/build.gradle b/modules/mogo-module-media/build.gradle
index eccfa5b7fd..d028e927fd 100644
--- a/modules/mogo-module-media/build.gradle
+++ b/modules/mogo-module-media/build.gradle
@@ -35,7 +35,7 @@ android {
}
dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation fileTree(dir: 'libs', include: ['*.aar'])
annotationProcessor rootProject.ext.dependencies.aroutercompiler
implementation rootProject.ext.dependencies.arouter
diff --git a/modules/mogo-module-media/libs/OPENSDK_Flow_cdb1c1a_1.0.1.30_release.aar b/modules/mogo-module-media/libs/OPENSDK_Flow_cdb1c1a_1.0.1.30_release.aar
new file mode 100644
index 0000000000..72f411cce2
Binary files /dev/null and b/modules/mogo-module-media/libs/OPENSDK_Flow_cdb1c1a_1.0.1.30_release.aar differ
diff --git a/modules/mogo-module-media/src/main/AndroidManifest.xml b/modules/mogo-module-media/src/main/AndroidManifest.xml
index 2b857c6071..4292dc7f05 100644
--- a/modules/mogo-module-media/src/main/AndroidManifest.xml
+++ b/modules/mogo-module-media/src/main/AndroidManifest.xml
@@ -8,6 +8,7 @@
+
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java
index 8741bc36e9..fa467bc990 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaCardViewProvider.java
@@ -11,6 +11,7 @@ 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.module.media.widget.MediaWindow2;
import com.mogo.service.module.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.module.ModuleType;
@@ -21,8 +22,6 @@ public class MediaCardViewProvider implements IMogoModuleProvider {
private static final String TAG = "MediaCardViewProvider";
- private MediaWindow mMediaWindow;
-
@Override
public Fragment createFragment( Context context, Bundle data ) {
@@ -35,10 +34,8 @@ public class MediaCardViewProvider implements IMogoModuleProvider {
@Override
public void init( Context context ) {
ServiceMediaHandler.init( context );
-
- mMediaWindow = new MediaWindow();
- mMediaWindow.initMedia(context);
-
+ MediaWindow2 mediaWindow2 = new MediaWindow2();
+ mediaWindow2.initMedia(context);
}
@Override
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaWindow.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaWindow.java
index 107206a46a..f13b506d43 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaWindow.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/MediaWindow.java
@@ -181,8 +181,12 @@ public class MediaWindow implements MediaView{
}
if (first || mMediaInfoData.getPlayState() == 1 || mMediaInfoData.getPlayState() == 2) {
- if (mWindowMaxTime != null) mWindowMaxTime.setText(Utils.calculateTime((int) mMediaInfoData.getMaxTime()));
- if (mWindowCurrTime != null) mWindowCurrTime.setText(Utils.calculateTime((int) mMediaInfoData.getCurTime()));
+ if (mWindowMaxTime != null){
+ mWindowMaxTime.setText(Utils.calculateTime((int) mMediaInfoData.getMaxTime()));
+ }
+ if (mWindowCurrTime != null){
+ mWindowCurrTime.setText(Utils.calculateTime((int) mMediaInfoData.getCurTime()));
+ }
}
if (mCircleImg != null){
@@ -286,7 +290,9 @@ public class MediaWindow implements MediaView{
}
- if (mCircleImg != null) mCircleImg.stopAnim();
+ if (mCircleImg != null){
+ mCircleImg.stopAnim();
+ }
if (type == 1 || type == 2 || type ==3){
UiThreadHandler.removeCallbacks(mRunnable);
@@ -417,10 +423,18 @@ public class MediaWindow implements MediaView{
bookid = leTingNewsData.getSid();
}
- if (mediaName == null) mediaName = "";
- if (artist == null) artist = "";
- if (cover == null) cover = "";
- if (bookid == null) bookid = "";
+ if (mediaName == null){
+ mediaName = "";
+ }
+ if (artist == null){
+ artist = "";
+ }
+ if (cover == null){
+ cover = "";
+ }
+ if (bookid == null){
+ bookid = "";
+ }
}
} catch (Exception e) {
e.printStackTrace();
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/constants/MusicConstant.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/constants/MusicConstant.java
new file mode 100644
index 0000000000..e26222ae1f
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/constants/MusicConstant.java
@@ -0,0 +1,13 @@
+package com.mogo.module.media.constants;
+
+/**
+ * 音频相关常量
+ *
+ * @author tongchenfei
+ */
+public class MusicConstant {
+ public static final int PLAY_STATE_PLAYING = 1;
+ public static final int PLAY_STATE_BUFF = 2;
+ public static final int PLAY_STATE_PAUSE_OR_STOP = 0;
+ public static final int PLAY_STATE_ERROR = -1;
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/BaseMediaPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/BaseMediaPresenter.java
new file mode 100644
index 0000000000..103528a49a
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/BaseMediaPresenter.java
@@ -0,0 +1,53 @@
+package com.mogo.module.media.presenter;
+
+import android.content.Context;
+
+import com.mogo.commons.mvp.IView;
+import com.mogo.commons.mvp.Presenter;
+import com.mogo.module.media.model.MediaInfoData;
+
+/**
+ * 媒体播放presenter基类,目前没有整合到原MediaPresenter中,原来的qq音乐,喜马拉雅和懒人听书下掉了
+ *
+ * @author tongchenfei
+ */
+public abstract class BaseMediaPresenter extends Presenter {
+ public BaseMediaPresenter(V view) {
+ super(view);
+ }
+
+ /**
+ * 初始化
+ *
+ * @param context 上下文
+ */
+ public abstract void init(Context context);
+
+ /**
+ * 播放音乐
+ * @param mediaInfoData 待播放音乐信息
+ */
+ public abstract void play(MediaInfoData mediaInfoData);
+
+ /**
+ * 暂停播放
+ * @param mediaInfoData 待暂停音乐信息
+ */
+ public abstract void pause(MediaInfoData mediaInfoData);
+
+ /**
+ * 停止播放
+ * @param mediaInfoData 待停止播放音乐信息
+ */
+ public abstract void stop(MediaInfoData mediaInfoData);
+
+ /**
+ * 上一首
+ */
+ public abstract void pre();
+
+ /**
+ * 下一首
+ */
+ public abstract void next();
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java
new file mode 100644
index 0000000000..c56637d26b
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/presenter/WeCarFlowPresenter.java
@@ -0,0 +1,135 @@
+package com.mogo.module.media.presenter;
+
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.LifecycleOwner;
+
+import com.mogo.module.media.MediaConstants;
+import com.mogo.module.media.constants.MusicConstant;
+import com.mogo.module.media.model.MediaInfoData;
+import com.mogo.module.media.view.IMusicView;
+import com.mogo.utils.logger.Logger;
+import com.tencent.wecarflow.flowoutside.sdk.BindListener;
+import com.tencent.wecarflow.flowoutside.sdk.FlowPlayControl;
+import com.tencent.wecarflow.flowoutside.sdk.MediaChangeListener;
+import com.tencent.wecarflow.flowoutside.sdk.MediaInfo;
+import com.tencent.wecarflow.flowoutside.sdk.PlayStateListener;
+
+/**
+ * 爱趣听presenter
+ *
+ * @author tongchenfei
+ */
+public class WeCarFlowPresenter extends BaseMediaPresenter {
+ private static final String TAG = "WeCarFlowPresenter";
+ public WeCarFlowPresenter(IMusicView view) {
+ super(view);
+ }
+
+ private Context context;
+
+ private MediaInfoData currentMedia;
+
+ @Override
+ public void init(Context context) {
+ this.context = context;
+ FlowPlayControl.getInstance().bindPlayService(context);
+ FlowPlayControl.getInstance().addBindListener(new BindListener() {
+ @Override
+ public void onServiceConnected() {
+ Logger.d(TAG, "onServiceConnected===");
+ }
+
+ @Override
+ public void onServiceDisconnected() {
+ Logger.e(TAG, "onServiceDisconnected===");
+ }
+
+ @Override
+ public void onBindDied() {
+ Logger.e(TAG, "onBindDied===");
+ }
+ });
+
+ FlowPlayControl.getInstance().addMediaChangeListener(new MediaChangeListener() {
+ @Override
+ public void onMediaChange(MediaInfo mediaInfo) {
+ currentMedia = new MediaInfoData();
+ currentMedia.setMediaName(mediaInfo.getMediaName());
+ currentMedia.setMediaUrl(mediaInfo.getMediaImage());
+ }
+
+ @Override
+ public void onFavorChange(boolean b) {
+
+ }
+ });
+
+ FlowPlayControl.getInstance().addPlayStateListener(new PlayStateListener() {
+ @Override
+ public void onStart() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PLAYING);
+ mView.onMusicPlaying(currentMedia);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP);
+ mView.onMusicPause(currentMedia);
+ }
+ }
+
+ @Override
+ public void onStop() {
+ if (mView != null && currentMedia != null) {
+ currentMedia.setPlayState(MusicConstant.PLAY_STATE_PAUSE_OR_STOP);
+ mView.onMusicStoped(currentMedia);
+ }
+ }
+
+ @Override
+ public void onProgress(String s, long current, long total) {
+ if (mView != null) {
+ mView.onMusicProgress(current, total);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void play(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doPlay();
+ }
+
+ @Override
+ public void pause(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doPause();
+ }
+
+ @Override
+ public void stop(MediaInfoData mediaInfoData) {
+ FlowPlayControl.getInstance().doStop();
+ }
+
+ @Override
+ public void pre() {
+ FlowPlayControl.getInstance().doPre();
+ }
+
+ @Override
+ public void next() {
+ FlowPlayControl.getInstance().doNext();
+ }
+
+ @Override
+ public void onDestroy(@NonNull LifecycleOwner owner) {
+ super.onDestroy(owner);
+ if (context != null) {
+ FlowPlayControl.getInstance().unbindPlayService(context);
+ }
+ }
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
index 4a7a247c71..6ec22f102e 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/utils/MusicControlBroadCast.java
@@ -459,21 +459,23 @@ public class MusicControlBroadCast {
}
}
-// return null;
- MediaInfoData mediaInfoData = new MediaInfoData();
- mediaInfoData.setMediaId("001jiOrk2g389Y");
- mediaInfoData.setBookInfo("");
- mediaInfoData.setType(1);
- mediaInfoData.setMediaName("恭喜发财 (广场舞)");
- mediaInfoData.setMediaSinger("刘德华");
- mediaInfoData.setMediaType("物流派");
- mediaInfoData.setPlayState(0);
- mediaInfoData.setLocalMedia(false);
- mediaInfoData.setCurTime(0);
- mediaInfoData.setMaxTime(410*1000);
- mediaInfoData.setMediaUrl("http://isure.stream.qqmusic.qq.com/C200000s2wCd3pzdnA.m4a?guid=2000001271&vkey=8CE1A876F5079A6E4E9BCB8306252EF152F3D4F237B3BF4C1450B50BA7E065D3D55A0735FD2E957B129E83FF7D7D5D398479D53FE2171DF0&uin=&fromtag=50");
- mediaInfoData.setMediaImg("http://music.qq.com/musicbox/img/uccpic_error.jpg");
- return mediaInfoData;//刘德华的恭喜发财
+ return null;
+
+ // 测试代码吧?
+// MediaInfoData mediaInfoData = new MediaInfoData();
+// mediaInfoData.setMediaId("001jiOrk2g389Y");
+// mediaInfoData.setBookInfo("");
+// mediaInfoData.setType(1);
+// mediaInfoData.setMediaName("恭喜发财 (广场舞)");
+// mediaInfoData.setMediaSinger("刘德华");
+// mediaInfoData.setMediaType("物流派");
+// mediaInfoData.setPlayState(0);
+// mediaInfoData.setLocalMedia(false);
+// mediaInfoData.setCurTime(0);
+// mediaInfoData.setMaxTime(410*1000);
+// mediaInfoData.setMediaUrl("http://isure.stream.qqmusic.qq.com/C200000s2wCd3pzdnA.m4a?guid=2000001271&vkey=8CE1A876F5079A6E4E9BCB8306252EF152F3D4F237B3BF4C1450B50BA7E065D3D55A0735FD2E957B129E83FF7D7D5D398479D53FE2171DF0&uin=&fromtag=50");
+// mediaInfoData.setMediaImg("http://music.qq.com/musicbox/img/uccpic_error.jpg");
+// return mediaInfoData;//刘德华的恭喜发财
}
/**
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java
new file mode 100644
index 0000000000..853a9cde86
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/view/IMusicView.java
@@ -0,0 +1,19 @@
+package com.mogo.module.media.view;
+
+import com.mogo.commons.mvp.IView;
+import com.mogo.module.media.model.MediaInfoData;
+
+/**
+ * 音频显示类的接口
+ *
+ * @author tongchenfei
+ */
+public interface IMusicView extends IView {
+ void onMusicPlaying(MediaInfoData mediaInfoData);
+
+ void onMusicPause(MediaInfoData mediaInfoData);
+
+ void onMusicStoped(MediaInfoData mediaInfoData);
+
+ void onMusicProgress(long current,long total);
+}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/MediaWindow2.java
new file mode 100644
index 0000000000..64af4f4009
--- /dev/null
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/MediaWindow2.java
@@ -0,0 +1,234 @@
+package com.mogo.module.media.widget;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.mogo.module.media.R;
+import com.mogo.module.media.ServiceMediaHandler;
+import com.mogo.module.media.constants.MusicConstant;
+import com.mogo.module.media.listener.NoDoubleClickListener;
+import com.mogo.module.media.model.MediaInfoData;
+import com.mogo.module.media.presenter.WeCarFlowPresenter;
+import com.mogo.module.media.utils.MusicControlBroadCast;
+import com.mogo.module.media.utils.Utils;
+import com.mogo.module.media.view.IMusicView;
+import com.mogo.utils.glide.GlideApp;
+import com.mogo.utils.logger.Logger;
+
+/**
+ * 适配爱趣听的window
+ *
+ * @author tongchenfei
+ */
+public class MediaWindow2 implements IMusicView {
+
+ public static final String TAG = MediaWindow2.class.getName();
+ private Context mContext;
+ private WeCarFlowPresenter mPresenter;
+
+ private MediaInfoData mMediaInfoData = null;
+
+ private View mWindowView;
+ private AnimCircleImageView mCircleImg;
+ private ScrollingTextView mScrollText;
+ private ImageView mWindowPlayPause;
+ private ImageView mWindowPlayNext;
+ private LinearLayout mWindowMediaCenter;
+ private TextView mWindowCurrTime;
+ private TextView mWindowMaxTime;
+ private NoScrollSeekBar mWindowProgress;
+
+ private boolean mHasAddWindow = false;
+ private boolean mTwoChange = false;
+ private boolean isFirstPlay = false;
+
+ private Runnable mRunnable = new Runnable() {
+ @Override
+ public void run() {
+ MusicControlBroadCast.sendGetMusicPlayStateBroadcast();
+ }
+ };
+
+ public void initMedia(Context context) {
+ mContext = context;
+ mPresenter = new WeCarFlowPresenter(this);
+ mPresenter.init(context);
+
+ isFirstPlay = true;
+ }
+
+ private void addWindowView() {
+ if (ServiceMediaHandler.getMogoWindowManager() == null) {
+ return;
+ }
+
+ if (!mHasAddWindow) {
+ mHasAddWindow = true;
+ mWindowView =
+ LayoutInflater.from(mContext).inflate(R.layout.module_media_music_window_alert_layout, null);
+ mWindowView.setVisibility(View.VISIBLE);
+ mCircleImg = mWindowView.findViewById(R.id.window_circle_img);
+ mScrollText = mWindowView.findViewById(R.id.window_scroll_txt);
+ mWindowPlayPause = mWindowView.findViewById(R.id.window_play_pause);
+ mWindowPlayNext = mWindowView.findViewById(R.id.window_music_next);
+ mWindowMediaCenter = mWindowView.findViewById(R.id.window_media_center);
+ mWindowCurrTime = mWindowView.findViewById(R.id.window_current_time);
+ mWindowMaxTime = mWindowView.findViewById(R.id.window_max_time);
+ mWindowProgress = mWindowView.findViewById(R.id.window_progress_bar);
+ if (mWindowPlayPause != null) {
+ mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause);
+ }
+ int yPos =
+ getContext().getResources().getDimensionPixelOffset(R.dimen.module_media_music_state_location);
+ int xPos =
+ getContext().getResources().getDimensionPixelOffset(R.dimen.module_media_music_state_location_x);
+ ServiceMediaHandler.getMogoWindowManager().addView(mWindowView, xPos, yPos, false);
+ updateWindowUI(true);
+ mWindowMediaCenter.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onClicks(View view) {
+ if (mMediaInfoData != null) {
+ MusicControlBroadCast.openMediaApp(mMediaInfoData.getType());
+ } else {
+ MusicControlBroadCast.openMediaApp(1);
+ }
+ }
+ });
+
+ mWindowPlayPause.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onClicks(View view) {
+ if (isFirstPlay) {
+ if (mMediaInfoData != null) {
+ MusicControlBroadCast.listeningSendData(mMediaInfoData);
+ }
+ } else {
+ if (mMediaInfoData != null) {
+ MusicControlBroadCast.commandPlayPause(mMediaInfoData.getType(),
+ mMediaInfoData.getPlayState());
+ }
+ }
+ }
+ });
+
+ mWindowPlayNext.setOnClickListener(new NoDoubleClickListener() {
+ @Override
+ public void onClicks(View view) {
+ if (mMediaInfoData != null) {
+ MusicControlBroadCast.commandNext(mMediaInfoData.getType());
+ }
+ }
+ });
+ }
+ }
+
+ private void updateWindowUI() {
+ updateWindowUI(false);
+ }
+
+ private void updateWindowUI(boolean first) {
+ if (mWindowView == null) {
+ return;
+ }
+ if (mMediaInfoData != null) {
+ if (mMediaInfoData.getType() == 1 || mMediaInfoData.getType() == 2 || mMediaInfoData.getType() == 3) {
+ mWindowView.setVisibility(View.VISIBLE);
+ }
+ } else {
+ mWindowView.setVisibility(View.GONE);
+ return;
+ }
+
+ if (mScrollText != null) {
+ mScrollText.setText(mMediaInfoData.getMediaName());
+ }
+
+ if (first || mMediaInfoData.getPlayState() == MusicConstant.PLAY_STATE_PLAYING || mMediaInfoData.getPlayState() == MusicConstant.PLAY_STATE_BUFF) {
+ if (mWindowMaxTime != null) {
+ mWindowMaxTime.setText(Utils.calculateTime((int) mMediaInfoData.getMaxTime()));
+ }
+ if (mWindowCurrTime != null) {
+ mWindowCurrTime.setText(Utils.calculateTime((int) mMediaInfoData.getCurTime()));
+ }
+ }
+
+ if (mCircleImg != null) {
+ com.bumptech.glide.request.RequestOptions options =
+ new com.bumptech.glide.request.RequestOptions()
+ .placeholder(R.drawable.module_media_share_default_icon);
+ GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(mCircleImg);
+ }
+
+ }
+
+ @Override
+ public Context getContext() {
+ return mContext;
+ }
+
+ @Override
+ public void onMusicPlaying(MediaInfoData mediaInfoData) {
+ Logger.d(TAG, "onMusicPlaying: " + mediaInfoData);
+ addWindowView();
+ mMediaInfoData = mediaInfoData;
+ updateWindowUI();
+ if (mWindowPlayPause != null) {
+ mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_play);
+ }
+
+ if (mCircleImg != null) {
+ mCircleImg.startAnim();
+ }
+ }
+
+ @Override
+ public void onMusicPause(MediaInfoData mediaInfoData) {
+ Logger.d(TAG, "onMusicPause: " + mediaInfoData);
+ mMediaInfoData = mediaInfoData;
+ updateWindowUI();
+ if (mWindowPlayPause != null) {
+ mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause);
+ }
+
+ if (mCircleImg != null) {
+ mCircleImg.stopAnim();
+ }
+ }
+
+ @Override
+ public void onMusicStoped(MediaInfoData mediaInfoData) {
+ Logger.d(TAG, "onMusicStoped: " + mediaInfoData);
+ mMediaInfoData = mediaInfoData;
+ updateWindowUI();
+ if (mWindowPlayPause != null) {
+ mWindowPlayPause.setImageResource(R.drawable.module_media_window_pop_pause);
+ }
+
+
+ if (mCircleImg != null) {
+ mCircleImg.stopAnim();
+ }
+ }
+
+ @Override
+ public void onMusicProgress(long current, long total) {
+ Logger.d(TAG, "onMusicProgress==current: " + current + " total: " + total);
+ if (mWindowCurrTime != null) {
+ mWindowCurrTime.setText(Utils.calculateTime((int) current));
+ mWindowMaxTime.setText(Utils.calculateTime((int) total));
+ }
+ try {
+ int progress =
+ (int) ((current * 1.0f * 100) / (total * 1.0f));
+ if (mWindowProgress != null) {
+ mWindowProgress.setProgress(progress);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}