Browse Source

游戏中心还差回复与游戏资讯

zengjiebin 7 years ago
parent
commit
0fcfe720c3
35 changed files with 1506 additions and 784 deletions
  1. 3 3
      app/src/main/AndroidManifest.xml
  2. 6 0
      app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java
  3. 9 0
      app/src/main/java/com/sheep/gamegroup/model/entity/UserComment.java
  4. 26 0
      app/src/main/java/com/sheep/gamegroup/model/entity/UserFocus.java
  5. 29 1
      app/src/main/java/com/sheep/gamegroup/util/ApiUtil.java
  6. 7 0
      app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java
  7. 1 0
      app/src/main/java/com/sheep/gamegroup/util/IDConstant.java
  8. 12 9
      app/src/main/java/com/sheep/gamegroup/util/Jump2View.java
  9. 8 0
      app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java
  10. 96 0
      app/src/main/java/com/sheep/gamegroup/util/glide/BlurTransformation.java
  11. 258 0
      app/src/main/java/com/sheep/gamegroup/util/glide/FastBlur.java
  12. 81 11
      app/src/main/java/com/sheep/gamegroup/util/viewHelper/UserCommentHelper.java
  13. 677 677
      app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java
  14. 1 3
      app/src/main/java/com/sheep/gamegroup/view/activity/ActGcGameAppDetail.java
  15. 111 32
      app/src/main/java/com/sheep/gamegroup/view/activity/ActUserAppHome.java
  16. 14 1
      app/src/main/java/com/sheep/gamegroup/view/activity/MiddleAct.java
  17. 7 1
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameCenter1_2List.java
  18. 1 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppInfoList.java
  19. 10 1
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppList.java
  20. 7 0
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserAppHomeComment.java
  21. 5 2
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserAppHomeReply.java
  22. 41 4
      app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCommentReply.java
  23. 8 11
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGcGameAppDetail.java
  24. 4 3
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java
  25. 11 2
      app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserCommentDetail.java
  26. 58 4
      app/src/main/res/layout/act_user_app_home.xml
  27. 1 0
      app/src/main/res/layout/empty_view.xml
  28. 1 0
      app/src/main/res/layout/footer_user_comment_detail.xml
  29. 1 1
      app/src/main/res/layout/include_intro.xml
  30. 1 1
      app/src/main/res/layout/item_user_app_home_comment.xml
  31. 1 17
      app/src/main/res/layout/item_user_comment_reply.xml
  32. BIN
      app/src/main/res/mipmap-xxhdpi/ic_focus_red.png
  33. BIN
      app/src/main/res/mipmap-xxhdpi/ic_like_white.png
  34. 8 0
      app/src/main/res/values/strings.xml
  35. 2 0
      view/src/main/java/com/kfzs/android/view/widget/WrapContentHeightViewPager.java

+ 3 - 3
app/src/main/AndroidManifest.xml

@@ -625,9 +625,9 @@
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActSheepPngList"
             android:screenOrientation="portrait" />
-        <activity
-            android:name="com.sheep.gamegroup.view.activity.ActFindGame"
-            android:screenOrientation="portrait" />
+        <!--<activity-->
+            <!--android:name="com.sheep.gamegroup.view.activity.ActFindGame"-->
+            <!--android:screenOrientation="portrait" />-->
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActFindInformation"
             android:configChanges="orientation|screenSize|keyboardHidden" />

+ 6 - 0
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -1198,6 +1198,12 @@ public interface ApiService {
     Observable<BaseMessage> postGameUserUserGameComment(@Body JSONObject jsonObject);
 
     /**
+     * 用户游戏评论表情点赞
+     * user_comment_id * integer (query) 评论id
+     */
+    @POST("app/game_user/user_game_comment_expression_like")
+    Observable<BaseMessage> postGameUserUserGameCommentExpressionLike(@Query("user_comment_id") int user_comment_id);
+    /**
      * 用户游戏评论点赞
      * user_comment_id * integer (query) 评论id
      */

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/UserComment.java

@@ -218,4 +218,13 @@ public class UserComment {
             showAll = new ShowAll(content);
         return showAll;
     }
+
+    //表情点赞数量加一
+    public void plusExpression() {
+        expression++;
+    }
+    //点赞数量加一
+    public void plusLike() {
+        like++;
+    }
 }

+ 26 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/UserFocus.java

@@ -5,6 +5,8 @@ package com.sheep.gamegroup.model.entity;
  * realicing@sina.com
  * 用户主页详情
  * update_time:	integer ($int64)
+ * is_focus_user:	boolean
+ * 是否关注用户
  * user_id:	integer ($int64)
  * 用户id
  * create_time:	integer ($int64)
