From 29f9c94e381da361d713f034a9b9d55cb62e5f56 Mon Sep 17 00:00:00 2001 From: jsyjst Date: Wed, 5 Dec 2018 23:12:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BD=91=E7=BB=9C=E5=92=8C?= =?UTF-8?q?=E5=8A=A0=E8=BD=BD=E7=95=8C=E9=9D=A2=EF=BC=8C=E5=88=9D=E6=AD=A5?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=A4=A7=E9=83=A8=E5=88=86=E6=89=80=E9=9C=80?= =?UTF-8?q?=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 5 +- app/src/main/AndroidManifest.xml | 4 +- .../musicplayer/adapter/AlbumSongAdapter.java | 18 ++-- .../adapter/ExpandableListViewAdapter.java | 15 +-- .../musicplayer/base/BaseObserver.java | 44 ++++++++ .../musicplayer/callback/RxActionManager.java | 17 ++++ .../musicplayer/constant/Constant.java | 6 ++ .../contract/IAlbumSongContract.java | 6 +- .../contract/ISearchContentContract.java | 7 ++ .../example/musicplayer/https/NetWork.java | 4 +- .../musicplayer/model/AlbumSongModel.java | 37 ++++--- .../example/musicplayer/model/PlayModel.java | 5 +- .../musicplayer/model/SearchContentModel.java | 31 ++++-- .../presenter/AlbumSongPresenter.java | 57 ++++++++--- .../presenter/SearchContentPresenter.java | 29 +++++- .../musicplayer/service/PlayerService.java | 63 ++++++------ .../example/musicplayer/util/FileHelper.java | 2 +- .../musicplayer/util/RxApiManager.java | 94 ++++++++++++++++++ .../musicplayer/view/AlbumSongFragment.java | 35 ++++++- .../musicplayer/view/LocalMusicFragment.java | 61 +++++++----- .../musicplayer/view/MainActivity.java | 78 +++++++-------- .../musicplayer/view/MainFragment.java | 50 ++++------ .../musicplayer/view/PlayActivity.java | 34 +++++-- .../view/SearchContentFragment.java | 75 +++++++++++--- .../musicplayer/view/SearchFragment.java | 3 + .../main/res/drawable-xxhdpi/empty_song.png | Bin 0 -> 61355 bytes .../res/drawable-xxhdpi/network_error.jpg | Bin 0 -> 9287 bytes app/src/main/res/drawable/seekbar_bg.xml | 2 +- app/src/main/res/drawable/selector_love.xml | 2 +- app/src/main/res/layout/activity_play.xml | 2 +- app/src/main/res/layout/activity_welcome.xml | 72 ++++++++++---- app/src/main/res/layout/empty_song.xml | 16 +-- .../res/layout/fragment_album_recycler.xml | 63 ++++++++++-- .../main/res/layout/fragment_local_music.xml | 14 +-- app/src/main/res/layout/fragment_search.xml | 1 + .../res/layout/fragment_search_content.xml | 60 +++++++++-- .../main/res/layout/recycler_song_item.xml | 2 +- app/src/main/res/mipmap-xxhdpi/icon.png | Bin 0 -> 86095 bytes app/src/main/res/values/colors.xml | 3 +- app/src/main/res/values/strings.xml | 2 +- master | 0 41 files changed, 746 insertions(+), 273 deletions(-) create mode 100644 app/src/main/java/com/example/musicplayer/base/BaseObserver.java create mode 100644 app/src/main/java/com/example/musicplayer/callback/RxActionManager.java create mode 100644 app/src/main/java/com/example/musicplayer/util/RxApiManager.java create mode 100644 app/src/main/res/drawable-xxhdpi/empty_song.png create mode 100644 app/src/main/res/drawable-xxhdpi/network_error.jpg create mode 100644 app/src/main/res/mipmap-xxhdpi/icon.png create mode 100644 master diff --git a/app/build.gradle b/app/build.gradle index f7e7d83..33c8545 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -59,6 +59,9 @@ dependencies { //litePal implementation 'org.litepal.android:java:3.0.0' //水波纹按钮 - compile 'com.patrickpissurno:ripple-effect:1.3.1' + implementation 'com.patrickpissurno:ripple-effect:1.3.1' + //加载动画 + implementation 'com.wang.avi:library:2.1.3' + } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 088a622..ad0acec 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,9 +10,9 @@ diff --git a/app/src/main/java/com/example/musicplayer/adapter/AlbumSongAdapter.java b/app/src/main/java/com/example/musicplayer/adapter/AlbumSongAdapter.java index 3067e4d..427a9ca 100644 --- a/app/src/main/java/com/example/musicplayer/adapter/AlbumSongAdapter.java +++ b/app/src/main/java/com/example/musicplayer/adapter/AlbumSongAdapter.java @@ -10,6 +10,7 @@ import android.widget.TextView; import com.andexert.library.RippleView; import com.example.musicplayer.R; +import com.example.musicplayer.constant.MyApplication; import com.example.musicplayer.entiy.AlbumSong; import com.example.musicplayer.util.FileHelper; @@ -58,13 +59,18 @@ public class AlbumSongAdapter extends RecyclerView.Adapter> mAlbumCollectionList; + private String[] mGroupStrings; //一级标题 + private List> mAlbumCollectionList; //二级收藏歌单列表 private Context mContext; - private OnChildItemClickListener mChildClickListener; + private OnChildItemClickListener mChildClickListener; //二级item的点击监听 public ExpandableListViewAdapter(Context context, String[] groupStrings, List> albumCollectionList) { @@ -33,6 +33,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { mGroupStrings = groupStrings; mContext = context; } + //提供给外部使用 public void setOnChildItemClickListener(OnChildItemClickListener onChildItemClickListener){ mChildClickListener=onChildItemClickListener; } @@ -72,6 +73,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { return true; } + //绘制一级列表 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { View view; @@ -81,13 +83,13 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { groupViewHolder = new GroupViewHolder(); groupViewHolder.groupTextView = view.findViewById(R.id.tv_new_song); groupViewHolder.pointIv = view.findViewById(R.id.iv_point); - groupViewHolder.addIv = view.findViewById(R.id.iv_add); view.setTag(groupViewHolder); } else { view = convertView; groupViewHolder = (GroupViewHolder) view.getTag(); } groupViewHolder.groupTextView.setText(mGroupStrings[groupPosition]); + //根据展开的状态来改变箭头方向 if (isExpanded) { groupViewHolder.pointIv.setImageResource(R.drawable.up); } else { @@ -97,6 +99,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { } + //绘制二级列表 @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { View view; @@ -118,6 +121,7 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { childViewHolder.authorTv.setText(mAlbumCollectionList.get(groupPosition).get(childPosition).getSingerName()); CommonUtil.setImgWithGlide(mContext, mAlbumCollectionList.get(groupPosition).get(childPosition).getAlbumPic(), childViewHolder.faceIv); + //点击水波纹效果,结束后开始点击效果 childViewHolder.childView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() { @Override public void onComplete(RippleView rippleView) { @@ -136,7 +140,6 @@ public class ExpandableListViewAdapter extends BaseExpandableListAdapter { class GroupViewHolder { private TextView groupTextView; private ImageView pointIv; - private ImageView addIv; } class ChildViewHolder { diff --git a/app/src/main/java/com/example/musicplayer/base/BaseObserver.java b/app/src/main/java/com/example/musicplayer/base/BaseObserver.java new file mode 100644 index 0000000..36e5874 --- /dev/null +++ b/app/src/main/java/com/example/musicplayer/base/BaseObserver.java @@ -0,0 +1,44 @@ +package com.example.musicplayer.base; + +import android.widget.Toast; + +import com.example.musicplayer.constant.Constant; +import com.example.musicplayer.entiy.AlbumSong; +import com.example.musicplayer.util.CommonUtil; +import com.example.musicplayer.util.RxApiManager; + +import java.net.UnknownHostException; + +import io.reactivex.Observable; +import io.reactivex.Observer; +import io.reactivex.disposables.Disposable; + +/** + * Created by 残渊 on 2018/12/5. + */ + +public abstract class BaseObserver implements Observer { + private BaseActivity context; + + public BaseObserver(BaseActivity context) { + this.context = context; + } + + @Override + public void onSubscribe(Disposable d) { + RxApiManager.get().add(Constant.ALBUM,d); + } + + @Override + public void onError(Throwable e) { + if(e instanceof UnknownHostException){ + onComplete(); + CommonUtil.showToast(context,"当前网络不可用,请检查当前网络"); + } + } + + @Override + public void onComplete() { + } +} + diff --git a/app/src/main/java/com/example/musicplayer/callback/RxActionManager.java b/app/src/main/java/com/example/musicplayer/callback/RxActionManager.java new file mode 100644 index 0000000..1aee512 --- /dev/null +++ b/app/src/main/java/com/example/musicplayer/callback/RxActionManager.java @@ -0,0 +1,17 @@ +package com.example.musicplayer.callback; + + +import io.reactivex.disposables.Disposable; + +/** + * 主要管理rxJava的Subscription描述 + * Created by 残渊 on 2018/12/5. + */ + +public interface RxActionManager { + void add(T tag, Disposable d); + void remove(T tag); + void cancel(T tag); + void cancelAll(); +} + diff --git a/app/src/main/java/com/example/musicplayer/constant/Constant.java b/app/src/main/java/com/example/musicplayer/constant/Constant.java index 2892448..be2b00c 100644 --- a/app/src/main/java/com/example/musicplayer/constant/Constant.java +++ b/app/src/main/java/com/example/musicplayer/constant/Constant.java @@ -14,4 +14,10 @@ public class Constant { public static final int LIST_TYPE_LOVE=6; public static final int LIST_TYPE_HISTORY=7; public static final int HISTORY_MAX_SIZE=100; + public static final String LOCAL_IMG="local_img"; + public static final String SEARCH_SONG= "search_song"; + public static final String SEARCH_SONG_MORE= "search_song_more"; + public static final String SEARCH_ALBUM="search_album"; + public static final String SEARCH_ALBUM_MORE="search_album_more"; + public static final String ALBUM="album"; } diff --git a/app/src/main/java/com/example/musicplayer/contract/IAlbumSongContract.java b/app/src/main/java/com/example/musicplayer/contract/IAlbumSongContract.java index 8c1b90d..94cf6d4 100644 --- a/app/src/main/java/com/example/musicplayer/contract/IAlbumSongContract.java +++ b/app/src/main/java/com/example/musicplayer/contract/IAlbumSongContract.java @@ -19,7 +19,9 @@ public interface IAlbumSongContract { void setAlbumSongList(List songList); //成功获取专辑歌曲后填充列表 void showAlbumSongError();//获取专辑失败 void showAlbumMessage(String name,String singer,String company,String desc); //展示专辑详细 - void showNetError(); //网络错误 + void showLoading(); //显示进度 + void hideLoading(); //隐藏进度 + void showNetError(); //显示网络错误 } interface Presenter{ void getAlbumDetail(String id,int type); //获取专辑的更多信息 @@ -29,5 +31,7 @@ public interface IAlbumSongContract { void getAlbumError(); //接口出现问题 void insertAllAlbumSong(ArrayList songList); //将专辑歌曲添加到数据库 + + void showNetError(); //显示网络错误 } } diff --git a/app/src/main/java/com/example/musicplayer/contract/ISearchContentContract.java b/app/src/main/java/com/example/musicplayer/contract/ISearchContentContract.java index 910a920..0c9ae48 100644 --- a/app/src/main/java/com/example/musicplayer/contract/ISearchContentContract.java +++ b/app/src/main/java/com/example/musicplayer/contract/ISearchContentContract.java @@ -31,6 +31,9 @@ public interface ISearchContentContract { void searchAlbumSuccess(List albumList); //获取专辑成功 void searchAlbumMoreSuccess(List songListBeans); //搜索更多内容成功 void searchAlbumError(); //获取专辑失败 + void showLoading(); //显示进度 + void hideLoading(); //隐藏进度 + void showNetError(); //显示网络错误 } interface Presenter{ void search(String seek,int offset); //搜索 @@ -47,5 +50,9 @@ public interface ISearchContentContract { void searchAlbumMore(String seek,int offset);//搜索更多专辑 void searchAlbumMoreSuccess(List songListBeans); //搜索更多内容成功 + + void networkError();//网络错误 + + } } diff --git a/app/src/main/java/com/example/musicplayer/https/NetWork.java b/app/src/main/java/com/example/musicplayer/https/NetWork.java index 01dbaaa..7633297 100644 --- a/app/src/main/java/com/example/musicplayer/https/NetWork.java +++ b/app/src/main/java/com/example/musicplayer/https/NetWork.java @@ -6,6 +6,8 @@ import com.example.musicplayer.https.api.AlbumApi; import com.example.musicplayer.https.api.SearchApi; import com.example.musicplayer.https.api.SingerImgApi; +import org.reactivestreams.Subscription; + import java.util.concurrent.TimeUnit; import okhttp3.OkHttpClient; @@ -24,7 +26,7 @@ import static com.example.musicplayer.constant.BaseUri.SINGER_URL; */ public class NetWork { - private static okhttp3.OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(20, TimeUnit.SECONDS); + private static okhttp3.OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(10, TimeUnit.SECONDS); private static Converter.Factory gsonConverterFactory = GsonConverterFactory.create(); private static CallAdapter.Factory rxJavaCallAdapterFactory = RxJava2CallAdapterFactory.create(); private static SingerImgApi singerImgApi; diff --git a/app/src/main/java/com/example/musicplayer/model/AlbumSongModel.java b/app/src/main/java/com/example/musicplayer/model/AlbumSongModel.java index 6ae8176..f5b116d 100644 --- a/app/src/main/java/com/example/musicplayer/model/AlbumSongModel.java +++ b/app/src/main/java/com/example/musicplayer/model/AlbumSongModel.java @@ -2,14 +2,17 @@ package com.example.musicplayer.model; import android.util.Log; +import com.example.musicplayer.constant.Constant; import com.example.musicplayer.contract.IAlbumSongContract; import com.example.musicplayer.entiy.AlbumSong; import com.example.musicplayer.entiy.OnlineSong; import com.example.musicplayer.https.NetWork; +import com.example.musicplayer.util.RxApiManager; import org.litepal.LitePal; import org.litepal.crud.LitePalSupport; +import java.net.UnknownHostException; import java.util.ArrayList; import io.reactivex.Observer; @@ -17,43 +20,49 @@ import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; +import static com.example.musicplayer.view.AlbumSongFragment.ALBUM_SONG; + /** * Created by 残渊 on 2018/11/27. */ public class AlbumSongModel implements IAlbumSongContract.Model { - private static final String TAG="AlbumSongModel"; + private static final String TAG = "AlbumSongModel"; private IAlbumSongContract.Presenter mPresenter; - public AlbumSongModel(IAlbumSongContract.Presenter presenter){ + public AlbumSongModel(IAlbumSongContract.Presenter presenter) { mPresenter = presenter; } @Override - public void getAlbumDetail(String id,final int type) { + public void getAlbumDetail(String id, final int type) { NetWork.getAlbumApi().getAlbumSong(id) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.ALBUM, d); } @Override public void onNext(AlbumSong value) { - if(value.getResult().equals("SUCCESS")){ - mPresenter.getAlbumDetailSuccess(type,value.getData().getSongs(), - value.getData().getName(),value.getData().getSinger(), - value.getData().getCompany(),value.getData().getDesc()); - }else{ + if (value.getResult().equals("SUCCESS")) { + mPresenter.getAlbumDetailSuccess(type, value.getData().getSongs(), + value.getData().getName(), value.getData().getSinger(), + value.getData().getCompany(), value.getData().getDesc()); + } else { mPresenter.getAlbumDetailError(); } } @Override public void onError(Throwable e) { - Log.d(TAG, "onError: "+e.toString()); - mPresenter.getAlbumError(); + Log.d(TAG, "onError: " + e.toString()); + if (e instanceof UnknownHostException && type == ALBUM_SONG) { + mPresenter.showNetError(); + } else { + mPresenter.getAlbumError(); + } } @Override @@ -70,10 +79,10 @@ public class AlbumSongModel implements IAlbumSongContract.Model { @Override public void run() { LitePal.deleteAll(OnlineSong.class); - for(int i=0;i() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.LOCAL_IMG,d); } @Override diff --git a/app/src/main/java/com/example/musicplayer/model/SearchContentModel.java b/app/src/main/java/com/example/musicplayer/model/SearchContentModel.java index 8023b2c..02bb323 100644 --- a/app/src/main/java/com/example/musicplayer/model/SearchContentModel.java +++ b/app/src/main/java/com/example/musicplayer/model/SearchContentModel.java @@ -2,11 +2,14 @@ package com.example.musicplayer.model; import android.util.Log; +import com.example.musicplayer.constant.Constant; import com.example.musicplayer.contract.ISearchContentContract; import com.example.musicplayer.entiy.Album; import com.example.musicplayer.entiy.SeachSong; import com.example.musicplayer.https.NetWork; +import com.example.musicplayer.util.RxApiManager; +import java.net.UnknownHostException; import java.util.ArrayList; import io.reactivex.Observer; @@ -28,12 +31,12 @@ public class SearchContentModel implements ISearchContentContract.Model { @Override public void search(String seek, int offset) { - NetWork.getSearchApi().search(seek,offset) + NetWork.getSearchApi().search(seek, offset) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.SEARCH_SONG, d); } @Override @@ -43,7 +46,9 @@ public class SearchContentModel implements ISearchContentContract.Model { @Override public void onError(Throwable e) { - mPresenter.searchError(); + if (e instanceof UnknownHostException) { + mPresenter.networkError(); + } Log.d(TAG, "onError: " + e.toString()); } @@ -56,13 +61,13 @@ public class SearchContentModel implements ISearchContentContract.Model { } @Override - public void searchMore(String seek,int offset) { + public void searchMore(String seek, int offset) { NetWork.getSearchApi().search(seek, offset) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.SEARCH_SONG_MORE, d); } @Override @@ -94,26 +99,30 @@ public class SearchContentModel implements ISearchContentContract.Model { @Override public void searchAlbum(String seek, int offset) { - NetWork.getSearchApi().searchAlbum(seek,offset) + NetWork.getSearchApi().searchAlbum(seek, offset) .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.SEARCH_ALBUM, d); } @Override public void onNext(Album value) { - if(value.getResult().equals("SUCCESS")){ + if (value.getResult().equals("SUCCESS")) { mPresenter.searchAlbumSuccess(value.getData()); - }else{ + } else { mPresenter.searchAlbumError(); } } @Override public void onError(Throwable e) { - mPresenter.searchAlbumError(); + if (e instanceof UnknownHostException) { + mPresenter.networkError(); + } else { + mPresenter.searchAlbumError(); + } Log.d(TAG, "onError: searchAlbumError" + e.toString()); } @@ -132,7 +141,7 @@ public class SearchContentModel implements ISearchContentContract.Model { .subscribe(new Observer() { @Override public void onSubscribe(Disposable d) { - + RxApiManager.get().add(Constant.SEARCH_ALBUM_MORE, d); } @Override diff --git a/app/src/main/java/com/example/musicplayer/presenter/AlbumSongPresenter.java b/app/src/main/java/com/example/musicplayer/presenter/AlbumSongPresenter.java index 50a0210..4b763d1 100644 --- a/app/src/main/java/com/example/musicplayer/presenter/AlbumSongPresenter.java +++ b/app/src/main/java/com/example/musicplayer/presenter/AlbumSongPresenter.java @@ -1,8 +1,10 @@ package com.example.musicplayer.presenter; +import android.os.Handler; import android.util.Log; import com.example.musicplayer.base.BasePresenter; +import com.example.musicplayer.constant.Constant; import com.example.musicplayer.contract.IAlbumSongContract; import com.example.musicplayer.entiy.AlbumSong; import com.example.musicplayer.model.AlbumSongModel; @@ -11,36 +13,52 @@ import com.example.musicplayer.view.AlbumSongFragment; import java.util.ArrayList; import java.util.List; +import static com.example.musicplayer.view.AlbumSongFragment.ALBUM_SONG; + + /** * Created by 残渊 on 2018/11/27. */ public class AlbumSongPresenter extends BasePresenter implements IAlbumSongContract.Presenter { - private final static String TAG="AlbumSongPresenter"; + private final static String TAG = "AlbumSongPresenter"; private AlbumSongModel mModel; + private Handler mHandler = new Handler(); public AlbumSongPresenter() { mModel = new AlbumSongModel(this); } @Override - public void getAlbumDetail(String id,int type) { - mModel.getAlbumDetail(id,type); + public void getAlbumDetail(String id, int type) { + mModel.getAlbumDetail(id, type); + if (type == ALBUM_SONG) { + if (isAttachView()) { + getMvpView().showLoading(); + } + } } @Override - public void getAlbumDetailSuccess(int type, List songList, - String name, String singer, String company, String desc) { - if (isAttachView()) { - if (type == AlbumSongFragment.ALBUM_SONG) { - getMvpView().setAlbumSongList(songList); - Log.d(TAG, "getAlbumDetailSuccess: "+songList.size()); - } else { - getMvpView().showAlbumMessage(name, singer, company, desc); + public void getAlbumDetailSuccess(final int type, final List songList, + final String name, final String singer, final String company, final String desc) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (isAttachView()) { + if (type == ALBUM_SONG) { + getMvpView().setAlbumSongList(songList); + getMvpView().hideLoading(); + } else { + getMvpView().showAlbumMessage(name, singer, company, desc); + } + + } } - } + }, 1000); + } @Override @@ -53,7 +71,7 @@ public class AlbumSongPresenter extends BasePresenter i @Override public void getAlbumError() { if (isAttachView()) { - getMvpView().showNetError(); + getMvpView().showAlbumSongError(); } } @@ -61,4 +79,17 @@ public class AlbumSongPresenter extends BasePresenter i public void insertAllAlbumSong(ArrayList songList) { mModel.insertAllAlbumSong(songList); } + + @Override + public void showNetError() { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if (isAttachView()) { + getMvpView().showNetError(); + } + } + }, 1000); + + } } diff --git a/app/src/main/java/com/example/musicplayer/presenter/SearchContentPresenter.java b/app/src/main/java/com/example/musicplayer/presenter/SearchContentPresenter.java index 96a2e88..b3f9b65 100644 --- a/app/src/main/java/com/example/musicplayer/presenter/SearchContentPresenter.java +++ b/app/src/main/java/com/example/musicplayer/presenter/SearchContentPresenter.java @@ -26,6 +26,9 @@ public class SearchContentPresenter extends BasePresenter songListBeans) { + public void searchSuccess(final ArrayList songListBeans) { + mHandler.postDelayed(new Runnable() { + @Override + public void run() { + if(isAttachView()){ + getMvpView().hideLoading(); + getMvpView().setSongsList(songListBeans); + } + } + },500); - if(isAttachView()){ - getMvpView().setSongsList(songListBeans); - } } @Override @@ -82,12 +91,16 @@ public class SearchContentPresenter extends BasePresenter albumList) { if(isAttachView()){ getMvpView().searchAlbumSuccess(albumList); + getMvpView().hideLoading(); } } @@ -95,6 +108,7 @@ public class SearchContentPresenter extends BasePresenter= mLocalSongList.size()) { mCurrent = 0; @@ -242,15 +242,14 @@ public class PlayerService extends Service { saveOnlineSongInfo(mCurrent); mPlayStatusBinder.play(Constant.LIST_TYPE_ONLINE); sendBroadcast(new Intent(BroadcastName.ONLINE_ALBUM_SONG_Change));//专辑列表的改变 - } else if(mListType == Constant.LIST_TYPE_LOVE){ + } else if (mListType == Constant.LIST_TYPE_LOVE) { if (mCurrent >= mLoveList.size()) { mCurrent = 0; } - Log.d(TAG, "next: " + mCurrent); saveLoveInfo(mCurrent); mPlayStatusBinder.play(Constant.LIST_TYPE_LOVE); sendBroadcast(new Intent(BroadcastName.LOVE_SONG_CHANGE)); - }else{ + } else { if (mCurrent >= mHistoryList.size()) { mCurrent = 0; } @@ -261,6 +260,7 @@ public class PlayerService extends Service { } public void last() { + sendBroadcast(new Intent(BroadcastName.SONG_PAUSE));//暂停广播 mCurrent = FileHelper.getSong().getCurrent(); mCurrent--; if (mCurrent == -1) { @@ -280,11 +280,11 @@ public class PlayerService extends Service { saveOnlineSongInfo(mCurrent); mPlayStatusBinder.play(mListType); sendBroadcast(new Intent(BroadcastName.ONLINE_ALBUM_SONG_Change));//专辑列表的改变 - } else if(mListType == Constant.LIST_TYPE_LOVE) { + } else if (mListType == Constant.LIST_TYPE_LOVE) { saveLoveInfo(mCurrent); mPlayStatusBinder.play(mListType); sendBroadcast(new Intent(BroadcastName.LOVE_SONG_CHANGE)); - }else{ + } else { saveHistoryInfo(mCurrent); mPlayStatusBinder.play(mListType); } @@ -412,7 +412,7 @@ public class PlayerService extends Service { //保存我的收藏的列表的信息 private void saveHistoryInfo(int current) { - HistorySong historySong=mHistoryList.get(current); + HistorySong historySong = mHistoryList.get(current); Song song = new Song(); song.setCurrent(current); song.setOnlineId(historySong.getSongId()); @@ -427,7 +427,6 @@ public class PlayerService extends Service { //将歌曲保存到最近播放的数据库中 private void saveToHistoryTable() { - Log.d(TAG, "saveToHistoryTable: ture"); final Song song = FileHelper.getSong(); LitePal.where("songId=?", song.getOnlineId()).findAsync(HistorySong.class) @@ -448,8 +447,8 @@ public class PlayerService extends Service { @Override public void onFinish(boolean success) { if (success) { - if(LitePal.findAll(HistorySong.class).size()>Constant.HISTORY_MAX_SIZE){ - LitePal.delete(HistorySong.class,LitePal.findFirst(HistorySong.class).getId()); + if (LitePal.findAll(HistorySong.class).size() > Constant.HISTORY_MAX_SIZE) { + LitePal.delete(HistorySong.class, LitePal.findFirst(HistorySong.class).getId()); } } } diff --git a/app/src/main/java/com/example/musicplayer/util/FileHelper.java b/app/src/main/java/com/example/musicplayer/util/FileHelper.java index f3a5d67..0933628 100644 --- a/app/src/main/java/com/example/musicplayer/util/FileHelper.java +++ b/app/src/main/java/com/example/musicplayer/util/FileHelper.java @@ -55,7 +55,7 @@ public class FileHelper { //写对象流的对象 File userFile = new File(file, "song.txt"); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(userFile)); - oos.writeObject(song); //将Person对象p写入到oos中 + oos.writeObject(song);//将Person对象p写入到oos中 oos.close(); //关闭文件流 } catch (FileNotFoundException e) { // TODO Auto-generated catch block diff --git a/app/src/main/java/com/example/musicplayer/util/RxApiManager.java b/app/src/main/java/com/example/musicplayer/util/RxApiManager.java new file mode 100644 index 0000000..4d7c21c --- /dev/null +++ b/app/src/main/java/com/example/musicplayer/util/RxApiManager.java @@ -0,0 +1,94 @@ +package com.example.musicplayer.util; + +import android.annotation.TargetApi; +import android.os.Build; +import android.support.v4.util.ArrayMap; +import android.util.Log; + + +import com.example.musicplayer.callback.RxActionManager; + +import org.reactivestreams.Subscription; + +import java.util.Set; + +import io.reactivex.disposables.Disposable; + + +/** + * Created by 残渊 on 2018/12/5. + */ + +public class RxApiManager implements RxActionManager { + private static final String TAG="RxApiManager"; + + private static RxApiManager sInstance = null; + + private ArrayMap maps; + + public static RxApiManager get() { + + if (sInstance == null) { + synchronized (RxApiManager.class) { + if (sInstance == null) { + sInstance = new RxApiManager(); + } + } + } + return sInstance; + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + private RxApiManager() { + maps = new ArrayMap<>(); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + @Override + public void add(Object tag, Disposable disposable) { + maps.put(tag, disposable); + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + @Override + public void remove(Object tag) { + if (!maps.isEmpty()) { + maps.remove(tag); + } + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + public void removeAll() { + if (!maps.isEmpty()) { + maps.clear(); + } + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + @Override public void cancel(Object tag) { + if (maps.isEmpty()) { + return; + } + if (maps.get(tag) == null) { + return; + } + if (!maps.get(tag).isDisposed()) { + Log.d(TAG, "cancel: "+tag); + maps.get(tag).dispose(); + maps.remove(tag); + } + } + + @TargetApi(Build.VERSION_CODES.KITKAT) + @Override public void cancelAll() { + if (maps.isEmpty()) { + return; + } + Set keys = maps.keySet(); + for (Object apiKey : keys) { + cancel(apiKey); + } + removeAll(); + } +} + diff --git a/app/src/main/java/com/example/musicplayer/view/AlbumSongFragment.java b/app/src/main/java/com/example/musicplayer/view/AlbumSongFragment.java index 41afe71..1c8c9d7 100644 --- a/app/src/main/java/com/example/musicplayer/view/AlbumSongFragment.java +++ b/app/src/main/java/com/example/musicplayer/view/AlbumSongFragment.java @@ -19,6 +19,7 @@ import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.TextView; import com.example.musicplayer.R; @@ -35,8 +36,10 @@ import com.example.musicplayer.presenter.AlbumSongPresenter; import com.example.musicplayer.service.PlayerService; import com.example.musicplayer.util.CommonUtil; import com.example.musicplayer.util.FileHelper; +import com.example.musicplayer.util.RxApiManager; import com.github.florent37.materialviewpager.MaterialViewPagerHelper; import com.github.florent37.materialviewpager.header.MaterialViewPagerHeaderDecorator; +import com.wang.avi.AVLoadingIndicatorView; import org.litepal.LitePal; @@ -64,6 +67,12 @@ public class AlbumSongFragment extends Fragment implements IAlbumSongContract.Vi private String mPublicTime; private String mDesc; + //用来判断网络问题及加载问题 + private AVLoadingIndicatorView mLoading; + private TextView mLoadingTv; + private ImageView mNetworkErrorIv; + + private List mSongsList; private RecyclerView mRecycle; @@ -94,6 +103,9 @@ public class AlbumSongFragment extends Fragment implements IAlbumSongContract.Vi if (mType == ALBUM_SONG) { view = inflater.inflate(R.layout.fragment_album_recycler, container, false); mRecycle = view.findViewById(R.id.recycler_song_list); + mLoading = view.findViewById(R.id.avi); + mLoadingTv = view.findViewById(R.id.tv_loading); + mNetworkErrorIv = view.findViewById(R.id.iv_network_error); LitePal.getDatabase(); } else { view = inflater.inflate(R.layout.fragment_album_song, container, false); @@ -130,9 +142,9 @@ public class AlbumSongFragment extends Fragment implements IAlbumSongContract.Vi } @Override - public void onDestroy(){ - super.onDestroy(); - getActivity().unregisterReceiver(albumSongChangeReceiver); + public void onDestroyView(){ + RxApiManager.get().cancel(Constant.ALBUM); + super.onDestroyView(); } private void getBundle(){ @@ -198,9 +210,24 @@ public class AlbumSongFragment extends Fragment implements IAlbumSongContract.Vi mPublicTimeTv.setText(mPublicTime); } + @Override + public void showLoading() { + mLoading.show(); + } + + @Override + public void hideLoading() { + mLoading.hide(); + mLoadingTv.setVisibility(View.GONE); + mRecycle.setVisibility(View.VISIBLE); + mNetworkErrorIv.setVisibility(View.GONE); + } + @Override public void showNetError() { - CommonUtil.showToast(getActivity(),"网络错误"); + mLoadingTv.setVisibility(View.GONE); + mLoading.hide(); + mNetworkErrorIv.setVisibility(View.VISIBLE); } class AlbumSongChangeReceiver extends BroadcastReceiver { diff --git a/app/src/main/java/com/example/musicplayer/view/LocalMusicFragment.java b/app/src/main/java/com/example/musicplayer/view/LocalMusicFragment.java index cbda372..9a83d10 100644 --- a/app/src/main/java/com/example/musicplayer/view/LocalMusicFragment.java +++ b/app/src/main/java/com/example/musicplayer/view/LocalMusicFragment.java @@ -16,7 +16,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; +import android.widget.FrameLayout; import android.widget.ImageView; +import android.widget.LinearLayout; import android.widget.Toast; import com.example.musicplayer.R; @@ -54,7 +56,7 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. private ImageView mFindLocalMusicIv; private ImageView mBackIv; - private ViewStub mEmptyViewStub; + private FrameLayout mEmptyViewLinear; private ServiceConnection connection = new ServiceConnection() { @Override @@ -76,22 +78,23 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. mRecycler = mView.findViewById(R.id.recycler_song_list); mFindLocalMusicIv = mView.findViewById(R.id.iv_find_local_song); mBackIv = mView.findViewById(R.id.iv_back); - mEmptyViewStub = mView.findViewById(R.id.stub_empty); + mEmptyViewLinear = mView.findViewById(R.id.linear_empty); return mView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); - intentFilter=new IntentFilter(); + intentFilter = new IntentFilter(); intentFilter.addAction(BroadcastName.LOCAL_SONG_CHANGE_LIST); - songChangeReceiver=new SongChangeLocalMusicReceiver(); - getActivity().registerReceiver(songChangeReceiver,intentFilter); + songChangeReceiver = new SongChangeLocalMusicReceiver(); + getActivity().registerReceiver(songChangeReceiver, intentFilter); initView(); setOnClickListener(); } + @Override - public void onDestroy(){ + public void onDestroy() { super.onDestroy(); getActivity().unbindService(connection); getActivity().unregisterReceiver(songChangeReceiver); @@ -101,7 +104,7 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. LitePal.getDatabase(); //创建数据库 mLocalSongsList = new ArrayList<>(); layoutManager = new LinearLayoutManager(mView.getContext()); - songAdapter = new SongAdapter(mView.getContext(),mLocalSongsList); + songAdapter = new SongAdapter(mView.getContext(), mLocalSongsList); mPresenter = new LocalMusicPresenter(); mPresenter.attachView(this); //与Presenter建立关系 //启动服务 @@ -109,22 +112,21 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. getActivity().bindService(playIntent, connection, Context.BIND_AUTO_CREATE); mLocalSongsList = LitePal.findAll(LocalSong.class); - Log.d(TAG, "initView: "+mLocalSongsList.size()); - if(mLocalSongsList.size()==0){ + if (mLocalSongsList.size() == 0) { mRecycler.setVisibility(View.GONE); - mEmptyViewStub.setVisibility(View.VISIBLE); - }else{ + mEmptyViewLinear.setVisibility(View.VISIBLE); + } else { mRecycler.setVisibility(View.VISIBLE); - mEmptyViewStub.setVisibility(View.GONE); + mEmptyViewLinear.setVisibility(View.GONE); mRecycler.setLayoutManager(layoutManager); //令recyclerView定位到当前播放的位置 - songAdapter = new SongAdapter(mView.getContext(),mLocalSongsList); + songAdapter = new SongAdapter(mView.getContext(), mLocalSongsList); mRecycler.setAdapter(songAdapter); - if(FileHelper.getSong()!=null) { - layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent()-4, mRecycler.getHeight()); + if (FileHelper.getSong() != null) { + layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent() - 4, mRecycler.getHeight()); } } @@ -172,15 +174,24 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. getActivity().runOnUiThread(new Runnable() { @Override public void run() { + mLocalSongsList.clear(); mLocalSongsList.addAll(mp3InfoList); - mRecycler.setLayoutManager(layoutManager); - //令recyclerView定位到当前播放的位置 - songAdapter = new SongAdapter(mView.getContext(),mLocalSongsList); - mRecycler.setAdapter(songAdapter); - CommonUtil.showToast(getActivity(),"成功导入本地音乐"); - mPresenter.saveSong(mp3InfoList);//保存到数据库中 - if(FileHelper.getSong()!=null) { - layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent()-4, mRecycler.getHeight()); + if (mLocalSongsList.size() == 0) { + mRecycler.setVisibility(View.GONE); + mEmptyViewLinear.setVisibility(View.VISIBLE); + } else { + mRecycler.setVisibility(View.VISIBLE); + mEmptyViewLinear.setVisibility(View.GONE); + mRecycler.setLayoutManager(layoutManager); + //令recyclerView定位到当前播放的位置 + songAdapter = new SongAdapter(mView.getContext(), mLocalSongsList); + mRecycler.setAdapter(songAdapter); + setOnClickListener(); + CommonUtil.showToast(getActivity(), "成功导入本地音乐"); + mPresenter.saveSong(mp3InfoList);//保存到数据库中 + if (FileHelper.getSong() != null) { + layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent() - 4, mRecycler.getHeight()); + } } } }); @@ -192,8 +203,8 @@ public class LocalMusicFragment extends Fragment implements ILocalMusicContract. @Override public void onReceive(Context context, Intent intent) { songAdapter.notifyDataSetChanged(); - if(FileHelper.getSong()!=null) { - layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent()+4, mRecycler.getHeight()); + if (FileHelper.getSong() != null) { + layoutManager.scrollToPositionWithOffset(FileHelper.getSong().getCurrent() + 4, mRecycler.getHeight()); } } } diff --git a/app/src/main/java/com/example/musicplayer/view/MainActivity.java b/app/src/main/java/com/example/musicplayer/view/MainActivity.java index f61540d..ebf5daf 100644 --- a/app/src/main/java/com/example/musicplayer/view/MainActivity.java +++ b/app/src/main/java/com/example/musicplayer/view/MainActivity.java @@ -37,6 +37,7 @@ import com.example.musicplayer.service.PlayerService; import com.example.musicplayer.util.CommonUtil; import com.example.musicplayer.util.FileHelper; import com.example.musicplayer.util.MediaUtil; +import com.example.musicplayer.util.RxApiManager; import org.litepal.LitePal; @@ -92,21 +93,22 @@ public class MainActivity extends AppCompatActivity { songChangeReceiver = new SongChangeReceiver(); registerReceiver(songChangeReceiver, intentFilter); LitePal.getDatabase(); - + //启动服务 + Intent playIntent = new Intent(MainActivity.this, PlayerService.class); + bindService(playIntent, connection, Context.BIND_AUTO_CREATE); initView(); - onClick(); } private void initView() { mSong = FileHelper.getSong(); - Log.d(TAG, "jsyjst: " + mSong.toString()); mSongNameTv = findViewById(R.id.tv_song_name); mSingerTv = findViewById(R.id.tv_singer); mLinear = findViewById(R.id.linear_player); mSeekBar = findViewById(R.id.sb_progress); mNextIv = findViewById(R.id.song_next); mCoverIv = findViewById(R.id.circle_img); + mPlayerBtn = findViewById(R.id.btn_player); //设置属性动画 mCircleAnimator = ObjectAnimator.ofFloat(mCoverIv, "rotation", 0.0f, 360.0f); mCircleAnimator.setDuration(30000); @@ -116,11 +118,6 @@ public class MainActivity extends AppCompatActivity { if (mSong.getSongName() != null) { - //启动服务 - Intent playIntent = new Intent(MainActivity.this, PlayerService.class); - bindService(playIntent, connection, Context.BIND_AUTO_CREATE); - Log.d(TAG, "------initView:bindService "); - mLinear.setVisibility(View.VISIBLE); mSongNameTv.setText(mSong.getSongName()); mSingerTv.setText(mSong.getSinger()); @@ -135,12 +132,20 @@ public class MainActivity extends AppCompatActivity { .apply(RequestOptions.errorOf(R.drawable.welcome)) .into(mCoverIv); } - + onClick(); } else { - mLinear.setVisibility(View.GONE); + mSongNameTv.setText("心渊音乐"); + mSingerTv.setText("袁健策 3117004905"); + mCoverIv.setImageResource(R.drawable.jay); + mLinear.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + CommonUtil.showToast(MainActivity.this, "开启你的音乐之旅吧"); + } + }); } - mPlayerBtn = findViewById(R.id.btn_player); + addMainFragment(); } @@ -181,8 +186,6 @@ public class MainActivity extends AppCompatActivity { time = mMediaPlayer.getCurrentPosition(); mPlayStatusBinder.pause(); flag = true; - mPlayerBtn.setSelected(false); - mCircleAnimator.pause(); } else if (flag) { mPlayStatusBinder.resume(); flag = false; @@ -191,10 +194,6 @@ public class MainActivity extends AppCompatActivity { } else { isSeek = false; } - mCircleAnimator.resume(); - mPlayerBtn.setSelected(true); - mSeekBarThread = new Thread(new SeekBarThread()); - mSeekBarThread.start(); } else { if (FileHelper.getSong().isOnline()) { mPlayStatusBinder.playOnline(); @@ -202,9 +201,6 @@ public class MainActivity extends AppCompatActivity { mPlayStatusBinder.play(FileHelper.getSong().getListType()); } mMediaPlayer.seekTo((int) mSong.getCurrentTime()); - mCircleAnimator.start(); - mPlayerBtn.setSelected(true); - seekBarStart(); } } }); @@ -259,14 +255,13 @@ public class MainActivity extends AppCompatActivity { public void onDestroy() { unbindService(connection); unregisterReceiver(songChangeReceiver); - if(mSeekBarThread!=null) mSeekBarThread.interrupt(); + if (mSeekBarThread != null) mSeekBarThread.interrupt(); Song song = FileHelper.getSong(); song.setCurrentTime(mPlayStatusBinder.getCurrentTime()); - Log.d(TAG, "onServiceDisconnected: " + song.getCurrentTime()); FileHelper.saveSong(song); + RxApiManager.get().cancelAll(); super.onDestroy(); - } private void seekBarStart() { @@ -277,7 +272,7 @@ public class MainActivity extends AppCompatActivity { class SeekBarThread implements Runnable { @Override public void run() { - if (mPlayStatusBinder!=null) { + if (mPlayStatusBinder != null) { while (!isChange && mPlayStatusBinder.isPlaying()) { mSeekBar.setProgress((int) mPlayStatusBinder.getCurrentTime()); try { @@ -297,32 +292,35 @@ public class MainActivity extends AppCompatActivity { String action = intent.getAction(); mSong = FileHelper.getSong(); - mSongNameTv.setText(mSong.getSongName()); - mSingerTv.setText(mSong.getSinger()); - mSeekBar.setMax((int) mSong.getDuration()); - - if (!mSong.isOnline()) { - FileHelper.setSingerImg(MainActivity.this, mSong.getSinger(), mCoverIv); - } else { - Glide.with(MainActivity.this) - .load(mSong.getImgUrl()) - .apply(RequestOptions.placeholderOf(R.drawable.welcome)) - .apply(RequestOptions.errorOf(R.drawable.welcome)) - .into(mCoverIv); - } - if (action.equals(BroadcastName.SONG_PAUSE)) { + onClick(); + if (action.equals(BroadcastName.ONLINE_SONG_ERROR)) { + CommonUtil.showToast(MainActivity.this, "抱歉,该歌曲暂无版权,搜搜其他歌曲吧"); + } else if (action.equals(BroadcastName.SONG_PAUSE)) { mPlayerBtn.setSelected(false); mCircleAnimator.pause(); } else if (action.equals(BroadcastName.SONG_RESUME)) { mPlayerBtn.setSelected(true); mCircleAnimator.resume(); seekBarStart(); - - } else { + } else if (action.equals(BroadcastName.SONG_CHANGE)) { + mSong = FileHelper.getSong(); + mSongNameTv.setText(mSong.getSongName()); + mSingerTv.setText(mSong.getSinger()); + Log.d(TAG, "onReceive: " + mSong.getDuration()); + mSeekBar.setMax((int) mSong.getDuration()); mPlayerBtn.setSelected(true); mCircleAnimator.start(); seekBarStart(); } + if (!mSong.isOnline()) { + FileHelper.setSingerImg(MainActivity.this, mSong.getSinger(), mCoverIv); + } else { + Glide.with(MainActivity.this) + .load(mSong.getImgUrl()) + .apply(RequestOptions.placeholderOf(R.drawable.welcome)) + .apply(RequestOptions.errorOf(R.drawable.welcome)) + .into(mCoverIv); + } } } } diff --git a/app/src/main/java/com/example/musicplayer/view/MainFragment.java b/app/src/main/java/com/example/musicplayer/view/MainFragment.java index f552da6..79816f6 100644 --- a/app/src/main/java/com/example/musicplayer/view/MainFragment.java +++ b/app/src/main/java/com/example/musicplayer/view/MainFragment.java @@ -13,22 +13,17 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.Button; -import android.widget.ExpandableListAdapter; import android.widget.ExpandableListView; import android.widget.LinearLayout; import android.widget.TextView; import com.example.musicplayer.R; import com.example.musicplayer.adapter.ExpandableListViewAdapter; -import com.example.musicplayer.adapter.HistoryAdapter; import com.example.musicplayer.constant.BroadcastName; -import com.example.musicplayer.entiy.Album; import com.example.musicplayer.entiy.AlbumCollection; import com.example.musicplayer.entiy.HistorySong; import com.example.musicplayer.entiy.LocalSong; import com.example.musicplayer.entiy.Love; -import com.example.musicplayer.util.CommonUtil; import com.example.musicplayer.widget.MyListView; import org.litepal.LitePal; @@ -46,19 +41,13 @@ public class MainFragment extends Fragment { private MyListView myListView; private ExpandableListViewAdapter mAdapter; private LinearLayout mLocalMusicLinear, mCollectionLinear, mHistoryMusicLinear; - private Button playerBtn; private TextView mLocalMusicNum, mLoveMusicNum, mHistoryMusicNum; private TextView mSeekBtn; private List> mAlbumCollectionList; private List mLoveAlbumList; - private boolean oneExpand; private boolean twoExpand; private String[] mGroupStrings = {"自建歌单", "收藏歌单"}; - private String[][] mSongStrings = { - {"我喜欢"}, - {"Jay", "魔杰座"} - }; //注册广播 private IntentFilter intentFilter; private SongChangeReceiver songChangeReceiver; @@ -70,7 +59,6 @@ public class MainFragment extends Fragment { View view = inflater.inflate(R.layout.fragment_main, container, false); mLocalMusicLinear = view.findViewById(R.id.linear_local_music); mCollectionLinear = view.findViewById(R.id.linear_collection); - playerBtn = view.findViewById(R.id.btn_player); mFunctionLinear = view.findViewById(R.id.linear_function); mHistoryMusicLinear = view.findViewById(R.id.linear_history); //获取焦点 @@ -87,6 +75,17 @@ public class MainFragment extends Fragment { public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + //注册广播 + intentFilter = new IntentFilter(); + intentFilter.addAction(BroadcastName.SONG_CHANGE); + intentFilter.addAction(BroadcastName.COLLECTION_ALBUM_CHANGE); + songChangeReceiver = new SongChangeReceiver(); + getActivity().registerReceiver(songChangeReceiver, intentFilter); + + showAlbumList(); + onClick(); + } + private void showAlbumList(){ mLoveAlbumList = new ArrayList<>(); mAlbumCollectionList = new ArrayList<>(); AlbumCollection albumCollection = new AlbumCollection(); @@ -97,13 +96,6 @@ public class MainFragment extends Fragment { mAlbumCollectionList.add(orderCollection(LitePal.findAll(AlbumCollection.class))); mAdapter = new ExpandableListViewAdapter(getActivity(), mGroupStrings, mAlbumCollectionList); myListView.setAdapter(mAdapter); - //注册广播 - intentFilter = new IntentFilter(); - intentFilter.addAction(BroadcastName.SONG_CHANGE); - intentFilter.addAction(BroadcastName.COLLECTION_ALBUM_CHANGE); - songChangeReceiver = new SongChangeReceiver(); - getActivity().registerReceiver(songChangeReceiver, intentFilter); - onClick(); } @Override @@ -116,7 +108,6 @@ public class MainFragment extends Fragment { public void onResume() { super.onResume(); showMusicNum(); - Log.d(TAG, "onResume: true"); } private void onClick() { @@ -150,9 +141,7 @@ public class MainFragment extends Fragment { myListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { - if (groupPosition == 0) { - oneExpand = true; - } else if (groupPosition == 1) { + if (groupPosition == 1) { twoExpand = true; } } @@ -160,9 +149,7 @@ public class MainFragment extends Fragment { myListView.setOnGroupCollapseListener(new ExpandableListView.OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { - if (groupPosition == 0) { - oneExpand = false; - } else if (groupPosition == 1) { + if (groupPosition == 1) { twoExpand = false; } } @@ -173,13 +160,15 @@ public class MainFragment extends Fragment { return false; } }); - + //二级列表的item点击效果 mAdapter.setOnChildItemClickListener(new ExpandableListViewAdapter.OnChildItemClickListener() { @Override public void onClick(int groupPosition, int childPosition) { + //一级列表的第一个默认为我喜欢的歌单,故点击后跳转到我的收藏界面 if (groupPosition == 0 && childPosition == 0) { replaceFragment(new CollectionFragment()); } else if (groupPosition == 1) { + //其他的列表都是我的收藏的列表,故跳转到专辑详细fragment AlbumCollection albumCollection = mAlbumCollectionList.get(groupPosition).get(childPosition); replaceFragment(AlbumContentFragment.newInstance( albumCollection.getAlbumId(), @@ -207,13 +196,14 @@ public class MainFragment extends Fragment { transaction.commit(); } + //显示数目 private void showMusicNum() { - mLoveMusicNum.setText("" + LitePal.findAll(LocalSong.class).size()); + mLocalMusicNum.setText("" + LitePal.findAll(LocalSong.class).size()); mLoveMusicNum.setText("" + LitePal.findAll(Love.class).size()); mHistoryMusicNum.setText("" + LitePal.findAll(HistorySong.class).size()); - } + //使数据库中的列表逆序排列 private List orderCollection(List tempList) { List mAlbumCollectionList = new ArrayList<>(); for (int i = tempList.size() - 1; i >= 0; i--) { @@ -222,6 +212,7 @@ public class MainFragment extends Fragment { return mAlbumCollectionList; } + //收藏和最近播放变化的广播接收器 private class SongChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { @@ -232,6 +223,7 @@ public class MainFragment extends Fragment { mAlbumCollectionList.clear(); mAlbumCollectionList.add(mLoveAlbumList); mAlbumCollectionList.add(orderCollection(LitePal.findAll(AlbumCollection.class))); + //根据之前的状态,进行展开和收缩,从而达到更新列表的功能 if (twoExpand) { myListView.collapseGroup(1); myListView.expandGroup(1); diff --git a/app/src/main/java/com/example/musicplayer/view/PlayActivity.java b/app/src/main/java/com/example/musicplayer/view/PlayActivity.java index ad1ff17..a8c3cd7 100644 --- a/app/src/main/java/com/example/musicplayer/view/PlayActivity.java +++ b/app/src/main/java/com/example/musicplayer/view/PlayActivity.java @@ -18,6 +18,7 @@ import android.media.MediaPlayer; import android.os.Handler; import android.os.IBinder; import android.os.Message; +import android.provider.ContactsContract; import android.support.annotation.Nullable; import android.transition.Slide; import android.util.Log; @@ -52,6 +53,7 @@ import com.example.musicplayer.util.DisplayUtil; import com.example.musicplayer.util.FastBlurUtil; import com.example.musicplayer.util.FileHelper; import com.example.musicplayer.util.MediaUtil; +import com.example.musicplayer.util.RxApiManager; import com.example.musicplayer.widget.BackgroundAnimationRelativeLayout; import com.example.musicplayer.widget.DiscView; @@ -59,8 +61,6 @@ import org.litepal.LitePal; import java.util.List; -import static com.example.musicplayer.view.AlbumSongFragment.IS_ONLINE_ALBUM; - /** * 播放界面 */ @@ -80,6 +80,7 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { private MediaPlayer mMediaPlayer; private TextView mSongTv; // + private ImageView mBackIv; private TextView mSingerTv; private Button mPlayBtn; private Button mLastBtn; @@ -111,6 +112,13 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { @Override public void onServiceConnected(ComponentName name, IBinder service) { mPlayStatusBinder = (PlayerService.PlayStatusBinder) service; + //缓存进度条 + mPlayStatusBinder.getMediaPlayer().setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { + @Override + public void onBufferingUpdate(MediaPlayer mp, int percent) { + mSeekBar.setSecondaryProgress(percent*mSeekBar.getProgress()); + } + }); isOnline = FileHelper.getSong().isOnline(); if (isOnline) { mGetImgAndLrcBtn.setVisibility(View.GONE); @@ -138,7 +146,6 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { public void handleMessage(Message msg) { super.handleMessage(msg); if (!isChange) { - Log.d(TAG, "handleMessage: send"); mSeekBar.setProgress((int) mPlayStatusBinder.getCurrentTime()); mCurrentTimeTv.setText(MediaUtil.formatTime(mSeekBar.getProgress())); startUpdateSeekBarProgress(); @@ -182,7 +189,7 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { mLastBtn = findViewById(R.id.btn_last); mNextBtn = findViewById(R.id.next); mGetImgAndLrcBtn = findViewById(R.id.btn_get_img_lrc); - + mBackIv = findViewById(R.id.iv_back); mSeekBar = findViewById(R.id.seek); mDurationTimeTv = findViewById(R.id.tv_duration_time); mCurrentTimeTv = findViewById(R.id.tv_current_time); @@ -202,6 +209,7 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { mCurrentTimeTv.setText(MediaUtil.formatTime(mSong.getCurrentTime())); mSeekBar.setMax((int) mSong.getDuration()); mSeekBar.setProgress((int) mSong.getCurrentTime()); + mPresenter.queryLove(mSong.getOnlineId()); //查找歌曲是否为我喜欢的歌曲 if (mPlayStatus == PlayerStatus.PLAY) { @@ -258,7 +266,12 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { @Override protected void onClick() { - + mBackIv.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); mGetImgAndLrcBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -482,6 +495,15 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { mPlayBtn.setSelected(true); mSeekBar.setMax((int) mSong.getDuration()); startUpdateSeekBarProgress(); + //缓存进度条 + mPlayStatusBinder.getMediaPlayer().setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { + @Override + public void onBufferingUpdate(MediaPlayer mp, int percent) { + Log.d(TAG, "onBufferingUpdate: "+percent); + mSeekBar.setSecondaryProgress(percent*mSeekBar.getProgress()); + } + }); + mPresenter.queryLove(mSong.getOnlineId()); //查找歌曲是否为我喜欢的歌曲 if (mSong.isOnline()) { setSingerImg(mSong.getImgUrl()); } else { @@ -541,7 +563,7 @@ public class PlayActivity extends BaseActivity implements IPlayContract.View { unbindService(connection); unregisterReceiver(songChangeReceiver); stopUpdateSeekBarProgress(); - + RxApiManager.get().cancel(Constant.LOCAL_IMG); } } diff --git a/app/src/main/java/com/example/musicplayer/view/SearchContentFragment.java b/app/src/main/java/com/example/musicplayer/view/SearchContentFragment.java index c82b807..d3354d9 100644 --- a/app/src/main/java/com/example/musicplayer/view/SearchContentFragment.java +++ b/app/src/main/java/com/example/musicplayer/view/SearchContentFragment.java @@ -16,6 +16,8 @@ import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; import com.example.musicplayer.R; import com.example.musicplayer.adapter.SearchContentAdapter; @@ -29,10 +31,12 @@ import com.example.musicplayer.presenter.SearchContentPresenter; import com.example.musicplayer.service.PlayerService; import com.example.musicplayer.util.CommonUtil; import com.example.musicplayer.util.FileHelper; +import com.example.musicplayer.util.RxApiManager; import com.github.jdsjlzx.interfaces.OnLoadMoreListener; import com.github.jdsjlzx.interfaces.OnNetWorkErrorListener; import com.github.jdsjlzx.recyclerview.LRecyclerView; import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter; +import com.wang.avi.AVLoadingIndicatorView; import java.util.ArrayList; import java.util.List; @@ -48,8 +52,8 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon public static final String IS_ONLINE = "online"; private int mOffset = 1; //用于翻页搜索 - private String mAlbumName,mSingerName,mAlbumPic,mPublicTime; - + private String mAlbumName, mSingerName, mAlbumPic, mPublicTime; + private SongFinishReceiver songFinishReceiver; private SearchContentPresenter mPresenter; private LRecyclerView mRecycler; private LinearLayoutManager manager; @@ -59,6 +63,10 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon private IntentFilter intentFilter; private LRecyclerViewAdapter mLRecyclerViewAdapter;//下拉刷新 + private AVLoadingIndicatorView mLoading; + private TextView mLoadingTv; + private ImageView mBackgroundIv; + private ImageView mNetworkErrorIv; private Bundle mBundle; private String mSeek; @@ -89,6 +97,10 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon } mRecycler = view.findViewById(R.id.recycler_song_list); + mLoading = view.findViewById(R.id.avi); + mLoadingTv = view.findViewById(R.id.tv_loading); + mBackgroundIv = view.findViewById(R.id.iv_background); + mNetworkErrorIv = view.findViewById(R.id.iv_network_error); mPresenter = new SearchContentPresenter(); mPresenter.attachView(this); if (mType.equals("song")) { @@ -110,7 +122,8 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon intentFilter = new IntentFilter(); intentFilter.addAction(BroadcastName.ONLINE_SONG_FINISH); intentFilter.addAction(BroadcastName.ONLINE_ALBUM_SONG_Change); - SongFinishReceiver songFinishReceiver = new SongFinishReceiver(); + intentFilter.addAction(BroadcastName.ONLINE_SONG_ERROR); + songFinishReceiver = new SongFinishReceiver(); getActivity().registerReceiver(songFinishReceiver, intentFilter); //启动服务 @@ -119,10 +132,21 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon } + @Override - public void onDestroy(){ + public void onDestroy() { super.onDestroy(); getActivity().unbindService(connection); + getActivity().unregisterReceiver(songFinishReceiver); + } + @Override + public void onDestroyView(){ + Log.d(TAG, "onDestroyView: true"); + RxApiManager.get().cancel(Constant.SEARCH_SONG); + RxApiManager.get().cancel(Constant.SEARCH_ALBUM); + RxApiManager.get().cancel(Constant.SEARCH_ALBUM_MORE); + RxApiManager.get().cancel(Constant.SEARCH_SONG_MORE); + super.onDestroyView(); } @@ -178,8 +202,8 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon Log.d(TAG, "onLoadMore: mOffset=" + mOffset); if (mType.equals("song")) { mPresenter.searchMore(mSeek, mOffset); - }else{ - mPresenter.searchAlbumMore(mSeek,mOffset); + } else { + mPresenter.searchAlbumMore(mSeek, mOffset); } } }); @@ -201,7 +225,7 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon @Override public void reload() { mOffset += 1; - mPresenter.searchMore(mSeek, mOffset); + mPresenter.searchMore(mSeek, mOffset); } }); } @@ -235,6 +259,28 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon CommonUtil.showToast(getActivity(), "获取专辑信息失败"); } + @Override + public void showLoading() { + mLoading.show(); + } + + @Override + public void hideLoading() { + mRecycler.setVisibility(View.VISIBLE); + mLoading.hide(); + mLoadingTv.setVisibility(View.GONE); + mBackgroundIv.setVisibility(View.GONE); + mNetworkErrorIv.setVisibility(View.GONE); + } + + @Override + public void showNetError() { + mRecycler.setVisibility(View.GONE); + mLoading.setVisibility(View.GONE); + mLoadingTv.setVisibility(View.GONE); + mNetworkErrorIv.setVisibility(View.VISIBLE); + } + /** * 构造带参数的fragment * @@ -253,17 +299,22 @@ public class SearchContentFragment extends Fragment implements ISearchContentCon @Override public void onReceive(Context context, Intent intent) { - Log.d(TAG, "onReceive: "+intent.getAction()); - mAdapter.notifyDataSetChanged(); + Log.d(TAG, "onReceive: " + intent.getAction()); + String action = intent.getAction(); + if (action.equals(BroadcastName.ONLINE_SONG_ERROR)) { + CommonUtil.showToast(getActivity(), "抱歉该歌曲暂没有版权,搜搜其他歌曲吧"); + } else { + mAdapter.notifyDataSetChanged(); + } } } - public void toAlbumContentFragment(Album.DataBean album){ + public void toAlbumContentFragment(Album.DataBean album) { FragmentManager manager = getActivity().getSupportFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.setCustomAnimations(R.anim.fragment_in, R.anim.fragment_out, R.anim.slide_in_right, R.anim.slide_out_right); - transaction.add(R.id.fragment_container,AlbumContentFragment. - newInstance(album.getAlbumMID(),album.getAlbumName(),album.getAlbumPic(),album.getSingerName(),album.getPublicTime())); + transaction.add(R.id.fragment_container, AlbumContentFragment. + newInstance(album.getAlbumMID(), album.getAlbumName(), album.getAlbumPic(), album.getSingerName(), album.getPublicTime())); transaction.hide(this); //将事务提交到返回栈 transaction.addToBackStack(null); diff --git a/app/src/main/java/com/example/musicplayer/view/SearchFragment.java b/app/src/main/java/com/example/musicplayer/view/SearchFragment.java index 3e875e0..a48073d 100644 --- a/app/src/main/java/com/example/musicplayer/view/SearchFragment.java +++ b/app/src/main/java/com/example/musicplayer/view/SearchFragment.java @@ -52,6 +52,9 @@ public class SearchFragment extends Fragment { public void onClick(View v) { CommonUtil.closeKeybord(mSeekEdit, getActivity()); mSeekEdit.setCursorVisible(false);//隐藏光标 + if(mSeekEdit.getText().toString().trim().length()==0){ + mSeekEdit.setText(mSeekEdit.getHint().toString().trim()); + } saveDatabase(mSeekEdit.getText().toString()); replaceFragment(ContentFragment.newInstance(mSeekEdit.getText().toString())); } diff --git a/app/src/main/res/drawable-xxhdpi/empty_song.png b/app/src/main/res/drawable-xxhdpi/empty_song.png new file mode 100644 index 0000000000000000000000000000000000000000..df6ee22d9a27b77e034c093c0a6e6b830e90811d GIT binary patch literal 61355 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

#BLFwc%*NSF?7Vf0s? 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�J&{IEyDDhE+l4Wci=f? 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%0AD5$8n3pjU$(1f)mCm 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/seekbar_bg.xml b/app/src/main/res/drawable/seekbar_bg.xml index 671f87d..583a5b8 100644 --- a/app/src/main/res/drawable/seekbar_bg.xml +++ b/app/src/main/res/drawable/seekbar_bg.xml @@ -3,7 +3,7 @@ - + diff --git a/app/src/main/res/drawable/selector_love.xml b/app/src/main/res/drawable/selector_love.xml index b20a0b9..4df8cf1 100644 --- a/app/src/main/res/drawable/selector_love.xml +++ b/app/src/main/res/drawable/selector_love.xml @@ -1,6 +1,6 @@ + - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_play.xml b/app/src/main/res/layout/activity_play.xml index 4dcf095..8f06eee 100644 --- a/app/src/main/res/layout/activity_play.xml +++ b/app/src/main/res/layout/activity_play.xml @@ -48,7 +48,7 @@ android:ellipsize="end" android:singleLine="true" android:paddingEnd="20dp" - android:textColor="@color/white_easy" /> + android:textColor="@color/white_blue" /> diff --git a/app/src/main/res/layout/activity_welcome.xml b/app/src/main/res/layout/activity_welcome.xml index f1e3a6d..c914ab5 100644 --- a/app/src/main/res/layout/activity_welcome.xml +++ b/app/src/main/res/layout/activity_welcome.xml @@ -1,34 +1,64 @@ + android:background="@drawable/welcome" + android:orientation="horizontal"> + - + + + android:gravity="center_horizontal"> + + + + + - + android:layout_gravity="center_horizontal" + android:layout_below="@+id/iv_icon" + android:textColor="@color/white" + android:textSize="16sp" + android:text="袁健策版权所有@2018"/> + diff --git a/app/src/main/res/layout/empty_song.xml b/app/src/main/res/layout/empty_song.xml index 29774b2..970b7fb 100644 --- a/app/src/main/res/layout/empty_song.xml +++ b/app/src/main/res/layout/empty_song.xml @@ -1,23 +1,23 @@ - + + android:textColor="@color/player"/> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_album_recycler.xml b/app/src/main/res/layout/fragment_album_recycler.xml index 4ed0da9..5441b22 100644 --- a/app/src/main/res/layout/fragment_album_recycler.xml +++ b/app/src/main/res/layout/fragment_album_recycler.xml @@ -1,22 +1,67 @@ - + + + + - - + + + android:layout_height="match_parent"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_local_music.xml b/app/src/main/res/layout/fragment_local_music.xml index 23bfda9..2c1cf89 100644 --- a/app/src/main/res/layout/fragment_local_music.xml +++ b/app/src/main/res/layout/fragment_local_music.xml @@ -42,12 +42,11 @@ - - - + - - + diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml index 33d8dd1..c4a62e1 100644 --- a/app/src/main/res/layout/fragment_search.xml +++ b/app/src/main/res/layout/fragment_search.xml @@ -38,6 +38,7 @@ android:focusable="true" android:focusableInTouchMode="true" android:paddingStart="15dp" + android:hint="周杰伦" android:textColor="@color/white" android:textSize="16sp" /> diff --git a/app/src/main/res/layout/fragment_search_content.xml b/app/src/main/res/layout/fragment_search_content.xml index 1c8ef10..d202dd6 100644 --- a/app/src/main/res/layout/fragment_search_content.xml +++ b/app/src/main/res/layout/fragment_search_content.xml @@ -1,17 +1,59 @@ - + android:layout_height="match_parent"> - + android:layout_height="match_parent"> + + - + - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/recycler_song_item.xml b/app/src/main/res/layout/recycler_song_item.xml index 4f1d896..2a0968f 100644 --- a/app/src/main/res/layout/recycler_song_item.xml +++ b/app/src/main/res/layout/recycler_song_item.xml @@ -47,7 +47,7 @@ android:ellipsize="end" android:maxEms="15" android:singleLine="true" - android:textColor="@color/short_white" + android:textColor="@color/white_blue" android:textSize="14sp"/> diff --git a/app/src/main/res/mipmap-xxhdpi/icon.png b/app/src/main/res/mipmap-xxhdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..eadf99e757696f30b93b29f695a73d93f38395d8 GIT binary patch literal 86095 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 lK+D zT7P7+E=JDsHl11arAf_}Lj#rOu}JMN^H!z(?LZ2z^S8arUzq7>VhTU| z$Iekn-!Q_z|4!cy^opEgD9FLkr>IUaFHw|8X7J@Yu6ZdXh)hxIVMBZXq3^GZ?K*ZY z{1IH>XDgu`y5dP7>V5t5kaKz6SF-rjVBXKdovb3IeMe|M4TJ4#%JT~6Ec(0yplIuV zlr(W&kN~{QN7t;kU13)Mv!tq*UYgxqz!lcSOFM2$BONGq_9MV62 zBkCP9t|cg$y7F@<$B(^iGySU=d!^X6HL2OY3=&@oo`3%$iMdZswrwOur!t#E6{S}2 zu`=*)s>cb_2RgYD@8f*+tL!D7YVC5&!=)rIIX(7|VdWJ1i>Bj1f|PV@ERn)h~HGdtdp*gDpnUxTgA-OJa3ve|X0n zIgjm{414S#-yt%tRR3?)Uz=jrx$IdP1E2*#|L$JT7ies%lxtxmFWpABf%bi zsV=coKKB~^Vecy`n^D_3xy7NeZxpBw#@|1NHTJG!Caz&ow}&e@bl&OUAbnG_%va|p0wAj;e#`2c7wGL+TWc zs*ZU2K!dL*gKZ7RQc$B_c04}YZ=w}vC-x07)tk83H$v;+rm&I4H7^le;| zNOPzZ(&>QA2#|LI2?TSYCtD6}!Q7Fx;b}4$385MJGL4K)J{7tOQvQd9@_rZntF&K< z-W$!{Y&?A?jZgHHQ;2JgoKI1oq`hg*<&z*wg4C*4XnqsBMad_Lva$(@lyW;<>KAG{ zpp3G@pZd!Oj>*UC27CyxCMw{b9d^-X6i{bmi`UcZxAHHw@BB?OcT#xKt|USGdf6}F zi)Z818A4l06Lj&j74u2g+2~tMX|{-o`Gu)tZql`%pN5dmhEDFn$1pW5orFy7knR4z zF{0c@EJBTN`)e^BI{x*dbRH0>_RZ3783LM%fXR>P!7WI8U&2JDl)2(lT5f2XKU#rVgsdzK_0rGfcL{K+kA?B9BB-2+m zE~Ztq*CgR-iSdCOizU5rR!kgv_Q-$ZOOvwwkk780{x|rFj;jfc z949SujE!^zyWS)f0~L^y^*HX6OsTW;#fmr>@wUk2s!}ID)rxVQk6@diqIA7>XrdSPQn&Lu>+ID8fluBqdV&pdG7N7bH4iLFMn~bWA?I75;ck7@9 zIqAx^KWwbWJxjGDOqhY=>x5d&EtZft!)*S~Qk$k7Px&HYk+`q=3ycT8+AnmA15X`* zI#EG*vf|Fi8YSDY7)lR3GYt`)j@Pg4A>Xghoef@UNGhO;Rdo+h`el|+W&hm~ix^$B z)}2E*>PLf%irsXyXUos$Gz#3=7dHch?An6f5qI)3YD&rj3xI~sS; z^+#-iA+z)?y#R~)(+-@d5!qJEuJc^Tote@BSgz7k<`WqGoJxD^&cHJ;vD1F1{ayb- z=I$J)D8@AShBinriwzV z|0IdYo}X?zeZ?J;w9`Ux83b=bUm$0BjtbyGndNBq#gYl>pQXSdj_Sq?t$P~V{viF; zkAFr*AvuBCvYLtE9!+CZ6HimDEb(i^ljke_M7UtlaaW^Bt|N{tuSx-8_ffy~M!nZA z#>m4|$f@dh#VaD#+_APGl`I3NZ$2^Y?%T<*iR0Cy{WaRn9mm+VerJ8iPs}U2e+p6E zC^Ukacub|Zt0c{P0M9?MD`@dO!+m#MG}*4Zd=gzHfFvtU3N0m&7P=HwB|y$XfZvOb zn3l$_u5nt4*cG7q0(+*z`*N`P>+f=NPY%5U;k!>mt(J1yS34yFIxOYiTNJ-4UHRyV z%gy*351QF^SUdmJ?(xl3;1;+TvYTPifGislEV{K&AYiIjLVF!oK z7u;YqPq7m*qtE`scHDq}CS7AR(s?>$s_CmKEnJ()^HllNayb=i%@#zv!i;bFR$8-Arn`)u?+wP#0qmg=VLsdv zG4%t`c5MlRT1whkf53i#^K?X4a?^Cx5V zIjfH(YP3nQCT80AZ%KF9GPQm=hB)yjje_{oJ|xCOOqCvBU9#-@?!2u!A9YL~!utNj zq|(7G(^fb5bN#yPiin{(|0n9RYf~5EAhtEks5n|j6Awp6Wh?nCzdKO|{5=>CeovW{ zH#YU3c5%0eFjyQCBP+j1m`0kSu-P!IC(Yi@Asx0_PD`#WcS^#CzG{YBem|vVWAIY| z*A=C+;bO?eE3JV7Ct5S*bv5-@lH!iwBZC`PaWM=m+$P=C!;E@1l`p&aRl@R{EH^Vt zL>zLzvhvAsIJ}mR_kCF66EjfySZf(kF`S{o!=y_|+^kbVJeoq@ob)aDLdb?RO%C@G2)(mq*oRTHG7ZhR?{iBgSdrF@0!;xXM2MLNEj{MR38iNlLpE2ck6LdqIOLe*43Qi5lg(fSbK=-~Y zhW8Oz*;61soiI1eI%E?m>sfiE<-Gib<)stZsAs@XbpCZ^Pq@PLtsrx4TEWoXY!UT( znpZ7Z<(c8Uh?q@dkqg6u&GL(+6n2;5bCGPf=xqI7>PD9CseCC|QveeQpSWGgW>+xrQ_%=+z1X zRplv1a^~x#=Ra3F3?3`x3*`}af$5m^{DcfzCqHm5|00>0n3``nNo$N7X^%bJncU&G z`EoLfJ3G0>e<_?$6ioMe4O8MQ(kA&e!{o-6r)bGYUs{jl?tLWlTZ{$`{a|NJLoN9a zPlT!xF1&{Xd6;ky#COt>Jz(DA@f-!tm-yCTQuypTMs-xW44w*Hc*D@^W^oT2)Mi#(e~XLvSQpg+vt@OM*_7rOUm!+VHZCsM0i7!i-rhZSsA}!+Z0tCwTJ`5p9j*6yP=RyEE(#{9g+Hb5)^g}g>8(WVh~Ma- ze1Bb_B27%P<^tz4gOiJeEpC7O|rGC zHf|H+)Nb3{XHA0S-UMbSZZ8A>0<5<%Y}iAnxy-0>qw?cRC7}gR%g}}ZNCwqAJ8kxE zsT(EskOg`2QhWQ<($UylOj>!>6tF#Gh_$|C(wYtF$jBShqrvjA6?YqsOxAB1yy@;{Ga%+Yp@D7xRz^QKseC@ zR591%);*hLZN*BdxA~d*Aw%T>4H>7{9$XN}c;cr#l1h(NMXmL7YAi@E6F=45n#5%5 z$LT$~hE&?d4fpVmodwB~97-JVXS7gaz-^z9Zro{7-zQZ;a>~=3J4i1)h$Nz^CGIr^ zN-CC!$mtoDgt2Ba`Rq)Teo;D_LH_$72_7{Rol`dE{6xJ;o#yaMAi@u=Z)VtWW=;K$ zsqMn#SC33rv(=m27rn}wD`446xl#^)EP?{2?`&AzqP^5iUMEC4cyep@n~;);O*5r! z<5c6dminZs0*Y5(&E&L+B@eL0%y`Gi{18IWgC1TfpB{mQpq+xq=>ypTS9|;$)7w`J zC0_eXbuqI+2t14Vp0aS9s8~5VC@TU(1zZ3W)1kzP!st3Zf{HxhBIC&Eb?Zzfw#gpw zAH;b+nd)k?S$D;p`vzc);Y-*K=W^~v6RqI6#!{B0Lb?>&<*!c{h zSB|NIWM1C1PueBwWJp=>rBS%we zaZOu#o41&D7Rs;7KdE!>+$=UwFU!3T7X`^)JzI>(fhT7z}iWUPVgK4x84VaMg`(>@J zWN)5*LyS~w6XMmSvx7WJ&I1R6VP$*on}@TqtX6v|J8R=O@sIl}|PTkyA`9tEWDCwo`VwAs) z#?Q0bWV~-rfA3qA6WLtwq6bVlJW~67g=zU{(J%F?eyj3!K}cu^e@6XVW3PvNgUa@0 zyQ)c`)SF(t#A{XK+{v-K4A)`8Kh!ElIp#%dL8NrS=|o9mupHr_>`Ba?G==i z;T1L0mLB+`j&ZqNsMR$}(>X7>H-}4D%r?ZeItHw!{wT^>P|{b=eJG6*xF-!b_LGm@ z_KpcRKvZ*(5-Eb3`q--1{)E)1yKFi!so3b=>PM^gO7@j`fDH}UD6ry(!&1uy7{x#% zy5VmTLhfNT2-?a@()6uVY+e2J4v|Qcz2T|1(x_OWsm_UKd2=fVob5P6=fPE0MT{_Y zs*je&8=z4c(WZ?(}#&Uq;F$vy>K-W0NZ)Dzm z77HVysGBi)0MXLN?|6r3w&^C zrgT5f0~s|t()5HcQis1=B(78O*Ek}0NJ}0Q7S`36cBGPLP^re?F0%EQk#FbpeBi8A zJD4}IFl5A6oi4e|emCah(R*mz!gam5C0UW=)BDM=7WlJkuGw*cGv@v?Dv6G1eP+Yu zzz<)gecuh>JbL1a+~pg$1k30x1%TE_0%b}U9;| zLT%SG6`Oip%pa37j7jU*U8m00!Q3FE`#|j2)^$DGd)y;Q%#;u6zp?QHRY=~LPX7A1 zv4*P1h>JlW(#0*}Am0dp%L0%Vop;DNoGvMap4m)&UlFAaEC%+H9c|ui?h-Owf{I{h1}fZ>v2SJ-{Z=(e#~EJ@C`hgq5G;$f zd(u{F70u1(S>HrS4{r%PR8>?gk;mMstavW6MDy>Jd-THI0JNe4jjm-_SjjSO#($j4 z!yT)jDdG^NUbH`&Kl+3yJ$U4_TktV1#*ZW=RtyRIKeb12tS^LV1|u}jnm)AL7xmR+ zz)&r)1W<~H!WX*=P-?oJdCBLn_SlBDeIDwzzchD**%rJk`ZFub9KG?nfQTI6w=P`P z#Vp_2LBG>hCJg${G?GR2IbRZ#El}F`XcBkeyY8_)?|hTZ#Z&k?&GaRW}uxg*R=KsW-w%-Dw-JA zkV+MD`kJ6JC30xa6S&+zXWaU(Wi?(8;gxRc^IPO+2($(_Q$zG23MN1`Zy1WI1ZfQv z;}tQlElQAZciKFVwNX%E%>1M_Jukbq-ZvRyv<#<;04fYB2rtJuCrDE z@FCvwmcDw+4=PVdyalO`a z5n(OsHD8<-);`4B4!U@bXq;eqU7npJbg^6QyDXP=IPUHsX$n^gZT$r12U8~%@(w%Q zMWS?mv-?Wz;P~Frjr%HkTjy`I8j=03Q+UyL4*tg!$SZKR^$jqlBn>0nGU(3-Nb7?= ztnS_wy2<@~0yk)LA{%0GwkV_R;YZ)SU}UFS$85i-vdJGM{W=e!dvc zKmvZ^9>4F>Y%ey~w=3&SS*)!c$`@lHi{M!fy zP?(K(PW##v9ghZe?TQq7&zPe8x0ZZ0sqD{TWBj!|W#%XL6u z%hAVRp~m0NwPO|wvZ9!q5wUNm0Q=AV{3)U30P4l#7rf+y6#3ljX{+4uG--f|1m^fS z=-uuau~4)kB@HVfKd#0CS#k86@2)Xh-+lI`J#CizDRdLLgtGUkCU-o|zX4KNY(ANO znVRKUo(NM<-IAwD4PXm<-6s8o_~>%;{#U90z{s+|HQTLO+LplK+)|a97NYi2Yd6r* z5&BCU(%O}l>U;ghBH^Rdc2Ox5hX)H8K>Ii+AFGcaHo7J$el=_g?VHaMTei@KvlFoD z>s$|;pu@$NSN+2+iI91y|A>d4+(?fY9V+q?ygz%LKcT-%fis#qmQK1WJ}Wpm5)QU| zJE_)SzB^W}iyrIkyOvl#b)c$CB34WIyoP%xPlcw4OU&3QG2*>yK1=hc_t};h177b7N#pM#E+dVD6-PE{FVZwC&t^G~6(GpCuzN;Wb z+3+hjFAH1iFD`8M;A3GTd)^tCk4&Dn!f&f{SwMNq9SA2%MW$SCj4k*?x>Uknq)xUq zXmm=WMMsuH(9_)@0aZUWR(&-vm%g4*g}9`6sb>4Vx`!zLkEC3yD!nmJrW!pB%|r&i zj~yS=T+1)W)cDfnBhL>qhqj+FSLr!BCP;QWmvmmN)?(bqDySQGd9?Jeq_nC8QZDXO~nfm(zttV>a z(*`Jkz<_C-&>JNJv8#1R^@1Nv@@-2*5WFvyIJQ5dI;{*h{QXru9;S=0F##AlVSVSo z9*h&kNsH+&J1b4}-Vi*6>PrWC^fr&}<5g)p2kNq{Uob-_4*F*$zn4_UMTP+)8i6YV z)Thtrh)LLe&r~Iuxbj35w$&M2bhzanW%+az_uu2DZtsB_yozD&vTv#80kCe|A~lc3ZPASw8d%5b<@Fvwgwk2+j;0^@LP=om{Fpmmg!je6`0cr9h|YY{^Z_ZF~*y&3jqMr!wSun;Xe z+yxNbdKZV>RQ>IGP@V@-c=SmbR!t|?uVOKg-jsf4hd)OhkIQp)vFhTq&mIV47OB=T zR@`|ipZ(EhW7zm^G%p(nD`}(Ofy4OXZn;OHSx(7DH*ema_Se3XNkNi;zWZD~7Wo>2 zb3p1a;qFG~_22x+0+1=Ir!9D$_^)VCdbUnb*Y8(LHmhq|KIW|b=_xr>%*cO!Dcs_i zzjvjo&{Ml&YyKN!^e!ie)PZqE>jAI9MdED0MPMQl(HE* zoT||4IW97=-O7a!5p{y{xb%d_c|xW5L9NNz`rVaZW7!+Ypt5)z%BfvEC!O+p&WWvQ zFs-Q-s$lRJEWe(kf_G<=mqmtU8UZ$f;_HhX0z^El6URMePeDt&9isF#N3*ZpM*UPX z8hSCPr7*g-s*uhCkjH(u`|VnuYkr;PDO}QtQpt4cK>tt576z^wAA06eWPeC}pcW0L zo3-O5r)29b`EJ~SF5i^7?sw+Ud6EIYf?R? zNR-9wO>?8UW3P7%*y2r-@U_ARd&#c6d5*nnRq+(%IueCdyCnls!iQaleL!dQQqZP3 zCMsjVwG>X*BNs{bs!`XUgW*PD7ND*G5cGA?lb5z?1bxmK83o7-@c#{M=!8f{bMh}+ zyvCG5g&6}S{!(t=wa7Q3!jyo4Q{Lv;eY_)ZTG2~>_$jI0314|t?Jcmy{ziG}Qd(m}3ub(N2THfyyXQM)i^8wA0_$(Y_o2`Ta9f52&95s z3#KSr1j&0yL!Lme7p-?7Bya+Gq=X|dAy2nV(2rAqChRzS7gRLXEXfyb>O$Eal6uUh zR5vPBM(k;D^hg2L5WCo5W?;s*w8TvhsZxcpBXpn}i=#}QA81q)~3ww3#Jv*o_x>xyd z>lswXSYX*=fj$@?+KMW=9Ho3ksfOeJ99joN=mPYXgEBDsOTLJpcioIZIyII74>+XvkmFQ8Mm z=c;dgqMNo@AefUeIdNJ>ed|b3%5g&vG3R~~A;&R}pqhtVBe`GoMA7E9Q8w@kn)~PVeNCn^*0-k4vc1N?n z9>QNrVs7W*^lCfdRj@VIZ|QSW^94agfWDOplvvdT%HDu`ddSK0@e3hxZ%PbQ*rFCn z?|lJeNE+=!07<+a6D7-6CjHjK)>dHkb>8x?L1ULp`qbRuNsZ%l*#Z=Y;}A68BdXD_ zheCq6>pz4w;yFQa#cKh8h2~5U;vLOA{rK_^h>29<3i{!iW0_O9B{5tM@Cba1wun|e z)>#QobH%Jk#caKEKyJ~Ps!YiGg91!ax}Y-6SsVR5;*v&0=l#Y|>#xF#vNM^%mEfw3 zx;-~$)pE9&tRrc8`yf1;FJRaYdPAdTeYHyd@l`HW#_oFg(T#EHR8qG#70G4qqF2X~ z&!{C_fI>*Iy@3O9MT7UXfQc5!Q%q3cR)ELv-sTN`^?H2d+O;F*4^vPpx{?tehnL(; zo-b>Ye$0?mhzVyN*{ue?r_q^H0jT7rt$x4sL@^_KZQ}DrXECSnbH_?zO{92Pk?zULnxpelP`jOUMRI=PCU!;kno!2?-|H)k*$qA?%Xu~mxJV-~ z=<6dbz{o`;1r6eg0WSb>x?USl;fPZh@c`)%8c1ef=K02sCwsihAe=~$*N#2Q2o-C@ zS$OO?SLRMb%Nc%lH0~Z~+?=mqGG;-%=kUxuEioRx ztFj@<^u}WSriBd=8RWAhY4K|%T$fbBgW7jn=WU~ayuI4Y%{N1!ZXQV{%fSyDRck8p7%N~Qps0@*<#jt&AW|OIJ(0j?SOKE^K1yRaC>#~)${O6%Z=JM?A(3xCm4t2l zSdz~dDPrkX*DZP%-Mw?(+~6#-(4DWVVJcQ5{RKiBj4x`B&tYAlKH;;9F9G*wv<)xY z-sGZD>@KITU%g{Pl!^<1Kh?$7$~HgFJq|rQGcSN z#s0|A4{!GK zZmuBT%FH;bF_=A8lPwVIM=;NR($enq%i`hfm&Q%IFGe5uv!}8BG}pXm?#b&!a+I?6 zF@tXFPw3&$1BjK+ua6471@^yRYNx;WJR~xDzJSs1Jcz5UIz)##SEq>5nru=GPK%aF%syE-{>)2`!yXs*$>{#U94LiYhL(D! z*S9YdTPHJ6VfT%fH-9g@Fs|lv6h^1|^4FxX7NeL$g&W_$VySwDDLm2R2sWn3V!K~Q3RUu%4N7aW-A_MSUt(c66;n&a6j zYnto1{OxMaOe7sjKM-8)T)pizFU6KIXc_g(Kz`1NT5^S z1DSE7Qj~h}C9c_F_)p^Slxvi|sdV=6GDxEKm!)^Bz!zNm3o_nW5wB~?yS@0tnqf|L zJ2&&I6kKs+rEeAjEc|%frou~PCV7Y&#%nBT68AE{m|D^2G>Ge z%WxktWFW0pPVA2aNS~>9UyyQ}`ky0=4pRaw+@fIglUq1PqPRc)kwo4Q$VBfrZi+QD zh>M)YaJ?m##-1QS2$~T_YhJ3W|pOSk*5;pGNBL!~?+NbI22llSu-a@CIu=IPDH_kHcAq%pGRP z27;YW0qJf~8PjoN-=69iW7d z43+T_GZEk;E%R&PchdyOdaLvkhgF?YPmpZTC1q%NFE7lK~8)hF|sU80ak+*T{?U)zKkMc%PeNn|I{g>ErMTYSI&5 zDPb6^^r#CD9_2>a7zfc?mZ9erAAA9d^z49Q8yqo}U&;m$&J%((gNgebaqri>w>-6q z^5WryvRv9xJd49v#r`O3bcdcg7^N5f-^?ygJ0V|uQr;}ItMi`XHy00db}bc+fnN(UM>H#2GZoAxMGy{E|uw&A=_jfB=! zkcs;QSVOfQ`QWkFX{vrVj1TWGY-7kjIOq!lZVIv4Y&-@)H%~UJgm1ix{gbkW9h_4% zGI~Nn!PwJeH2umSKHP{Ax6)6;t?`aC#Yo9M4Lb!LYL23dN$PRCiwFqi!6C zS~x`A(~|k%rUj2tCpW`M{%lD$dj+Q$ep_tLjHx&v4@J5#;?#wq^PXbxsL)@tK?)SO6e z_p>BR=}vYjZ#FNrv;L;fPv%1$nr9qu%7F7vB1Ke$CE$qwIyy|KQplKwkBUGCBsn=h zk>f-y0_Oz+On9F1Rf@XW* zo;~HPooN+Q+J{xu-p0) zGP<4Fzy#<}Kl|hOo;E>$cv?UAp<$$1<(`&LkdfrO_?~WB4zKw#dFazq!^Ni%pd&aV zX;Eoahsnu_a)+0^-}XdM-zHze4?d`6-YCvrv0ne1d?qTcHQ??Y{FTIEq`$f6QufD( znYl$jUB1ju6_aa%`9l`G@#u!YKxs$_>WV)Ecc`pa?vwQyJ){5wZeTo()TEZn4anS} zH$?F1Ca8cGU@DkW^a12{NksV7#ivcssysY~gxNYp!A(h8moaV;SV0u+E$xJ*w4(g{ z!>;E@ra?8bDCtOtaZacYj~?EShiJ%-43i8DDWFkap{Uzl?owojkXORU?8T8CHnxi3mNi4T89oV zkUelmo)(&jW`naL2~QN?4R+W~xk`=11IXFjRDqOhh221HFN$y-YeavNLGS!qv$Z34 z($ZI%rMLh5yP`Z92u9{u^%dZ+0g zA34reXfdGH1Q{y?%9B!&`otrRohK!WOethmO!_uV%e-7o=SS#38{QqErTWi12|ji0 zExSeQS9QhtYD9*2xg{!TaaOzKubKuvzaYttlY@q>f~2kY?6>Jibe z+#HJ3LFD^$jeUgPNI)#~LL#P2pQ^kp8vG$RHjuX5Zd6dxwpN&&1&h{t@-Z0Tn5)4U zx~v8U!hite<@49_Z)xOWQ|pjG_d)gk#G*cN>YH|2L=8wTy6qZ(VC{bSGZV7C>Vvql z+@?+(do26=o{F>8%Eo;p3ddBhgZFwq>y_U4TE@=&xIyP@+4Eeem}~><45OtZyqXMoe8R!3i{T!t{KR(T{E}e^j9(dlybBly=dVec7AudDVHP z@ZM_OQCOVMD#L_1BIDJASs@{q7V}3hGy5#EaD4Gs+7x$B9E~83ne0A0?P<{V-_TNQ z5~1J+&_l>MMh#U@2k62`WtRFPwhi|M*AqV4?}qogX6^n{g6tjw0`lK%ZO2ZS?M+OI zWzr&lSWf;hqbQ;^%zI-BoSXYfW10PZV2_aR<|yL)I_4tsB@OE!j-@$$YpAbxfHil) z=c3*eqDg7!GrvmTnK^(Tu9OzqwapLmbK(x(T+1;pdsK7XbmYOxT;b2K&zDIFyr z9}J~t%=;pUk7=OKB8+eE^NLU-3n6L?asbQpMYiHrZxo=x>wqTh`FjG$ugFFV z8*M0?CawAMD6QGbao7k2ZI_W2Yox`T}sTF-LQeM)nU;<~PCQ+fH)X5X1eq ze{YZ!X!GrS>wbjsD=-C9@N;M{8uO6gzdiFh;c148&NV^jzNSE*bEF=It^I?PRXfeL z|Mzzm@)v+$w1I|}czG0K$0a-?s>49~cS+|V!74seeR zC|KG*r}~#Xbpk2$O?|tT9C?&w88C$u9;^VOT>9_Kk#;Ghd0Llly%xg>JHOY>OcSY@opk<^AimCp*MR9aJfbqLjoH{2lTb=q79Ue*MMRx(LIe1M1$8SKRWPLKSVkqq@; zQ@}l2va*GI3|Kp51PGx+tqE-ESas(Am&@e9Y9IoiK2eaIln5)H;6GPkTqr&O!47!% zzp;di@i*nA0k9=DBmjq2+#-~ovZ4gM7YD3=TRlR`s{iZ+mizx~>4C4vHuACmj2129 z$FeRq>MZo%7S_JnIR(Awun`?_3N$9Wg;W9yc7lo+_7)lVFI%xs2?;R$Jvym$qf?ku zG6E=552k_8VYr?A-zaHtPDn2{ zOcLt*-!^kay} ztN{nGb+jEr|G>^=>wlNG9w>nas-{pw5?I7IqEne>jsn93cG;}dA(bnVUHyp=Ot=o< z2>`ttN|C{c&u6TFJpg*h(jQj;%ZZs&DFPqACvTB$L%uorR6c|jq-4V!$h&at{om8a zMhP0S-t3Iy?y&7`%dI4Yf8wFMfZF z9EuK1!Q<@H`R_?N^fdv(=>YctND~zCA_bV{PKv`^g!CK~k%>5i|F5t9#2;1kC^uGs zS}jm0PF8glyH4r|J767+-%Gmwe_O783yw3K{xAlZV@Z%lAy)kdYw-qjAs>i)tt_?{|- z>Z^9T^f!;LD5Br~H%VS^QCxnjrvQMR4^b%2f}hbpkM`eyM;x}weH}pekqc5CA(t8X z+N3LydQ=0P0P8!5RlxP(v0#Gi4y3SLTpzBo|)Q2pUp;}>^^mfb~=iZpyk zamN!1XCu<507-g&gdQLm51JGuR@$^VZSw@ht7f#J(? zY@YyLqsGhcT69kX6xr~@(nosnV6uSKBbVHN8KKb+fFk=tDUtt-5icX$=U>jO`sy!0 z0uAO0KnN4Gf0O#RzrYRIlG8olJvoFG=*yIRWYPT%kJrls14;%&m}$Q{-}(PNdTlX6 z){*SM4;^1BdsT}%r$+@~O8*Gx!GK-^d@bO87kAQ(H{dga+RhJ~az zwnc;o9pniJHAjaFzm`E>wvjXb57RJ|t*jMt_G!f^pT*y$l2 z!JW&t{~X?M;JoY&{S!9C9Mg@67p0w|o_0mP9+HO&=plrfqp_zqEw2jyXZw27yM&Pp zBahz;z$6sKUYK+)trhsH=w1~G=Yb|0n92U5>e?QV(QEyHU`psoAIb1C#=)=UXNqh- zp{Y3`*pNDu`u{iiYu~{MB}dKX#Pg5k4zH8`>ouHi5Ik|4^Yu+#Cr_>E40{+4%x8A3 zzRw+H2`ylb0hiHO27LKi&-{U(HzSH${6pkD^32d+_1eVi2deYuzwax z%1t@+T$!Ox)J17N>sr5Lt|wxLs;Xum01m4$R&Y1uGks81m|9e|`!;a04p?|`B#ADu z+b4fOpZSNzi8;B9CbwB$e-(7_)Y{D;$M9h}LyfJ+(mVVMw%>gVZbl?ZUt}*31L}}I z0IUPq4jee~_}k%k2RIs6PT^Jv`gxUMAJ3G@m#%#U<-x;#juHQV88W%D;{b{?l%sd0*&~Sf0wG zFy++srW(!rY!3n%zBin?U#1TVXam0w3Y)(Imn_OmvH0_sVP2bNe=_rK=VZ2JA?KKP zFdt}UxX0*KQ75iZkuFx257tq&gY#2)4dWDpKg>i8K^zsI!gWnr#bl(00)#!=F4;=0Ko;!3s_GXY{|G*hA;mpjU`1>A@Qx3j+ z*3!Iknk_>+!yR6u#{1F#?lM2{V>rDaw5&>@_42VcQ2Mp7@o;?895#6;#{<_1{f~>E z-sfhR$6l~XCq3(N%i(wL_*l5_&17c%pu=Rrr8KjATD`l&lOplo(JT{vrOiQsGxLMO zqzch3ex*Nlb39P#u-M0;)UAH1=sLrl2G-+mJZ{LEt7vpSGik6@F#fUc)90d}+vT5B z@050)w3CJF(@gFEPF0ICBZ5kSL2yIwi{t8p3@KIn0{`7*DPVP8RKfY=bcL9Uls?lA z1|#?R+V<| X6H_V+Po~-c6)||a`njxgN@xNAIFr5W literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index c7f53cd..be416a8 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -12,12 +12,13 @@ #80FFFFFF #80010738 - #99010738 + #80010733 #2e3259 #0f1934 #00000000 #2ad3df #161e31 + #000 #bcb9b9 #FFC66D #caeefc diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eb883d6..dccad60 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,7 +10,7 @@ 自建歌单 我喜欢 默认收藏 - 人生几何,对酒当歌 + 人生几何,对酒当歌 搜索 清空搜索历史 取消 diff --git a/master b/master new file mode 100644 index 0000000..e69de29