package com.yeshi.video.ui;
|
|
import android.content.ContentValues;
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.database.Cursor;
|
import android.net.Uri;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.widget.Button;
|
import android.widget.GridView;
|
import android.widget.Toast;
|
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.lcjian.library.util.SingleToast;
|
import com.mozillaonline.providers.DownloadManager;
|
import com.umeng.analytics.MobclickAgent;
|
import com.yeshi.base.entity.db.DownloadTable;
|
import com.yeshi.base.entity.video.VideoDetailInfo;
|
import com.yeshi.base.entity.video.VideoInfo;
|
import com.yeshi.base.utils.SDCardUtil;
|
import com.yeshi.base.utils.downutil.DownloadUtils;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
import com.yeshi.base.utils.http.GetDownLoadTask;
|
import com.yeshi.video.R;
|
import com.yeshi.video.ui.adapter.GridEpisodeAdapter3;
|
import com.yeshi.video.utils.VideoApiUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONArray;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
import java.util.List;
|
|
import androidx.fragment.app.Fragment;
|
import de.greenrobot.event.EventBus;
|
|
/**
|
* 播放页小屏底部下载详情页面,也是多集下载详情页面点击下载更多 弹出页面
|
*
|
* @author weikou2015
|
*/
|
public class VideoEpisodeFragment3 extends Fragment {
|
|
private VideoInfo mVideoInfo;
|
|
private GridView gv_episode3;
|
|
private Button btn_offline_cache;
|
|
private GridEpisodeAdapter3 mGridEpisodeAdapter3;
|
|
public static VideoEpisodeFragment3 newInstance(VideoInfo videoInfo) {
|
VideoEpisodeFragment3 videoEpisodeFragment3 = new VideoEpisodeFragment3();
|
Bundle args = new Bundle();
|
args.putSerializable("video_info", videoInfo);
|
videoEpisodeFragment3.setArguments(args);
|
return videoEpisodeFragment3;
|
}
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
Bundle savedInstanceState) {
|
mVideoInfo = (VideoInfo) getArguments().getSerializable("video_info");
|
|
View view = inflater.inflate(R.layout.video_episode_fragment3,
|
container, false);
|
gv_episode3 = (GridView) view.findViewById(R.id.gv_episode3);
|
btn_offline_cache = (Button) view.findViewById(R.id.btn_offline_cache);
|
if (mVideoInfo.getShowType() == 1) {
|
gv_episode3.setNumColumns(1);
|
} else if (mVideoInfo.getShowType() == 2) {
|
gv_episode3.setNumColumns(5);
|
}
|
|
if (mVideoInfo.getVideoDetailList() != null
|
&& !mVideoInfo.getVideoDetailList().isEmpty()) {
|
mGridEpisodeAdapter3 = new GridEpisodeAdapter3(mVideoInfo);
|
gv_episode3.setAdapter(mGridEpisodeAdapter3);
|
} else {
|
gv_episode3.setVisibility(View.GONE);
|
}
|
|
btn_offline_cache.setOnClickListener(new OnClickListener() {
|
|
@Override
|
public void onClick(View v) {
|
final Context context = v.getContext();
|
if (!mVideoInfo.isCanSave()) {
|
Toast.makeText(getActivity(), "该视频暂不提供缓存",
|
Toast.LENGTH_SHORT).show();
|
return;
|
}
|
List<VideoDetailInfo> selectedToDownLoads = mGridEpisodeAdapter3
|
.getSelectedToDownLoads();
|
if (selectedToDownLoads != null
|
&& !selectedToDownLoads.isEmpty()) {
|
for (final VideoDetailInfo videoDetailInfo : selectedToDownLoads) {
|
if (!DownloadUtils.isOffline(getActivity(),
|
mVideoInfo.getId(), videoDetailInfo.getId())) {
|
final DownloadManager downloadManager = new DownloadManager(
|
getActivity().getContentResolver(),
|
getActivity().getPackageName());
|
String url = "";
|
// VideoPlayUrlUtil.getVideoUrl(
|
// videoDetailInfo).getUrl();
|
|
(new GetDownLoadTask(getActivity()) {
|
protected void onPostExecute(String[] result) {
|
DownloadManager.Request request = new DownloadManager.Request(
|
Uri.parse(result[0]));
|
|
try {
|
// request.setDestinationUri(Uri.fromFile(new
|
// File(
|
// SDCardUtil
|
// .getDownLoadPath(context))));
|
Uri uri = Uri.fromFile(new File(
|
SDCardUtil
|
.getDownLoadPath(context)));
|
request.setDestinationUri(uri);
|
request.setUserAgent(result[1]);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
/*
|
* request.setDestinationInExternalPublicDir(
|
* Environment.DIRECTORY_DOWNLOADS, "/");
|
*/
|
|
Cursor cursor = getContext()
|
.getContentResolver()
|
.query(DownloadTable.CONTENT_URI,
|
new String[]{
|
DownloadTable.VIDEO_ID,
|
DownloadTable.VIDEO_DETAIL_ID},
|
DownloadTable.VIDEO_DETAIL_ID
|
+ "=?",
|
new String[]{videoDetailInfo
|
.getId() + ""},
|
DownloadTable.VIDEO_DETAIL_ID
|
+ " ASC");// 查询cursor
|
if (cursor.getCount() > 0) {
|
cursor.close();
|
return;
|
}
|
cursor.close();
|
|
if (getContext().getSharedPreferences(
|
"settings", Context.MODE_PRIVATE)
|
.getBoolean("only_wifi_download",
|
true)) {
|
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
|
}
|
request.setTitle(mVideoInfo.getName());
|
request.setDescription(TextUtils
|
.isEmpty(videoDetailInfo.getTag()) ? videoDetailInfo
|
.getName() : videoDetailInfo
|
.getTag());
|
long taskId = downloadManager
|
.enqueue(request);
|
|
ContentValues values = new ContentValues();
|
values.put(DownloadTable.TASK_ID, taskId);
|
values.put(DownloadTable.VIDEO_ID,
|
mVideoInfo.getId());
|
values.put(DownloadTable.VIDEO_DETAIL_ID,
|
videoDetailInfo.getId());
|
values.put(DownloadTable.VIDEO_THIRD_TYPE,
|
mVideoInfo.getThirdType());
|
Gson gson = new GsonBuilder()
|
.setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
values.put(DownloadTable.VIDEO_DETAIL,
|
gson.toJson(mVideoInfo));
|
getContext().getContentResolver().insert(
|
DownloadTable.CONTENT_URI, values);
|
EventBus.getDefault().post(values);
|
SingleToast.showToast(getContext(),
|
"已加入下载列表");
|
}
|
|
;
|
// }).execute(
|
// url,
|
// videoDetailInfo.getId(),
|
// GetRealPathTask
|
// .getNeedSecondConnectServerUrl(mVideoInfo
|
// .getExtraData()));
|
}).execute(
|
url,
|
videoDetailInfo.getId(),
|
null);
|
}
|
}
|
uploadSaveHistory(selectedToDownLoads);
|
getActivity().onBackPressed();
|
} else {
|
SingleToast.showToast(getActivity(), "请添加未下载剧集");
|
}
|
}
|
});
|
return view;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("播放详情页或者电视剧下载页——下载");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("播放详情页或者电视剧下载页——下载");
|
}
|
|
// 提交缓存记录
|
private void uploadSaveHistory(List<VideoDetailInfo> list) {
|
JSONArray array = new JSONArray();
|
if (list != null)
|
for (VideoDetailInfo info : list)
|
array.put(info.getId());
|
SharedPreferences preferences = getActivity().getSharedPreferences(
|
"user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
VideoApiUtil.getScoreSave(getActivity(), uid, array.toString(),
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
}
|
});
|
}
|
}
|