Skip to content

Commit 6e2d1e9

Browse files
committed
update sample codes
1 parent 356d3eb commit 6e2d1e9

File tree

19 files changed

+154
-220
lines changed

19 files changed

+154
-220
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Jetpack-MusicPlayer 目标是:**一行代码即可接入 音乐播放控制组
6767
1.在 build.gradle 中添加依赖。
6868

6969
```groovy
70-
implementation 'com.kunminx.player:player:3.7.0'
70+
implementation 'com.kunminx.player:player:4.0.0'
7171
```
7272

7373
提示:鉴于 Jcenter 关闭,我们已将仓库迁移至 Maven Central,请自行在根目录 build.gradle 添加 `mavenCentral()`

README_EN.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ If you are thinking about [**how to choose the right architecture for your proje
5050
1. Add a dependency on the library in build.gradle.
5151

5252
```groovy
53-
implementation 'com.kunminx.player:player:3.7.0'
53+
implementation 'com.kunminx.player:player:4.0.0'
5454
```
5555

5656
Tip: 鉴于 Jcenter 的关闭,我们已将仓库迁移至 Maven Central,请自行在根目录 build.gradle 添加 `mavenCentral()`

app/src/main/java/com/kunminx/puremusic/player/PlayerManager.java

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,17 @@
1919
import android.content.Context;
2020
import android.content.Intent;
2121

22-
import androidx.lifecycle.LiveData;
23-
2422
import com.danikula.videocache.HttpProxyCacheServer;
2523
import com.kunminx.player.PlayerController;
2624
import com.kunminx.player.PlayingInfoManager;
27-
import com.kunminx.player.bean.dto.ChangeMusic;
28-
import com.kunminx.player.bean.dto.PlayingMusic;
2925
import com.kunminx.player.contract.ICacheProxy;
3026
import com.kunminx.player.contract.IPlayController;
3127
import com.kunminx.player.contract.IServiceNotifier;
28+
import com.kunminx.player.domain.PlayerInfoDispatcher;
3229
import com.kunminx.puremusic.data.bean.TestAlbum;
3330
import com.kunminx.puremusic.player.helper.PlayerFileNameGenerator;
3431
import com.kunminx.puremusic.player.notification.PlayerService;
3532

36-
import java.util.ArrayList;
3733
import java.util.List;
3834

3935
/**
@@ -163,6 +159,11 @@ public String getTrackTime(int progress) {
163159
return mController.getTrackTime(progress);
164160
}
165161

162+
@Override
163+
public PlayerInfoDispatcher getDispatcher() {
164+
return mController.getDispatcher();
165+
}
166+
166167
@Override
167168
public TestAlbum getAlbum() {
168169
return mController.getAlbum();
@@ -183,23 +184,6 @@ public int getAlbumIndex() {
183184
return mController.getAlbumIndex();
184185
}
185186

186-
public LiveData<ChangeMusic<TestAlbum, TestAlbum.TestMusic, TestAlbum.TestArtist>> getChangeMusicResult() {
187-
return mController.getChangeMusicResult();
188-
}
189-
190-
public LiveData<PlayingMusic<TestAlbum, TestAlbum.TestMusic, TestAlbum.TestArtist>> getPlayingMusicResult() {
191-
return mController.getPlayingMusicResult();
192-
}
193-
194-
public LiveData<Boolean> getPauseResult() {
195-
return mController.getPauseResult();
196-
}
197-
198-
@Override
199-
public LiveData<Enum<PlayingInfoManager.RepeatMode>> getPlayModeResult() {
200-
return mController.getPlayModeResult();
201-
}
202-
203187
@Override
204188
public Enum<PlayingInfoManager.RepeatMode> getRepeatMode() {
205189
return mController.getRepeatMode();

app/src/main/java/com/kunminx/puremusic/ui/page/MainFragment.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.kunminx.architecture.ui.page.BaseFragment;
2828
import com.kunminx.architecture.ui.page.DataBindingConfig;
2929
import com.kunminx.architecture.ui.page.State;
30+
import com.kunminx.player.domain.PlayerEvent;
3031
import com.kunminx.puremusic.BR;
3132
import com.kunminx.puremusic.R;
3233
import com.kunminx.puremusic.data.bean.TestAlbum;
@@ -73,8 +74,10 @@ protected DataBindingConfig getDataBindingConfig() {
7374
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
7475
super.onViewCreated(view, savedInstanceState);
7576

76-
PlayerManager.getInstance().getChangeMusicResult().observe(getViewLifecycleOwner(), changeMusic -> {
77-
mAdapter.notifyDataSetChanged();
77+
PlayerManager.getInstance().getDispatcher().output(this, playerEvent -> {
78+
if (playerEvent.eventId == PlayerEvent.EVENT_CHANGE_MUSIC) {
79+
mAdapter.notifyDataSetChanged();
80+
}
7881
});
7982

8083
mMusicRequester.getFreeMusicsResult().observe(getViewLifecycleOwner(), dataResult -> {

app/src/main/java/com/kunminx/puremusic/ui/page/PlayerFragment.java

Lines changed: 26 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.kunminx.architecture.utils.ToastUtils;
3333
import com.kunminx.architecture.utils.Utils;
3434
import com.kunminx.player.PlayingInfoManager;
35+
import com.kunminx.player.domain.PlayerEvent;
3536
import com.kunminx.puremusic.BR;
3637
import com.kunminx.puremusic.R;
3738
import com.kunminx.puremusic.databinding.FragmentPlayerBinding;
@@ -88,42 +89,31 @@ public void onPanelStateChanged(
8889
}
8990
});
9091

91-
PlayerManager.getInstance().getChangeMusicResult().observe(getViewLifecycleOwner(), changeMusic -> {
92-
mStates.title.set(changeMusic.getTitle());
93-
mStates.artist.set(changeMusic.getSummary());
94-
mStates.coverImg.set(changeMusic.getImg());
95-
96-
if (mListener != null) {
97-
view.post(mListener::calculateTitleAndArtist);
98-
}
99-
});
100-
101-
PlayerManager.getInstance().getPlayingMusicResult().observe(getViewLifecycleOwner(), playingMusic -> {
102-
mStates.maxSeekDuration.set(playingMusic.getDuration());
103-
mStates.currentSeekPosition.set(playingMusic.getPlayerPosition());
104-
});
105-
106-
PlayerManager.getInstance().getPauseResult().observe(getViewLifecycleOwner(), aBoolean -> {
107-
mStates.isPlaying.set(!aBoolean);
108-
});
109-
110-
PlayerManager.getInstance().getPlayModeResult().observe(getViewLifecycleOwner(), anEnum -> {
111-
int tip;
112-
if (anEnum == PlayingInfoManager.RepeatMode.LIST_CYCLE) {
113-
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.REPEAT);
114-
tip = R.string.play_repeat;
115-
} else if (anEnum == PlayingInfoManager.RepeatMode.SINGLE_CYCLE) {
116-
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.REPEAT_ONCE);
117-
tip = R.string.play_repeat_once;
118-
} else {
119-
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.SHUFFLE);
120-
tip = R.string.play_shuffle;
121-
}
122-
if (view.getParent().getParent() instanceof SlidingUpPanelLayout) {
123-
SlidingUpPanelLayout sliding = (SlidingUpPanelLayout) view.getParent().getParent();
124-
if (sliding.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) {
125-
ToastUtils.showShortToast(getApplicationContext(), getString(tip));
126-
}
92+
PlayerManager.getInstance().getDispatcher().output(this, playerEvent -> {
93+
switch (playerEvent.eventId) {
94+
case PlayerEvent.EVENT_CHANGE_MUSIC:
95+
mStates.title.set(playerEvent.param.changeMusic.getTitle());
96+
mStates.artist.set(playerEvent.param.changeMusic.getSummary());
97+
mStates.coverImg.set(playerEvent.param.changeMusic.getImg());
98+
if (mListener != null) view.post(mListener::calculateTitleAndArtist);
99+
break;
100+
case PlayerEvent.EVENT_PROGRESS:
101+
mStates.maxSeekDuration.set(playerEvent.param.playingMusic.getDuration());
102+
mStates.currentSeekPosition.set(playerEvent.param.playingMusic.getPlayerPosition());
103+
break;
104+
case PlayerEvent.EVENT_PLAY_STATUS:
105+
mStates.isPlaying.set(!playerEvent.param.toPause);
106+
break;
107+
case PlayerEvent.EVENT_REPEAT_MODE:
108+
Enum<PlayingInfoManager.RepeatMode> anEnum = playerEvent.param.repeatMode;
109+
if (anEnum == PlayingInfoManager.RepeatMode.LIST_CYCLE) {
110+
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.REPEAT);
111+
} else if (anEnum == PlayingInfoManager.RepeatMode.SINGLE_CYCLE) {
112+
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.REPEAT_ONCE);
113+
} else {
114+
mStates.playModeIcon.set(MaterialDrawableBuilder.IconValue.SHUFFLE);
115+
}
116+
break;
127117
}
128118
});
129119

architecture/build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,11 @@ dependencies {
4343
androidTestImplementation "androidx.test.ext:junit:1.1.3"
4444
androidTestImplementation "androidx.test.espresso:espresso-core:3.4.0"
4545

46-
api "androidx.appcompat:appcompat:1.4.2"
47-
api "androidx.navigation:navigation-runtime:2.5.0"
48-
46+
api "androidx.appcompat:appcompat:1.5.0"
47+
api "androidx.navigation:navigation-runtime:2.5.1"
48+
api('com.github.KunMinX:MVI-Dispatcher:6.1.0-beta') {
49+
exclude group: 'com.kunminx.arch', module: 'unpeek-livedata'
50+
}
4951
api 'com.github.KunMinX:UnPeek-LiveData:v7.6.0'
5052
api 'com.github.KunMinX:Smooth-Navigation:v4.0.0'
5153
api 'com.github.KunMinX.Strict-DataBinding:strict_databinding:5.3.0'

build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ apply plugin: 'io.codearte.nexus-staging'
22

33
buildscript {
44
ext {
5-
appTargetSdk = 31
5+
appTargetSdk = 32
66
appMinSdk = 23
7-
appVersionCode = 30700
8-
appVersionName = "3.7.0"
7+
appVersionCode = 40000
8+
appVersionName = "4.0.0"
99
lifecycleVersion = "2.4.1"
1010
navigationVersion = "2.4.2"
1111
}

player/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ dependencies {
7979
testImplementation 'junit:junit:4.13.2'
8080
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
8181
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
82+
implementation "androidx.appcompat:appcompat:1.5.0"
8283
api('com.github.KunMinX:MVI-Dispatcher:6.1.0-beta') {
8384
exclude group: 'com.kunminx.arch', module: 'unpeek-livedata'
8485
}
8586
implementation 'com.google.android.exoplayer:exoplayer:2.18.1'
86-
implementation "androidx.lifecycle:lifecycle-livedata:2.4.1"
8787
}

player/src/main/java/com/kunminx/player/DefaultPlayerManager.java

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,11 @@
1919
import android.annotation.SuppressLint;
2020
import android.content.Context;
2121

22-
import androidx.lifecycle.LiveData;
23-
2422
import com.kunminx.player.bean.DefaultAlbum;
25-
import com.kunminx.player.bean.dto.ChangeMusic;
26-
import com.kunminx.player.bean.dto.PlayingMusic;
2723
import com.kunminx.player.contract.ICacheProxy;
2824
import com.kunminx.player.contract.IPlayController;
2925
import com.kunminx.player.contract.IServiceNotifier;
26+
import com.kunminx.player.domain.PlayerInfoDispatcher;
3027

3128
import java.util.List;
3229

@@ -138,6 +135,11 @@ public String getTrackTime(int progress) {
138135
return mController.getTrackTime(progress);
139136
}
140137

138+
@Override
139+
public PlayerInfoDispatcher getDispatcher() {
140+
return mController.getDispatcher();
141+
}
142+
141143
@Override
142144
public DefaultAlbum getAlbum() {
143145
return mController.getAlbum();
@@ -158,28 +160,6 @@ public int getAlbumIndex() {
158160
return mController.getAlbumIndex();
159161
}
160162

161-
public LiveData<ChangeMusic<DefaultAlbum,
162-
DefaultAlbum.DefaultMusic,
163-
DefaultAlbum.DefaultArtist>> getChangeMusicResult() {
164-
return mController.getChangeMusicResult();
165-
}
166-
167-
public LiveData<PlayingMusic<DefaultAlbum,
168-
DefaultAlbum.DefaultMusic,
169-
DefaultAlbum.DefaultArtist>> getPlayingMusicResult() {
170-
return mController.getPlayingMusicResult();
171-
}
172-
173-
public LiveData<Boolean> getPauseResult() {
174-
return mController.getPauseResult();
175-
}
176-
177-
178-
@Override
179-
public LiveData<Enum<PlayingInfoManager.RepeatMode>> getPlayModeResult() {
180-
return mController.getPlayModeResult();
181-
}
182-
183163
@Override
184164
public Enum<PlayingInfoManager.RepeatMode> getRepeatMode() {
185165
return mController.getRepeatMode();

0 commit comments

Comments
 (0)