@@ -26,6 +28,7 @@ public class UserFocus {
     private int like;
     private int fan;
     private int focus_user;
+    private boolean is_focus_user;
     private int create_time;
     private int user_id;
     private int update_time;
@@ -111,4 +114,27 @@ public class UserFocus {
     public void setNick_name(String nick_name) {
         this.nick_name = nick_name;
     }
+
+    public boolean isIs_focus_user() {
+        return is_focus_user;
+    }
+
+    public void setIs_focus_user(boolean is_focus_user) {
+        this.is_focus_user = is_focus_user;
+    }
+
+
+
+
+
+
+    //关注状态取反
+    public void toggleFocusUser() {
+        is_focus_user = !is_focus_user;
+    }
+
+    //点赞数量加一
+    public void plusLike() {
+        like++;
+    }
 }

+ 29 - 1
app/src/main/java/com/sheep/gamegroup/util/ApiUtil.java

@@ -14,11 +14,39 @@ import rx.schedulers.Schedulers;
  */
 public class ApiUtil {
 
-    //用户游戏评论点赞
+    //用户回复用户评论 点赞
+    public static void postGameUserUserCommentLike(int user_comment_reply_id, SheepSubscriber<BaseMessage> sheepSubscriber) {
+        SheepApp.getInstance().getNetComponent().getApiService().postGameUserUserCommentLike(user_comment_reply_id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(sheepSubscriber);
+    }
+    //用户游戏评论 表情点赞
+    public static void postGameUserUserGameCommentExpressionLike(int user_comment_id, SheepSubscriber<BaseMessage> sheepSubscriber) {
+        SheepApp.getInstance().getNetComponent().getApiService().postGameUserUserGameCommentExpressionLike(user_comment_id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(sheepSubscriber);
+    }
+    //用户游戏评论 点赞
     public static void postGameUserUserGameCommentLike(int user_comment_id, SheepSubscriber<BaseMessage> sheepSubscriber) {
         SheepApp.getInstance().getNetComponent().getApiService().postGameUserUserGameCommentLike(user_comment_id)
                 .subscribeOn(Schedulers.io())
                 .observeOn(AndroidSchedulers.mainThread())
                 .subscribe(sheepSubscriber);
     }
+    //用户游戏主页 点赞
+    public static void postGameUserLike(int focus_user_id, SheepSubscriber<BaseMessage> sheepSubscriber) {
+        SheepApp.getInstance().getNetComponent().getApiService().postGameUserLike(focus_user_id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(sheepSubscriber);
+    }
+    //用户游戏主页 关注
+    public static void postGameUserFocusUser(int focus_user_id, SheepSubscriber<BaseMessage> sheepSubscriber) {
+        SheepApp.getInstance().getNetComponent().getApiService().postGameUserFocusUser(focus_user_id)
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(sheepSubscriber);
+    }
 }

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/util/GlideImageLoader.java

@@ -12,6 +12,7 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.bumptech.glide.request.RequestListener;
 import com.bumptech.glide.request.RequestOptions;
+import com.sheep.gamegroup.util.glide.BlurTransformation;
 import com.sheep.gamegroup.util.glide.GlideCircleTransformWithBorder;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
@@ -34,6 +35,12 @@ import rx.functions.Action1;
 
 public class GlideImageLoader {
 
+    public static void setBlur(ImageView imageView, String url) {
+        Glide.with(SheepApp.getInstance())
+                .load(url)
+                .apply(new RequestOptions().transform(new BlurTransformation()))
+                .into(imageView);
+    }
     public static void setImage(ImageView imageView, String url) {
         Glide.with(SheepApp.getInstance())
                 .load(url)

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/util/IDConstant.java

@@ -10,6 +10,7 @@ public class IDConstant {
     public static final int JUMP_NEW_USER_TASK = -1;//新手任务
     public static final int JUMP_TRY_PLAY = 1;//试玩赚钱
     public static final int JUMP_ASK_FRIEND = 2;//邀请赚钱
+    public static final int JUMP_ASK_FRIEND_2 = 202;//邀请赚钱
     public static final int JUMP_LIE_MAKE = 3;//躺着赚钱
     public static final int JUMP_CREDIT_CARD = 4;//办卡赚钱
     public static final int JUMP_GAME_CENTER = 5;//游戏中心

+ 12 - 9
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -16,6 +16,7 @@ import com.sheep.gamegroup.absBase.BaseActivity;
 import com.sheep.gamegroup.greendao.download.DownLoadInfo;
 import com.sheep.gamegroup.model.entity.Advertising;
 import com.sheep.gamegroup.model.entity.Agreement;
+import com.sheep.gamegroup.model.entity.Article;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.CheckUserLabel;
 import com.sheep.gamegroup.model.entity.CommendApp;
@@ -24,7 +25,6 @@ import com.sheep.gamegroup.model.entity.CreditCard;
 import com.sheep.gamegroup.model.entity.DialogConfig;
 import com.sheep.gamegroup.model.entity.DialogEntity;
 import com.sheep.gamegroup.model.entity.GameApp;
-import com.sheep.gamegroup.model.entity.Article;
 import com.sheep.gamegroup.model.entity.GameListType;
 import com.sheep.gamegroup.model.entity.HomeListEntity;
 import com.sheep.gamegroup.model.entity.LoginEntity;
@@ -46,11 +46,11 @@ import com.sheep.gamegroup.view.activity.ActCreditCardTaskList;
 import com.sheep.gamegroup.view.activity.ActCreditCardWeb;
 import com.sheep.gamegroup.view.activity.ActDownloadWelfareList;
 import com.sheep.gamegroup.view.activity.ActExchangeCMCC;
-import com.sheep.gamegroup.view.activity.ActFindGame;
 import com.sheep.gamegroup.view.activity.ActFindInformation;
 import com.sheep.gamegroup.view.activity.ActGameAccount;
 import com.sheep.gamegroup.view.activity.ActGameAgencyRecharge;
 import com.sheep.gamegroup.view.activity.ActGameCenter;
+import com.sheep.gamegroup.view.activity.ActGcGameAppDetail;
 import com.sheep.gamegroup.view.activity.ActGiftCenter;
 import com.sheep.gamegroup.view.activity.ActGiftDetail;
 import com.sheep.gamegroup.view.activity.ActGuide;
@@ -67,7 +67,6 @@ import com.sheep.gamegroup.view.activity.ActNewAboutUs;
 import com.sheep.gamegroup.view.activity.ActNewbieTaskList;
 import com.sheep.gamegroup.view.activity.ActNotice;
 import com.sheep.gamegroup.view.activity.ActPay;
-import com.sheep.gamegroup.view.activity.ActGcGameAppDetail;
 import com.sheep.gamegroup.view.activity.ActPlayGameList;
 import com.sheep.gamegroup.view.activity.ActPlayGameRecommendList;
 import com.sheep.gamegroup.view.activity.ActPlayGameUserLikeList;
@@ -1573,7 +1572,7 @@ public class Jump2View {
      * @param item
      */
     public void goFindGame(Activity activity, Article item) {
-        Intent intent = new Intent(activity, ActFindGame.class);
+        Intent intent = new Intent(activity, ActGcGameAppDetail.class);
         intent.putExtra("id", item.getApplication_id());
         activity.startActivity(intent);
     }
@@ -1585,7 +1584,7 @@ public class Jump2View {
      * @param findApp
      */
     public void goFindGame(Activity activity, GameApp findApp) {
-        Intent intent = new Intent(activity, ActFindGame.class);
+        Intent intent = new Intent(activity, ActGcGameAppDetail.class);
         intent.putExtra("id", findApp.getId());
         activity.startActivity(intent);
     }
@@ -1597,7 +1596,7 @@ public class Jump2View {
      * @param applicationId
      */
     public void goFindGame(Activity activity, int applicationId) {
-        Intent intent = new Intent(activity, ActFindGame.class);
+        Intent intent = new Intent(activity, ActGcGameAppDetail.class);
         intent.putExtra("id", applicationId);
         activity.startActivity(intent);
     }
@@ -2093,8 +2092,9 @@ public class Jump2View {
 
     /**
      * 跳转到游戏评论界面
+     *
      * @param activity
-     * @param game_id 游戏id
+     * @param game_id  游戏id
      */
     public void goActCommentGameApp(Activity activity, int game_id) {
         activity.startActivity(new Intent(activity, ActCommentGameApp.class).putExtra("game_id", game_id));
@@ -2102,18 +2102,21 @@ public class Jump2View {
 
     /**
      * 跳转游戏评论详情界面
+     *
      * @param activity
      * @param user_comment_id
      */
-    public void goActAppCommentDetail(Activity activity, int user_comment_id ) {
+    public void goActAppCommentDetail(Activity activity, int user_comment_id) {
         activity.startActivity(DataUtil.putObject(new Intent(activity, ActUserCommentDetail.class), user_comment_id));
     }
+
     /**
      * 跳转个人游戏主页界面
+     *
      * @param activity
      * @param user_id
      */
-    public void goActUserAppHome(Activity activity, int user_id ) {
+    public void goActUserAppHome(Activity activity, int user_id) {
         activity.startActivity(DataUtil.putObject(new Intent(activity, ActUserAppHome.class), user_id));
     }
 }

+ 8 - 0
app/src/main/java/com/sheep/gamegroup/util/ViewUtil.java

@@ -1423,6 +1423,14 @@ public class ViewUtil {
             GlideImageLoader.setAvatar(imageView, pictures);
         }
     }
+    public static void setBlur(ImageView imageView, String pictures) {
+        if (imageView != null && !TextUtils.isEmpty(pictures)) {
+            if (pictures.contains(";")) {
+                pictures = pictures.split(";")[0];
+            }
+            GlideImageLoader.setBlur(imageView, pictures);
+        }
+    }
     public static void setImage(ImageView imageView, String pictures) {
         if (imageView != null && !TextUtils.isEmpty(pictures)) {
             if (pictures.contains(";")) {

+ 96 - 0
app/src/main/java/com/sheep/gamegroup/util/glide/BlurTransformation.java

@@ -0,0 +1,96 @@
+package com.sheep.gamegroup.util.glide;
+/**
+ * Copyright (C) 2018 Wasabeef
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+import android.support.annotation.NonNull;
+
+import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
+import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
+
+import java.security.MessageDigest;
+
+public class BlurTransformation extends BitmapTransformation {
+
+    private static final int VERSION = 1;
+    private static final String ID =
+            "jp.wasabeef.glide.transformations.BlurTransformation." + VERSION;
+
+    private static int MAX_RADIUS = 25;
+    private static int DEFAULT_DOWN_SAMPLING = 1;
+
+    private int radius;
+    private int sampling;
+
+    public BlurTransformation() {
+        this(MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
+    }
+
+    public BlurTransformation(int radius) {
+        this(radius, DEFAULT_DOWN_SAMPLING);
+    }
+
+    public BlurTransformation(int radius, int sampling) {
+        this.radius = radius;
+        this.sampling = sampling;
+    }
+
+    @Override
+    protected Bitmap transform(@NonNull BitmapPool pool,
+                               @NonNull Bitmap toTransform, int outWidth, int outHeight) {
+
+        int width = toTransform.getWidth();
+        int height = toTransform.getHeight();
+        int scaledWidth = width / sampling;
+        int scaledHeight = height / sampling;
+
+        Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888);
+
+        Canvas canvas = new Canvas(bitmap);
+        canvas.scale(1 / (float) sampling, 1 / (float) sampling);
+        Paint paint = new Paint();
+        paint.setFlags(Paint.FILTER_BITMAP_FLAG);
+        canvas.drawBitmap(toTransform, 0, 0, paint);
+
+        bitmap = FastBlur.blur(bitmap, radius, true);
+
+        return bitmap;
+    }
+
+    @Override
+    public String toString() {
+        return "BlurTransformation(radius=" + radius + ", sampling=" + sampling + ")";
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        return o instanceof BlurTransformation &&
+                ((BlurTransformation) o).radius == radius &&
+                ((BlurTransformation) o).sampling == sampling;
+    }
+
+    @Override
+    public int hashCode() {
+        return ID.hashCode() + radius * 1000 + sampling * 10;
+    }
+
+    @Override
+    public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
+        messageDigest.update((ID + radius + sampling).getBytes(CHARSET));
+    }
+}

+ 258 - 0
app/src/main/java/com/sheep/gamegroup/util/glide/FastBlur.java

@@ -0,0 +1,258 @@
+package com.sheep.gamegroup.util.glide;
+
+
+import android.graphics.Bitmap;
+
+/**
+ * Copyright (C) 2018 Wasabeef
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+public class FastBlur {
+
+    public static Bitmap blur(Bitmap sentBitmap, int radius, boolean canReuseInBitmap) {
+
+        // Stack Blur v1.0 from
+        // http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html
+        //
+        // Java Author: Mario Klingemann <mario at quasimondo.com>
+        // http://incubator.quasimondo.com
+        // created Feburary 29, 2004
+        // Android port : Yahel Bouaziz <yahel at kayenko.com>
+        // http://www.kayenko.com
+        // ported april 5th, 2012
+
+        // This is a compromise between Gaussian Blur and Box blur
+        // It creates much better looking blurs than Box Blur, but is
+        // 7x faster than my Gaussian Blur implementation.
+        //
+        // I called it Stack Blur because this describes best how this
+        // filter works internally: it creates a kind of moving stack
+        // of colors whilst scanning through the image. Thereby it
+        // just has to add one new block of color to the right side
+        // of the stack and remove the leftmost color. The remaining
+        // colors on the topmost layer of the stack are either added on
+        // or reduced by one, depending on if they are on the right or
+        // on the left side of the stack.
+        //
+        // If you are using this algorithm in your code please add
+        // the following line:
+        //
+        // Stack Blur Algorithm by Mario Klingemann <mario@quasimondo.com>
+
+        Bitmap bitmap;
+        if (canReuseInBitmap) {
+            bitmap = sentBitmap;
+        } else {
+            bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
+        }
+
+        if (radius < 1) {
+            return (null);
+        }
+
+        int w = bitmap.getWidth();
+        int h = bitmap.getHeight();
+
+        int[] pix = new int[w * h];
+        bitmap.getPixels(pix, 0, w, 0, 0, w, h);
+
+        int wm = w - 1;
+        int hm = h - 1;
+        int wh = w * h;
+        int div = radius + radius + 1;
+
+        int r[] = new int[wh];
+        int g[] = new int[wh];
+        int b[] = new int[wh];
+        int rsum, gsum, bsum, x, y, i, p, yp, yi, yw;
+        int vmin[] = new int[Math.max(w, h)];
+
+        int divsum = (div + 1) >> 1;
+        divsum *= divsum;
+        int dv[] = new int[256 * divsum];
+        for (i = 0; i < 256 * divsum; i++) {
+            dv[i] = (i / divsum);
+        }
+
+        yw = yi = 0;
+
+        int[][] stack = new int[div][3];
+        int stackpointer;
+        int stackstart;
+        int[] sir;
+        int rbs;
+        int r1 = radius + 1;
+        int routsum, goutsum, boutsum;
+        int rinsum, ginsum, binsum;
+
+        for (y = 0; y < h; y++) {
+            rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
+            for (i = -radius; i <= radius; i++) {
+                p = pix[yi + Math.min(wm, Math.max(i, 0))];
+                sir = stack[i + radius];
+                sir[0] = (p & 0xff0000) >> 16;
+                sir[1] = (p & 0x00ff00) >> 8;
+                sir[2] = (p & 0x0000ff);
+                rbs = r1 - Math.abs(i);
+                rsum += sir[0] * rbs;
+                gsum += sir[1] * rbs;
+                bsum += sir[2] * rbs;
+                if (i > 0) {
+                    rinsum += sir[0];
+                    ginsum += sir[1];
+                    binsum += sir[2];
+                } else {
+                    routsum += sir[0];
+                    goutsum += sir[1];
+                    boutsum += sir[2];
+                }
+            }
+            stackpointer = radius;
+
+            for (x = 0; x < w; x++) {
+
+                r[yi] = dv[rsum];
+                g[yi] = dv[gsum];
+                b[yi] = dv[bsum];
+
+                rsum -= routsum;
+                gsum -= goutsum;
+                bsum -= boutsum;
+
+                stackstart = stackpointer - radius + div;
+                sir = stack[stackstart % div];
+
+                routsum -= sir[0];
+                goutsum -= sir[1];
+                boutsum -= sir[2];
+
+                if (y == 0) {
+                    vmin[x] = Math.min(x + radius + 1, wm);
+                }
+                p = pix[yw + vmin[x]];
+
+                sir[0] = (p & 0xff0000) >> 16;
+                sir[1] = (p & 0x00ff00) >> 8;
+                sir[2] = (p & 0x0000ff);
+
+                rinsum += sir[0];
+                ginsum += sir[1];
+                binsum += sir[2];
+
+                rsum += rinsum;
+                gsum += ginsum;
+                bsum += binsum;
+
+                stackpointer = (stackpointer + 1) % div;
+                sir = stack[(stackpointer) % div];
+
+                routsum += sir[0];
+                goutsum += sir[1];
+                boutsum += sir[2];
+
+                rinsum -= sir[0];
+                ginsum -= sir[1];
+                binsum -= sir[2];
+
+                yi++;
+            }
+            yw += w;
+        }
+        for (x = 0; x < w; x++) {
+            rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0;
+            yp = -radius * w;
+            for (i = -radius; i <= radius; i++) {
+                yi = Math.max(0, yp) + x;
+
+                sir = stack[i + radius];
+
+                sir[0] = r[yi];
+                sir[1] = g[yi];
+                sir[2] = b[yi];
+
+                rbs = r1 - Math.abs(i);
+
+                rsum += r[yi] * rbs;
+                gsum += g[yi] * rbs;
+                bsum += b[yi] * rbs;
+
+                if (i > 0) {
+                    rinsum += sir[0];
+                    ginsum += sir[1];
+                    binsum += sir[2];
+                } else {
+                    routsum += sir[0];
+                    goutsum += sir[1];
+                    boutsum += sir[2];
+                }
+
+                if (i < hm) {
+                    yp += w;
+                }
+            }
+            yi = x;
+            stackpointer = radius;
+            for (y = 0; y < h; y++) {
+                // Preserve alpha channel: ( 0xff000000 & pix[yi] )
+                pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum];
+
+                rsum -= routsum;
+                gsum -= goutsum;
+                bsum -= boutsum;
+
+                stackstart = stackpointer - radius + div;
+                sir = stack[stackstart % div];
+
+                routsum -= sir[0];
+                goutsum -= sir[1];
+                boutsum -= sir[2];
+
+                if (x == 0) {
+                    vmin[y] = Math.min(y + r1, hm) * w;
+                }
+                p = x + vmin[y];
+
+                sir[0] = r[p];
+                sir[1] = g[p];
+                sir[2] = b[p];
+
+                rinsum += sir[0];
+                ginsum += sir[1];
+                binsum += sir[2];
+
+                rsum += rinsum;
+                gsum += ginsum;
+                bsum += binsum;
+
+                stackpointer = (stackpointer + 1) % div;
+                sir = stack[stackpointer];
+
+                routsum += sir[0];
+                goutsum += sir[1];
+                boutsum += sir[2];
+
+                rinsum -= sir[0];
+                ginsum -= sir[1];
+                binsum -= sir[2];
+
+                yi += w;
+            }
+        }
+
+        bitmap.setPixels(pix, 0, w, 0, 0, w, h);
+
+        return (bitmap);
+    }
+}

+ 81 - 11
app/src/main/java/com/sheep/gamegroup/util/viewHelper/UserCommentHelper.java

@@ -7,11 +7,17 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.sheep.gamegroup.dateview.DateUtil;
+import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.ApiUtil;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
 /**
  * Created by realicing on 2018/11/6.
@@ -58,17 +64,81 @@ public class UserCommentHelper {
     }
 
     //加载数据
-    public void loadHeaderViewData(final UserComment user_comment) {
+    public void loadHeaderViewData(final UserComment item) {
         user_comment_detail_user_publish_score.setMax(10);
-        user_comment_detail_user_publish_score.setProgress(user_comment.getScore());
-        ViewUtil.setText(user_comment_detail_num1, user_comment.getComment());
-        ViewUtil.setText(user_comment_detail_num2, user_comment.getLike());
-        ViewUtil.setText(user_comment_detail_num3, user_comment.getExpression());
-        ViewUtil.setText(user_comment_detail_game_name, user_comment.getApp_name());
-        ViewUtil.setText(user_comment_detail_user_name, user_comment.getNickname());
-        user_comment_detail_user_publish_time.setText(DateUtil.getTimeText(user_comment.getCreate_time()));
-        ViewUtil.setGameImage(user_comment_detail_game_icon, user_comment.getApp_icon());
-        ViewUtil.setAvatar(user_comment_detail_user_avatar, user_comment.getAvatar());
-        TextViewUtil.initIntroView(rootView, user_comment.getShowAll().setShowAllText("全文"));
+        user_comment_detail_user_publish_score.setProgress(item.getScore());
+        ViewUtil.setText(user_comment_detail_num1, item.getComment());
+        ViewUtil.setText(user_comment_detail_num2, item.getLike());
+        ViewUtil.setText(user_comment_detail_num3, item.getExpression());
+        ViewUtil.setText(user_comment_detail_game_name, item.getApp_name());
+        ViewUtil.setText(user_comment_detail_user_name, item.getNickname());
+        user_comment_detail_user_publish_time.setText(DateUtil.getTimeText(item.getCreate_time()));
+        ViewUtil.setGameImage(user_comment_detail_game_icon, item.getApp_icon(), SheepApp.getInstance().getResources().getDimensionPixelSize(R.dimen.content_padding_5));
+        ViewUtil.setAvatar(user_comment_detail_user_avatar, item.getAvatar());
+        TextViewUtil.initIntroView(rootView, item.getShowAll().setShowAllText("全文"));
+        user_comment_detail_user_avatar.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+            }
+        });
+        user_comment_detail_num1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Jump2View.getInstance().goActAppCommentDetail(ActivityManager.getInstance().currentActivity(), item.getId());
+            }
+        });
+        user_comment_detail_num2.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                user_comment_detail_num2.setEnabled(false);
+                ApiUtil.postGameUserUserGameCommentLike(item.getId(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        G.showToast("操作成功");
+                        if(user_comment_detail_num2 != null) {
+                            item.plusLike();
+                            ViewUtil.setText(user_comment_detail_num2, item.getLike());
+                            user_comment_detail_num2.setEnabled(true);
+                        }
+                    }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast("操作失败");
+                        if(user_comment_detail_num2 != null)
+                            user_comment_detail_num2.setEnabled(true);
+                    }
+                });
+            }
+        });
+        user_comment_detail_num3.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                user_comment_detail_num3.setEnabled(false);
+                ApiUtil.postGameUserUserGameCommentExpressionLike(item.getId(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        G.showToast("操作成功");
+                        if(user_comment_detail_num3 != null) {
+                            item.plusExpression();
+                            ViewUtil.setText(user_comment_detail_num3, item.getExpression());
+                            user_comment_detail_num3.setEnabled(true);
+                        }
+                    }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast("操作失败");
+                        if(user_comment_detail_num3 != null)
+                            user_comment_detail_num3.setEnabled(true);
+                    }
+                });
+            }
+        });
+    }
+
+    public ImageView getUser_comment_detail_game_icon() {
+        return user_comment_detail_game_icon;
     }
 }

File diff suppressed because it is too large
+ 677 - 677
app/src/main/java/com/sheep/gamegroup/view/activity/ActFindGame.java


+ 1 - 3
app/src/main/java/com/sheep/gamegroup/view/activity/ActGcGameAppDetail.java

@@ -209,9 +209,7 @@ public class ActGcGameAppDetail extends BaseActivity {
     public void initData() {
         GameEntity gameEntity = DataUtil.getInstance().getCacheResult(ApiKey.playGameDetail(id), GameEntity.class);
         checkData(gameEntity);
-        if (refresh != null) {
-            refresh.autoRefresh();
-        }
+        refreshData();
     }
     private int refreshDataCount = 0;
     //刷新数据

+ 111 - 32
app/src/main/java/com/sheep/gamegroup/view/activity/ActUserAppHome.java

@@ -26,6 +26,7 @@ import com.sheep.gamegroup.model.entity.GameInfoList;
 import com.sheep.gamegroup.model.entity.LatelyGame;
 import com.sheep.gamegroup.model.entity.UserFocus;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.CommonUtil;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.ListUtil;
@@ -82,8 +83,10 @@ public class ActUserAppHome extends BaseActivity {
     TextView user_app_home_num_focus_users;
     @BindView(R.id.user_app_home_num_focus_games)
     TextView user_app_home_num_focus_games;
-    @BindView(R.id.user_app_home_num_praise)
-    TextView user_app_home_num_praise;
+    @BindView(R.id.user_app_home_num_like)
+    TextView user_app_home_num_like;
+    @BindView(R.id.user_app_home_focus)
+    TextView user_app_home_focus;
     @BindView(R.id.user_app_home_name)
     TextView user_app_home_name;
     @BindView(R.id.user_app_home_game_list)
@@ -93,6 +96,7 @@ public class ActUserAppHome extends BaseActivity {
     private TitleFragmentListAdapter mAdapter;
 
     private ArrayList<GameInfoList> gameInfoListArrayList = ListUtil.emptyList();
+
     @Override
     public void initView() {
         focus_user_id = DataUtil.getObject(getIntent(), Integer.class);
@@ -101,8 +105,10 @@ public class ActUserAppHome extends BaseActivity {
         mAdapter = new TitleFragmentListAdapter(getSupportFragmentManager());
         FgtUserAppHomeCommentList fgtUserAppHomeCommentList = new FgtUserAppHomeCommentList();
         fgtUserAppHomeCommentList.setFocus_user_id(focus_user_id);
+        fgtUserAppHomeCommentList.setSmartRefreshLayout(refresh);
         FgtUserAppHomeReplyList fgtUserAppHomeReplyList = new FgtUserAppHomeReplyList();
         fgtUserAppHomeReplyList.setFocus_user_id(focus_user_id);
+        fgtUserAppHomeReplyList.setSmartRefreshLayout(refresh);
         mAdapter.add(fgtUserAppHomeCommentList, "评论");
         mAdapter.add(fgtUserAppHomeReplyList, "回复");
         viewPager.setAdapter(mAdapter);
@@ -136,41 +142,43 @@ public class ActUserAppHome extends BaseActivity {
     public void initData() {
         initDetailFromACache();
         initGameListFromACache();
-        if (refresh != null) {
-            refresh.autoRefresh();
-        }
+        refreshData();
     }
+
     //从缓存获取用户主页详情
     private void initDetailFromACache() {
         UserFocus userFocus = DataUtil.getInstance().getCacheResult(ApiKey.getGameUserDetail(focus_user_id), UserFocus.class);
         checkData(userFocus);
     }
+
     //从网络获取用户主页详情
     private void initDetailFromNet() {
         SheepApp.getInstance().getNetComponent().getApiService().getGameUserDetail(focus_user_id)
-                        .subscribeOn(Schedulers.io())
-                        .observeOn(AndroidSchedulers.mainThread())
-                        .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
-                            @Override
-                            public void onNext(BaseMessage baseMessage) {
-                                boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.getGameUserDetail(focus_user_id));
-                                if (isNewData) {
-                                    UserFocus userFocus = baseMessage.getData(UserFocus.class);
-                                    checkData(userFocus);
-                                }
-                            }
-
-                            @Override
-                            public void onError(BaseMessage baseMessage) {
-                                if(TestUtil.isDev()) G.showToast(baseMessage);
-                            }
-                        });
+                .subscribeOn(Schedulers.io())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        boolean isNewData = DataUtil.getInstance().isNewData(ApiKey.getGameUserDetail(focus_user_id));
+                        if (isNewData) {
+                            UserFocus userFocus = baseMessage.getData(UserFocus.class);
+                            checkData(userFocus);
+                        }
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        if (TestUtil.isDev()) G.showToast(baseMessage);
+                    }
+                });
     }
+
     //从缓存获取用户主页详情
     private void initGameListFromACache() {
         LatelyGame latelyGame = DataUtil.getInstance().getCacheResult(ApiKey.getGameUserLatelyGame(focus_user_id), LatelyGame.class);
         checkLatelyGame(latelyGame);
     }
+
     //从网络获取最近游戏与同类游戏
     private void initGameList() {
         SheepApp.getInstance().getNetComponent().getApiService().getGameUserLatelyGame(focus_user_id)
@@ -188,45 +196,49 @@ public class ActUserAppHome extends BaseActivity {
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        if(TestUtil.isDev()) G.showToast(baseMessage);
+                        if (TestUtil.isDev()) G.showToast(baseMessage);
                     }
                 });
     }
+
     //检查数据
     private void checkLatelyGame(LatelyGame latelyGame) {
-        if(latelyGame != null){
+        if (latelyGame != null) {
             loadLatelyGame(latelyGame);
         }
     }
+
     private List<GameApp> latelyGameList = ListUtil.emptyList();
     private List<GameApp> sameGameList = ListUtil.emptyList();
     public static final String NAME_LATELY = "在玩的游戏";
     public static final String NAME_SAME = "同类游戏";
+
     //加载最近游戏与同类游戏
     private void loadLatelyGame(LatelyGame latelyGame) {
         reloadList(latelyGameList, latelyGame.getLately(), NAME_LATELY);
         reloadList(sameGameList, latelyGame.getSame(), NAME_SAME);
         user_app_home_game_list.getAdapter().notifyDataSetChanged();
     }
+
     //重新加载列表
     private void reloadList(List<GameApp> list, List<GameApp> addList, final String name) {
         list.clear();
-        if(!ListUtil.isEmpty(addList)){
+        if (!ListUtil.isEmpty(addList)) {
             list.addAll(addList);
         }
-        if(ListUtil.getItem(gameInfoListArrayList, new ListUtil.CallBack<GameInfoList, Boolean>() {
+        if (ListUtil.getItem(gameInfoListArrayList, new ListUtil.CallBack<GameInfoList, Boolean>() {
             @Override
             public Boolean call(GameInfoList gameInfoList) {
                 return TextUtils.equals(gameInfoList.getName(), name);
             }
-        }) == null){
+        }) == null) {
             gameInfoListArrayList.add(new GameInfoList(name, new AdpGcGameAppList(SheepApp.getInstance(), R.layout.item_gc_game_app_63, list)).setHorizontal().setShowBottomLine(true).setShowTopLine(false));
         }
     }
 
     //检查数据
     private void checkData(UserFocus userFocus) {
-        if(userFocus == null){
+        if (userFocus == null) {
             resetView();
         } else {
             loadData(userFocus);
@@ -239,22 +251,40 @@ public class ActUserAppHome extends BaseActivity {
         ViewUtil.setDefaultText(user_app_home_num_fans);
         ViewUtil.setDefaultText(user_app_home_num_focus_users);
         ViewUtil.setDefaultText(user_app_home_num_focus_games);
-        ViewUtil.setDefaultText(user_app_home_num_praise);
+        ViewUtil.setDefaultText(user_app_home_num_like);
+        ViewUtil.setDefaultText(user_app_home_focus);
     }
+
+    private UserFocus userFocus;
+
     //加载数据
     private void loadData(UserFocus userFocus) {
+        this.userFocus = userFocus;
         ViewUtil.setText(user_app_home_name, userFocus.getNick_name());
         ViewUtil.setAvatar(user_app_home_avatar, userFocus.getAvatar());
+        ViewUtil.setBlur(user_app_home_bg, userFocus.getAvatar());
         ViewUtil.setText(user_app_home_num_fans, userFocus.getFan());
         ViewUtil.setText(user_app_home_num_focus_users, userFocus.getFocus_user());
         ViewUtil.setText(user_app_home_num_focus_games, userFocus.getFocus_game());
-        ViewUtil.setText(user_app_home_num_praise, userFocus.getLike());
+        updateLikeTv();
+        updateFocusTv();
+    }
+
+    //更新点赞数量
+    private void updateLikeTv() {
+        ViewUtil.setText(user_app_home_num_like, userFocus.getLike());
+    }
+
+    //更新关注状态
+    private void updateFocusTv() {
+        ViewUtil.setText(user_app_home_focus, getString(userFocus.isIs_focus_user() ? R.string.has_focus : R.string.focus));
     }
 
     //refreshData调用次数
     private int refreshDataCount = 0;
+
     //刷新数据
-    public void refreshData(){
+    public void refreshData() {
         initDetailFromNet();
         initGameList();
         boolean isRefresh = false;
@@ -266,7 +296,7 @@ public class ActUserAppHome extends BaseActivity {
             }
         }
         refreshDataCount++;
-        if(!isRefresh)
+        if (!isRefresh)
             notifyDataSetChanged();
     }
 
@@ -297,6 +327,55 @@ public class ActUserAppHome extends BaseActivity {
     public void onClickShareImg(View view) {
         //TODO 点击分享游戏
         G.showToast(R.string.coming_soon);
+//        FIND_SHARE.onEvent("application_id", id);
+//        Jump2View.getInstance().tryShare(this, "find_share_url", "application_id", id);
+    }
+
+    //点击赞
+    public void onClickLike(final View view) {
+        if (userFocus == null) {
+            G.showToast(R.string.loading_data);
+            return;
+        }
+        view.setEnabled(false);
+        ApiUtil.postGameUserLike(focus_user_id, new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+            @Override
+            public void onNext(BaseMessage baseMessage) {
+                G.showToast(R.string.like_success);
+                userFocus.plusLike();
+                updateLikeTv();
+                view.setEnabled(true);
+            }
+
+            @Override
+            public void onError(BaseMessage baseMessage) {
+                G.showToast(R.string.like_fail);
+                view.setEnabled(true);
+            }
+        });
     }
 
+    //点击关注
+    public void onClickFocus(final View view) {
+        if (userFocus == null) {
+            G.showToast(R.string.loading_data);
+            return;
+        }
+        view.setEnabled(false);
+        ApiUtil.postGameUserFocusUser(focus_user_id, new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+            @Override
+            public void onNext(BaseMessage baseMessage) {
+                G.showToast(userFocus.isIs_focus_user() ? R.string.cancel_focus_success : R.string.focus_success);
+                userFocus.toggleFocusUser();
+                updateFocusTv();
+                view.setEnabled(true);
+            }
+
+            @Override
+            public void onError(BaseMessage baseMessage) {
+                G.showToast(userFocus.isIs_focus_user() ? R.string.cancel_focus_fail : R.string.focus_fail);
+                view.setEnabled(true);
+            }
+        });
+    }
 }

+ 14 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/MiddleAct.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.entity.JPushMessage;
 import com.sheep.gamegroup.util.ActionUtil;
+import com.sheep.gamegroup.util.IDConstant;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.MainTab;
 import com.sheep.jiuyan.samllsheep.BuildConfig;
@@ -92,7 +93,7 @@ public class MiddleAct extends Activity {
             case 13://任务记录
                 Jump2View.getInstance().goTaskList2View(activity, null);
                 break;
-            case 21://邀请赚钱
+            case IDConstant.JUMP_ASK_FRIEND_2://邀请赚钱
                 Jump2View.getInstance().goAskGetMoney(activity, null);
                 break;
             case 31://办卡赚钱
@@ -174,6 +175,18 @@ public class MiddleAct extends Activity {
                 ActionUtil.getInstance().addNextAction(ActMain.class.getSimpleName(), MainTab.Fgt_Find);
                 Jump2View.getInstance().newTaskTopStartAct(activity, SplashAct.class, bundle);
                 break;
+            case IDConstant.JUMP_GMAE://游戏详情
+                Jump2View.getInstance().goPlayGameDetail(activity, msg.getId());
+                break;
+            case IDConstant.JUMP_FIND_RECOMMEND://发现--推荐
+            case IDConstant.JUMP_FIND_ACT://发现--活动
+            case IDConstant.JUMP_FIND_INFORMATION://webView资讯
+            case IDConstant.JUMP_FIND_GMAE://发现中的游戏详情
+                Jump2View.getInstance().goFindItem(activity, msg.getId());
+                break;
+            case IDConstant.JUMP_WATCH_FOCUS://看点
+                Jump2View.getInstance().goWatchFocus(activity, msg.getId());
+                break;
             case 0://直接启动或者重启app
             default:
                 Jump2View.getInstance().newTaskTopStartAct(activity, SplashAct.class, bundle);

+ 7 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGameCenter1_2List.java

@@ -55,7 +55,7 @@ public class AdpGameCenter1_2List extends RecyclerViewAdapter<ListTypeList<GameR
             }
 
             @Override
-            public void convert(com.sheep.gamegroup.util.ViewHolder holder, GameRecommend item) {
+            public void convert(com.sheep.gamegroup.util.ViewHolder holder, final GameRecommend item) {
                 int index = holder.getAdapterPosition();
                 TextView item_play_game_name =  holder.itemView.findViewById(R.id.item_play_game_name);
                 View item_play_game_start =  holder.itemView.findViewById(R.id.item_play_game_start);
@@ -68,6 +68,12 @@ public class AdpGameCenter1_2List extends RecyclerViewAdapter<ListTypeList<GameR
                 } else {
                     ViewUtil.setText(item_play_game_name, item.getTitle());
                     ViewUtil.setImage(item_play_game_iv, item.getUrl(), mContext.getResources().getDimensionPixelSize(R.dimen.content_padding_3));
+                    holder.itemView.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            Jump2View.getInstance().goPlayGameDetail((Activity) context, item.getAppId());
+                        }
+                    });
                 }
             }
         });

+ 1 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppInfoList.java

@@ -17,6 +17,7 @@ import java.util.List;
 /**
  * Created by realicing on 2018/11/1.
  * realicing@sina.com
+ * 主页游戏模块--玩转游戏中列表
  * 游戏详情中详情列表:游戏介绍、详情信息、用户评价、相关游戏、热门试玩
  * 游戏详情中福利列表:游戏评分、文章推荐、活动推荐
  */

+ 10 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppList.java

@@ -1,13 +1,16 @@
 package com.sheep.gamegroup.view.adapter;
 
 import android.content.Context;
+import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
 import com.kfzs.appstore.utils.adapter.recyclerview.ViewHolder;
 import com.sheep.gamegroup.model.entity.GameApp;
+import com.sheep.gamegroup.util.ActivityManager;
 import com.sheep.gamegroup.util.GlideImageLoader;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
 
@@ -24,7 +27,7 @@ public class AdpGcGameAppList extends RecyclerViewAdapter<GameApp> {
     }
 
     @Override
-    public void convert(ViewHolder viewHolder, GameApp item, int position) {
+    public void convert(ViewHolder viewHolder, final GameApp item, int position) {
         ImageView item_gc_game_app_iv = viewHolder.itemView.findViewById(R.id.item_gc_game_app_iv);
         TextView item_gc_game_app_tv = viewHolder.itemView.findViewById(R.id.item_gc_game_app_tv);
         if (item == null) {
@@ -33,6 +36,12 @@ public class AdpGcGameAppList extends RecyclerViewAdapter<GameApp> {
             // 加载数据
             ViewUtil.setText(item_gc_game_app_tv, item.getName());
             GlideImageLoader.setGameImage(item_gc_game_app_iv, item.getIcon());
+            viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    Jump2View.getInstance().goPlayGameDetail(null, item.getId());
+                }
+            });
         }
     }
 }

+ 7 - 0
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserAppHomeComment.java

@@ -5,6 +5,7 @@ import android.view.View;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
 import com.sheep.gamegroup.model.entity.UserComment;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.viewHelper.UserCommentHelper;
 import com.sheep.jiuyan.samllsheep.R;
@@ -33,5 +34,11 @@ public class AdpUserAppHomeComment extends BaseQuickAdapter<UserComment, BaseVie
         else
             headerViewHelper = new UserCommentHelper(helper.itemView);
         headerViewHelper.loadHeaderViewData(item);
+        headerViewHelper.getUser_comment_detail_game_icon().setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Jump2View.getInstance().goPlayGameDetail(null, item.getApp_id());
+            }
+        });
     }
 }

+ 5 - 2
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserAppHomeReply.java

@@ -41,17 +41,20 @@ public class AdpUserAppHomeReply extends BaseQuickAdapter<UserCommentWithReply,
         user_reply_detail_num1.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
+                user_reply_detail_num1.setEnabled(false);
                 ApiUtil.postGameUserUserGameCommentLike(item.getUser_comment_id(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
                     @Override
                     public void onNext(BaseMessage baseMessage) {
                         item.setLike(item.getLike() + 1);
                         ViewUtil.setText(user_reply_detail_num1, item.getLike());
-                        G.showToast(baseMessage);
+                        user_reply_detail_num1.setEnabled(true);
+                        G.showToast("操作成功");
                     }
 
                     @Override
                     public void onError(BaseMessage baseMessage) {
-                        G.showToast(baseMessage);
+                        user_reply_detail_num1.setEnabled(true);
+                        G.showToast("操作失败");
                     }
                 });
             }

+ 41 - 4
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpUserCommentReply.java

@@ -6,11 +6,18 @@ import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
+import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.entity.UserCommentReply;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
+import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.ApiUtil;
+import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
 import java.util.List;
 import java.util.Locale;
@@ -35,8 +42,8 @@ public class AdpUserCommentReply extends BaseQuickAdapter<UserCommentReply, Base
         int position = helper.getAdapterPosition() - getHeaderLayoutCount();
         ImageView game_app_comment_user_avatar = helper.itemView.findViewById(R.id.game_app_comment_user_avatar);
         TextView game_app_comment_user_name = helper.itemView.findViewById(R.id.game_app_comment_user_name);
-        TextView game_app_comment_num1 = helper.itemView.findViewById(R.id.game_app_comment_num1);
-        TextView game_app_comment_num2 = helper.itemView.findViewById(R.id.game_app_comment_num2);
+        final TextView game_app_comment_num1 = helper.itemView.findViewById(R.id.game_app_comment_num1);
+//        TextView game_app_comment_num2 = helper.itemView.findViewById(R.id.game_app_comment_num2);
         View game_app_comment_line_bottom = helper.itemView.findViewById(R.id.game_app_comment_line_bottom);
         TextView user_comment_reply_content = helper.itemView.findViewById(R.id.user_comment_reply_content);
         View game_app_comment_line_top = helper.itemView.findViewById(R.id.game_app_comment_line_top);
@@ -51,10 +58,40 @@ public class AdpUserCommentReply extends BaseQuickAdapter<UserCommentReply, Base
             ViewUtil.setText(game_app_comment_user_name, String.format(Locale.CHINA, "%s 回复 %s", item.getNickname(), userComment.getNickname()));
         }
         ViewUtil.setAvatar(game_app_comment_user_avatar, item.getAvatar());
-        ViewUtil.setText(game_app_comment_num1, item.getReply());
-        ViewUtil.setText(game_app_comment_num2, item.getLike());
+        ViewUtil.setText(game_app_comment_num1, item.getLike());
         ViewUtil.setVisibility(game_app_comment_line_bottom, false);
         ViewUtil.setVisibility(user_comment_reply_content, false);
         TextViewUtil.initIntroView(helper.itemView, item.getShowAll());
+
+        game_app_comment_num1.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                game_app_comment_num1.setEnabled(false);
+                ApiUtil.postGameUserUserCommentLike(item.getId(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        G.showToast("操作成功");
+                        if(game_app_comment_num1 != null) {
+                            item.setLike(item.getLike() + 1);
+                            ViewUtil.setText(game_app_comment_num1, item.getLike());
+                            game_app_comment_num1.setEnabled(true);
+                        }
+                    }
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast("操作失败");
+                        if(game_app_comment_num1 != null)
+                            game_app_comment_num1.setEnabled(true);
+                    }
+                });
+            }
+        });
+        game_app_comment_user_avatar.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
+            }
+        });
     }
 }

