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.pngBuWanVideo/res/drawable-xhdpi/ic_nav_gold_corn_highlight.pngBuWanVideo/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;