admin
2021-02-04 34a18e852c1e3b5da43da02e6bdeab6b28a1fdd2
PPTV与个人信息页面绑定完成
15个文件已修改
1个文件已添加
1033 ■■■■ 已修改文件
BuWanVideo/res/drawable/shape_person_info_bind_btn.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/activity_person_info.xml 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/browser_pptv_activity.xml 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/values/colors.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/values/styles.xml 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/doudou/ysvideo/wxapi/WXEntryActivity.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/UserInfoVO.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/common/ListVideoAdapter.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PersonInfoActivity.java 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java 176 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/UserUtil.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/browser/PPJavaInterface.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_person_info_bind_btn.xml
New file
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <corners android:radius="20dp" />
    <solid android:color="#ff0052f6" />
</shape>
BuWanVideo/res/layout/activity_person_info.xml
@@ -2,6 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#4C4C4C"
    android:orientation="vertical">
    <View
@@ -32,191 +33,244 @@
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:paddingBottom="6dp"
            android:paddingTop="6dp"
            android:paddingBottom="6dp"
            android:text="个人资料"
            android:textColor="@color/white"
            android:textSize="20sp" />
        <TextView
            android:id="@+id/tv_top_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:padding="8dp"
            android:paddingBottom="6dp"
            android:paddingTop="6dp"
            android:text="完成"
            android:textColor="@color/white"
            android:textSize="16sp" />
    </FrameLayout>
    <LinearLayout
        android:id="@+id/ll_portrait_select"
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_marginTop="20dp"
        android:background="@color/white"
        android:orientation="horizontal">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="修改头像" />
        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1" />
        <ImageView
            android:id="@+id/iv_portrai_select"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:scaleType="centerInside"
            android:src="@drawable/ic_portrait_default" />
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:src="@drawable/ic_input" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_nickName"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginTop="10dp"
        android:background="@color/white">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="昵称" />
        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1" />
        <TextView
            android:id="@+id/tv_nickName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:drawablePadding="3dp"
            android:drawableRight="@drawable/ic_input"
            android:text="编辑昵称"
            android:textColor="@color/gray" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_birthday"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginTop="1dp"
        android:background="@color/white">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="生日" />
        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1" />
        <TextView
            android:id="@+id/tv_birthday"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:drawablePadding="3dp"
            android:drawableRight="@drawable/ic_input"
            android:text="点击设置生日"
            android:textColor="@color/gray" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_sex"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_marginTop="1dp"
        android:background="@color/white">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="20dp"
            android:text="性别" />
        <View
            android:layout_width="0dp"
            android:layout_height="1px"
            android:layout_weight="1" />
        <TextView
            android:id="@+id/tv_sex"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:drawablePadding="3dp"
            android:drawableRight="@drawable/ic_input"
            android:text="男"
            android:textColor="@color/gray" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/ll_autograph"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@color/white">
        android:layout_height="0dp"
        android:layout_weight="1">
        <LinearLayout
            android:layout_width="0dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="5dp"
            android:layout_marginTop="5dp"
            android:layout_weight="1"
            android:orientation="vertical">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:text="个性签名" />
            <LinearLayout
                android:id="@+id/ll_portrait_select"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="6dp">
            <TextView
                android:id="@+id/tv_autograph"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="5dp"
                android:text="个性签名"
                android:textColor="@color/gray" />
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:text="头像" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1px"
                    android:layout_weight="1" />
                <ImageView
                    android:id="@+id/iv_portrai_select"
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_gravity="center_vertical"
                    android:layout_marginRight="13.5dp"
                    android:scaleType="centerInside"
                    android:src="@drawable/ic_portrait_default" />
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:src="@drawable/ic_input" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_nickName"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="1dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:text="昵称" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1px"
                    android:layout_weight="1" />
                <TextView
                    android:id="@+id/tv_nickName"
                    style="@style/personInfoItemContentStyle"
                    android:text="编辑昵称" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_sex"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="1dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:text="性别" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1px"
                    android:layout_weight="1" />
                <TextView
                    android:id="@+id/tv_sex"
                    style="@style/personInfoItemContentStyle"
                    android:text="男" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_birthday"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="1dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:text="出生日期" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1px"
                    android:layout_weight="1" />
                <TextView
                    android:id="@+id/tv_birthday"
                    style="@style/personInfoItemContentStyle"
                    android:text="点击设置生日" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_autograph"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="10dp">
                <LinearLayout
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:layout_weight="1"
                    android:orientation="vertical">
                    <TextView
                        style="@style/personInfoItemTitleStyle"
                        android:text="个性签名" />
                    <TextView
                        android:id="@+id/tv_autograph"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="19dp"
                        android:text="个性签名"
                        android:textColor="@color/gray" />
                </LinearLayout>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:src="@drawable/ic_input" />
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_qq"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="10dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:drawableLeft="@drawable/icon_person_info_qq"
                    android:drawablePadding="13dp"
                    android:gravity="center"
                    android:text="QQ" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1dp"
                    android:layout_weight="1"></View>
                <TextView
                    android:visibility="gone"
                    android:id="@+id/tv_bind_qq"
                    style="@style/personInfoBindBtnStyle"
                    android:background="@drawable/shape_person_info_bind_btn"
                    android:text="去绑定"></TextView>
                <TextView
                    android:id="@+id/tv_qq"
                    style="@style/personInfoItemContentStyle"
                    android:drawableRight="@null"
                    android:drawablePadding="0dp"></TextView>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_wx"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="1dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:drawableLeft="@drawable/icon_person_info_wx"
                    android:drawablePadding="13dp"
                    android:gravity="center"
                    android:text="微信" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1dp"
                    android:layout_weight="1"></View>
                <TextView
                    android:visibility="gone"
                    android:id="@+id/tv_bind_wx"
                    style="@style/personInfoBindBtnStyle"
                    android:background="@drawable/shape_person_info_bind_btn"
                    android:text="去绑定"></TextView>
                <TextView
                    android:id="@+id/tv_wx"
                    style="@style/personInfoItemContentStyle"
                    android:drawableRight="@null"
                    android:drawablePadding="0dp"></TextView>
            </LinearLayout>
            <LinearLayout
                android:id="@+id/ll_phone"
                style="@style/personInfoItemStyle"
                android:layout_marginTop="1dp">
                <TextView
                    style="@style/personInfoItemTitleStyle"
                    android:drawableLeft="@drawable/icon_person_info_phone"
                    android:drawablePadding="13dp"
                    android:gravity="center"
                    android:text="手机号" />
                <View
                    android:layout_width="0dp"
                    android:layout_height="1dp"
                    android:layout_weight="1"></View>
                <TextView
                    android:visibility="gone"
                    android:id="@+id/tv_bind_phone"
                    style="@style/personInfoBindBtnStyle"
                    android:background="@drawable/shape_person_info_bind_btn"
                    android:text="去绑定"></TextView>
                <TextView
                    android:id="@+id/tv_phone"
                    style="@style/personInfoItemContentStyle"
                    android:drawableRight="@null"
                    android:drawablePadding="0dp"></TextView>
            </LinearLayout>
        </LinearLayout>
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="20dp"
            android:src="@drawable/ic_input" />
    </LinearLayout>
    </ScrollView>
