admin
2021-04-19 c6be725216a8565daf5c01e947962256c04b4d44
视频详情页中来源修改
21个文件已修改
6个文件已添加
661 ■■■■ 已修改文件
BuWanVideo/build.gradle 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn_highlight.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable-xhdpi/ic_video_resource_input.png 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_gold_corn_coupon_exchange_bg.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_gold_corn_coupon_video_bg.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_video_resource_list_bg.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/drawable/shape_video_resource_list_cancel_bg.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_gold_corn_coupon.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_gold_corn_sign_in.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_resource.xml 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/layout/item_video_resource_list.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/res/values/colors.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoAPI.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/GoldCornTask.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInGoldCornDateData.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInInfo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/VideoResourceListDialog.java 190 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/goldcorn/GoldCornAdapter.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/main/GoldCornFragment.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/BrowserActivity.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/JumpActivityUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/src/com/weikou/beibeivideo/util/video/VideoUIUtil.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-gallery/src/main/java/com/lzj/gallery/library/adapter/BannerPagerAdapter.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
library-gallery/src/main/java/com/lzj/gallery/library/views/BannerViewPager.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
BuWanVideo/build.gradle
@@ -66,6 +66,8 @@
    //加载动画库
    implementation 'com.github.ybq:Android-SpinKit:1.4.0'
    implementation 'com.qhutch.elevationimageview:elevationimageview:2.4'
}
android {
    signingConfigs {
BuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn.png

BuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn_highlight.png

BuWanVideo/res/drawable-xhdpi/ic_video_resource_input.png
BuWanVideo/res/drawable/shape_gold_corn_coupon_exchange_bg.xml
@@ -1,17 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#fffeebb1" />
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">2</item>
    <item name="android:shadowColor">#ffffdc73</item>
    <corners android:radius="30dp" />
    <padding
        android:bottom="6dp"
        android:left="57dp"
        android:right="57dp"
        android:top="6dp"></padding>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
</shape>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#FFDC73" />
            <corners android:radius="30dp" />
        </shape>
    </item>
    <item android:bottom="2dp">
        <shape android:shape="rectangle">
            <solid android:color="#fffeebb1" />
            <corners android:radius="30dp" />
            <padding
                android:bottom="6dp"
                android:left="57dp"
                android:right="57dp"
                android:top="6dp"></padding>
        </shape>
    </item>
</layer-list>
BuWanVideo/res/drawable/shape_gold_corn_coupon_video_bg.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">2</item>
    <item name="android:shadowColor">#4d1c1c1c</item>
    <shape>
        <corners android:radius="6dp" />
    </shape>
</layer-list>
BuWanVideo/res/drawable/shape_video_resource_list_bg.xml
New file
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/white"></solid>
    <corners
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"></corners>
</shape>
BuWanVideo/res/drawable/shape_video_resource_list_cancel_bg.xml
New file
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="#ffffffff" />
    <stroke
        android:width="1dp"
        android:color="#59cdcdcd" />
    <corners
        android:bottomLeftRadius="25dp"
        android:bottomRightRadius="25dp"
        android:topLeftRadius="25dp"
        android:topRightRadius="25dp" />
</shape>
BuWanVideo/res/layout/item_gold_corn_coupon.xml
@@ -37,6 +37,9 @@
                android:layout_height="wrap_content"
                android:layout_gravity="center|top"
                android:layout_marginLeft="80dp"
                android:shadowColor="#4d1c1c1c"
                android:shadowDx="0"
                android:shadowDy="10"
                android:layout_marginTop="11dp"
                android:background="@drawable/ic_login_bg_w"
                app:ratio="1.39">
@@ -45,7 +48,8 @@
                    android:id="@+id/iv_cover_3"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="fitXY"></ImageView>
                    android:scaleType="fitXY"
                 ></ImageView>
            </com.lcjian.library.widget.RatioLayout>
@@ -63,13 +67,16 @@
                    android:id="@+id/iv_cover_2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:scaleType="fitXY"></ImageView>
                    android:scaleType="fitXY"
                    android:shadowColor="#4d1c1c1c"
                    android:shadowDx="0"
                    android:shadowDy="2"></ImageView>
            </com.lcjian.library.widget.RatioLayout>
            <com.lcjian.library.widget.RatioLayout
                android:layout_width="90dp"
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_gravity="center|top"
                android:background="@drawable/ic_login_bg_w"
BuWanVideo/res/layout/item_gold_corn_sign_in.xml
@@ -53,6 +53,8 @@
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="5.5dp"
                        android:drawableLeft="@drawable/icon_gold_corn"
                        android:drawablePadding="2dp"
                        android:text="888888"
                        android:textColor="#ff0080ff"
                        android:textSize="12sp" />
@@ -123,12 +125,12 @@
                        android:background="@drawable/selector_sign_in_btn_bg"
                        android:drawableLeft="@drawable/icon_sign_in"
                        android:drawablePadding="6dp"
                        android:enabled="true"
                        android:paddingLeft="27dp"
                        android:paddingTop="13dp"
                        android:paddingRight="27dp"
                        android:paddingBottom="13dp"
                        android:text="立即签到"
                        android:enabled="true"
                        android:textColor="#ffffffff"
                        android:textSize="18sp" />
                </FrameLayout>
@@ -140,8 +142,8 @@
                    android:layout_marginTop="7dp"
                    android:background="@drawable/shape_gold_corn_sign_in_cout_bg"
                    android:text="连续签到:99天"
                    android:textSize="12sp"
                    android:textColor="#FFFFFF"></TextView>
                    android:textColor="#FFFFFF"
                    android:textSize="12sp"></TextView>
            </LinearLayout>
@@ -171,9 +173,9 @@
                android:layout_height="wrap_content"
                android:layout_gravity="top"
                android:layout_marginTop="13dp"
                android:paddingRight="3dp"
                android:gravity="center_vertical"
                android:paddingLeft="3dp"
                android:gravity="center_vertical">
                android:paddingRight="3dp">
                <View
                    android:id="@+id/v_space_1"
BuWanVideo/res/layout/item_resource.xml
@@ -1,29 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="40dp"
    android:background="@color/page_content_bg_color">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@color/page_content_bg_color"
    android:gravity="center"
    android:paddingLeft="25dp"
    android:paddingRight="28dp">
    <LinearLayout
        android:layout_width="match_parent"
    <ImageView
        android:id="@+id/iv_resource"
        android:layout_width="35dp"
        android:layout_height="35dp" />
    <TextView
        android:id="@+id/tv_resource"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:paddingTop="5dp"
        android:paddingBottom="5dp">
        android:layout_marginLeft="17.5dp"
        android:layout_weight="1"
        android:gravity="left"
        android:text="爱奇艺"
        android:textColor="@color/video_detail_resource_text_color"
        android:textSize="20sp" />
        <ImageView
            android:id="@+id/iv_resource"
            android:layout_width="wrap_content"
            android:layout_height="15dp" />
    <TextView
        android:id="@+id/tv_input"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_video_resource_input"
        android:drawablePadding="8.5dp"
        android:text="当前浏览"
        android:textColor="#ff666666"
        android:textSize="13sp" />
        <TextView
            android:id="@+id/tv_resource"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:gravity="center"
            android:textColor="@color/video_detail_resource_text_color" />
    </LinearLayout>
</FrameLayout>
</LinearLayout>
BuWanVideo/res/layout/item_video_resource_list.xml
New file
@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/shape_video_resource_list_bg"
    android:orientation="vertical">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:gravity="center"
        android:text="浏览内容来源"
        android:textColor="#ff010101"
        android:textSize="18sp" />
    <View
        android:layout_width="match_parent"
        android:layout_height="1px"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="5dp"
        android:background="#CDCDCD"></View>
    <ListView
        android:id="@+id/lv_resources"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:divider="@null"
        android:listSelector="@null"
        android:maxHeight="300dp"></ListView>
    <TextView
        android:id="@+id/tv_cancel"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="10dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/shape_video_resource_list_cancel_bg"
        android:gravity="center"
        android:text="取  消"
        android:textColor="#ff010101"
        android:textSize="18sp" />
</LinearLayout>
BuWanVideo/res/values/colors.xml
@@ -135,7 +135,7 @@
    <color name="video_detail_name_text_color">#000000</color>
    <color name="video_detail_content_text_color">#999999</color>
    <color name="video_detail_resource_text_color">#666666</color>
    <color name="video_detail_resource_text_color">#333333</color>
    <color name="video_detail_resource_bg_color">#F0F0F0</color>
    <color name="video_detail_follow_bg_color">#FAFAFA</color>
    <color name="video_detail_follow_text_color">#666666</color>
BuWanVideo/src/com/weikou/beibeivideo/BeibeiVideoAPI.java
@@ -1435,6 +1435,19 @@
        commonPost(context, BASE_URL + "goldcorn/signIn", params, handler);
    }
    //是否可以做金币任务
    public static void canDoGoldCornTask(Context context, String code,
                                         ResponseHandlerInterface handler) {
        String loginUid = UserUtil.getLoginUid(context);
        LinkedHashMap<String, String> params = new LinkedHashMap<>();
        if (loginUid != null)
            params.put("loginUid", loginUid);
        params.put("code", code);
        commonPost(context, BASE_URL + "goldcorn/canDoTask", params, handler);
    }
    //获取可以兑换券的视频
    public static void getGoldCornCouponVideoList(Context context,
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/GoldCornTask.java
@@ -4,6 +4,7 @@
public class GoldCornTask {
    private String sourceCode;
    private String icon;
    private String title;
    private String goldCorn;
@@ -13,6 +14,13 @@
    private String params;
    private boolean enable;
    public String getSourceCode() {
        return sourceCode;
    }
    public void setSourceCode(String sourceCode) {
        this.sourceCode = sourceCode;
    }
    public String getIcon() {
        return icon;
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInGoldCornDateData.java
@@ -1,6 +1,8 @@
package com.weikou.beibeivideo.entity.vo;
public class SignInGoldCornDateData {
import java.io.Serializable;
public class SignInGoldCornDateData implements Serializable {
    private String goldCorn;
    private String date;
    private boolean selected;
BuWanVideo/src/com/weikou/beibeivideo/entity/vo/SignInInfo.java
@@ -2,9 +2,10 @@
import com.weikou.beibeivideo.ui.goldcorn.GoldCornAdapter;
import java.io.Serializable;
import java.util.List;
public class SignInInfo {
public class SignInInfo implements Serializable {
    private int balance;
    private SignInConfig signInConfig;
    private List<SignInGoldCornDateData> dateList;
@@ -51,7 +52,7 @@
        this.signDay = signDay;
    }
    public static class SignInConfig {
    public static class SignInConfig implements Serializable{
        private String recordUrl;
        private String ruleUrl;
BuWanVideo/src/com/weikou/beibeivideo/ui/dialog/VideoResourceListDialog.java
New file
@@ -0,0 +1,190 @@
package com.weikou.beibeivideo.ui.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.androidquery.AQuery;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.lcjian.library.util.common.StringUtils;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.VideoResource;
import com.weikou.beibeivideo.entity.vo.PPTVWatchVIPVideoActivityWay;
import com.weikou.beibeivideo.util.DimenUtils;
import java.util.List;
/**
 * vip弹框
 */
public class VideoResourceListDialog extends Dialog {
    private static String TAG = VideoResourceListDialog.class.getName();
    public VideoResourceListDialog(Context context) {
        super(context);
        this.setCancelable(false);
    }
    public VideoResourceListDialog(Context context, int theme) {
        super(context, theme);
        this.setCancelable(false);
    }
    public static class Builder {
        private Activity context;
        public Builder(Activity context) {
            this.context = context;
        }
        private View.OnClickListener closeListener;
        private ItemClickListener itemClickListener;
        private List<VideoResource> resourceList;
        public Builder setCloseListener(View.OnClickListener listener) {
            this.closeListener = listener;
            return this;
        }
        public Builder setItemClickListener(ItemClickListener listener) {
            this.itemClickListener = listener;
            return this;
        }
        public Builder setVideoResources(List<VideoResource> resources) {
            this.resourceList = resources;
            return this;
        }
        public VideoResourceListDialog create() {
            LayoutInflater inflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            final VideoResourceListDialog dialog = new VideoResourceListDialog(context, R.style.Dialog);
            dialog.setCanceledOnTouchOutside(true);
            final View layout = inflater.inflate(R.layout.item_video_resource_list, null);
            AQuery aQuery = new AQuery(layout);
            aQuery.id(R.id.lv_resources).adapter(new ResourceAdapter(resourceList));
            aQuery.id(R.id.lv_resources).itemClicked(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    itemClickListener.onClick(position, resourceList.get(position));
                }
            });
            aQuery.id(R.id.tv_cancel).clicked(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (closeListener != null)
                        closeListener.onClick(v);
                }
            });
            dialog.setContentView(layout);
            WindowManager.LayoutParams params = dialog.getWindow()
                    .getAttributes();
            params.width = WindowManager.LayoutParams.MATCH_PARENT;
            params.height = WindowManager.LayoutParams.WRAP_CONTENT;
            dialog.getWindow().setAttributes(params);
            dialog.getWindow().setGravity(Gravity.BOTTOM);
            return dialog;
        }
        private class ResourceAdapter extends BaseAdapter {
            List<VideoResource> reList;
            public ResourceAdapter(List<VideoResource> list) {
                reList = list;
            }
            @Override
            public int getCount() {
                return reList.size();
            }
            @Override
            public Object getItem(int position) {
                return reList.get(position);
            }
            @Override
            public long getItemId(int position) {
                return position;
            }
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                View view = LayoutInflater.from(context).inflate(
                        R.layout.item_resource, null);
                ImageView iv = view.findViewById(R.id.iv_resource);
                TextView tv = view.findViewById(R.id.tv_resource);
                TextView tv_input = view.findViewById(R.id.tv_input);
                try {
                    Glide.with(iv)
                            .load(reList.get(position).getPicture())
                            .apply(new RequestOptions().placeholder(R.drawable.from_other).error(R.drawable.from_other))
                            .into(iv);
                } catch (IllegalArgumentException e) {
                    e.printStackTrace();
                }
                if (reList.get(position) == null
                        || StringUtils.isEmpty(reList.get(position).getName())) {
                    tv.setText("其它");
                } else {
                    tv.setText(reList.get(position).getName());
                }
                int background = 0;
                tv_input.setText(reList.get(position).isChecked() ? "当前浏览" : "");
                background = reList.get(position).isChecked() ? R.drawable.shape_video_detail_resource_middle_item_selected_bg : R.drawable.shape_video_detail_resource_middle_item_bg;
                ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, DimenUtils.dip2px(context, 64));
                view.setLayoutParams(params);
                view.setBackgroundResource(background);
                return view;
            }
        }
    }
    public interface MeasureCallBack {
        public void onMeasure(int height);
    }
    public interface ItemClickListener {
        public void onClick(int position, VideoResource videoResource);
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/goldcorn/GoldCornAdapter.java
@@ -99,6 +99,10 @@
            .create();
    public void setSignInfo(SignInInfo signInInfo) {
        this.signInInfo = signInInfo;
    }
    public GoldCornAdapter(Activity context, List<CouponVideoInfo> videoList, List<GoldCornTask> taskList, String couponExchangeUrl, SignInInfo signInInfo, IGoldCornActionListener taskClickListener) {
        this.mContext = context;
        this.mVideoList = videoList;
BuWanVideo/src/com/weikou/beibeivideo/ui/main/GoldCornFragment.java
@@ -9,7 +9,6 @@
import android.widget.ProgressBar;
import android.widget.Toast;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.FieldNamingPolicy;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@@ -46,11 +45,14 @@
import org.apache.http.Header;
import org.json.JSONArray;
import org.json.JSONObject;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
@@ -87,7 +89,14 @@
    @Override
    public void onResume() {
        super.onResume();
        if (refreshTask) {
            refreshTask = false;
            getTask();
        }
        if (refreshSignInfo) {
            refreshSignInfo = false;
            getSignInInfo();
        }
    }
@@ -111,6 +120,19 @@
        requestData();
    }
    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        if (savedInstanceState != null)
            signInInfo = (SignInInfo) savedInstanceState.getSerializable("signInfo");
    }
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState != null)
            signInInfo = (SignInInfo) savedInstanceState.getSerializable("signInfo");
    }
    private void initData() {
        mGoldCornAdapter = new GoldCornAdapter(getActivity(), videoList, taskList, couponExchangeUrl, signInInfo, this);
@@ -137,7 +159,9 @@
                    org.json.JSONObject data = jsonObject.optJSONObject("Data");
                    signInInfo = new Gson().fromJson(data.toString(), SignInInfo.class);
                    if (mGoldCornAdapter != null) {
                        mGoldCornAdapter.notifyItemChanged(0);
                        mGoldCornAdapter.setSignInfo(signInInfo);
                        if (mGoldCornAdapter.getItemCount() > 0)
                            mGoldCornAdapter.notifyItemChanged(0);
                    }
                    if (first) {
                        getCouponVideoList();
@@ -175,7 +199,7 @@
                    videoList = new Gson().fromJson(list.toString(), type);
                    if (first) {
                        getTask();
                    }else{
                    } else {
                        srl_goldcorn.setRefreshing(false);
                    }
                } else {
@@ -200,13 +224,22 @@
            public void onSuccessPerfect(int statusCode, Header[] headers, org.json.JSONObject jsonObject) throws Exception {
                if (jsonObject.optBoolean("IsPost")) {
                    org.json.JSONObject data = jsonObject.optJSONObject("Data");
                    JSONArray list = data.optJSONArray("list");
                    JSONArray array = data.optJSONArray("list");
                    Type type = new TypeToken<List<GoldCornTask>>() {
                    }.getType();
                    taskList = new Gson().fromJson(list.toString(), type);
                    List<GoldCornTask> list = new Gson().fromJson(array.toString(), type);
                    if (taskList == null)
                        taskList = list;
                    else {
                        taskList.clear();
                        taskList.addAll(list);
                    }
                    if (first) {
                        first = false;
                        initData();
                    } else {
                        if (mGoldCornAdapter.getItemCount() > 0)
                            mGoldCornAdapter.notifyItemChanged(mGoldCornAdapter.getItemCount() - 1);
                    }
                } else {
                    Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
@@ -230,6 +263,7 @@
                if (jsonObject.optBoolean("IsPost")) {
                    org.json.JSONObject data = jsonObject.optJSONObject("Data");
                    ToastUtil.showGetGoldGornToast(getContext(), "+" + data.optString("goldCorn"));
                    getSignInInfo();
                } else {
                    Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
                }
@@ -244,9 +278,24 @@
    }
    private boolean refreshTask = false;
    private boolean refreshSignInfo = false;
    @Override
    public void onClick(int p, GoldCornTask task) {
        JumpActivityUtil.jumpPage(getActivity(), task.getJumpDetail(), JumpActivityUtil.getParamsJSON(task.getParams()));
        BeibeiVideoAPI.canDoGoldCornTask(getContext(), task.getSourceCode(), new BasicTextHttpResponseHandler() {
            @Override
            public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
                if (jsonObject.optBoolean("IsPost")) {
                    JumpActivityUtil.jumpPage(getActivity(), task.getJumpDetail(), JumpActivityUtil.getParamsJSON(task.getParams()));
                    refreshTask = true;
                    refreshSignInfo = true;
                } else {
                    Toast.makeText(getContext(), jsonObject.optString("Error"), Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
    @Override
@@ -263,4 +312,11 @@
        public String goldcorn;
        public long expireTime;
    }
    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        outState.putSerializable("signInfo", signInInfo);
        super.onSaveInstanceState(outState);
    }
}
BuWanVideo/src/com/weikou/beibeivideo/ui/media/EpisodeFragment.java
@@ -10,8 +10,10 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
@@ -37,6 +39,7 @@
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.lcjian.library.RetainViewFragment;
import com.lcjian.library.dialog.DialogUtil;
import com.lcjian.library.util.SingleToast;
import com.lcjian.library.util.common.DimenUtils;
import com.lcjian.library.util.common.StringUtils;
@@ -61,6 +64,7 @@
import com.weikou.beibeivideo.entity.VideoResource;
import com.weikou.beibeivideo.entity.ad.ExpressAdContainer;
import com.weikou.beibeivideo.entity.video.FunshionPlayInfo;
import com.weikou.beibeivideo.ui.dialog.VideoResourceListDialog;
import com.weikou.beibeivideo.ui.login.LoginActivity;
import com.weikou.beibeivideo.ui.video.EpisodeNewAdapter;
import com.weikou.beibeivideo.util.UserUtil;
@@ -587,16 +591,13 @@
                        });
                break;
            case R.id.fl_report:
                if (popupWindow.isShowing()) {
                    // bug:listview 中的isShowing()可以正确获取而到了这里就一直不进入,原因是pop没设置焦点获取
                    popupWindow.dismiss();
                } else {// 出现在线下,并且居右
                    if (selectedUrl == null || selectedUrl.getPicture() == null) {
                    } else {
                        popupWindow.showAsDropDown(v, 0, 0);
                    }
                if (selectedUrl == null || selectedUrl.getPicture() == null) {
                } else {
                    DialogUtil.show(resourceListDialog);
                }
                break;
            case R.id.iv_offline_cache:
                Toast.makeText(ll_add_attention.getContext(), "暂时无法缓存!", Toast.LENGTH_SHORT).show();
@@ -688,8 +689,6 @@
        initResource();
    }
    private PopupWindow popupWindow;
    private ProgressDialog pd;
    private void setResource(String resource) {
@@ -697,6 +696,8 @@
        st.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.video_detail_resource_text_color)), 3, resource.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
        tv_video_resource.setText(st);
    }
    VideoResourceListDialog resourceListDialog;
    private void initResource() {
@@ -711,26 +712,18 @@
            }
            setResource(resource);
            popupWindow = new PopupWindow(
                    com.weikou.beibeivideo.util.DimenUtils.dip2px(getContext(), 120),
                    android.view.WindowManager.LayoutParams.WRAP_CONTENT);
            popupWindow.setOutsideTouchable(true);// 点击外部可点击
            popupWindow.setAnimationStyle(R.style.PopupAnimation);
            popupWindow.setFocusable(true);// 获取焦点
            if (resourceListDialog != null)
                DialogUtil.dismiss(resourceListDialog);
            ListView lv = new ListView(getContext());
            ListView.LayoutParams param = new ListView.LayoutParams(
                    FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
            lv.setLayoutParams(param);
            lv.setBackground(getResources().getDrawable(R.drawable.shape_video_detail_resource_bg));
            lv.setOnItemClickListener(new OnItemClickListener() {
            resourceListDialog = new VideoResourceListDialog.Builder(getActivity()).setCloseListener(new View.OnClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {
                    if (popupWindow.isShowing()) {
                        popupWindow.dismiss();
                    }
                public void onClick(View v) {
                    DialogUtil.dismiss(resourceListDialog);
                }
            }).setItemClickListener(new VideoResourceListDialog.ItemClickListener() {
                @Override
                public void onClick(int position, VideoResource videoResource) {
                    DialogUtil.dismiss(resourceListDialog);
                    if (selectedUrl.getId() != urlList.get(position).getId()) {
                        pd = new ProgressDialog(ll_add_attention.getContext());
                        pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条的形式为圆形转动的进度条
@@ -748,82 +741,15 @@
                    } else {
                        setResource("来源:" + selectedUrl.getName());
                    }
                }
            });
            lv.setAdapter(new ResourceAdapter(urlList));
            lv.setDividerHeight(0);
            popupWindow.setContentView(lv);
            /*
             * Window dialogWindow = dialog.getWindow(); dialogWindow.get
             */
            }).setVideoResources(mVideoInfo.getResourceList()).create();
        } else {
            tv_video_resource.setVisibility(View.GONE);
        }
    }
    private class ResourceAdapter extends BaseAdapter {
        List<VideoResource> reList;
        public ResourceAdapter(List<VideoResource> list) {
            reList = list;
        }
        @Override
        public int getCount() {
            return reList.size();
        }
        @Override
        public Object getItem(int position) {
            return reList.get(position);
        }
        @Override
        public long getItemId(int position) {
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view = LayoutInflater.from(ll_add_attention.getContext()).inflate(
                    R.layout.item_resource, null);
            ImageView iv = view.findViewById(R.id.iv_resource);
            TextView tv = view.findViewById(R.id.tv_resource);
            try {
                Glide.with(iv)
                        .load(reList.get(position).getPicture())
                        .apply(new RequestOptions().placeholder(R.drawable.from_other).error(R.drawable.from_other))
                        .into(iv);
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
            if (reList.get(position) == null
                    || StringUtils.isEmpty(reList.get(position).getName())) {
                tv.setText("其它");
            } else {
                tv.setText(reList.get(position).getName());
            }
            int background = 0;
            if (reList.size() <= 1) {
                background = reList.get(position).isChecked() ? R.drawable.shape_video_detail_resource_single_item_selected_bg : R.drawable.shape_video_detail_resource_single_item_bg;
            } else {
                if (position == 0) {
                    background = reList.get(position).isChecked() ? R.drawable.shape_video_detail_resource_top_item_selected_bg : R.drawable.shape_video_detail_resource_top_item_bg;
                } else if (position == reList.size() - 1) {
                    background = reList.get(position).isChecked() ? R.drawable.shape_video_detail_resource_bottom_item_selected_bg : R.drawable.shape_video_detail_resource_bottom_item_bg;
                } else {
                    background = reList.get(position).isChecked() ? R.drawable.shape_video_detail_resource_middle_item_selected_bg : R.drawable.shape_video_detail_resource_middle_item_bg;
                }
            }
            view.setBackgroundResource(background);
            return view;
        }
    }
    private void getVideoDetail(String videoId, final String resourceId,
                                String videoThirdType, final boolean isSetup, final String from) {
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/BrowserActivity.java
@@ -249,10 +249,19 @@
        tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
        tv_top_bar_left2.setText("关闭");
        if (getIntent().getBooleanExtra("close", true))
            tv_top_bar_left2.setVisibility(View.VISIBLE);
        else
            tv_top_bar_left2.setVisibility(View.GONE);
        try {
            if (getIntent().getBooleanExtra("close", true)) {
                String close = getIntent().getStringExtra("close");
                if (!StringUtils.isNullOrEmpty(close)) {
                    tv_top_bar_left2.setVisibility(Boolean.parseBoolean(close) ? View.VISIBLE : View.GONE);
                } else
                    tv_top_bar_left2.setVisibility(View.VISIBLE);
            } else
                tv_top_bar_left2.setVisibility(View.GONE);
        } catch (Exception e) {
        }
        tv_top_bar_left.setOnClickListener(this);
        tv_top_bar_left2.setOnClickListener(this);
BuWanVideo/src/com/weikou/beibeivideo/ui/mine/PPTVPlayFragment.java
@@ -161,6 +161,9 @@
                    adPlayFinish();
                }
                setLeftTime();
                String js = " $('video').on('timeupdate', function(event){ console.log('视频进度变化');});";
                webView.loadUrl("javascript:" + js);
            }
            @Override
BuWanVideo/src/com/weikou/beibeivideo/util/JumpActivityUtil.java
@@ -199,7 +199,8 @@
            {
                String webUrl = params.getString("url").toString();
                String title = params.getString("title");
                context.startActivity(new Intent(context, BrowserActivity.class).putExtra("url", webUrl).putExtra("title", title));
                String close=params.getString("close");
                context.startActivity(new Intent(context, BrowserActivity.class).putExtra("url", webUrl).putExtra("title", title).putExtra("close",close));
            }
BuWanVideo/src/com/weikou/beibeivideo/util/video/VideoUIUtil.java
@@ -5,6 +5,7 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.AbsoluteSizeSpan;
@@ -19,6 +20,7 @@
import com.lcjian.library.util.common.DimenUtils;
import com.lcjian.library.util.common.StringUtils;
import com.lcjian.library.util.glide.GlideRoundTransform;
import com.qhutch.elevationimageview.ElevationImageView;
import com.weikou.beibeivideo.R;
import com.weikou.beibeivideo.entity.HomeVideo;
import com.weikou.beibeivideo.entity.VideoInfo;
@@ -127,6 +129,17 @@
            viewHolder.iv_high.setVisibility(View.GONE);
        }
        if (StringUtils.isEmpty(info.getSubTitle())) {
            viewHolder.tv_movie_sub_title.setVisibility(View.GONE);
            viewHolder.tv_movie_title.setLines(2);
        } else {
            viewHolder.tv_movie_sub_title.setVisibility(View.VISIBLE);
            viewHolder.tv_movie_title.setLines(1);
        }
        viewHolder.tv_movie_sub_title.setText(info.getSubTitle() == null ? "" : info.getSubTitle());
    }
library-gallery/src/main/java/com/lzj/gallery/library/adapter/BannerPagerAdapter.java
@@ -12,8 +12,8 @@
import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
import com.example.guangdiantongsdk.R;
import com.lcjian.library.widget.RatioLayout;
import com.lzj.gallery.library.R;
import java.util.List;
library-gallery/src/main/java/com/lzj/gallery/library/views/BannerViewPager.java
@@ -16,7 +16,7 @@
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import com.example.guangdiantongsdk.R;
import com.lzj.gallery.library.R;
import com.lzj.gallery.library.adapter.BannerPagerAdapter;
import com.lzj.gallery.library.transformer.ZoomPageTransformer;