+ 8 - 11
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtGcGameAppDetail.java

@@ -5,7 +5,6 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
 import android.view.View;
-import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.kfzs.appstore.utils.adapter.recyclerview.RecyclerViewAdapter;
@@ -20,7 +19,6 @@ import com.sheep.gamegroup.model.entity.GameInfoList;
 import com.sheep.gamegroup.model.entity.ShowAll;
 import com.sheep.gamegroup.model.entity.UserComment;
 import com.sheep.gamegroup.model.util.SheepSubscriber;
-import com.sheep.gamegroup.util.GlideImageLoader;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.TextViewUtil;
 import com.sheep.gamegroup.util.TimeUtil;
@@ -30,7 +28,6 @@ import com.sheep.gamegroup.view.adapter.AdpGcGameAppInfoList;
 import com.sheep.gamegroup.view.adapter.AdpGcGameAppList;
 import com.sheep.jiuyan.samllsheep.R;
 import com.sheep.jiuyan.samllsheep.SheepApp;
-import com.sheep.jiuyan.samllsheep.base.BaseFragment;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
 import java.util.ArrayList;
@@ -52,7 +49,7 @@ public class FgtGcGameAppDetail extends BaseRefreshLoadMoreFragment implements A
     @BindView(R.id.gc_game_app_detail_pic_list)
     RecyclerView gc_game_app_detail_pic_list;
     @BindView(R.id.gc_game_app_detail_info_list)
-    RecyclerView gc_game_app_detail_info_list;
+    RecyclerView recyclerView;
 
     private Activity activity;
 
@@ -75,10 +72,10 @@ public class FgtGcGameAppDetail extends BaseRefreshLoadMoreFragment implements A
     public void onViewCreated() {
         activity = getActivity();
         ImageListHelper.initList(activity, gc_game_app_detail_pic_list, pictureList);
-        gc_game_app_detail_info_list.setHasFixedSize(true);
-        gc_game_app_detail_info_list.setNestedScrollingEnabled(false);
-        gc_game_app_detail_info_list.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
-        gc_game_app_detail_info_list.setAdapter(new AdpGcGameAppInfoList(gameInfoListArrayList));
+        recyclerView.setHasFixedSize(true);
+        recyclerView.setNestedScrollingEnabled(false);
+        recyclerView.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance()));
+        recyclerView.setAdapter(new AdpGcGameAppInfoList(gameInfoListArrayList));
     }
 
     //ActGcGameAppDetail调用该方法传入对应的游戏数据
@@ -126,7 +123,7 @@ public class FgtGcGameAppDetail extends BaseRefreshLoadMoreFragment implements A
             }
         }).setSort(SORT_GAME_INFO));
         Collections.sort(gameInfoListArrayList);
