package com.salton123.xm.model;
import com.google.gson.GsonBuilder;
import com.salton123.xm.wrap.ApiException;
import com.salton123.callback.HttpResponseHandler;
import com.salton123.mvp.util.RxUtil;
import com.salton123.util.FileUtils;
import com.salton123.util.log.MLog;
import com.ximalaya.ting.android.opensdk.constants.DTransferConstants;
import com.ximalaya.ting.android.opensdk.datatrasfer.CommonRequest;
import com.ximalaya.ting.android.opensdk.datatrasfer.IDataCallBack;
import com.ximalaya.ting.android.opensdk.model.album.AlbumList;
import com.ximalaya.ting.android.opensdk.model.album.SearchAlbumList;
import com.ximalaya.ting.android.opensdk.model.category.Category;
import com.ximalaya.ting.android.opensdk.model.category.CategoryList;
import com.ximalaya.ting.android.opensdk.model.live.radio.RadioList;
import com.ximalaya.ting.android.opensdk.model.tag.TagList;
import com.ximalaya.ting.android.opensdk.model.track.BatchTrackList;
import com.ximalaya.ting.android.opensdk.model.track.SearchTrackList;
import com.ximalaya.ting.android.opensdk.model.track.TrackList;
import java.util.HashMap;
import java.util.Map;
import io.reactivex.Observable;
import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe;
import io.reactivex.ObservableSource;
import io.reactivex.annotations.NonNull;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
/**
* User: 巫金生(newSalton@outlook.com)
* Date: 2017/7/21 16:18
* Time: 16:18
* Description:
*/
public class ApiMethod {
private static final String TAG = "ApiMethod";
public static Observable<CategoryList> getCategory() {
return Observable.create(new ObservableOnSubscribe<CategoryList>() {
@Override
public void subscribe(@NonNull final ObservableEmitter<CategoryList> emitter) throws Exception {
Map<String, String> map = new HashMap<String, String>(); //不需要参数
CommonRequest.getCategories(map, new IDataCallBack<CategoryList>() {
@Override
public void onSuccess(CategoryList categoryList) {
String gsonStr = new GsonBuilder().setPrettyPrinting().create().toJson(categoryList);
FileUtils.writeFile("/sdcard/z01/getCategory.txt",gsonStr);
emitter.onNext(categoryList);
}
@Override
public void onError(int i, String s) {
emitter.onError(new ApiException(new ApiExEntity(i,s)));
}
});
}
});
}
public static Observable<TagList> getTag(final long cagetoryId) {
return Observable.create(new ObservableOnSubscribe<TagList>() {
@Override
public void subscribe(@NonNull final ObservableEmitter<TagList> emitter) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put(DTransferConstants.CATEGORY_ID, cagetoryId + "");
map.put(DTransferConstants.TYPE, 0 + "");
CommonRequest.getTags(map, new IDataCallBack<TagList>() {
@Override
public void onSuccess(TagList tagList) {
emitter.onNext(tagList);
String gsonStr = new GsonBuilder().setPrettyPrinting().create().toJson(tagList);
FileUtils.writeFile("/sdcard/z01/getTag.txt",gsonStr);
}
@Override
public void onError(int i, String s) {
emitter.onError(new ApiException(new ApiExEntity(i,s)));
}
});
}
});
}
public static Observable<Category> getFrom(final CategoryList categoryList) {
if (categoryList==null ||categoryList.getCategories()==null)return null ;
return Observable.fromArray(categoryList.getCategories().toArray(new Category[categoryList.getCategories().size()]));
}
public static Observable<TagList> test() {
return getCategory().flatMap(new Function<CategoryList, ObservableSource<Category>>() {
@Override
public ObservableSource<Category> apply(@NonNull CategoryList categoryList) throws Exception {
return getFrom(categoryList);
}
}).flatMap(new Function<Category, ObservableSource<TagList>>() {
@Override
public ObservableSource<TagList> apply(@NonNull Category category) throws Exception {
return getTag(category.getId());
}
});
}
/**
* 根据分类和标签获取某个分类某个标签下的专辑列表(最火/最新/最多播放)
* @param category_id 分类ID,指定分类,为0时表示热门分类
* @param tag_name 分类下对应的专辑标签,不填则为热门分类
* @param calc_dimension 计算维度,现支持最火(1),最新(2),经典或播放最多(3)
* @param page 返回第几页,必须大于等于1,不填默认为1
* @param count 每页多少条,默认20,最多不超过200
* @return
*/
public static Observable<AlbumList> getAlbumList(final int category_id, final String tag_name
, final int calc_dimension, final int page , final int count) {
return Observable.create(new ObservableOnSubscribe<AlbumList>() {
@Override
public void subscribe(@NonNull final ObservableEmitter<AlbumList> emitter) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put(DTransferConstants.CATEGORY_ID, category_id+"");
map.put(DTransferConstants.TAG_NAME, tag_name);
map.put(DTransferConstants.CALC_DIMENSION, calc_dimension+"");
map.put(DTransferConstants.PAGE, page+"");
map.put(DTransferConstants.PAGE_SIZE, count+"");
CommonRequest.getAlbumList(map, new IDataCallBack<AlbumList>() {
@Override
public void onSuccess(AlbumList albumList) {
// MLog.debug(TAG,"[getAlbumList] onSuccess albumList="+albumList);
emitter.onNext(albumList);
String gsonStr = new GsonBuilder().setPrettyPrinting().create().toJson(albumList);
FileUtils.writeFile("/sdcard/z01/getAlbumList.txt",gsonStr);
}
@Override
public void onError(int i, String s) {
MLog.error(TAG,"[getAlbumList] onError code="+i+",msg="+s);
emitter.onError(new ApiException(new ApiExEntity(i,s)));
}
});
}
});
}
/**
*
* sort String 否 “asc”表示喜马拉雅正序,”desc”表示喜马拉雅倒序,”time_asc”表示时间升序,”time_desc”表示时间降序,默认为”asc”
* @param albumId
* @param sort
* @param page
* @return
*/
public static Observable<TrackList> getTracks(final String albumId, final String sort, final int page,final int pageSize) {
return Observable.create(new ObservableOnSubscribe<TrackList>() {
@Override
public void subscribe(@NonNull final ObservableEmitter<TrackList> emitter) throws Exception {
Map<String, String> map = new HashMap<String, String>();
map.put(DTransferConstants.ALBUM_ID, albumId);
map.put(DTransferConstants.SORT, sort);
map.put(DTransferConstants.PAGE,page + "");
map.put(DTransferConstants.PAGE_SIZE, pageSize+"");
CommonRequest.getTracks(map, new IDataCallBack<TrackList>() {
@Override
public void onSuccess(Tra
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
毕设&课设&项目&实训-基于Replugin插件化基础上业务实现应用,涵盖音视频.zip (133个子文件)
gradlew.bat 2KB
ic_page_one_03.gif 3MB
.gitignore 118B
.gitignore 7B
.gitignore 7B
.gitignore 7B
build.gradle 3KB
build.gradle 2KB
build.gradle 1KB
build.gradle 1KB
settings.gradle 96B
gradlew 5KB
videoplugin.jar 1.78MB
TingPhoneOpenSDK_5.5.2.jar 942KB
XmDownload_1.6.jar 162KB
XmlyOAuth2SDK_V1.1.jar 127KB
gradle-wrapper.jar 52KB
ApiMethod.java 16KB
FloatingMusicMenu.java 15KB
OneToNPresenter.java 9KB
TracksFragment.java 9KB
XmlyInitializer.java 9KB
MusicPlayerComponent.java 8KB
RotatingProgressDrawable.java 7KB
BottomBar.java 7KB
IndexFragment.java 6KB
MeasureUtil.java 6KB
TracksMultiTypeFragment.java 6KB
AlbumListFragment.java 6KB
ShadowImageView.java 6KB
SearchedTracksFragment.java 6KB
GuoDeGangComponent.java 6KB
YueYunPengComponent.java 5KB
ToolUtil.java 5KB
FloatingMusicButton.java 4KB
BaseMusicPlayerComponent.java 4KB
SideBar.java 4KB
TrackMultiTypeAdapter.java 3KB
TrackUtil.java 3KB
OneToNContract.java 3KB
StatusTitleBar.java 3KB
AboutFragment.java 3KB
ApiTestFragment.java 3KB
TracksAdapter.java 3KB
EndLessOnScrollListener.java 3KB
BaseRecycerViewAdapter.java 2KB
BottomBarTab.java 2KB
MiniPlayerComponent.java 2KB
BGAUtil.java 2KB
TestFragment.java 2KB
PagerFragmentAdapter.java 2KB
ApiViewFragment.java 2KB
Divider.java 2KB
ApiPair.java 2KB
AlbumAdapter.java 2KB
TrackHeaderVH.java 2KB
XmPlayerStatusAdapter.java 1KB
MrGuoTrackAdapter.java 1KB
TrackContentVH.java 1KB
MusicPlayerContract.java 1KB
IndexItemFragment.java 1KB
HotVoiceItem.java 1KB
IndexFragmentAdapter.java 1KB
TabLayoutUtil.java 1KB
XmAdsStatusAdapter.java 891B
xmUtils.java 761B
MainActivityNew.java 562B
MainActivityNew.java 559B
ViewUtils.java 480B
XmlyBroadcastReceiver.java 478B
MusicPlayerPresenter.java 474B
XmConfig.java 453B
SaltonApplication.java 438B
BaseVH.java 390B
ApiExEntity.java 334B
ApiException.java 282B
bond.jks 2KB
output.json 203B
SaltonApplication.kt 3KB
MainActivity.kt 3KB
BannerMenuComponent.kt 2KB
AbsMenuItemView.kt 2KB
MainActivity.kt 2KB
ic_page_two_03.png 818KB
ic_page_three_01.png 560KB
ic_page_one_04.png 527KB
ic_page_two_04.png 525KB
ic_page_two_02.png 519KB
ic_page_one_01.png 513KB
ic_page_three_02.png 466KB
ic_page_two_01.png 435KB
ic_page_one_02.png 409KB
ic_page_three_03.png 196KB
ic_launcher_round.png 10KB
ic_launcher_round.png 7KB
ic_launcher.png 6KB
ic_launcher.png 4KB
default_pic_load.png 2KB
proguard-rules.pro 751B
proguard-rules.pro 751B
共 133 条
- 1
- 2
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功