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); }