package com.qtfreet.musicuu.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.text.TextUtils;
import android.view.View;
import android.widget.Toast;
import com.alibaba.fastjson.JSON;
import com.dou361.dialogui.DialogUIUtils;
import com.dou361.dialogui.bean.BuildBean;
import com.iflytek.sunflower.FlowerCollector;
import com.qtfreet.musicuu.R;
import com.qtfreet.musicuu.model.Bean.YinyueTai.MvBean;
import com.qtfreet.musicuu.model.Bean.YinyueTai.MvPlayBean;
import com.qtfreet.musicuu.model.Constant.Constants;
import com.qtfreet.musicuu.model.OnVideoClickListener;
import com.qtfreet.musicuu.ui.BaseActivity;
import com.qtfreet.musicuu.ui.adapter.MvDetailAdatper;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.rest.Request;
import com.yolanda.nohttp.rest.RequestQueue;
import com.yolanda.nohttp.rest.Response;
import com.yolanda.nohttp.rest.SimpleResponseListener;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
/**
* Created by qtfreet00 on 2016/9/1.
*/
public class SearchMvActivity extends BaseActivity implements OnVideoClickListener {
private StaggeredGridLayoutManager mStaggeredGridLayoutManager;
@Bind(R.id.lv_search_result)
RecyclerView recyclerView;
private MvDetailAdatper mAdapter;
private List<MvBean.DataBean> dataBean;
private String KeyWord;
private BuildBean buildBean = null;
@Override
protected void onResume() {
super.onResume();
FlowerCollector.onResume(this);
}
@Override
protected void onPause() {
super.onPause();
FlowerCollector.onPause(this);
}
@Override
public void initView(Bundle savedInstanceState) {
setContentView(R.layout.activity_search_mv);
setupWindowAnimations();
ButterKnife.bind(this);
setTitleName("搜索", true);
mStaggeredGridLayoutManager = new StaggeredGridLayoutManager(2,
StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(mStaggeredGridLayoutManager);
initData();
}
private void initData() {
buildBean = DialogUIUtils.showMdLoading(this, "加载中...", true, true, false, true);
KeyWord = getIntent().getStringExtra(Constants.YinyueTai);
if (KeyWord.isEmpty()) {
return;
}
requestData(KeyWord);
}
public void requestData(String keyWord) {
RequestQueue stringRequest = NoHttp.newRequestQueue();
Request<String> request = NoHttp.createStringRequest("http://mapiv2.yinyuetai.com/search/video.json?&order=&sourceVersion=&area=&singerType=&offset=0&size=20&keyword=" + keyWord);
request.headers().add("App-Id", "10201041");
request.headers().add("Device-Id", "178bc560c9e8d719e048c7e8f2d25fcb");
request.headers().add("Device-V", "QW5kcm9pZF80LjQuMl83NjgqMTE4NF8xMDAwMDEwMDA=");
stringRequest.add(0, request, new SimpleResponseListener<String>() {
@Override
public void onSucceed(int what, Response<String> response) {
super.onSucceed(what, response);
Message msg = Message.obtain();
msg.what = 0;
msg.obj = response.get();
hanlder.sendMessage(msg);
}
@Override
public void onFailed(int what, Response<String> response) {
super.onFailed(what, response);
}
});
}
private Handler hanlder = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
switch (message.what) {
case 0:
DialogUIUtils.dismiss(buildBean);
dataBean = JSON.parseObject(message.obj.toString(), MvBean.class).getData();
if (dataBean == null) {
Toast.makeText(SearchMvActivity.this, "获取数据失败", Toast.LENGTH_SHORT).show();
return false;
}
mAdapter = new MvDetailAdatper(SearchMvActivity.this, dataBean);
mAdapter.setOnVideoClickListener(SearchMvActivity.this);
recyclerView.setAdapter(mAdapter);
break;
case 1:
DialogUIUtils.dismiss(buildBean);
Toast.makeText(SearchMvActivity.this, "获取数据失败", Toast.LENGTH_SHORT).show();
break;
case 2:
MvPlayBean mv = JSON.parseObject(message.getData().getString("response"), MvPlayBean.class);
String mvUrl;
String ShdUrl = mv.getData().getShdUrl();
String uhdUrl = mv.getData().getUhdUrl();
String hdUrl = mv.getData().getHdUrl();
String mdUrl = mv.getData().getUrl();
if (!TextUtils.isEmpty(ShdUrl)) {
mvUrl = ShdUrl;
} else if (!TextUtils.isEmpty(uhdUrl)) {
mvUrl = uhdUrl;
} else if (!TextUtils.isEmpty(hdUrl)) {
mvUrl = hdUrl;
} else if (!TextUtils.isEmpty(mdUrl)) {
mvUrl = mdUrl;
} else {
Toast.makeText(SearchMvActivity.this, "获取播放链接失败!", Toast.LENGTH_SHORT).show();
return false;
}
String songName = message.getData().getString("name");
Intent i = new Intent(SearchMvActivity.this, VideoActivity.class);
Bundle bundle = new Bundle();
bundle.putString(Constants.NAME, songName);
bundle.putString(Constants.URL, mvUrl);
i.putExtras(bundle);
startActivity(i);
break;
}
return false;
}
});
@Override
public void click(View v, int postion) {
int id = dataBean.get(postion).getVideoId();
String videoName = dataBean.get(postion).getTitle();
requestVideo(id, videoName);
}
private void requestVideo(int id, final String videoName) {
RequestQueue stringRequest = NoHttp.newRequestQueue();
Request<String> request = NoHttp.createStringRequest("http://mapiv2.yinyuetai.com/video/play.json?&id=" + id + "&type=1");
request.headers().add("App-Id", "10201041");
request.headers().add("Device-Id", "178bc560c9e8d719e048c7e8f2d25fcb");
request.headers().add("Device-V", "QW5kcm9pZF80LjQuMl83NjgqMTE4NF8xMDAwMDEwMDA=");
stringRequest.add(0, request, new SimpleResponseListener<String>() {
@Override
public void onSucceed(int what, Response<String> response) {
super.onSucceed(what, response);
Message msg = Message.obtain();
msg.what = 2;
Bundle b = new Bundle();
b.putString("response", response.get());
b.putString("name", videoName);
msg.setData(b);
hanlder.sendMessage(msg);
}
@Override
public void onFailed(int what, Response<String> response) {
super.onFailed(what, response);
}
});
}
}