From 34a18e852c1e3b5da43da02e6bdeab6b28a1fdd2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 04 二月 2021 19:35:04 +0800
Subject: [PATCH] PPTV与个人信息页面绑定完成

---
 BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java |  176 ++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 134 insertions(+), 42 deletions(-)

diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
index 6fe91bf..2625d5c 100644
--- a/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
+++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -6,6 +6,9 @@
 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;
@@ -15,19 +18,21 @@
 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.ConsoleMessage;
-import com.tencent.smtt.export.external.interfaces.SslError;
-import com.tencent.smtt.export.external.interfaces.SslErrorHandler;
-import com.tencent.smtt.export.external.interfaces.WebResourceRequest;
-import com.tencent.smtt.sdk.WebChromeClient;
-import com.tencent.smtt.sdk.WebSettings;
-import com.tencent.smtt.sdk.WebView;
-import com.tencent.smtt.sdk.WebViewClient;
+import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient;
 import com.umeng.analytics.MobclickAgent;
 import com.weikou.beibeivideo.BeibeiVideoApplication;
 import com.weikou.beibeivideo.R;
@@ -37,23 +42,27 @@
 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;
-import com.weikou.beibeivideo.util.x5.X5WebView;
 
 public class PPTVPlayFragment extends RetainViewFragment implements OnClickListener {
-    private static int REQUEST_CODE_LOGIN = 1001;
+    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 X5WebView webview;
+    private android.webkit.WebView webview;
     FrameLayout fl_ad;
+    FrameLayout fl_container;
 
+    private boolean showAd = true;
 
-    private void initX5WebView(View view) {
+    private void initWebView(View view) {
         fl_ad = view.findViewById(R.id.fl_ad);
         webview = view.findViewById(R.id.webview);
         webview.setWebViewClient(new WebViewClient() {
@@ -73,7 +82,12 @@
             @Override
             public void onPageFinished(WebView webView, String s) {
                 super.onPageFinished(webView, s);
-                playAd();
+                if (showAd)
+                    playAd();
+                else {
+                    showAd = true;
+                    adPlayFinish();
+                }
             }
 
             @Override
@@ -82,6 +96,10 @@
         });
 
         webview.setWebChromeClient(new WebChromeClient() {
+
+            View myVideoView;
+            View myNormalView;
+            CustomViewCallback callback;
 
             @Override
             public void onReceivedTitle(WebView view, String title) {
@@ -97,6 +115,42 @@
                 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);
@@ -104,37 +158,40 @@
         webview.addJavascriptInterface(new PPJavaInterface(BeibeiVideoApplication.application, new PPJavaInterface.IEventListener() {
             @Override
             public void onLogin() {
-                webview.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        Intent intent = new Intent(getContext(), LoginActivity.class);
-                        intent.putExtra("result", true);
-                        startActivityForResult(intent, REQUEST_CODE_LOGIN);
-                    }
-                });
+                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");
-                webview.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        if (vipDialog != null && !vipDialog.isShowing())
-                            vipDialog.show();
-                    }
-                });
+                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() {
-                webview.post(new Runnable() {
-                    @Override
-                    public void run() {
-                        new AlertDialog.Builder(getContext()).setMessage("playFinish鏂规硶琚皟鐢�").create().show();
-                    }
-                });
+                if (getActivity() != null)
+                    getActivity().runOnUiThread(new Runnable() {
+                        @Override
+                        public void run() {
+                        }
+                    });
 
             }
         }), "ppyestv");
@@ -154,15 +211,17 @@
     @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=3";
+        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) {
-        initX5WebView(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) {
@@ -172,9 +231,19 @@
             @Override
             public void onClick(View v) {
                 vipDialog.dismiss();
-                startActivity(new Intent(BeibeiVideoApplication.application, BrowserActivity.class).putExtra("url", ConfigUtil.getVipLink(BeibeiVideoApplication.application)));
+                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;
@@ -245,13 +314,33 @@
         Log.d(TAG, "onActivityResdult:" + requestCode);
         //浠庣櫥褰曡繑鍥炴潵鐨�
         if (requestCode == REQUEST_CODE_LOGIN && resultCode == Activity.RESULT_OK) {
-            Log.d(TAG, "鐧诲綍鎴愬姛");
-            webview.reload();
+
+            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() {
@@ -260,7 +349,8 @@
                 mVideoDetailVideoAdFragment.loadVideoAD(new PlayVideoPreADFragment.IVideoAdListener() {
                     @Override
                     public void finishPlay() {
-                        getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
+                        if (mVideoDetailVideoAdFragment.isAdded())
+                            getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
                         fl_ad.setVisibility(View.GONE);
                         adPlayFinish();
                     }
@@ -273,7 +363,8 @@
                     @Override
                     public void noAd() {
                         fl_ad.setVisibility(View.GONE);
-                        getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
+                        if (mVideoDetailVideoAdFragment.isAdded())
+                            getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
                         adPlayFinish();
                     }
                 }, new PlayVideoPreADSetting(AdUtil.AD_TYPE.gdt, BeibeiConstant.GDT_ID, "5061928359494942", null));
@@ -285,6 +376,7 @@
 
 
     private void adPlayFinish() {
-        webview.loadUrl("javascript:adPlayFinish()");
+        if (webview != null)
+            webview.loadUrl("javascript:adPlayFinish()");
     }
 }

--
Gitblit v1.8.0