Sheffi 7 miesięcy temu
rodzic
commit
608d1ebf53
26 zmienionych plików z 647 dodań i 33 usunięć
  1. 1 0
      ybvideoandroid/common/src/main/java/com/yunbao/common/Constants.java
  2. 10 0
      ybvideoandroid/common/src/main/res/values-en-rUS/strings.xml
  3. 10 0
      ybvideoandroid/common/src/main/res/values/strings.xml
  4. 9 9
      ybvideoandroid/config.gradle
  5. 9 8
      ybvideoandroid/main/src/main/java/com/yunbao/main/activity/MainActivity.java
  6. 15 1
      ybvideoandroid/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java
  7. 101 0
      ybvideoandroid/main/src/main/java/com/yunbao/main/utils/ZodiacUtil.java
  8. 1 1
      ybvideoandroid/main/src/main/java/com/yunbao/main/views/MainHomeFriendsViewHolder.java
  9. 75 5
      ybvideoandroid/main/src/main/java/com/yunbao/main/views/MainMallViewHolder.java
  10. 6 0
      ybvideoandroid/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder.java
  11. 1 1
      ybvideoandroid/main/src/main/res/layout/view_main_home_hot.xml
  12. 1 1
      ybvideoandroid/main/src/main/res/layout/view_main_mall.xml
  13. 1 1
      ybvideoandroid/main/src/main/res/layout/view_main_me.xml
  14. 1 1
      ybvideoandroid/main/src/main/res/layout/view_main_msg.xml
  15. 3 2
      ybvideoandroid/video/src/main/java/com/yunbao/video/activity/AbsVideoCommentActivity.java
  16. 181 0
      ybvideoandroid/video/src/main/java/com/yunbao/video/dialog/PermissionSettingsDialog.java
  17. 54 0
      ybvideoandroid/video/src/main/java/com/yunbao/video/dialog/VideoShareDialogFragment.java
  18. 2 2
      ybvideoandroid/video/src/main/java/com/yunbao/video/views/VideoPlayWrapViewHolder.java
  19. 164 0
      ybvideoandroid/video/src/main/res/layout/dialog_permission_settings.xml
  20. 2 1
      ybvideoandroid/video/src/main/res/layout/view_video_comment_2_white.xml
  21. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_close.png
  22. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_dark.png
  23. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_friends.png
  24. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_open.png
  25. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_select.png
  26. BIN
      ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_up.png

+ 1 - 0
ybvideoandroid/common/src/main/java/com/yunbao/common/Constants.java

