package com.yeshi.makemoney.video.app.ui.main;
|
|
import android.os.Bundle;
|
import android.text.GetChars;
|
import android.util.Log;
|
import android.view.View;
|
|
import com.androidquery.AQuery;
|
import com.bytedance.sdk.dp.DPSdk;
|
import com.bytedance.sdk.dp.DPWidgetNewsParams;
|
import com.bytedance.sdk.dp.IDPNewsListener;
|
import com.bytedance.sdk.dp.IDPWidget;
|
import com.demo.lib.common.RetainViewFragment;
|
import com.demo.lib.common.util.common.DimenUtils;
|
import com.jaeger.library.StatusBarUtil;
|
import com.yeshi.makemoney.video.R;
|
import com.yeshi.makemoney.video.app.utils.UserUtil;
|
import com.yeshi.makemoney.video.app.utils.api.BasicTextHttpResponseHandler;
|
import com.yeshi.makemoney.video.app.utils.api.HttpApiUtil;
|
import com.yeshi.makemoney.video.app.utils.videos.NewsGoldCornUtil;
|
import com.yeshi.makemoney.video.app.utils.videos.VideoGoldCornUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.Map;
|
|
import androidx.fragment.app.Fragment;
|
|
/**
|
* 主页面--快手视频
|
*/
|
public class DYNewsFragment extends RetainViewFragment {
|
|
//最少的浏览时间
|
private final Long MIN_SPACE_TIME = 1000 * 5L;
|
|
private static final String TAG = "DYNewsFragment";
|
private IDPWidget mIDPWidget;
|
|
public DYNewsFragment() {
|
super();
|
}
|
|
private long startTime;
|
|
|
@Override
|
public int getContentResource() {
|
return R.layout.fragment_news;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
StatusBarUtil.setDarkMode(getActivity());
|
if (mIDPWidget != null && mIDPWidget.getFragment() != null) {
|
mIDPWidget.getFragment().onResume();
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
if (mIDPWidget != null && mIDPWidget.getFragment() != null) {
|
mIDPWidget.getFragment().onPause();
|
}
|
}
|
|
@Override
|
public void setUserVisibleHint(boolean isVisibleToUser) {
|
super.setUserVisibleHint(isVisibleToUser);
|
if (mIDPWidget != null && mIDPWidget.getFragment() != null) {
|
mIDPWidget.getFragment().setUserVisibleHint(isVisibleToUser);
|
}
|
}
|
|
@Override
|
public void onHiddenChanged(boolean hidden) {
|
super.onHiddenChanged(hidden);
|
if (mIDPWidget != null && mIDPWidget.getFragment() != null) {
|
mIDPWidget.getFragment().onHiddenChanged(hidden);
|
}
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
Log.i(TAG, "onCreateView");
|
StatusBarUtil.setDarkMode(getActivity());
|
AQuery mAquery = new AQuery(contentView);
|
mAquery.id(R.id.view_status_bar).height(DimenUtils.px2dip(getContext(), DimenUtils.getStatusBarHeight(getContext())));
|
initNewsWidget();
|
}
|
|
private void initNewsWidget() {
|
mIDPWidget = DPSdk.factory().createNewsTabs(DPWidgetNewsParams.obtain().videoJumpDraw(true)
|
.listener(new IDPNewsListener() {
|
@Override
|
public void onDPRefreshFinish() {
|
log("onDPRefreshFinish");
|
}
|
|
@Override
|
public void onDPNewsItemClick(Map<String, Object> map) {
|
log("onDPNewsItemClick");
|
}
|
|
@Override
|
public void onDPVideoPlay(Map<String, Object> map) {
|
log("onDPVideoPlay");
|
}
|
|
@Override
|
public void onDPVideoPause(Map<String, Object> map) {
|
log("onDPVideoPause");
|
}
|
|
@Override
|
public void onDPVideoContinue(Map<String, Object> map) {
|
log("onDPVideoContinue");
|
}
|
|
@Override
|
public void onDPVideoOver(Map<String, Object> map) {
|
log("onDPVideoOver");
|
}
|
|
@Override
|
public void onDPNewsDetailEnter(Map<String, Object> map) {
|
log("onDPNewsDetailEnter");
|
// DPEventCollectUtil.newsDetailEnter(getContext(), map);
|
if (startTime == 0L) {
|
startTime = System.currentTimeMillis();
|
}
|
|
if (System.currentTimeMillis() - startTime > MIN_SPACE_TIME) {
|
startTime = System.currentTimeMillis();
|
addCount();
|
}
|
|
|
}
|
|
@Override
|
public void onDPNewsDetailExit(Map<String, Object> map) {
|
log("onDPNewsDetailExit");
|
if (startTime > 0) {
|
if (System.currentTimeMillis() - startTime > MIN_SPACE_TIME) {
|
startTime = 0L;
|
addCount();
|
}
|
}
|
}
|
}));
|
|
Fragment fragment = mIDPWidget.getFragment();
|
if (fragment != null && getChildFragmentManager() != null) {
|
getChildFragmentManager().beginTransaction().replace(R.id.fl_container, fragment).commitAllowingStateLoss();
|
}
|
}
|
|
private static void log(String msg) {
|
Log.d(TAG, String.valueOf(msg));
|
}
|
|
private void addCount() {
|
NewsGoldCornUtil.addNewsCount(getContext());
|
if (!UserUtil.isLogin(getContext())) {
|
return;
|
}
|
|
int num = NewsGoldCornUtil.getNewsCount(getContext());
|
HttpApiUtil.scanNews(getContext(), num, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onStart() {
|
super.onStart();
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
super.onSuccessPerfect(statusCode, headers, jsonObject);
|
if (jsonObject.optInt("code") == 0) {
|
//减去上传的数量
|
NewsGoldCornUtil.setNewsCount(NewsGoldCornUtil.getNewsCount(getContext()) - num, getContext());
|
//上传成功
|
JSONObject data = jsonObject.optJSONObject("data");
|
VideoGoldCornUtil.showInComeToast(data.optInt("goldCorn"), getContext());
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
}
|
});
|
|
|
}
|
|
|
}
|