-        gc_game_app_detail_info_list.getAdapter().notifyDataSetChanged();
+        recyclerView.getAdapter().notifyDataSetChanged();
     }
 
     //加载相关游戏与热门试玩数据列表
@@ -140,7 +137,7 @@ public class FgtGcGameAppDetail extends BaseRefreshLoadMoreFragment implements A
                         if (!ListUtil.isEmpty(newList)) {
                             gameInfoListArrayList.add(new GameInfoList(name, new AdpGcGameAppList(SheepApp.getInstance(), R.layout.item_gc_game_app_63, newList), onClickListener).setHorizontal().setSort(sort));
                             Collections.sort(gameInfoListArrayList);
-                            gc_game_app_detail_info_list.getAdapter().notifyDataSetChanged();
+                            recyclerView.getAdapter().notifyDataSetChanged();
                         }
                         refreshOrLoadMoreComplete();
                     }
@@ -209,7 +206,7 @@ public class FgtGcGameAppDetail extends BaseRefreshLoadMoreFragment implements A
             gameInfoListArrayList.add(new GameInfoList("用户评价", new AdpGcGameAppComment(userCommentList)).setSort(SORT_USER_COMMENT));
             Collections.sort(gameInfoListArrayList);
         }
-        gc_game_app_detail_info_list.getAdapter().notifyDataSetChanged();
+        recyclerView.getAdapter().notifyDataSetChanged();
     }
 
     //游戏介绍