@@ -54,6 +54,7 @@ public class Constants {
     public static final String HOT = "hot";
     public static final String HOT = "hot";
     public static final String COLLECT = "collect";
     public static final String COLLECT = "collect";
     public static final String TOGETHER = "together";
     public static final String TOGETHER = "together";
+    public static final String SET = "set";
     public static final int SETTING_MODIFY_PWD = 15;
     public static final int SETTING_MODIFY_PWD = 15;
     public static final int SETTING_UPDATE_ID = 16;
     public static final int SETTING_UPDATE_ID = 16;
     public static final int SETTING_CLEAR_CACHE = 18;
     public static final int SETTING_CLEAR_CACHE = 18;

+ 10 - 0
ybvideoandroid/common/src/main/res/values-en-rUS/strings.xml

@@ -1639,4 +1639,14 @@
     <string name="shopping_notice">Shopping Notice</string>
     <string name="shopping_notice">Shopping Notice</string>
     <!--    欢迎使用云镜直播-->
     <!--    欢迎使用云镜直播-->
     <string name="welcome_to_cloud_mirror">Welcome to Cloud Mirror</string>
     <string name="welcome_to_cloud_mirror">Welcome to Cloud Mirror</string>
+    <!--    权限设置-->
+    <string name="permission_setting">权限设置</string>
+    <!--    公开:所有人可见-->
+    <string name="setting_public">Public:Everyone can see</string>
+    <!--    朋友:互相关注的人可见-->
+    <string name="setting_friend">Friends:Mutual attention can see</string>
+    <!--    私密:关闭在线状态-->
+    <string name="setting_private">Private:Close online status</string>
+    <!--    置顶作品-->
+    <string name="top_work">Top Works</string>
 </resources>
 </resources>

+ 10 - 0
ybvideoandroid/common/src/main/res/values/strings.xml

@@ -1644,4 +1644,14 @@
     <string name="shopping_notice">购物通知</string>
     <string name="shopping_notice">购物通知</string>
 <!--    欢迎使用云镜直播-->
 <!--    欢迎使用云镜直播-->
     <string name="welcome_to_cloud_mirror">欢迎使用云镜直播</string>
     <string name="welcome_to_cloud_mirror">欢迎使用云镜直播</string>
+<!--    权限设置-->
+    <string name="permission_setting">权限设置</string>
+<!--    公开:所有人可见-->
+    <string name="setting_public">公开:所有人可见</string>
+<!--    朋友:互相关注的人可见-->
+    <string name="setting_friend">朋友:互关的人可见</string>
+<!--    私密:关闭在线状态-->
+    <string name="setting_private">私密:关闭在线状态</string>
+<!--    置顶作品-->
+    <string name="top_work">置顶作品</string>
 </resources>
 </resources>

+ 9 - 9
ybvideoandroid/config.gradle

@@ -16,8 +16,8 @@ ext {
             //腾讯IM appId
             //腾讯IM appId
             TxIMAppId        : "1600088767",
             TxIMAppId        : "1600088767",
             //腾讯tpns推送
             //腾讯tpns推送
-            XG_ACCESS_ID     : "1600088709",
-            XG_ACCESS_KEY    : "LeNlUAD9GpVXhTedMSmwusRWqHlX8mkOtQlwt8gZDRxxbQg7StiMxXn8YVLyR5Ow",
+            XG_ACCESS_ID     : "1580020880",
+            XG_ACCESS_KEY    : "A7ADXI5J5TJ7",
             //tpns推送接入点的域名
             //tpns推送接入点的域名
             XG_SERVER_SUFFIX : "tpns.sh.tencent.com",
             XG_SERVER_SUFFIX : "tpns.sh.tencent.com",
             //广州:tpns.tencent.com
             //广州:tpns.tencent.com
@@ -40,16 +40,16 @@ ext {
             //友盟统计
             //友盟统计
             umengAppKey      : "684a742d79267e021081a4ad",
             umengAppKey      : "684a742d79267e021081a4ad",
             //openInstall
             //openInstall
-            openinstallAppKey: "ffxxxxxn",
+            openinstallAppKey: "rxb4x1",
 
 
-            MobAppKey   : "23xxxxxxxxxa0",
-            MobAppSecret: "a2xxxxxxxxxxxxxxxxxxxx99ed",
+            MobAppKey   : "3b7770bbfa044",
+            MobAppSecret: "49d1eadbf3aa92833183ac907b657de7",
 
 
-            QQAppId     : "10xxxxxxxxx8",
-            QQAppKey    : "e49xxxxxxxxxxxxxxxxx4cba",
+            QQAppId     : "102792881",
+            QQAppKey    : "32lGVWJq9D1Zlw30",
 
 
-            WxAppId     : "wxdd62108d435b897d",
-            WxAppSecret : "bb6cecfe720513f98e27b2d8d3f45975",
+            WxAppId     : "wx5a9550eba4859048",
+            WxAppSecret : "535144a1567adce250538b3488ad4719",
 
 
     ]
     ]
 
 

+ 9 - 8
ybvideoandroid/main/src/main/java/com/yunbao/main/activity/MainActivity.java

@@ -225,11 +225,12 @@ public class MainActivity extends AbsVideoPlayActivity implements TabButtonGroup
         }
         }
         String cityVal = CommonAppConfig.getInstance().getCity();
         String cityVal = CommonAppConfig.getInstance().getCity();
         if (mCityBtn != null) {
         if (mCityBtn != null) {
-            if (!TextUtils.isEmpty(cityVal) && cityVal.length() < 3) {
-                mCityBtn.setText(cityVal);
-            } else {
-                mCityBtn.setText(WordUtil.getString(R.string.main_shop));
-            }
+//            if (!TextUtils.isEmpty(cityVal) && cityVal.length() < 3) {
+//                mCityBtn.setText(cityVal);
+//            } else {
+//                mCityBtn.setText(WordUtil.getString(R.string.main_shop));
+//            }
+            mCityBtn.setText(WordUtil.getString(R.string.main_shop));
         }
         }
     }
     }
 
 
@@ -778,9 +779,9 @@ public class MainActivity extends AbsVideoPlayActivity implements TabButtonGroup
     }
     }
 
 
     public void setChooseCity(String city) {
     public void setChooseCity(String city) {
-        if (mCityBtn != null) {
-            mCityBtn.setText(city);
-        }
+//        if (mCityBtn != null) {
+//            mCityBtn.setText(city);
+//        }
     }
     }
 
 
     @Subscribe(threadMode = ThreadMode.MAIN)
     @Subscribe(threadMode = ThreadMode.MAIN)

+ 15 - 1
ybvideoandroid/main/src/main/java/com/yunbao/main/http/MainHttpUtil.java