</LinearLayout>
BuWanVideo/res/layout/browser_pptv_activity.xml
@@ -2,26 +2,25 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:background="#000000"
    android:orientation="vertical">
    <FrameLayout
        android:id="@+id/fl_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <com.weikou.beibeivideo.util.x5.X5WebView
        <WebView
            android:id="@+id/webview"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <FrameLayout
            android:visibility="gone"
            android:id="@+id/fl_ad"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            android:layout_height="wrap_content"
            android:visibility="gone">
        </FrameLayout>
@@ -32,13 +31,13 @@
            style="@style/TextBuleNormal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:layout_gravity="left|top"
            android:drawableLeft="@drawable/ic_back_two"
            android:drawablePadding="3dp"
            android:gravity="center"
            android:layout_gravity="left|top"
            android:padding="8dp" />
    </FrameLayout>
BuWanVideo/res/values/colors.xml
@@ -45,7 +45,7 @@
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
    <color name="colorLoading">#0052F6</color>
    <color name="colorLoading">#0052f6</color>
BuWanVideo/res/values/styles.xml
@@ -288,4 +288,53 @@
        <item name="android:textSize">14sp</item>
    </style>
    <style name="personInfoItemStyle">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:paddingBottom">19dp</item>
        <item name="android:paddingTop">19dp</item>
        <item name="android:paddingLeft">19dp</item>
        <item name="android:paddingRight">19dp</item>
        <item name="android:background">#5C5C5C</item>
        <item name="android:gravity">center_vertical</item>
    </style>
    <style name="personInfoItemTitleStyle">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:textSize">16dp</item>
    </style>
    <style name="personInfoItemContentStyle">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:textSize">14dp</item>
        <item name="android:drawableRight">@drawable/ic_input</item>
        <item name="android:drawablePadding">13.5dp</item>
    </style>
    <style name="personInfoBindBtnStyle">
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_gravity">center_vertical</item>
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:textSize">14sp</item>
        <item name="android:paddingBottom">6.5dp</item>
        <item name="android:paddingTop">6.5dp</item>
        <item name="android:paddingLeft">18dp</item>
        <item name="android:paddingRight">18dp</item>
        <item name="android:gravity">center</item>
    </style>
</resources>
BuWanVideo/src/com/doudou/ysvideo/wxapi/WXEntryActivity.java
@@ -1,6 +1,7 @@
package com.doudou.ysvideo.wxapi;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
@@ -8,6 +9,7 @@
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -21,6 +23,7 @@
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
import com.weikou.beibeivideo.util.UserUtil;
import org.apache.http.Header;
@@ -31,7 +34,8 @@
    private static final int RETURN_MSG_TYPE_LOGIN = 1;
    private static final int RETURN_MSG_TYPE_SHARE = 2;
    private static final int RETURN_MSG_TYPE_XCX = 19;
    private ProgressDialog dialog;
    private static final int RETURN_MSG_TYPE_BIND = 30;
    private Dialog dialog;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -48,12 +52,13 @@
        }
        //如果没回调onResp,八成是这句没有写
        BeibeiVideoApplication.application.mWxApi.handleIntent(getIntent(), this);
        dialog = new ProgressDialog(this);
        dialog = LoadingDialogUtil.getLoadingDialog(this, "");
    }
    // 微信发送请求到第三方应用时,会回调到该方法
    @Override
    public void onReq(BaseReq req) {
    }
    // 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@@ -78,16 +83,18 @@
                switch (resp.getType()) {
                    case RETURN_MSG_TYPE_LOGIN:
                        SendAuth.Resp res = (SendAuth.Resp) resp;
                        setLogin(res.code);
                        if ("bind".equalsIgnoreCase(res.state)) {
                            bind(res.code);
                        } else {
                            login(res.code);
                        }
                        break;
                    case RETURN_MSG_TYPE_SHARE:
//                        UIUtils.showToast("微信分享成功");
                        finish();
                        break;
                    case RETURN_MSG_TYPE_XCX:
//                        UIUtils.showToast("微信分享成功");
                        finish();
                        break;
@@ -100,7 +107,7 @@
    /**
     * 请求服务器匹配验证码
     */
    private void setLogin(String code) {
    private void login(String code) {
        BeibeiVideoAPI.wxLogin(this, UserUtil.getUid(this), code, new BasicTextHttpResponseHandler() {
            @Override
@@ -154,4 +161,48 @@
            }
        });
    }
    /**
     * 请求服务器匹配验证码
     */
    private void bind(String code) {
        BeibeiVideoAPI.bindWX(this, UserUtil.getLoginUid(this), code, new BasicTextHttpResponseHandler() {
            @Override
            public void onStart() {
                super.onStart();
                if (!dialog.isShowing())
                    dialog.show();
            }
            @Override
            public void onFinish() {
                super.onFinish();
                if (dialog.isShowing())
                    dialog.dismiss();
            }
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optBoolean("IsPost")) {
                    SingleToast.showToast(getApplicationContext(),
                            "微信绑定成功");
                } else {
                    SingleToast.showToast(WXEntryActivity.this,
                            jsonObject.optString("Error"));
                }
                WXEntryActivity.this.finish();
            }
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                super.onFailure(statusCode, headers, responseString, throwable);
                SingleToast.showToast(getApplicationContext(),
                        "微信绑定失败");
                WXEntryActivity.this.finish();
            }
        });
    }
}
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/UserInfoVO.java
@@ -10,7 +10,7 @@
    private String birthday;
    private String sign;
    private String pptvUid;
    private String pptvCode;
    //绑定的电话号码
    private String qqOpenId;
