From 3d55b0914c33d8a7dc8bfee910518dc2cfdc522f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A6=82=E6=9E=9C=E5=BD=93=E6=97=B6?= Date: Sun, 13 Feb 2022 22:15:48 +0800 Subject: [PATCH] =?UTF-8?q?####=20=202022-02-13=20V7.0.5=20-=20*.[?= =?UTF-8?q?=E6=94=B9=E8=BF=9B]=E5=90=AF=E5=8A=A8=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E6=97=B6=E8=87=AA=E5=8A=A8=E6=92=AD=E6=94=BE=E6=AD=8C=E6=9B=B2?= =?UTF-8?q?=E3=80=82=20-=20*.[=E6=94=B9=E8=BF=9B]=E5=BD=93=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E8=A7=86=E9=A2=91=E6=97=B6,=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=80=80=E5=87=BA=E6=AD=8C=E8=AF=8D=E7=95=8C=E9=9D=A2=E3=80=82?= =?UTF-8?q?=20-=20*.[=E6=94=B9=E8=BF=9B]=E5=BD=93=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E6=AD=8C=E6=9B=B2=E6=97=B6,=E8=87=AA=E5=8A=A8=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E6=AD=8C=E8=AF=8D=E6=88=96=E8=A7=86=E9=A2=91=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E3=80=82=20-=20*.[=E4=BF=AE=E5=A4=8D]=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=86=99=E7=9C=9F=E5=9B=BE=E7=89=87=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E9=9A=8F=E6=9C=BA=E5=B1=95=E7=8E=B0=E7=9A=84?= =?UTF-8?q?BUG=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/gradle.xml | 3 +- .idea/runConfigurations.xml | 12 ----- CHANGELOG.md | 7 +++ app/build.gradle | 4 +- .../java/com/zlm/hp/entity/AudioInfo.java | 11 +++++ .../com/zlm/hp/manager/ActivityManager.java | 10 ++++- .../hp/receiver/AudioBroadcastReceiver.java | 26 ++++++++++- .../zlm/hp/service/AudioPlayerService.java | 4 +- .../com/zlm/hp/ui/LocalVideoActivity.java | 1 + .../main/java/com/zlm/hp/ui/LrcActivity.java | 3 ++ .../main/java/com/zlm/hp/ui/MainActivity.java | 45 +++++++++++-------- .../main/java/com/zlm/hp/util/ImageUtil.java | 30 +++---------- gradle/wrapper/gradle-wrapper.properties | 2 +- 13 files changed, 94 insertions(+), 64 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 9bba60d..526b4c2 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -4,7 +4,7 @@ diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f060697..f14a806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +#### 2022-02-13 V7.0.5 + +- *.[改进]启动软件时自动播放歌曲。 +- *.[改进]当播放视频时,自动退出歌词界面。 +- *.[改进]当播放歌曲时,自动进入歌词或视频界面。 +- *.[修复]修复写真图片无法实现随机展现的BUG。 + #### 2021-02-18 V7.0.4 - *.[改进]修复部分布局控件未改成支持AndroidX的控件导致的闪退问题。 diff --git a/app/build.gradle b/app/build.gradle index fef9ee8..24be591 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,8 +8,8 @@ android { applicationId "com.zlm.hp" minSdkVersion 21 targetSdkVersion 29 - versionCode 10 - versionName "V7.0.3" + versionCode 11 + versionName "V7.0.5" /**添加多 dex分包支持*/ multiDexEnabled true useLibrary 'org.apache.http.legacy' diff --git a/app/src/main/java/com/zlm/hp/entity/AudioInfo.java b/app/src/main/java/com/zlm/hp/entity/AudioInfo.java index 4927893..6cacd80 100644 --- a/app/src/main/java/com/zlm/hp/entity/AudioInfo.java +++ b/app/src/main/java/com/zlm/hp/entity/AudioInfo.java @@ -130,6 +130,11 @@ public class AudioInfo implements Parcelable { * MV路径 */ private String mvPath; + /** + * 是否播放MV + */ + @Transient + private boolean IsPlayMV; /** * */ @@ -372,7 +377,13 @@ public class AudioInfo implements Parcelable { public void setMvPath(String mvPath) { this.mvPath = mvPath; } + public boolean getIsPlayMV() { + return IsPlayMV; + } + public void setIsPlayMV(boolean isPlayMv) { + this.IsPlayMV = isPlayMv; + } public int getPlayProgress() { return playProgress; } diff --git a/app/src/main/java/com/zlm/hp/manager/ActivityManager.java b/app/src/main/java/com/zlm/hp/manager/ActivityManager.java index 4e93626..4711bbf 100644 --- a/app/src/main/java/com/zlm/hp/manager/ActivityManager.java +++ b/app/src/main/java/com/zlm/hp/manager/ActivityManager.java @@ -41,7 +41,15 @@ public class ActivityManager { public void removeActivity(Activity activity) { activityList.remove(activity); } - + public boolean existActivity(Class classinfo) + { + for (Activity item : activityList) { + if (!item.isFinishing() && item != null) { + if(item.getClass()==classinfo){return true;} + } + } + return false; + } /** * 退出 */ diff --git a/app/src/main/java/com/zlm/hp/receiver/AudioBroadcastReceiver.java b/app/src/main/java/com/zlm/hp/receiver/AudioBroadcastReceiver.java index 138dd4f..4857c99 100644 --- a/app/src/main/java/com/zlm/hp/receiver/AudioBroadcastReceiver.java +++ b/app/src/main/java/com/zlm/hp/receiver/AudioBroadcastReceiver.java @@ -57,7 +57,6 @@ public class AudioBroadcastReceiver { * 播放 */ public static final int ACTION_CODE_PLAYING = 3; - /** * 播放本地歌曲 */ @@ -243,7 +242,14 @@ public class AudioBroadcastReceiver { * 播放网络视频 */ public static final int ACTION_CODE_PLAYNETVIDEO = 40; - + /** + * 显示歌词界面 + */ + public static final int ACTION_CODE_SHOWLRCVIEW = 42; + /** + * 关闭歌词窗体 + */ + public static final int ACTION_LRC_CLOSE = 43; private BroadcastReceiver mBroadcastReceiver; private IntentFilter mIntentFilter; private AudioReceiverListener mReceiverListener; @@ -400,6 +406,22 @@ public class AudioBroadcastReceiver { public static void sendVideoCloserReceiver(Context context) { sendReceiver(context, ACTION_VIDEO_CLOSE, null, null); } + /** + * 显示歌词界面 + * + * @param context + */ + public static void sendShowLrcViewReceiver(Context context) { + sendReceiver(context, ACTION_CODE_SHOWLRCVIEW, null, null); + } + /** + * 关闭歌词界面 + * + * @param context + */ + public static void sendCloseLrcViewReceiver(Context context) { + sendReceiver(context, ACTION_LRC_CLOSE, null, null); + } /** * 在线歌曲下载完成 * diff --git a/app/src/main/java/com/zlm/hp/service/AudioPlayerService.java b/app/src/main/java/com/zlm/hp/service/AudioPlayerService.java index 9a7d11b..639329a 100644 --- a/app/src/main/java/com/zlm/hp/service/AudioPlayerService.java +++ b/app/src/main/java/com/zlm/hp/service/AudioPlayerService.java @@ -621,6 +621,7 @@ public class AudioPlayerService extends Service { isPlayMV = true; } } + audioInfo.setIsPlayMV(isPlayMV); if ((isPlayMV && MvPath != null) || filePath == null || filePath.isEmpty()) { //如果会播放MV,则进入下一步操作 File MVFile = new File(MvPath); @@ -692,9 +693,8 @@ public class AudioPlayerService extends Service { AudioBroadcastReceiver.sendPlayReceiver(mContext, audioInfo); mWorkerHandler.removeMessages(MESSAGE_WHAT_LOADPLAYPROGRESSDATA); mWorkerHandler.sendEmptyMessage(MESSAGE_WHAT_LOADPLAYPROGRESSDATA); - mMediaPlayer.start(); - + AudioBroadcastReceiver.sendShowLrcViewReceiver(mContext); } } }); diff --git a/app/src/main/java/com/zlm/hp/ui/LocalVideoActivity.java b/app/src/main/java/com/zlm/hp/ui/LocalVideoActivity.java index cbdf29a..44cbf9d 100644 --- a/app/src/main/java/com/zlm/hp/ui/LocalVideoActivity.java +++ b/app/src/main/java/com/zlm/hp/ui/LocalVideoActivity.java @@ -329,6 +329,7 @@ public class LocalVideoActivity extends BaseActivity { mUIHandler.sendEmptyMessage(MESSAGE_WHAT_TIMECHANGE); //播放视频 playVideo(); + AudioBroadcastReceiver.sendCloseLrcViewReceiver(mContext); } /** diff --git a/app/src/main/java/com/zlm/hp/ui/LrcActivity.java b/app/src/main/java/com/zlm/hp/ui/LrcActivity.java index c1d81d8..aa17bb9 100644 --- a/app/src/main/java/com/zlm/hp/ui/LrcActivity.java +++ b/app/src/main/java/com/zlm/hp/ui/LrcActivity.java @@ -1946,6 +1946,9 @@ public class LrcActivity extends BaseActivity { */ private void handleAudioBroadcastReceiver(Intent intent, int code) { switch (code) { + case AudioBroadcastReceiver.ACTION_LRC_CLOSE: + this.finish(); + break; case AudioBroadcastReceiver.ACTION_CODE_NULL: //空数据 diff --git a/app/src/main/java/com/zlm/hp/ui/MainActivity.java b/app/src/main/java/com/zlm/hp/ui/MainActivity.java index 23563ac..918bfe1 100644 --- a/app/src/main/java/com/zlm/hp/ui/MainActivity.java +++ b/app/src/main/java/com/zlm/hp/ui/MainActivity.java @@ -83,6 +83,7 @@ import com.zlm.libs.widget.MusicSeekBar; import com.zlm.libs.widget.SlidingMenuLayout; import java.io.File; +import java.security.cert.CertPathValidatorException; import java.util.ArrayList; import java.util.List; @@ -278,10 +279,10 @@ public class MainActivity extends BaseActivity { protected int setContentLayoutResID() { return R.layout.activity_main; } - + //是否第一次使用 + private boolean isFirst=true; @Override protected void initViews(Bundle savedInstanceState) { - initSlidingMenu(); initViewPage(); initTitleViews(); @@ -290,6 +291,7 @@ public class MainActivity extends BaseActivity { initReceiver(); initService(); loadData(); + AudioPlayerManager.newInstance(mContext).play(mMusicSeekBar.getProgress()); } @@ -299,7 +301,24 @@ public class MainActivity extends BaseActivity { private void initService() { AudioPlayerService.startService(this); } + private void ShowLrcView() + { + if (mSlidingMenuLayout.isShowingMenu()) { + mSlidingMenuLayout.hideMenu(); + return; + } + if (mIsShowPopPlayList) { + hidePopPlayListView(); + return; + } + if(!ActivityManager.getInstance().existActivity(LrcActivity.class)) { + Intent intent = new Intent(MainActivity.this, LrcActivity.class); + startActivity(intent); + } + //去掉动画 + overridePendingTransition(0, 0); + } /** * 初始化广播 @@ -451,7 +470,8 @@ public class MainActivity extends BaseActivity { if (mAdapter != null) mAdapter.reshViewHolder(null); } - + //region 加载歌词界面 + //endregion break; case AudioBroadcastReceiver.ACTION_CODE_PLAY: if (mPauseImageView.getVisibility() != View.VISIBLE) @@ -459,7 +479,9 @@ public class MainActivity extends BaseActivity { if (mPlayImageView.getVisibility() != View.INVISIBLE) mPlayImageView.setVisibility(View.INVISIBLE); - + break; + case AudioBroadcastReceiver.ACTION_CODE_SHOWLRCVIEW: + ShowLrcView(); break; case AudioBroadcastReceiver.ACTION_CODE_PLAYING: @@ -776,20 +798,7 @@ public class MainActivity extends BaseActivity { mPlayerBarLL.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - if (mSlidingMenuLayout.isShowingMenu()) { - mSlidingMenuLayout.hideMenu(); - return; - } - - if (mIsShowPopPlayList) { - hidePopPlayListView(); - return; - } - - Intent intent = new Intent(MainActivity.this, LrcActivity.class); - startActivity(intent); - //去掉动画 - overridePendingTransition(0, 0); + ShowLrcView(); } }); //mSlidingMenuLayout.addIgnoreHorizontalView(mPlayerBarLL); diff --git a/app/src/main/java/com/zlm/hp/util/ImageUtil.java b/app/src/main/java/com/zlm/hp/util/ImageUtil.java index 7490867..5151a1f 100644 --- a/app/src/main/java/com/zlm/hp/util/ImageUtil.java +++ b/app/src/main/java/com/zlm/hp/util/ImageUtil.java @@ -350,30 +350,12 @@ public class ImageUtil { */ private static void addAndSortData(List returnResult, List> tempReturnResult, List singerNames) { for (int i = 0; i < singerNames.size(); i++) { - if (i == 0) { - returnResult.addAll(tempReturnResult.get(i)); - } else { - String tag = singerNames.get(i - 1); - List tempList = tempReturnResult.get(i); - - boolean flag = tempList.size() - returnResult.size() > 0 ? true : false; - int minSize = tempList.size() > returnResult.size() ? returnResult.size() : tempList.size(); - int modSize = Math.abs(tempList.size() - returnResult.size()); - int z = 0; - for (int j = 0; j < minSize; j++) { - for (; z < returnResult.size(); z++) { - SingerInfo temp = returnResult.get(z); - if (temp.getSingerName().equals(tag)) { - returnResult.add(++z, tempList.get(j)); - break; - } - } - } - if (flag) { - for (int k = modSize; k < tempList.size(); k++) { - returnResult.add(tempList.get(k)); - } - } + List tempList = tempReturnResult.get(i); + while(tempList.size()>0){ + int max=tempList.size()-1,min=0; + int ran2 = (int) (Math.random()*(max-min)+min); + returnResult.add(tempList.get(ran2)); + tempList.remove(ran2); } } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f10cd84..1245df2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Sat Sep 26 12:04:29 CST 2020 distributionBase=GRADLE_USER_HOME -distributionUrl=file:///C:/Users/Administrator/.gradle/wrapper/dists/gradle-6.6.1-bin/du4tvj86lhti6iga1v8h7pckb/gradle-6.6.1-bin.zip +distributionUrl=file:///E:/\u6211\u7684\u4EE3\u7801/android/gradle\u5305/gradle-6.6.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME