admin
2021-02-04 1dccad84f4e90640441f7e824f0bb13ef25720da
pptv播放修改
1个文件已删除
5个文件已修改
9个文件已添加
991 ■■■■ 已修改文件
BuWanVideo/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_person_info_phone.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_person_info_qq.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_person_info_wx.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_vip_dialog_bg.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/icon_vip_dialog_close.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_vip_dialog_btn.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/browser_pptv_activity.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/dialog_vip.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/video_detail_activity.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/VIPDialog.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MineFragment.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayActivity.java 467 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java 290 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/AndroidManifest.xml
@@ -140,7 +140,7 @@
            android:label="@string/app_name"></activity>
        <activity
            android:name="com.weikou.beibeivideo.ui.mine.PPTVPlayActivity"
            android:name="com.weikou.beibeivideo.ui.mine.PPTVPlayFragment"
            android:configChanges="screenSize|keyboardHidden|orientation"
            android:label="@string/app_name"></activity>
BuWanVideo/res/drawable-xhdpi/icon_person_info_phone.png
BuWanVideo/res/drawable-xhdpi/icon_person_info_qq.png
BuWanVideo/res/drawable-xhdpi/icon_person_info_wx.png
BuWanVideo/res/drawable-xhdpi/icon_vip_dialog_bg.png
BuWanVideo/res/drawable-xhdpi/icon_vip_dialog_close.png
BuWanVideo/res/drawable/shape_vip_dialog_btn.xml
New file
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#fff3dac2" />
    <corners android:radius="30dp" />
    <padding
        android:bottom="12dp"
        android:left="38dp"
        android:right="38dp"
        android:top="12dp">
    </padding>
</shape>
BuWanVideo/res/layout/browser_pptv_activity.xml
@@ -5,20 +5,7 @@
    android:background="@color/white"
    android:orientation="vertical">
    <View
        android:id="@+id/v_status_bar"
        android:layout_width="match_parent"
        android:layout_height="15dp"
        android:background="@color/top_bar_color" />
    <include layout="@layout/navigation_top_bar" />
    <ProgressBar
        android:id="@+id/myProgressBar"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="3dp"
        android:background="@color/yellow" />
    <FrameLayout
@@ -40,6 +27,19 @@
        </FrameLayout>
        <TextView
            android:id="@+id/tv_top_bar_left"
            style="@style/TextBuleNormal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:drawableLeft="@drawable/ic_back_two"
            android:drawablePadding="3dp"
            android:gravity="center"
            android:layout_gravity="left|top"
            android:padding="8dp" />
    </FrameLayout>
BuWanVideo/res/layout/dialog_vip.xml
New file
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/icon_vip_dialog_bg">
        </ImageView>
        <TextView
            android:id="@+id/tv_upgrade"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal|bottom"
            android:layout_marginBottom="57dp"
            android:background="@drawable/shape_vip_dialog_btn"
            android:text="去升级会员"
            android:textColor="#ff78482f"
            android:textSize="15sp" />
    </FrameLayout>
    <ImageView
        android:id="@+id/iv_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:src="@drawable/icon_vip_dialog_close"></ImageView>
</LinearLayout>
BuWanVideo/res/layout/video_detail_activity.xml
@@ -12,10 +12,12 @@
        android:background="@color/top_bar_color" />
    <LinearLayout
        android:id="@+id/ll_other"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">
        android:orientation="vertical"
        android:visibility="gone">
        <!-- android:background="@color/bg_download_so" -->
        <FrameLayout
@@ -160,4 +162,11 @@
    </LinearLayout>
    <FrameLayout
        android:id="@+id/fl_pptv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="visible"></FrameLayout>
</LinearLayout>
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/VIPDialog.java
New file
@@ -0,0 +1,105 @@
package com.weikou.beibeivideo.ui.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import com.alibaba.fastjson.JSONObject;
import com.bumptech.glide.GenericTransitionOptions;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.lcjian.library.util.common.TimeUtil;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.JumpDetail;
import com.weikou.beibeivideo.util.JumpActivityUtil;
/**
 * 用户协议弹框
 */