@@ -990,11 +990,25 @@ public class MainHttpUtil {
     /**
     /**
      * 获取首页商品列表
      * 获取首页商品列表
      */
      */
-    public static void getHomeGoodsList(int p, HttpCallback callback) {
+//    添加一个可选参数shopclassid
+    public static void getHomeGoodsList(int p, String shopclassid, HttpCallback callback) {
         HttpClient.getInstance().get("Home.getShopList", MainHttpConsts.GET_HOME_GOODS_LIST)
         HttpClient.getInstance().get("Home.getShopList", MainHttpConsts.GET_HOME_GOODS_LIST)
                 .params("uid", CommonAppConfig.getInstance().getUid())
                 .params("uid", CommonAppConfig.getInstance().getUid())
                 .params("token", CommonAppConfig.getInstance().getToken())
                 .params("token", CommonAppConfig.getInstance().getToken())
                 .params("p", p)
                 .params("p", p)
+                .params("shopclassid", shopclassid)
+                .execute(callback);
+    }
+
+    /**
+     * 获取首页一级分类下的商品列表
+     */
+    public static void getHomeOneClassGoodsList(String oneClassId, String type, HttpCallback callback) {
+        HttpClient.getInstance().get("Home.getShopOneClassGoodsList", MainHttpConsts.GET_HOME_GOODS_LIST)
+                .params("uid", CommonAppConfig.getInstance().getUid())
+                .params("token", CommonAppConfig.getInstance().getToken())
+                .params("detail", oneClassId)
+                .params("type", type)
                 .execute(callback);
                 .execute(callback);
     }
     }
 
 

+ 101 - 0
ybvideoandroid/main/src/main/java/com/yunbao/main/utils/ZodiacUtil.java

@@ -0,0 +1,101 @@
+package com.yunbao.main.utils;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class ZodiacUtil {
+
+    // 星座名称数组,按日期顺序排列
+    private static final String[] ZODIAC_NAMES = {
+            "摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座",
+            "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座"
+    };
+
+    // 星座对应的最后一天日期(格式:MM-dd)
+    private static final String[] ZODIAC_DAYS = {
+            "01-19", "02-18", "03-20", "04-19", "05-20", "06-21",
+            "07-22", "08-22", "09-22", "10-23", "11-22", "12-21"
+    };
+
+    /**
+     * 根据生日字符串获取星座
+     * @param birthday 格式:yyyy-MM-dd
+     * @return 星座名称,出错时返回"未知"
+     */
+    public static String getZodiac(String birthday) {
+        if (birthday == null || birthday.isEmpty()) {
+            return "未知";
+        }
+
+        try {
+            // 解析生日日期
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = sdf.parse(birthday);
+            if (date == null) {
+                return "未知";
+            }
+
+            // 提取月份和日期
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,转为1-12
+            int day = calendar.get(Calendar.DAY_OF_MONTH);
+
+            // 拼接成"MM-dd"格式
+            String birthDayStr = (month < 10 ? "0" + month : month) + "-" +
+                    (day < 10 ? "0" + day : day);
+
+            // 判断星座
+            return getZodiacByDate(birthDayStr);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return "未知";
+        }
+    }
+
+    /**
+     * 根据"MM-dd"格式的日期获取星座
+     */
+    private static String getZodiacByDate(String dateStr) {
+        for (int i = 0; i < ZODIAC_DAYS.length; i++) {
+            if (isDateBefore(dateStr, ZODIAC_DAYS[i])) {
+                return ZODIAC_NAMES[i];
+            }
+        }
+        // 如果日期超过12-21,返回摩羯座(摩羯座跨年度)
+        return ZODIAC_NAMES[0];
+    }
+
+    /**
+     * 判断日期是否在指定日期之前
+     * @param date1 格式:MM-dd
+     * @param date2 格式:MM-dd
+     * @return true if date1 < date2
+     */
+    private static boolean isDateBefore(String date1, String date2) {
+        try {
+            SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
+            Date d1 = sdf.parse(date1);
+            Date d2 = sdf.parse(date2);
+            return d1.before(d2);
+        } catch (ParseException e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+
+    /**
+     * 示例用法
+     */
+    public static void main(String[] args) {
+        String birthday1 = "2000-01-01";
+        String birthday2 = "2000-12-25";
+        String birthday3 = "2000-06-22";
+
+        System.out.println(birthday1 + " 的星座是:" + getZodiac(birthday1));
+        System.out.println(birthday2 + " 的星座是:" + getZodiac(birthday2));
+        System.out.println(birthday3 + " 的星座是:" + getZodiac(birthday3));
+    }
+}

+ 1 - 1
ybvideoandroid/main/src/main/java/com/yunbao/main/views/MainHomeFriendsViewHolder.java

@@ -69,7 +69,7 @@ public class MainHomeFriendsViewHolder extends AbsVideoMainViewHolder implements
 
 
             @Override
             @Override
             public void loadData(int p, HttpCallback callback) {
             public void loadData(int p, HttpCallback callback) {
-                MainHttpUtil.getFriendsVideoList(p, callback);
+                MainHttpUtil.getFollowVideoList(p, callback);
             }
             }
 
 
             @Override
             @Override

+ 75 - 5
ybvideoandroid/main/src/main/java/com/yunbao/main/views/MainMallViewHolder.java

@@ -70,6 +70,8 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
     private boolean mBannerNeedUpdate;
     private boolean mBannerNeedUpdate;
     private List<BannerBean> mBannerList;
     private List<BannerBean> mBannerList;
     private List<GoodsHomeClassBean> mClassList;
     private List<GoodsHomeClassBean> mClassList;
+
+    private List<GoodsHomeClassBean> mOneClassList;
     private RecyclerView mRecyclerViewClass;
     private RecyclerView mRecyclerViewClass;
     private boolean mClassShowed;
     private boolean mClassShowed;
     private View mScrollIndicator;
     private View mScrollIndicator;
@@ -90,6 +92,7 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
     private TextView mSpecialSeckillTip;
     private TextView mSpecialSeckillTip;
     private TextView mLocation;
     private TextView mLocation;
     private String mCityVal;
     private String mCityVal;
+    private String mOneClassId;
     private ActivityResultCallback mChooseCityResultCallback;
     private ActivityResultCallback mChooseCityResultCallback;
 
 
     public MainMallViewHolder(Context context, ViewGroup parentView) {
     public MainMallViewHolder(Context context, ViewGroup parentView) {
@@ -124,7 +127,7 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
 
 
             @Override
             @Override
             public void loadData(int p, HttpCallback callback) {
             public void loadData(int p, HttpCallback callback) {
-                MainHttpUtil.getHomeGoodsList(p, callback);
+                MainHttpUtil.getHomeGoodsList(p, mOneClassId, callback);
             }
             }
 
 
             @Override
             @Override
@@ -146,7 +149,17 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
                     }
                     }
                 }
                 }
                 mBannerList = bannerList;
                 mBannerList = bannerList;
+                mOneClassList = JSON.parseArray(obj.getString("shoponeclass"), GoodsHomeClassBean.class);
+//                loadOneClassGoods();
                 mClassList = JSON.parseArray(obj.getString("shoptwoclass"), GoodsHomeClassBean.class);
                 mClassList = JSON.parseArray(obj.getString("shoptwoclass"), GoodsHomeClassBean.class);
+                // mClassList移除 mName为全部的
+                if (mClassList != null && mClassList.size() > 0) {
+                    for (int i = mClassList.size() - 1; i >= 0; i--) {
+                        if (mClassList.get(i).getName().equals(mContext.getString(R.string.all))) {
+                            mClassList.remove(i);
+                        }
+                    }
+                }
                 mRecommendList = new ArrayList<MainMallGoodsBean>();
                 mRecommendList = new ArrayList<MainMallGoodsBean>();
                 MainMallGoodsBean bean = new MainMallGoodsBean();
                 MainMallGoodsBean bean = new MainMallGoodsBean();
                 bean.setId("11");
                 bean.setId("11");
@@ -155,7 +168,7 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
                 mRecommendList.add(bean);
                 mRecommendList.add(bean);
                 mRecommendList.add(bean);
                 mRecommendList.add(bean);
                 mRecommendList.add(bean);
                 mRecommendList.add(bean);
-                return JSON.parseArray(obj.getString("list"), MainMallGoodsBean.class);
+                return JSON.parseArray(obj.getString("shop_goods_list"), MainMallGoodsBean.class);
             }
             }
 
 
             @Override
             @Override