+ 4 - 3
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtPlayGame.java

@@ -160,13 +160,14 @@ public class FgtPlayGame extends BaseFragment {
 
             @Override
             public void onRefresh(@NonNull RefreshLayout refreshLayout) {
-                initData();
+                refreshData();
             }
         });
         RefreshUtil.newInstance().publicParameter(refresh, activity);
         initGameListType3List();
         initGameListType2List();
-        refresh.autoRefresh();
+        if(refresh != null)
+            refresh.autoRefresh();
     }
 
     public static final String[] gameListType3Titles = {"每日必玩", "近期最热", "猜你喜欢"};
@@ -198,7 +199,7 @@ public class FgtPlayGame extends BaseFragment {
         }
     }
 
-    private void initData() {
+    private void refreshData() {
         initBanner();
         initBannerAct();
         initGameList3();

+ 11 - 2
app/src/main/java/com/sheep/gamegroup/view/fragment/FgtUserCommentDetail.java

@@ -7,6 +7,7 @@ import android.view.View;
 import android.widget.EditText;
 import android.widget.LinearLayout;
 import android.widget.RelativeLayout;
+import android.widget.TextView;
 
 import com.scwang.smartrefresh.layout.SmartRefreshLayout;
 import com.scwang.smartrefresh.layout.api.RefreshLayout;
@@ -22,6 +23,7 @@ import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.ListUtil;
 import com.sheep.gamegroup.util.RefreshUtil;
 import com.sheep.gamegroup.util.TestUtil;
+import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.gamegroup.util.viewHelper.UserCommentHelper;
 import com.sheep.gamegroup.view.adapter.AdpUserCommentReply;
 import com.sheep.jiuyan.samllsheep.R;
@@ -56,7 +58,7 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> {
 
     @Override
     public void initView() {
-        TitleBarUtils.getInstance().setTitle(mView, "回复详情")
+        TitleBarUtils.getInstance().setTitle(mView, "评论详情")
                 .setTitleFinish(mView, activity);
         smartRefreshLayout = refresh;
         refresh.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@@ -94,10 +96,15 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> {
     private UserCommentHelper headerViewHelper;
 
     private LinearLayout user_comment_detail_game_ll;
+    private TextView total_count_tv;
     //初始化headerView
     private void initHeaderView() {
         headerViewHelper = new UserCommentHelper(R.layout.header_user_comment_detail);
+        total_count_tv = headerViewHelper.getRootView().findViewById(R.id.total_count_tv);
         user_comment_detail_game_ll = headerViewHelper.getRootView().findViewById(R.id.user_comment_detail_game_ll);
+        if(total_count_tv != null){
+            ViewUtil.setText(total_count_tv, getString(R.string.total_x_comment, ViewUtil.BLOCK));
+        }
     }
 
     //    ------------------------------end header------------------------------------
@@ -164,7 +171,7 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> {
     @Override
     protected List<UserCommentReply> resolveData(BaseMessage baseMessage, int page) {
         final UserCommentDetail userCommentDetail = baseMessage.getData(UserCommentDetail.class);
-        if (page == 0) {
+        if (page == 0 && userCommentDetail != null) {
             adapter.setUserComment(userCommentDetail.getUser_comment());
             headerViewHelper.loadHeaderViewData(userCommentDetail.getUser_comment());
             user_comment_detail_game_ll.setOnClickListener(new View.OnClickListener() {
@@ -177,6 +184,7 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> {
                         G.showToast(R.string.loading_data);
                 }
             });
+            ViewUtil.setText(total_count_tv, getString(R.string.total_x_comment, String.valueOf(userCommentDetail.getUser_comment_reply().getTotal())));
         }
         if (userCommentDetail != null && userCommentDetail.getUser_comment_reply() != null && userCommentDetail.getUser_comment_reply().getReply_list() != null)
             return userCommentDetail.getUser_comment_reply().getReply_list();
@@ -188,6 +196,7 @@ public class FgtUserCommentDetail extends BaseListFragment3<UserCommentReply> {
         return UserCommentReply.class;
     }
 
+
     @Override
     protected void updateEmptyView() {
         if (adapter != null) {

+ 58 - 4
app/src/main/res/layout/act_user_app_home.xml

@@ -18,7 +18,9 @@
 
         <android.support.constraint.ConstraintLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent">
+            android:layout_height="match_parent"
+            android:focusable="true"
+            android:focusableInTouchMode="true">
 
 
             <ImageView
@@ -51,9 +53,61 @@
                 android:src="@drawable/ic_but_share_white"
                 app:layout_constraintEnd_toEndOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
-            <TextView
-                android:layout_width=""
-                android:layout_height="" />
+
+            <LinearLayout
+                android:id="@+id/user_app_home_num_like_ll"
+                android:layout_width="45dp"
+                android:layout_height="45dp"
+                android:background="#99FD2D54"
+                android:gravity="center"
+                android:orientation="vertical"
+                android:onClick="onClickLike"
+                app:layout_constraintBottom_toBottomOf="@id/user_app_home_bg"
+                app:layout_constraintEnd_toEndOf="parent">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="16dp"
+                    android:src="@mipmap/ic_like_white" />
+
+                <TextView
+                    android:id="@+id/user_app_home_num_like"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:gravity="center"
+                    android:text="@string/x"
+                    android:textColor="@color/white"
+                    android:textSize="12sp" />
+            </LinearLayout>
+            <!--不透明度40%-->
+            <LinearLayout
+                android:id="@+id/user_app_home_focus_ll"
+                android:layout_width="45dp"
+                android:layout_height="45dp"
+                android:background="#99CCCCCC"
+                android:gravity="center"
+                android:onClick="onClickFocus"
+                android:orientation="vertical"
+                app:layout_constraintEnd_toEndOf="parent"
+                app:layout_constraintStart_toStartOf="@id/user_app_home_num_like_ll"
+                app:layout_constraintTop_toBottomOf="@id/user_app_home_bg">
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="16dp"
+                    android:src="@mipmap/ic_focus_red" />
+
+                <TextView
+                    android:id="@+id/user_app_home_focus"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:gravity="center"
+                    android:text="@string/focus"
+                    android:textColor="#F7778F"
+                    android:textSize="12sp" />
+            </LinearLayout>
             <!--添加user_app_home_line, 只是为了让它下面的布局与 user_app_home_bg 的底部对齐-->
             <View
                 android:id="@+id/user_app_home_line"

+ 1 - 0
app/src/main/res/layout/empty_view.xml

@@ -23,6 +23,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_below="@id/empty_view_img"
+        android:layout_marginBottom="60dp"
         android:layout_centerHorizontal="true"
         android:layout_marginTop="@dimen/content_padding_big"
         android:text="@string/loading" />

+ 1 - 0
app/src/main/res/layout/footer_user_comment_detail.xml

@@ -20,6 +20,7 @@
         style="@style/style_empty_text"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="60dp"
         android:layout_marginTop="@dimen/content_padding_big"
         android:text="@string/wushuju" />
 </LinearLayout>

+ 1 - 1
app/src/main/res/layout/include_intro.xml

@@ -30,7 +30,7 @@
         android:text="全文"
         android:textColor="#ff4bc1ff"
         android:textSize="12sp"
-        android:visibility="visible"
+        android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="@id/intro_content"
         app:layout_constraintEnd_toEndOf="parent" />
 </android.support.constraint.ConstraintLayout>

+ 1 - 1
app/src/main/res/layout/item_user_app_home_comment.xml

@@ -123,7 +123,7 @@
             android:text="全文"
             android:textColor="#ff4bc1ff"
             android:textSize="12sp"
-            android:visibility="visible"
+            android:visibility="gone"
             app:layout_constraintBottom_toBottomOf="@id/intro_content"
             app:layout_constraintEnd_toEndOf="parent" />
 

+ 1 - 17
app/src/main/res/layout/item_user_comment_reply.xml

@@ -72,7 +72,7 @@
         android:layout_height="wrap_content"
         android:layout_marginEnd="10dp"
         android:layout_marginBottom="6dp"
-        android:drawableStart="@drawable/ic_but_speak"
+        android:drawableStart="@drawable/ic_but_up"
         android:drawablePadding="6dp"
         android:paddingStart="8dp"
         android:paddingTop="14dp"
@@ -84,22 +84,6 @@
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toBottomOf="@id/intro_show_all" />
 
-    <TextView
-        android:id="@+id/game_app_comment_num2"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:drawableStart="@drawable/ic_but_up"
-        android:drawablePadding="6dp"
-        android:paddingStart="8dp"
-        android:paddingTop="14dp"
-        android:paddingEnd="8dp"
-        android:paddingBottom="14dp"
-        android:text="54"
-        android:textColor="#ff666666"
-        android:textSize="11sp"
-        app:layout_constraintEnd_toStartOf="@id/game_app_comment_num1"
-        app:layout_constraintTop_toTopOf="@id/game_app_comment_num1" />
-
     <View
         android:id="@+id/game_app_comment_line_bottom"
         android:layout_width="match_parent"

BIN
app/src/main/res/mipmap-xxhdpi/ic_focus_red.png


BIN
app/src/main/res/mipmap-xxhdpi/ic_like_white.png


+ 8 - 0
app/src/main/res/values/strings.xml

@@ -118,6 +118,14 @@
     <string name="my_fans">我的粉丝</string>
     <string name="focus_users">关注的人</string>
     <string name="focus_games">关注的游戏</string>
+    <string name="focus">关注</string>
+    <string name="cancel_focus_success">取消关注成功</string>
+    <string name="cancel_focus_fail">取消关注失败</string>
+    <string name="focus_success">关注成功</string>
+    <string name="focus_fail">关注失败</string>
+    <string name="like_success">点赞成功</string>
+    <string name="like_fail">点赞失败</string>
+    <string name="has_focus">已关注</string>
     <string name="x">%s</string>
     <string name="total_x_comment">共%s条评论</string>
     <string name="total_x_reply">共%s条回复</string>

+ 2 - 0
view/src/main/java/com/kfzs/android/view/widget/WrapContentHeightViewPager.java

@@ -59,11 +59,13 @@ public class WrapContentHeightViewPager extends ViewPager {
 
     @Override
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+//        System.out.println("onMeasure " + getCurrentItem());
         View childView = getChildAt(getCurrentItem());
         if (childView != null) {
             childView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
             int viewHeight = childView.getMeasuredHeight();
             heightMeasureSpec = MeasureSpec.makeMeasureSpec(viewHeight, MeasureSpec.EXACTLY);
+//            System.out.println(viewHeight + " onMeasure " + getCurrentItem());
         }
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     }