public class VIPDialog extends Dialog {
    private static String TAG = VIPDialog.class.getName();
    public VIPDialog(Context context) {
        super(context);
        this.setCancelable(false);
    }
    public VIPDialog(Context context, int theme) {
        super(context, theme);
        this.setCancelable(false);
    }
    public static class Builder {
        private Activity context;
        public Builder(Activity context) {
            this.context = context;
        }
        private View.OnClickListener closeListener;
        private View.OnClickListener upgradeListener;
        public Builder setCloseListener(View.OnClickListener listener) {
            this.closeListener = listener;
            return this;
        }
        public Builder setUpgradeListener(View.OnClickListener listener) {
            this.upgradeListener = listener;
            return this;
        }
        public VIPDialog create() {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final VIPDialog dialog = new VIPDialog(context, R.style.Dialog);
            dialog.setCanceledOnTouchOutside(true);
            final View layout = inflater.inflate(R.layout.dialog_vip, null);
            ImageView iv_code = layout.findViewById(R.id.iv_close);
            TextView tv_upgrade = layout.findViewById(R.id.tv_upgrade);
            iv_code.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (closeListener != null)
                        closeListener.onClick(v);
                }
            });
            tv_upgrade.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (upgradeListener != null)
                        upgradeListener.onClick(v);
                }
            });
            dialog.setContentView(layout);
            WindowManager.LayoutParams params = dialog.getWindow()
                    .getAttributes();
            params.width = WindowManager.LayoutParams.MATCH_PARENT;
            params.height = WindowManager.LayoutParams.MATCH_PARENT;
            dialog.getWindow().setAttributes(params);
            return dialog;
        }
    }
    public interface MeasureCallBack {
        public void onMeasure(int height);
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/main/MineFragment.java
@@ -21,7 +21,6 @@
import com.androidquery.AQuery;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.lcjian.library.content.ConnectivityChangeHelper;
import com.lcjian.library.content.ConnectivityChangeHelper.OnConnectivityChangeListener;
import com.lcjian.library.util.common.DimenUtils;
@@ -32,8 +31,6 @@
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMWeb;
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.db.MessageTable;
import com.weikou.beibeivideo.entity.NewComment;
import com.weikou.beibeivideo.entity.UserInfo;
@@ -43,8 +40,7 @@
import com.weikou.beibeivideo.ui.login.LoginActivity;
import com.weikou.beibeivideo.ui.login.PersonInfoActivity;
import com.weikou.beibeivideo.ui.mine.BrowserActivity;
import com.weikou.beibeivideo.ui.mine.PPTVPlayActivity;
import com.weikou.beibeivideo.ui.video.VideoPlayerBrowserActivity;
import com.weikou.beibeivideo.ui.mine.PPTVPlayFragment;
import com.weikou.beibeivideo.ui.mine.HelpAndTicklingActivity;
import com.weikou.beibeivideo.ui.mine.MyFavouriteActivity;
import com.weikou.beibeivideo.ui.mine.SettingsActivity;
@@ -57,9 +53,6 @@
import com.weikou.beibeivideo.util.UserUtil;
import com.weikou.beibeivideo.widget.BadgeView;
import com.weikou.beibeivideo.R;
import org.apache.http.Header;
import org.json.JSONObject;
import de.greenrobot.event.EventBus;
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -64,6 +64,7 @@
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.ad.PlayVideoPreADFragment;
import com.weikou.beibeivideo.ui.common.ShareActivity;
import com.weikou.beibeivideo.ui.mine.PPTVPlayFragment;
import com.weikou.beibeivideo.ui.video.VideoPlayerBrowserActivity;
import com.weikou.beibeivideo.ui.video.FunshionPlayerFragment;
import com.weikou.beibeivideo.ui.video.VideoPlayerActivity;
@@ -92,6 +93,11 @@
        OnClickListener {
    private final String TAG = VideoDetailActivity2.class.getName();
    //外层容器
    LinearLayout ll_other;
    FrameLayout fl_pptv;
    //    private boolean mLandscape;
    private VideoInfo videoInfo;
@@ -129,6 +135,10 @@
    }
    private void initView() {
        ll_other = findViewById(R.id.ll_other);
        fl_pptv = findViewById(R.id.fl_pptv);
        fl_pptv.setVisibility(View.GONE);
        iv_select_play = findViewById(R.id.iv_select_play);
        tv_back = findViewById(R.id.iv_back);
        iv_download_failure = findViewById(R.id.iv_download_failure);
@@ -758,6 +768,21 @@
                    public void onSuccessPerfect(int statusCode,
                                                 Header[] headers, JSONObject jsonObject)
                            throws Exception {
                        boolean pptv = true;
                        if (pptv) {
                            fl_pptv.setVisibility(View.VISIBLE);
                            ll_other.setVerticalGravity(View.GONE);
                            getSupportFragmentManager().beginTransaction().replace(R.id.fl_pptv, new PPTVPlayFragment()).commit();
                            if (progressDialog.isShowing()) {
                                progressDialog.dismiss();
                            }
                            return;
                        } else {
                            fl_pptv.setVisibility(View.GONE);
                            ll_other.setVisibility(View.VISIBLE);
                        }
                        // if (BeibeiConstant.DEBUG)
                        // Toast.makeText(VideoDetailActivity2.this,
                        // "onSuccessPerfect",
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayActivity.java
File was deleted
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
New file
@@ -0,0 +1,290 @@
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.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.widget.FrameLayout;
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.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.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 String TAG = PPTVPlayFragment.class.getSimpleName();
    private TextView tv_top_bar_left;
    private X5WebView webview;
    FrameLayout fl_ad;
    private void initX5WebView(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);
                playAd();
            }
            @Override
            public void onReceivedSslError(WebView webView, SslErrorHandler sslErrorHandler, SslError sslError) {
            }
        });
        webview.setWebChromeClient(new WebChromeClient() {
            @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);
            }
        });
        WebSettings webSetting = webview.getSettings();
        webSetting.setJavaScriptEnabled(true);
        webSetting.setTextZoom(100);
        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);
                    }
                });
            }
            @Override
            public void onTryPlayFinish() {
                Log.i(TAG, "onTryPlayFinish");
                webview.post(new Runnable() {
                    @Override
                    public void run() {
                        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();
                    }
                });
            }
        }), "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=3";
        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);
        tv_top_bar_left = view.findViewById(R.id.tv_top_bar_left);
        tv_top_bar_left.setOnClickListener(this);
        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();
                startActivity(new Intent(BeibeiVideoApplication.application, BrowserActivity.class).putExtra("url", ConfigUtil.getVipLink(BeibeiVideoApplication.application)));
            }
        }).create();
    }
    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) {
            Log.d(TAG, "登录成功");
            webview.reload();
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
    private synchronized void playAd() {
        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() {
                        getChildFragmentManager().beginTransaction().remove(mVideoDetailVideoAdFragment).commitAllowingStateLoss();
                        fl_ad.setVisibility(View.GONE);
                        adPlayFinish();
                    }
                    @Override
                    public void startPlay() {
                    }
                    @Override
                    public void noAd() {
                        fl_ad.setVisibility(View.GONE);
                        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() {
        webview.loadUrl("javascript:adPlayFinish()");
    }
}