@@ -285,6 +298,32 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
         return 0;
         return 0;
     }
     }
 
 
+    /**
+     * 加载一级分类下的商品
+     */
+    private void loadOneClassGoods() {
+        if (!TextUtils.isEmpty(mOneClassId)) {
+            MainHttpUtil.getHomeOneClassGoodsList(mOneClassId, "fold", new HttpCallback() {
+                @Override
+                public void onSuccess(int code, String msg, String[] info) {
+                    if (code == 0 && info.length > 0) {
+                        JSONObject obj = JSON.parseObject(info[0]);
+                        List<MainMallGoodsBean> goodsList = JSON.parseArray(obj.getString("list"), MainMallGoodsBean.class);
+                        if (mAdapter != null && goodsList != null) {
+                            mAdapter.refreshData(goodsList);
+                        }
+
+                    }
+                }
+                @Override
+                public void onError() {
+//                    toast
+
+
+                }
+            });
+        }
+    }
 
 
     private void showBanner() {
     private void showBanner() {
         if (mBanner == null || mBannerWrap == null) {
         if (mBanner == null || mBannerWrap == null) {
@@ -396,6 +435,15 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
             }
             }
             MallSearchActivity.forward(mContext);
             MallSearchActivity.forward(mContext);
         } else if (id == R.id.btn_normal_goods) {
         } else if (id == R.id.btn_normal_goods) {
+//            获取mNormalGoodsText文字和mOneClassList中mName一致的
+            for (GoodsHomeClassBean bean : mOneClassList) {
+                if (bean.getName().equals(mNormalGoodsText.getText().toString())) {
+                    if (bean.getId().equals(mOneClassId)) {
+                        return;
+                    }
+                    mOneClassId = bean.getId();
+                }
+            }
             // 普通商品
             // 普通商品
             mNormalGoodsText.setTextColor(Color.parseColor("#303132"));
             mNormalGoodsText.setTextColor(Color.parseColor("#303132"));
 //            mNormalGoodsText.setTypeface(mNormalGoodsText.getTypeface(), Typeface.BOLD);
 //            mNormalGoodsText.setTypeface(mNormalGoodsText.getTypeface(), Typeface.BOLD);
@@ -412,8 +460,18 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
             mSpecialSeckillTip.setBackground(null);
             mSpecialSeckillTip.setBackground(null);
             mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
             mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
 
 
-            loadData();
+            if (mRefreshView != null) {
+                mRefreshView.initData();
+            }
         } else if (id == R.id.btn_agricultural_assistance) {
         } else if (id == R.id.btn_agricultural_assistance) {
+            for (GoodsHomeClassBean bean : mOneClassList) {
+                if (bean.getName().equals(mAgriculturalAssistanceText.getText().toString())) {
+                    if (bean.getId().equals(mOneClassId)) {
+                        return;
+                    }
+                    mOneClassId = bean.getId();
+                }
+            }
             // 助农特惠
             // 助农特惠
             mAgriculturalAssistanceText.setTextColor(Color.parseColor("#303132"));
             mAgriculturalAssistanceText.setTextColor(Color.parseColor("#303132"));
 //            mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.BOLD);
 //            mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.BOLD);
@@ -429,8 +487,18 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
 //            mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
 //            mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.NORMAL);
             mSpecialSeckillTip.setBackground(null);
             mSpecialSeckillTip.setBackground(null);
             mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
             mSpecialSeckillTip.setTextColor(Color.parseColor("#999999"));
-            loadData();
+            if (mRefreshView != null) {
+                mRefreshView.initData();
+            }
         } else if (id == R.id.btn_special_seckill) {
         } else if (id == R.id.btn_special_seckill) {
+            for (GoodsHomeClassBean bean : mOneClassList) {
+                if (bean.getName().equals(mSpecialSeckillText.getText().toString())) {
+                    if (bean.getId().equals(mOneClassId)) {
+                        return;
+                    }
+                    mOneClassId = bean.getId();
+                }
+            }
             // 特价秒杀
             // 特价秒杀
             mSpecialSeckillText.setTextColor(Color.parseColor("#303132"));
             mSpecialSeckillText.setTextColor(Color.parseColor("#303132"));
 //            mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.BOLD);
 //            mSpecialSeckillText.setTypeface(mSpecialSeckillText.getTypeface(), Typeface.BOLD);
@@ -446,7 +514,9 @@ public class MainMallViewHolder extends AbsMainViewHolder implements OnItemClick
 //            mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.NORMAL);
 //            mAgriculturalAssistanceText.setTypeface(mAgriculturalAssistanceText.getTypeface(), Typeface.NORMAL);
             mAgriculturalAssistanceTip.setBackground(null);
             mAgriculturalAssistanceTip.setBackground(null);
             mAgriculturalAssistanceTip.setTextColor(Color.parseColor("#999999"));
             mAgriculturalAssistanceTip.setTextColor(Color.parseColor("#999999"));
-            loadData();
+            if (mRefreshView != null) {
+                mRefreshView.initData();
+            }
         }
         }
     }
     }
 
 

