package com.hanju.video.app.ui.media;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import android.app.Dialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import androidx.fragment.app.DialogFragment;
|
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.widget.AdapterView;
|
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.GridView;
|
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.dialog.SlidingDialog;
|
import com.umeng.analytics.MobclickAgent;
|
import com.hanju.video.app.BasicTextHttpResponseHandler;
|
import com.hanju.video.app.HttpApiUtil;
|
import com.hanju.video.app.entity.Play;
|
import com.hanju.video.app.entity.PlayUrl;
|
import com.hanju.video.app.entity.Playlocation;
|
import com.hanju.video.app.entity.VideoDetailInfo;
|
import com.hanju.video.app.entity.VideoInfo;
|
import com.hanju.video.app.entity.VideoResource;
|
import com.hanju.video.app.R;
|
|
import de.greenrobot.event.EventBus;
|
|
/**
|
* 全屏播放-选集页面
|
*
|
* @author weikou2015
|
*/
|
public class VideoEpisodeFragment2 extends DialogFragment {
|
|
private VideoInfo mVideoInfo;
|
|
private int mPlayingPosition;
|
|
private GridView gv_episode2;
|
|
private VideoResource resource;
|
|
public static VideoEpisodeFragment2 newInstance(VideoInfo videoInfo,
|
VideoResource resource, int playingPostion) {
|
VideoEpisodeFragment2 videoEpisodeFragment2 = new VideoEpisodeFragment2();
|
Bundle args = new Bundle();
|
args.putSerializable("video_info", videoInfo);
|
args.putSerializable("resource", resource);
|
args.putInt("playing_position", playingPostion);
|
videoEpisodeFragment2.setArguments(args);
|
return videoEpisodeFragment2;
|
}
|
|
@Override
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
Dialog dialog = new SlidingDialog(gv_episode2.getContext());
|
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
return dialog;
|
}
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
mVideoInfo = (VideoInfo) getArguments().getSerializable("video_info");
|
resource = (VideoResource) getArguments().getSerializable("resource");
|
mPlayingPosition = getArguments().getInt("playing_position");
|
View view = inflater.inflate(R.layout.video_episode_fragment2,
|
container, false);
|
gv_episode2 = view.findViewById(R.id.gv_episode2);
|
if (mVideoInfo.getShowType() == 1) {
|
gv_episode2.setNumColumns(1);
|
} else if (mVideoInfo.getShowType() == 2) {
|
gv_episode2.setNumColumns(5);
|
}
|
|
if (mVideoInfo.getVideoDetailList() != null
|
&& !mVideoInfo.getVideoDetailList().isEmpty()) {
|
gv_episode2.setAdapter(new GridEpisodeAdapter2(mVideoInfo,
|
mPlayingPosition));
|
gv_episode2.setOnItemClickListener(new OnItemClickListener() {
|
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view,
|
int position, long id) {
|
VideoDetailInfo videoDetailInfo = (VideoDetailInfo) parent
|
.getItemAtPosition(position);
|
Playlocation info = new Playlocation();
|
info.setPosition(position);
|
EventBus.getDefault().post(info);
|
getUrl(videoDetailInfo);
|
try {
|
dismiss();
|
} catch (Exception e) {
|
|
}
|
}
|
});
|
} else {
|
gv_episode2.setVisibility(View.GONE);
|
}
|
gv_episode2.setSelection(mPlayingPosition);
|
((GridEpisodeAdapter2) gv_episode2.getAdapter())
|
.setPlayingPosition(mPlayingPosition);
|
((GridEpisodeAdapter2) gv_episode2.getAdapter()).notifyDataSetChanged();
|
return view;
|
}
|
|
private void getUrl(VideoDetailInfo info) {
|
SharedPreferences preferences = gv_episode2.getContext().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
HttpApiUtil.getPlayUrl(gv_episode2.getContext(), uid, info.getType(), mVideoInfo.getId(),
|
info.getId(), resource.getId(), info.geteId(),
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
VideoResource resource = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONObject("Resource")
|
.toString(),
|
new TypeToken<VideoResource>() {
|
}.getType());
|
PlayUrl info = new PlayUrl();
|
info.setResource(resource);
|
info.setPlayType(Integer.parseInt(jsonObject
|
.getJSONObject("Data")
|
.optString("PlayType")));
|
info.setUrl(jsonObject.getJSONObject("Data")
|
.optString("Url"));
|
info.setParams(jsonObject.getJSONObject("Data")
|
.optString("Params"));
|
Play play = new Play();
|
play.setPlayUrl(info);
|
EventBus.getDefault().post(play);
|
}
|
}
|
});
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
EventBus.getDefault().register(this);
|
MobclickAgent.onPageStart("全屏播放—选集");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
EventBus.getDefault().unregister(this);
|
MobclickAgent.onPageEnd("全屏播放—选集");
|
}
|
|
@Override
|
public void onDismiss(DialogInterface dialog) {
|
super.onDismiss(dialog);
|
}
|
|
public void onEventMainThread(VideoDetailInfo videoDetailInfo) {
|
int playingPosition = 0;
|
for (int i = 0; i < mVideoInfo.getVideoDetailList().size(); i++) {
|
if (videoDetailInfo.getId().equals(
|
mVideoInfo.getVideoDetailList().get(i).getId())) {
|
playingPosition = i;
|
break;
|
}
|
}
|
if (mPlayingPosition != playingPosition) {
|
mPlayingPosition = playingPosition;
|
((GridEpisodeAdapter2) gv_episode2.getAdapter())
|
.setPlayingPosition(mPlayingPosition);
|
((GridEpisodeAdapter2) gv_episode2.getAdapter())
|
.notifyDataSetChanged();
|
}
|
}
|
}
|