package com.weikou.beibeivideo.ui.mine;
|
|
import android.app.Activity;
|
import android.app.AlertDialog;
|
import android.app.Dialog;
|
import android.app.Notification;
|
import android.app.NotificationManager;
|
import android.content.Intent;
|
import android.content.pm.ActivityInfo;
|
import android.content.res.Configuration;
|
import android.net.http.SslError;
|
import android.os.Bundle;
|
import android.support.annotation.NonNull;
|
import android.support.annotation.Nullable;
|
import android.support.v4.app.NotificationCompat;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.webkit.ConsoleMessage;
|
import android.webkit.SslErrorHandler;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebResourceRequest;
|
import android.webkit.WebSettings;
|
import android.webkit.WebView;
|
import android.webkit.WebViewClient;
|
import android.widget.FrameLayout;
|
import android.widget.LinearLayout;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.lcjian.library.RetainViewFragment;
|
import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
|
import com.umeng.analytics.MobclickAgent;
|
import com.weikou.beibeivideo.BeibeiVideoApplication;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.ad.PlayVideoPreADSetting;
|
import com.weikou.beibeivideo.ui.ad.PlayVideoPreADFragment;
|
import com.weikou.beibeivideo.ui.dialog.VIPDialog;
|
import com.weikou.beibeivideo.ui.login.LoginActivity;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.beibeivideo.util.ConfigUtil;
|
import com.weikou.beibeivideo.util.UserUtil;
|
import com.weikou.beibeivideo.util.ad.AdUtil;
|
import com.weikou.beibeivideo.util.browser.PPJavaInterface;
|
import com.weikou.beibeivideo.util.ui.IPageEventListener;
|
|
public class PPTVPlayFragment extends RetainViewFragment implements OnClickListener {
|
private final static int REQUEST_CODE_LOGIN = 1001;
|
|
private final static int REQUEST_CODE_VIP = 1002;
|
|
|
private final static String TAG = PPTVPlayFragment.class.getSimpleName();
|
|
private TextView tv_top_bar_left;
|
private android.webkit.WebView webview;
|
FrameLayout fl_ad;
|
FrameLayout fl_container;
|
|
private boolean showAd = true;
|
|
private void initWebView(View view) {
|
fl_ad = view.findViewById(R.id.fl_ad);
|
webview = view.findViewById(R.id.webview);
|
webview.setWebViewClient(new WebViewClient() {
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
if (url != null && (!url.startsWith("http"))) {
|
return true;
|
}
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView webView, WebResourceRequest webResourceRequest) {
|
return super.shouldOverrideUrlLoading(webView, webResourceRequest);
|
}
|
|
@Override
|
public void onPageFinished(WebView webView, String s) {
|
super.onPageFinished(webView, s);
|
if (showAd)
|
playAd();
|
else {
|
showAd = true;
|
adPlayFinish();
|
}
|
}
|
|
@Override
|
public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
|
}
|
});
|
|
webview.setWebChromeClient(new WebChromeClient() {
|
|
View myVideoView;
|
View myNormalView;
|
CustomViewCallback callback;
|
|
@Override
|
public void onReceivedTitle(WebView view, String title) {
|
}
|
|
@Override
|
public void onProgressChanged(WebView webView, int i) {
|
super.onProgressChanged(webView, i);
|
}
|
|
@Override
|
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
|
Log.i(TAG, consoleMessage.message());
|
return super.onConsoleMessage(consoleMessage);
|
}
|
|
/**
|
* 全屏播放配置
|
*/
|
@Override
|
public void onShowCustomView(View view,
|
CustomViewCallback customViewCallback) {
|
View normalView = fl_container;
|
ViewGroup viewGroup = (ViewGroup) normalView.getParent();
|
viewGroup.removeView(normalView);
|
viewGroup.addView(view);
|
myVideoView = view;
|
myNormalView = normalView;
|
callback = customViewCallback;
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes();
|
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
getActivity().getWindow().setAttributes(attrs);
|
}
|
|
@Override
|
public void onHideCustomView() {
|
if (callback != null) {
|
callback.onCustomViewHidden();
|
callback = null;
|
}
|
if (myVideoView != null) {
|
ViewGroup viewGroup = (ViewGroup) myVideoView.getParent();
|
viewGroup.removeView(myVideoView);
|
viewGroup.addView(myNormalView);
|
}
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
WindowManager.LayoutParams attrs = getActivity().getWindow().getAttributes();
|
attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
getActivity().getWindow().setAttributes(attrs);
|
}
|
});
|
WebSettings webSetting = webview.getSettings();
|
webSetting.setJavaScriptEnabled(true);
|
webSetting.setTextZoom(100);
|
webview.addJavascriptInterface(new PPJavaInterface(BeibeiVideoApplication.application, new PPJavaInterface.IEventListener() {
|
@Override
|
public void onLogin() {
|
if (getActivity() != null)
|
getActivity().runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
Intent intent = new Intent(getContext(), LoginActivity.class);
|
intent.putExtra("result", true);
|
startActivityForResult(intent, REQUEST_CODE_LOGIN);
|
}
|
});
|
}
|
|
@Override
|
public void onTryPlayFinish() {
|
Log.i(TAG, "onTryPlayFinish");
|
if (getActivity() != null)
|
getActivity().runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
if (vipDialog != null && !vipDialog.isShowing())
|
vipDialog.show();
|
}
|
});
|
|
}
|
|
@Override
|
public void onPlayFinish() {
|
if (getActivity() != null)
|
getActivity().runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
}
|
});
|
|
}
|
}), "ppyestv");
|
}
|
|
@Nullable
|
@Override
|
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
return super.onCreateView(inflater, container, savedInstanceState);
|
}
|
|
@Override
|
public int getContentResource() {
|
return R.layout.browser_pptv_activity;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
initView(contentView);
|
String url = "http://vip.pptv.com/activity/2021/pg_bwysdqmovie?cid=32159127&vid=32159127&programtype=2";
|
url = "https://acmd.api.pptv.com/2021/bwysdqmovie_thrid_h5.html?cid=32159127&vid=32159127&programtype=3";
|
webview.loadUrl(url);
|
}
|
|
|
private void initView(View view) {
|
initWebView(view);
|
tv_top_bar_left = view.findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_left.setOnClickListener(this);
|
fl_container = view.findViewById(R.id.fl_container);
|
vipDialog = new VIPDialog.Builder(getActivity()).setCloseListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
vipDialog.dismiss();
|
}
|
}).setUpgradeListener(new OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
vipDialog.dismiss();
|
startActivityForResult(new Intent(BeibeiVideoApplication.application, BrowserActivity.class).putExtra("url", ConfigUtil.getVipLink(BeibeiVideoApplication.application)), REQUEST_CODE_VIP);
|
}
|
}).create();
|
|
//测试
|
// fl_container.postDelayed(new Runnable() {
|
// @Override
|
// public void run() {
|
// getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
// if (!vipDialog.isShowing())
|
// vipDialog.show();
|
// }
|
// }, 10000);
|
}
|
|
Dialog vipDialog;
|
|
Dialog loadingDialog;
|
|
PlayVideoPreADFragment mVideoDetailVideoAdFragment;
|
|
|
private NotificationManager manager;
|
private Notification notif;
|
private Notification.Builder oBuilder;
|
private NotificationCompat.Builder builder;
|
int j = -1;
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("网页");
|
// webview.reload();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("网页");
|
}
|
|
@Override
|
public void onDestroy() {
|
if (webview != null) {
|
webview.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);
|
webview.clearHistory();
|
|
((ViewGroup) webview.getParent()).removeView(webview);
|
webview.destroy();
|
webview = null;
|
}
|
super.onDestroy();
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
getActivity().finish();
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
// 设置回退
|
// 覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
|
// @Override
|
// public boolean onKeyDown(int keyCode, KeyEvent event) {
|
// if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
|
// webview.goBack(); // goBack()表示返回WebView的上一页面
|
// return true;
|
// }
|
// return super.onKeyDown(keyCode, event);
|
// }
|
|
|
@Override
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
Log.d(TAG, "onActivityResdult:" + requestCode);
|
//从登录返回来的
|
if (requestCode == REQUEST_CODE_LOGIN && resultCode == Activity.RESULT_OK) {
|
|
switch (requestCode) {
|
case REQUEST_CODE_VIP:
|
|
break;
|
|
case REQUEST_CODE_LOGIN: {
|
Log.d(TAG, "登录成功");
|
showAd = false;
|
webview.reload();
|
}
|
break;
|
|
}
|
|
|
}
|
super.onActivityResult(requestCode, resultCode, data);
|
}
|
|
private synchronized void playAd() {
|
//VIP永久免广告
|
if (UserUtil.isVIP(getContext())) {
|
adPlayFinish();
|
return;
|
}
|
|
fl_ad.setVisibility(View.VISIBLE);
|
mVideoDetailVideoAdFragment = new PlayVideoPreADFragment();
|
mVideoDetailVideoAdFragment.setPageEventListener(new IPageEventListener() {
|
@Override
|
public void onCreateView() {
|
mVideoDetailVideoAdFragment.loadVideoAD(new PlayVideoPreADFragment.IVideoAdListener() {
|
@Override
|
public void finishPlay() {
|
if (mVideoDetailVideoAdFragment.isAdded())
|
getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
|
fl_ad.setVisibility(View.GONE);
|
adPlayFinish();
|
}
|
|
@Override
|
public void startPlay() {
|
|
}
|
|
@Override
|
public void noAd() {
|
fl_ad.setVisibility(View.GONE);
|
if (mVideoDetailVideoAdFragment.isAdded())
|
getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
|
adPlayFinish();
|
}
|
}, new PlayVideoPreADSetting(AdUtil.AD_TYPE.gdt, BeibeiConstant.GDT_ID, "5061928359494942", null));
|
|
}
|
});
|
getChildFragmentManager().beginTransaction().replace(R.id.fl_ad, mVideoDetailVideoAdFragment).commit();
|
}
|
|
|
private void adPlayFinish() {
|
if (webview != null)
|
webview.loadUrl("javascript:adPlayFinish()");
|
}
|
}
|