+ 6 - 0
ybvideoandroid/main/src/main/java/com/yunbao/main/views/UserHomeViewHolder.java

@@ -54,6 +54,7 @@ import com.yunbao.main.bean.BonusBean;
 import com.yunbao.main.custom.UserHomePagerTitleView;
 import com.yunbao.main.custom.UserHomePagerTitleView;
 import com.yunbao.main.http.MainHttpConsts;
 import com.yunbao.main.http.MainHttpConsts;
 import com.yunbao.main.http.MainHttpUtil;
 import com.yunbao.main.http.MainHttpUtil;
+import com.yunbao.main.utils.ZodiacUtil;
 import com.yunbao.mall.activity.BuyerActivity;
 import com.yunbao.mall.activity.BuyerActivity;
 import com.yunbao.mall.activity.BuyerOrderActivity;
 import com.yunbao.mall.activity.BuyerOrderActivity;
 import com.yunbao.mall.activity.SellerActivity;
 import com.yunbao.mall.activity.SellerActivity;
@@ -408,6 +409,10 @@ public class UserHomeViewHolder extends AbsMainViewHolder implements AppBarLayou
             mSign.setText(u.getSignature());
             mSign.setText(u.getSignature());
         }
         }
 
 
+        if (mConstellation!= null) {
+            mConstellation.setText(ZodiacUtil.getZodiac(u.getBirthday()));
+        }
+
 //        Drawable drawable = ContextCompat.getDrawable(CommonAppContext.getInstance(),
 //        Drawable drawable = ContextCompat.getDrawable(CommonAppContext.getInstance(),
 //                u.getSex() == 2 ? R.mipmap.icon_female : R.mipmap.icon_male);
 //                u.getSex() == 2 ? R.mipmap.icon_female : R.mipmap.icon_male);
         if (mSex != null) {
         if (mSex != null) {
@@ -546,6 +551,7 @@ public class UserHomeViewHolder extends AbsMainViewHolder implements AppBarLayou
                 mSign.requestLayout();
                 mSign.requestLayout();
             }
             }
         } else {
         } else {
+            mGroupSelfShop.setVisibility(View.GONE);
             PAGE_COUNT = 2;
             PAGE_COUNT = 2;
             if (mGroupOtherFollow != null && mGroupOtherFollow.getVisibility() != View.VISIBLE) {
             if (mGroupOtherFollow != null && mGroupOtherFollow.getVisibility() != View.VISIBLE) {
                 mGroupOtherFollow.setVisibility(View.VISIBLE);
                 mGroupOtherFollow.setVisibility(View.VISIBLE);

+ 1 - 1
ybvideoandroid/main/src/main/res/layout/view_main_home_hot.xml

@@ -3,7 +3,7 @@
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:orientation="vertical"
-    android:paddingBottom="48dp"
+    android:paddingBottom="70dp"
     android:background="@color/white">
     android:background="@color/white">
 
 
     <FrameLayout
     <FrameLayout

+ 1 - 1
ybvideoandroid/main/src/main/res/layout/view_main_mall.xml

@@ -5,7 +5,7 @@
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_height="match_parent"
     android:background="#f5f5f5"
     android:background="#f5f5f5"
-    android:paddingBottom="50dp">
+    android:paddingBottom="70dp">
 
 
 <!--    底部背景色-->
 <!--    底部背景色-->
     <View
     <View

+ 1 - 1
ybvideoandroid/main/src/main/res/layout/view_main_me.xml

@@ -3,7 +3,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_height="match_parent"
-    android:layout_marginBottom="48dp"
+    android:layout_marginBottom="70dp"
     xmlns:tools="http://schemas.android.com/tools"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/root">
     android:id="@+id/root">
     <FrameLayout
     <FrameLayout

+ 1 - 1
ybvideoandroid/main/src/main/res/layout/view_main_msg.xml

@@ -5,7 +5,7 @@
     android:layout_height="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:orientation="vertical"
     android:background="#f5f5f5"
     android:background="#f5f5f5"
-    android:paddingBottom="48dp">
+    android:paddingBottom="70dp">
 
 
 
 
     <LinearLayout
     <LinearLayout

+ 3 - 2
ybvideoandroid/video/src/main/java/com/yunbao/video/activity/AbsVideoCommentActivity.java

@@ -144,7 +144,7 @@ public abstract class AbsVideoCommentActivity extends AbsActivity implements Vie
         }
         }
         VideoInputDialogFragment fragment = new VideoInputDialogFragment();
         VideoInputDialogFragment fragment = new VideoInputDialogFragment();
         fragment.setDarkStyle(isInputDark());
         fragment.setDarkStyle(isInputDark());
-        fragment.setWhite(isInputWhite());
+        fragment.setWhite(true);
         fragment.setVideoInfo(videoId, videoUid);
         fragment.setVideoInfo(videoId, videoUid);
         Bundle bundle = new Bundle();
         Bundle bundle = new Bundle();
         bundle.putBoolean(Constants.VIDEO_FACE_OPEN, openFace);
         bundle.putBoolean(Constants.VIDEO_FACE_OPEN, openFace);
@@ -411,6 +411,7 @@ public abstract class AbsVideoCommentActivity extends AbsActivity implements Vie
     }
     }
 
 
     protected boolean isInputWhite() {
     protected boolean isInputWhite() {
-        return false;
+//        return false;
+        return true;
     }
     }
 }
 }