@@ -72,12 +72,12 @@
        this.sign = sign;
    }
    public String getPptvUid() {
        return pptvUid;
    public String getPptvCode() {
        return pptvCode;
    }
    public void setPptvUid(String pptvUid) {
        this.pptvUid = pptvUid;
    public void setPptvCode(String pptvCode) {
        this.pptvCode = pptvCode;
    }
    public String getQqOpenId() {
BuWanVideo/src/com/weikou/beibeivideo/ui/ad/PlayVideoPreADFragment.java
@@ -50,6 +50,8 @@
 */
public class PlayVideoPreADFragment extends Fragment implements View.OnClickListener {
    private int AD_DURATION = 10;
    private final static String TAG = PlayVideoPreADFragment.class.getName();
    private MediaView mediaView;
@@ -99,7 +101,10 @@
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        Bundle bundle = getArguments();
        if (bundle != null) {
            AD_DURATION = bundle.getInt("skipDuration", 5);
        }
        View root = LayoutInflater.from(getContext()).inflate(R.layout.item_video_detail_ad, null);
        initView(root);
@@ -314,8 +319,8 @@
                                @Override
                                public void onVideoStart() {
                                    Log.d(TAG, "onVideoStart");
                                    if (ad.getVideoDuration() / 1000 > 5)
                                        remainTime = 5;
                                    if (ad.getVideoDuration() / 1000 > AD_DURATION)
                                        remainTime = AD_DURATION;
                                    else
                                        remainTime = ad.getVideoDuration() / 1000;
@@ -412,6 +417,7 @@
        tv_skip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.i(TAG, "点击跳过");
                if (mGDTAdData != null)
                    mGDTAdData.stopVideo();
                if (videoAdListener != null)
BuWanVideo/src/com/weikou/beibeivideo/ui/common/ListVideoAdapter.java
@@ -1,8 +1,5 @@
package com.weikou.beibeivideo.ui.common;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
@@ -19,16 +16,16 @@
import com.bumptech.glide.Glide;
import com.bumptech.glide.RequestManager;
import com.lcjian.library.util.common.StringUtils;
import com.weikou.beibeivideo.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.VideoInfo;
import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
import com.weikou.beibeivideo.ui.media.VideoDetailActivity2;
import com.weikou.beibeivideo.ui.mine.MyFavouriteActivity;
import com.weikou.beibeivideo.ui.recent.DownloadAdapter2.IGetDeleteCallback;
import java.util.ArrayList;
import java.util.List;
public class ListVideoAdapter extends BaseAdapter {
BuWanVideo/src/com/weikou/beibeivideo/ui/login/LoginActivity.java
@@ -127,7 +127,7 @@
                    SingleToast.showToast(LoginActivity.this, "选择同意用户协议后方可登录");
                    break;
                }
                if (isQQClientAvailable()) {
                if (isQQClientAvailable(getApplicationContext())) {
                    loginType = "1";
                    // qq登录逻辑处理 点击登录后需要暂时锁定返回键和返回功能 不然会报错
                    lockBack(true);
@@ -142,7 +142,7 @@
                    SingleToast.showToast(LoginActivity.this, "选择同意用户协议后方可登录");
                    break;
                }
                if (isWXClientAvailable()) {
                if (isWXClientAvailable(getApplicationContext())) {
                    loginType = "2";
                    SendAuth.Req req = new SendAuth.Req();
                    req.scope = "snsapi_userinfo";
@@ -181,8 +181,8 @@
    /**
     * 判断qq是否可用
     */
    public boolean isQQClientAvailable() {
        final PackageManager packageManager = getPackageManager();
    public static boolean isQQClientAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
@@ -195,8 +195,8 @@
        return false;
    }
    public boolean isWXClientAvailable() {
        final PackageManager packageManager = getPackageManager();
    public static boolean isWXClientAvailable(Context context) {
        final PackageManager packageManager = context.getPackageManager();
        List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
        if (pinfo != null) {
            for (int i = 0; i < pinfo.size(); i++) {
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PersonInfoActivity.java
@@ -3,12 +3,14 @@
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.util.Base64;
@@ -20,16 +22,23 @@
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.google.gson.Gson;
import com.lcjian.library.util.Environment;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.StringUtils;
import com.tencent.mm.opensdk.modelmsg.SendAuth;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.BeibeiVideoApplication;
import com.weikou.beibeivideo.entity.vo.UserInfoVO;
import com.weikou.beibeivideo.ui.BaseActivity;
import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil;
import com.weikou.beibeivideo.util.BeibeiConstant;
import com.weikou.beibeivideo.util.GlideCircleTransform;
import com.weikou.beibeivideo.util.SelectPicUtil;
@@ -46,12 +55,15 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Calendar;
import java.util.Map;
/**
 * Created by weikou2015 on 2016/10/27.
 */
public class PersonInfoActivity extends BaseActivity implements View.OnClickListener {
    private String TAG = PersonInfoActivity.class.getSimpleName();
    private LinearLayout ll_portrait;
    private LinearLayout ll_nickName;
@@ -64,6 +76,17 @@
    private TextView tv_birthday;
    private TextView tv_sex;
    private TextView tv_autograph;
    private TextView tv_qq;
    private TextView tv_wx;
    private TextView tv_phone;
    private TextView tv_bind_qq;
    private TextView tv_bind_wx;
    private TextView tv_bind_phone;
    private Dialog loadingDialog;
    @Override
    protected void onCreate(Bundle arg0) {
@@ -96,14 +119,26 @@
        tv_sex = (TextView) findViewById(R.id.tv_sex);
        tv_autograph = (TextView) findViewById(R.id.tv_autograph);
        tv_qq = findViewById(R.id.tv_qq);
        tv_wx = findViewById(R.id.tv_wx);
        tv_phone = findViewById(R.id.tv_phone);
        tv_bind_qq = findViewById(R.id.tv_bind_qq);
        tv_bind_wx = findViewById(R.id.tv_bind_wx);
        tv_bind_phone = findViewById(R.id.tv_bind_phone);
        ll_portrait.setOnClickListener(this);
        ll_nickName.setOnClickListener(this);
        ll_birthday.setOnClickListener(this);
        ll_sex.setOnClickListener(this);
        ll_autograph.setOnClickListener(this);
        findViewById(R.id.tv_back).setOnClickListener(this);
        findViewById(R.id.tv_top_right).setOnClickListener(this);
        getPersonInfo();
        tv_bind_qq.setOnClickListener(this);
        tv_bind_wx.setOnClickListener(this);
        tv_bind_phone.setOnClickListener(this);
        loadingDialog = LoadingDialogUtil.getLoadingDialog(this, "");
    }
    private String sign = "";
@@ -118,25 +153,89 @@
                if (jsonObject.optBoolean("IsPost")) {
                    JSONObject data = jsonObject.optJSONObject("Data");
                    UserInfoVO userInfoVO = new Gson().fromJson(data.toString(), UserInfoVO.class);
                    Glide.with(PersonInfoActivity.this).load(BeibeiConstant.addPreFix(userInfoVO.getPortrait())).
                            placeholder(R.drawable.ic_portrait_default).error(R.drawable.ic_portrait_default).into(iv_portrait);
                    tv_nickName.setText(userInfoVO.getNickName());
                    tv_birthday.setText(userInfoVO.getBirthday());
                    tv_sex.setText(Integer.parseInt(userInfoVO.getSex()) == 0 ? "女" : "男");
                    sign = userInfoVO.getSign();
                    tv_autograph.setText(sign);
                    setData(userInfoVO);
                }
            }
        });
    }
    private void setData(UserInfoVO userInfoVO) {
        Glide.with(PersonInfoActivity.this).load(BeibeiConstant.addPreFix(userInfoVO.getPortrait())).
                placeholder(R.drawable.ic_portrait_default).error(R.drawable.ic_portrait_default).transform(new GlideCircleTransform(getApplicationContext())).into(iv_portrait);
        if (!StringUtils.isEmpty(userInfoVO.getNickName())) {
            tv_nickName.setText(userInfoVO.getNickName());
            tv_nickName.setTextColor(Color.WHITE);
        } else {
            tv_nickName.setText("未填写");
            tv_nickName.setTextColor(Color.GRAY);
        }
        if (!StringUtils.isEmpty(userInfoVO.getBirthday())) {
            tv_birthday.setText(userInfoVO.getBirthday());
            tv_birthday.setTextColor(Color.WHITE);
        } else {
            tv_birthday.setText("未填写");
            tv_birthday.setTextColor(Color.GRAY);
        }
        if (!StringUtils.isEmpty(userInfoVO.getSex())) {
            tv_sex.setText(Integer.parseInt(userInfoVO.getSex()) == 0 ? "女" : "男");
            tv_sex.setTextColor(Color.WHITE);
        } else {
            tv_sex.setText("未填写");
            tv_sex.setTextColor(Color.GRAY);
        }
        sign = userInfoVO.getSign();
        if (!StringUtils.isEmpty(userInfoVO.getSign())) {
            tv_autograph.setText(userInfoVO.getSign());
            tv_autograph.setTextColor(Color.WHITE);
        } else {
            tv_autograph.setText("未填写");
            tv_autograph.setTextColor(Color.GRAY);
        }
        if (!StringUtils.isEmpty(userInfoVO.getQqOpenId())) {
            tv_qq.setText(userInfoVO.getQqNickName());
            tv_bind_qq.setVisibility(View.GONE);
            tv_qq.setVisibility(View.VISIBLE);
        } else {
            tv_bind_qq.setVisibility(View.VISIBLE);
            tv_qq.setVisibility(View.GONE);
        }
        if (!StringUtils.isEmpty(userInfoVO.getWxUnionId())) {
            tv_wx.setText(userInfoVO.getWxName());
            tv_bind_wx.setVisibility(View.GONE);
            tv_wx.setVisibility(View.VISIBLE);
        } else {
            tv_bind_wx.setVisibility(View.VISIBLE);
            tv_wx.setVisibility(View.GONE);
        }
        if (!StringUtils.isEmpty(userInfoVO.getPhone())) {
            tv_phone.setText(userInfoVO.getPhone());
            tv_bind_phone.setVisibility(View.GONE);
            tv_phone.setVisibility(View.VISIBLE);
        } else {
            tv_bind_phone.setVisibility(View.VISIBLE);
            tv_phone.setVisibility(View.GONE);
        }
    }
    String imgBase64 = "";
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            Bitmap bm = null;
            bm = SelectPicUtil.onActivityResult(this, requestCode,
@@ -258,8 +357,87 @@
            case R.id.ll_autograph://个性签名
                getAutograph();
                break;
            case R.id.tv_top_right://完成个人信息的修改
                break;
            case R.id.tv_bind_qq:
                //绑定QQ
            {
                if (LoginActivity.isQQClientAvailable(getApplicationContext())) {
                    // qq登录逻辑处理 点击登录后需要暂时锁定返回键和返回功能 不然会报错
                    UMShareAPI.get(getApplicationContext()).getPlatformInfo(PersonInfoActivity.this, SHARE_MEDIA.QQ, new UMAuthListener() {
                        @Override
                        public void onStart(SHARE_MEDIA share_media) {
                            if (loadingDialog != null && !loadingDialog.isShowing())
                                loadingDialog.show();
                        }
                        @Override
                        public void onComplete(SHARE_MEDIA share_media, int i, Map<String, String> map) {
                            Log.d(TAG, "onComplete");
                            if (loadingDialog != null && loadingDialog.isShowing())
                                loadingDialog.dismiss();
                            String nickName = map.get("name");
                            String openid = map.get("openid");
                            String portrait = map.get("iconurl");
                            String sex = map.get("gender");
                            String province = map.get("province");
                            String city = map.get("city");
                            if (StringUtils.isEmpty(openid)) {
                                return;
                            }
                            BeibeiVideoAPI.bindQQ(PersonInfoActivity.this, UserUtil.getLoginUid(getApplicationContext()), nickName, portrait, openid, new BasicTextHttpResponseHandler() {
                                @Override
                                public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                                    if (jsonObject.optBoolean("IsPost")) {
                                        Toast.makeText(PersonInfoActivity.this, "QQ绑定成功", Toast.LENGTH_SHORT).show();
                                        getPersonInfo();
                                    } else {
                                        Toast.makeText(PersonInfoActivity.this, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
                                    }
                                }
                            });
                        }
                        @Override
                        public void onError(SHARE_MEDIA share_media, int i, Throwable throwable) {
                            throwable.printStackTrace();
                            Log.d(TAG, "onError");
                            if (loadingDialog != null && loadingDialog.isShowing())
                                loadingDialog.dismiss();
                            Toast.makeText(PersonInfoActivity.this, "QQ授权出错,请稍后再试", Toast.LENGTH_SHORT).show();
                        }
                        @Override
                        public void onCancel(SHARE_MEDIA share_media, int i) {
                            Log.d(TAG, "onCancel");
                            if (loadingDialog != null && loadingDialog.isShowing())
                                loadingDialog.dismiss();
                        }
                    });
                } else {
                    Toast.makeText(this, "QQ不可用,请查询手机是否安装QQ...", Toast.LENGTH_LONG).show();
                }
            }
            break;
            case R.id.tv_bind_wx: {
                if (LoginActivity.isWXClientAvailable(getApplicationContext())) {
                    SendAuth.Req req = new SendAuth.Req();
                    req.scope = "snsapi_userinfo";
                    req.state = "bind";
                    BeibeiVideoApplication.application.mWxApi.sendReq(req);
                } else {
                    Toast.makeText(this, "微信不可用,请查询手机是否安装微信...", Toast.LENGTH_LONG).show();
                }
            }
            break;
            case R.id.tv_bind_phone: {
                Intent intent = new Intent(this, PhoneLoginActivity.class);
                intent.putExtra("login", false);
                startActivity(intent);
            }
            break;
        }
    }
@@ -417,4 +595,12 @@
            }
        });
    }
    @Override
    public void onResume() {
        super.onResume();
        getPersonInfo();
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/login/PhoneLoginActivity.java
@@ -255,7 +255,7 @@
            case R.id.tv_obtain_verfication_code:
                String phone = et_phone.getText().toString();
                if (!StringUtils.isMobileNumber(phone)) {
                    SingleToast.showToast(this, "请输入正确的电话号码");
                    SingleToast.showToast(this, "请输入正确的手机号");
                    break;
                }
                tv_obtain_verfication_code.setEnabled(false);
@@ -271,7 +271,7 @@
                String phone1 = et_phone.getText().toString();
                String verficationCode = et_verfication_code.getText().toString();
                if (!StringUtils.isMobileNumber(phone1)) {
                    SingleToast.showToast(this, "请输入正确的电话号码");
                    SingleToast.showToast(this, "请输入正确的手机号");
                    return;
                }
                if (StringUtils.isEmpty(verficationCode)) {
@@ -343,7 +343,7 @@
                    break;
                default:
                    if (showOneKeyLoginToast) {
                        Toast.makeText(this, "暂无法使用电话号码一键登录", Toast.LENGTH_SHORT).show();
                        Toast.makeText(this, "暂无法使用手机号一键登录", Toast.LENGTH_SHORT).show();
                    }
                    break;
            }
BuWanVideo/src/com/weikou/beibeivideo/ui/media/VideoDetailActivity2.java
@@ -740,9 +740,6 @@
                    @Override
                    public void onStart() {
                        super.onStart();
                        // if (BeibeiConstant.DEBUG)
                        // Toast.makeText(VideoDetailActivity2.this, "onStart",
                        // Toast.LENGTH_SHORT).show();
                    }
                    @Override
@@ -750,9 +747,6 @@
                                          String responseString, Throwable throwable) {
                        super.onFailure(statusCode, headers, responseString,
                                throwable);
                        // if (BeibeiConstant.DEBUG)
                        // Toast.makeText(VideoDetailActivity2.this, "onFailure",
                        // Toast.LENGTH_SHORT).show();
                        if (progressDialog.isShowing()) {
                            progressDialog.dismiss();
                        }
@@ -769,19 +763,6 @@
                                                 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,
@@ -796,6 +777,22 @@
                            e.printStackTrace();
                        }
                        if (jsonObject.getBoolean("IsPost")) {
                            JSONObject data = jsonObject.optJSONObject("Data");
                            boolean pptv = data.optBoolean("pptv", false);
                            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);
                            }
                            findViewById(R.id.fragment_video_detail_container)
                                    .setVisibility(View.VISIBLE);
                            findViewById(R.id.fragment_video_episode_container)
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()");
    }
}
BuWanVideo/src/com/weikou/beibeivideo/util/UserUtil.java
@@ -196,5 +196,22 @@
    }
    public static boolean isVIP(Context context) {
        UserInfoVO vo = getLoginUserInfoDetail(context);
        if (vo == null) {
            return false;
        }
        if (vo.getVipExpireTime() == null) {
            return false;
        }
        if (System.currentTimeMillis() > vo.getVipExpireTime().longValue()) {
            return false;
        }
        return true;
    }
}
BuWanVideo/src/com/weikou/beibeivideo/util/browser/PPJavaInterface.java
@@ -72,9 +72,9 @@
            } else {
                root.put("code", 1);
                JSONObject data = new JSONObject();
                data.put("code", user.getPptvUid());
                data.put("code", user.getPptvCode());
                data.put("nickname", user.getNickName());
                data.put("isSVip", (user.getVipExpireTime() != null && user.getVipExpireTime() > System.currentTimeMillis()));
                data.put("isSVip", UserUtil.isVIP(mContext));
                data.put("isCoupon", false);
                root.put("data", data);
            }