+ 181 - 0
ybvideoandroid/video/src/main/java/com/yunbao/video/dialog/PermissionSettingsDialog.java

@@ -0,0 +1,181 @@
+package com.yunbao.video.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.video.R;
+
+/**
+ * 权限设置弹窗
+ * 独立的弹窗组件,可在任何地方复用
+ */
+public class PermissionSettingsDialog {
+
+    private Context mContext;
+    private Dialog mDialog;
+    private int mCurrentPermissionType = 1; // 0=公开, 1=朋友, 2=私密
+    private OnPermissionActionListener mListener;
+
+    // 权限类型常量
+    public static final int PERMISSION_PUBLIC = 0;
+    public static final int PERMISSION_FRIENDS = 1;
+    public static final int PERMISSION_PRIVATE = 2;
+
+    public PermissionSettingsDialog(Context context) {
+        this.mContext = context;
+    }
+
+    /**
+     * 设置当前权限类型
+     */
+    public PermissionSettingsDialog setCurrentPermissionType(int permissionType) {
+        this.mCurrentPermissionType = permissionType;
+        return this;
+    }
+
+    /**
+     * 设置操作监听器
+     */
+    public PermissionSettingsDialog setOnPermissionActionListener(OnPermissionActionListener listener) {
+        this.mListener = listener;
+        return this;
+    }
+
+    /**
+     * 显示弹窗
+     */
+    public void show() {
+        if (mDialog != null && mDialog.isShowing()) {
+            return;
+        }
+
+        View dialogView = LayoutInflater.from(mContext).inflate(R.layout.dialog_permission_settings, null);
+
+        // 初始化视图
+        initViews(dialogView);
+
+        // 创建底部弹出的Dialog
+        mDialog = new Dialog(mContext, R.style.dialog);
+        mDialog.setContentView(dialogView);
+        mDialog.setCancelable(true);
+        mDialog.setCanceledOnTouchOutside(true);
+
+        // 设置弹窗位置为底部
+        Window window = mDialog.getWindow();
+        if (window != null) {
+            WindowManager.LayoutParams params = window.getAttributes();
+            params.gravity = Gravity.BOTTOM;
+            params.width = WindowManager.LayoutParams.MATCH_PARENT;
+            window.setAttributes(params);
+            // 如果项目中有底部弹出动画,可以设置
+            // window.setWindowAnimations(R.style.bottomToTopAnim);
+        }
+
+        mDialog.show();
+    }
+
+    /**
+     * 隐藏弹窗
+     */
+    public void dismiss() {
+        if (mDialog != null && mDialog.isShowing()) {
+            mDialog.dismiss();
+        }
+    }
+
+    /**
+     * 初始化视图和事件
+     */
+    private void initViews(View dialogView) {
+        // 获取视图元素
+        LinearLayout layoutPublic = dialogView.findViewById(R.id.layout_public);
+        LinearLayout layoutFriends = dialogView.findViewById(R.id.layout_friends);
+        LinearLayout layoutPrivate = dialogView.findViewById(R.id.layout_private);
+        LinearLayout layouttopWork = dialogView.findViewById(R.id.layout_video_top);
+
+        ImageView checkPublic = dialogView.findViewById(R.id.check_public);
+        ImageView checkFriends = dialogView.findViewById(R.id.check_friends);
+        ImageView checkPrivate = dialogView.findViewById(R.id.check_private);
+
+        // 更新选中状态
+        updatePermissionCheckState(checkPublic, checkFriends, checkPrivate);
+
+        // 设置权限选择点击事件
+        layoutPublic.setOnClickListener(v -> {
+            mCurrentPermissionType = PERMISSION_PUBLIC;
+            updatePermissionCheckState(checkPublic, checkFriends, checkPrivate);
+            if (mListener != null) {
+                mListener.onPermissionChanged(PERMISSION_PUBLIC);
+            }
+        });
+
+        layoutFriends.setOnClickListener(v -> {
+            mCurrentPermissionType = PERMISSION_FRIENDS;
+            updatePermissionCheckState(checkPublic, checkFriends, checkPrivate);
+            if (mListener != null) {
+                mListener.onPermissionChanged(PERMISSION_FRIENDS);
+            }
+        });
+
+        layoutPrivate.setOnClickListener(v -> {
+            mCurrentPermissionType = PERMISSION_PRIVATE;
+            updatePermissionCheckState(checkPublic, checkFriends, checkPrivate);
+            if (mListener != null) {
+                mListener.onPermissionChanged(PERMISSION_PRIVATE);
+            }
+        });
+
+        // 设置功能选项点击事件
+        layouttopWork.setOnClickListener(v -> {
+            dismiss();
+            if (mListener != null) {
+                mListener.onUpWork();
+            }
+        });
+    }
+
+    /**
+     * 更新权限选择状态
+     */
+    private void updatePermissionCheckState(ImageView checkPublic, ImageView checkFriends, ImageView checkPrivate) {
+        checkPublic.setVisibility(mCurrentPermissionType == PERMISSION_PUBLIC ? View.VISIBLE : View.GONE);
+        checkFriends.setVisibility(mCurrentPermissionType == PERMISSION_FRIENDS ? View.VISIBLE : View.GONE);
+        checkPrivate.setVisibility(mCurrentPermissionType == PERMISSION_PRIVATE ? View.VISIBLE : View.GONE);
+    }
+
+    /**
+     * 权限和操作监听接口
+     */
+    public interface OnPermissionActionListener {
+        /**
+         * 权限改变
+         * @param permissionType 权限类型 0=公开, 1=朋友, 2=私密
+         */
+        void onPermissionChanged(int permissionType);
+
+        /**
+         * 置顶作品
+         */
+        void onUpWork();
+    }
+
+    /**
+     * 简化的监听器适配器,可以只实现需要的方法
+     */
+    public static abstract class SimplePermissionActionListener implements OnPermissionActionListener {
+        @Override
+        public void onPermissionChanged(int permissionType) {}
+
+        @Override
+        public void onUpWork() {}
+
+    }
+}

+ 54 - 0
ybvideoandroid/video/src/main/java/com/yunbao/video/dialog/VideoShareDialogFragment.java

@@ -47,6 +47,7 @@ public class VideoShareDialogFragment extends AbsDialogFragment implements OnIte
     private VideoBean mVideoBean;
     private VideoBean mVideoBean;
     CheckVideoBean mCheckVideoBean;
     CheckVideoBean mCheckVideoBean;
     private VideoShareAdapter adapter2;
     private VideoShareAdapter adapter2;
+    private PermissionSettingsDialog mPermissionDialog;
 
 
     @Override
     @Override
     protected int getLayoutId() {
     protected int getLayoutId() {
@@ -178,6 +179,14 @@ public class VideoShareDialogFragment extends AbsDialogFragment implements OnIte
         linkBean.setIcon1(R.mipmap.icon_share_video_link_dark);
         linkBean.setIcon1(R.mipmap.icon_share_video_link_dark);
         list2.add(linkBean);
         list2.add(linkBean);
 
 
+//        if (self) {
+//            MobBean settingBean = new MobBean();
+//            settingBean.setType(Constants.SET);
+//            settingBean.setName(R.string.设置);
+//            settingBean.setIcon1(R.mipmap.icon_setting_dark);
+//            list2.add(settingBean);
+//
+//        }
         adapter2 = new VideoShareAdapter(mContext, list2,false);
         adapter2 = new VideoShareAdapter(mContext, list2,false);
         adapter2.setOnItemClickListener(this);
         adapter2.setOnItemClickListener(this);
         mRecyclerView2.setAdapter(adapter2);
         mRecyclerView2.setAdapter(adapter2);
@@ -252,6 +261,17 @@ public class VideoShareDialogFragment extends AbsDialogFragment implements OnIte
                 }
                 }
                 checkVideo(mVideoBean.getId());
                 checkVideo(mVideoBean.getId());
                 break;
                 break;
+                case Constants.SET://设置
+                if (!CommonAppConfig.getInstance().isLogin()) {
+                    RouteUtil.forwardLogin(mContext);
+                    return;
+                }
+                if (mCheckVideoBean != null && mCheckVideoBean.getVideo_status() == 0) {
+                    ToastUtil.show(mCheckVideoBean.getVideo_msg());
+                    return;
+                }
+                showPermissionSettingsDialog();
+                break;
             default:
             default:
                 if (mCheckVideoBean != null && mCheckVideoBean.getLimit_status() == 0) {
                 if (mCheckVideoBean != null && mCheckVideoBean.getLimit_status() == 0) {
                     ToastUtil.show(WordUtil.getString(R.string.video_not_share));
                     ToastUtil.show(WordUtil.getString(R.string.video_not_share));
@@ -264,6 +284,40 @@ public class VideoShareDialogFragment extends AbsDialogFragment implements OnIte
 
 
     }
     }
 
 
+    public void showPermissionSettingsDialog() {
+        if (mPermissionDialog == null) {
+            mPermissionDialog = new PermissionSettingsDialog(mContext);
+        }
+
+        mPermissionDialog
+                .setCurrentPermissionType(PermissionSettingsDialog.PERMISSION_FRIENDS) // 设置默认选中朋友
+                .setOnPermissionActionListener(new PermissionSettingsDialog.SimplePermissionActionListener() {
+                    @Override
+                    public void onPermissionChanged(int permissionType) {
+                        String permissionText = "";
+                        switch (permissionType) {
+                            case PermissionSettingsDialog.PERMISSION_PUBLIC:
+                                permissionText = "公开";
+                                break;
+                            case PermissionSettingsDialog.PERMISSION_FRIENDS:
+                                permissionText = "朋友";
+                                break;
+                            case PermissionSettingsDialog.PERMISSION_PRIVATE:
+                                permissionText = "私密";
+                                break;
+                        }
+                        ToastUtil.show("权限已设置为:" + permissionText);
+                        // 这里可以添加网络请求来保存权限设置
+                    }
+
+                    @Override
+                    public void onUpWork() {
+                        ToastUtil.show("置顶作品");
+                    }
+                })
+                .show();
+    }
+
     /**
     /**
      * 收藏与取消收藏
      * 收藏与取消收藏
      */
      */

+ 2 - 2
ybvideoandroid/video/src/main/java/com/yunbao/video/views/VideoPlayWrapViewHolder.java

@@ -229,9 +229,9 @@ public void changeui() {
             mBtnGift.setVisibility(View.VISIBLE);
             mBtnGift.setVisibility(View.VISIBLE);
         }
         }
         if (mViewCollect != null) {
         if (mViewCollect != null) {
-            mViewCollect.setVisibility(View.GONE);
+            mViewCollect.setVisibility(View.VISIBLE);
         }
         }
-        mShowCollect = false;
+        mShowCollect = true;
     }
     }
 }
 }
 
 

+ 164 - 0
ybvideoandroid/video/src/main/res/layout/dialog_permission_settings.xml

@@ -0,0 +1,164 @@
+<?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="@color/white"
+    android:orientation="vertical"
+    android:paddingLeft="15dp"
+    android:paddingRight="15dp"
+    android:paddingTop="20dp"
+    android:paddingBottom="20dp">
+
+    <!-- 权限设置标题 -->
+    <TextView
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/permission_setting"
+        android:textColor="@color/textColorBlack"
+        android:textSize="16sp"
+        android:textStyle="bold"
+        android:gravity="center"
+        android:paddingBottom="15dp" />
+
+    <!-- 分割线 -->
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/gray3"
+        android:layout_marginBottom="15dp" />
+
+    <!-- 公开选项 -->
+    <LinearLayout
+        android:id="@+id/layout_public"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp">
+
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:src="@mipmap/icon_setting_open"
+            android:layout_marginRight="15dp" />
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/setting_public"
+            android:textColor="@color/textColorBlack"
+            android:textSize="15sp" />
+
+        <ImageView
+            android:id="@+id/check_public"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:src="@mipmap/icon_setting_select"
+            android:visibility="gone" />
+    </LinearLayout>
+
+    <!-- 朋友选项 -->
+    <LinearLayout
+        android:id="@+id/layout_friends"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp">
+
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:src="@mipmap/icon_setting_friends"
+            android:layout_marginRight="15dp" />
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/setting_friend"
+            android:textColor="@color/textColorBlack"
+            android:textSize="15sp" />
+
+        <ImageView
+            android:id="@+id/check_friends"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:src="@mipmap/icon_setting_select"
+            android:visibility="visible" />
+    </LinearLayout>
+
+    <!-- 私密选项 -->
+    <LinearLayout
+        android:id="@+id/layout_private"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp">
+
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:src="@mipmap/icon_setting_close"
+            android:layout_marginRight="15dp" />
+
+        <TextView
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/setting_private"
+            android:textColor="@color/textColorBlack"
+            android:textSize="15sp" />
+
+        <ImageView
+            android:id="@+id/check_private"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:src="@mipmap/icon_setting_select"
+            android:visibility="gone" />
+    </LinearLayout>
+
+    <!-- 分割线 -->
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="1dp"
+        android:background="@color/gray3"
+        android:layout_marginTop="15dp"
+        android:layout_marginBottom="15dp" />
+
+    <!-- 置顶作品 -->
+    <LinearLayout
+        android:id="@+id/layout_video_top"
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingLeft="10dp"
+        android:paddingRight="10dp">
+
+        <ImageView
+            android:layout_width="24dp"
+            android:layout_height="24dp"
+            android:src="@mipmap/icon_setting_up"
+            android:layout_marginRight="15dp" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/top_work"
+            android:textColor="@color/textColorBlack"
+            android:textSize="15sp" />
+    </LinearLayout>
+
+
+
+</LinearLayout>

+ 2 - 1
ybvideoandroid/video/src/main/res/layout/view_video_comment_2_white.xml

@@ -54,7 +54,8 @@
             android:layout_height="48dp"
             android:layout_height="48dp"
             android:layout_gravity="top"
             android:layout_gravity="top"
             android:gravity="center_vertical"
             android:gravity="center_vertical"
-            android:orientation="horizontal">
+            android:orientation="horizontal"
+            android:background="@color/white">
 
 
             <ImageView
             <ImageView
                 android:id="@+id/btn_voice_input"
                 android:id="@+id/btn_voice_input"

BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_close.png


BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_dark.png


BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_friends.png


BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_open.png


BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_select.png


BIN
ybvideoandroid/video/src/main/res/mipmap-mdpi/icon_setting_up.png