huping 1 年之前
父节点
当前提交
a028dc9562
共有 25 个文件被更改,包括 408 次插入114 次删除
  1. 14 0
      TMessagesProj/proguard-rules.pro
  2. 6 4
      TMessagesProj/src/main/java/org/telegram/cricdit/adapter/FilterTypeAdapter.java
  3. 16 0
      TMessagesProj/src/main/java/org/telegram/cricdit/adapter/NewsAdapter.java
  4. 1 2
      TMessagesProj/src/main/java/org/telegram/cricdit/adapter/NewsGroupAdapter.java
  5. 6 3
      TMessagesProj/src/main/java/org/telegram/cricdit/adapter/PointsRecordAdapter.java
  6. 12 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/BaseCrcmaBean.java
  7. 6 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/CrcmaBean.java
  8. 28 6
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/PointsRecordBean.java
  9. 23 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/PointsTypeBean.java
  10. 1 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/ProfileSelfBean.java
  11. 44 4
      TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PointsRecordPresenter.java
  12. 5 0
      TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PointsRecordView.java
  13. 40 16
      TMessagesProj/src/main/java/org/telegram/cricdit/mvp/SendAnFeedPresenter.java
  14. 7 1
      TMessagesProj/src/main/java/org/telegram/cricdit/net/ApiService.java
  15. 6 2
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/MeActivity.java
  16. 55 23
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/NewsDetailCommentFragment.java
  17. 47 19
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/PointsRecordActivity.java
  18. 2 1
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/SendAnFeedActivity.java
  19. 19 11
      TMessagesProj/src/main/java/org/telegram/cricdit/view/CustomBubbleAttachPopup.java
  20. 14 0
      TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java
  21. 14 11
      TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java
  22. 37 9
      TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java
  23. 2 0
      TMessagesProj/src/main/res/layout/activity_points_record.xml
  24. 1 0
      TMessagesProj/src/main/res/values/strings.xml
  25. 2 2
      gradle.properties

+ 14 - 0
TMessagesProj/proguard-rules.pro

@@ -213,4 +213,18 @@
 -keep class tv.danmaku.ijk.** { *; }
 -dontwarn tv.danmaku.ijk.**
 
+# EventBus
+-keepattributes *Annotation*
+-keepclassmembers class * {
+    @org.greenrobot.eventbus.Subscribe <methods>;
+}
+-keep enum org.greenrobot.eventbus.ThreadMode { *; }
 
+# If using AsyncExecutord, keep required constructor of default event used.
+# Adjust the class name if a custom failure event type is used.
+-keepclassmembers class org.greenrobot.eventbus.util.ThrowableFailureEvent {
+    <init>(java.lang.Throwable);
+}
+
+# Accessed via reflection, avoid renaming or removal
+#-keep class org.greenrobot.eventbus.android.AndroidComponentsImpl

+ 6 - 4
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/FilterTypeAdapter.java

@@ -6,17 +6,19 @@ import androidx.annotation.Nullable;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
 
+import org.telegram.cricdit.bean.PointsTypeBean;
 import org.telegram.messenger.R;
 
 import java.util.List;
 
-public class FilterTypeAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
-    public FilterTypeAdapter(int layoutResId, @Nullable List<String> data) {
+public class FilterTypeAdapter extends BaseQuickAdapter<PointsTypeBean.DataDTO, BaseViewHolder> {
+    public FilterTypeAdapter(int layoutResId, @Nullable List<PointsTypeBean.DataDTO> data) {
         super(layoutResId, data);
     }
 
     @Override
-    protected void convert(@NonNull BaseViewHolder helper, String item) {
-        helper.setText(R.id.filter_type_title,item);
+    protected void convert(@NonNull BaseViewHolder helper, PointsTypeBean.DataDTO item) {
+        helper.setText(R.id.filter_type_title,item.name);
     }
+
 }

+ 16 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/NewsAdapter.java

@@ -34,6 +34,8 @@ import com.zhy.view.flowlayout.TagAdapter;
 import com.zhy.view.flowlayout.TagFlowLayout;
 
 import org.telegram.cricdit.base.BaseObserver;
+import org.telegram.cricdit.bean.BaseBean;
+import org.telegram.cricdit.bean.CrcmaBean;
 import org.telegram.cricdit.bean.NewsBean;
 import org.telegram.cricdit.config.Constants;
 import org.telegram.cricdit.mvp.NewsPresenter;
@@ -43,11 +45,13 @@ import org.telegram.cricdit.ui.MagnifyImagesActivity;
 import org.telegram.cricdit.ui.NewsDetailCommentFragment;
 import org.telegram.cricdit.ui.NewsTagActivity;
 import org.telegram.cricdit.utils.ColorUtil;
+import org.telegram.cricdit.utils.GsonHel;
 import org.telegram.cricdit.utils.StringUtils;
 import org.telegram.cricdit.utils.TimeUtils;
 import org.telegram.cricdit.utils.ToastUtil;
 import org.telegram.cricdit.utils.UIUtil;
 import org.telegram.messenger.AndroidUtilities;
+import org.telegram.messenger.ApplicationLoader;
 import org.telegram.messenger.LocaleController;
 import org.telegram.messenger.MessagesController;
 import org.telegram.messenger.MessagesStorage;
@@ -453,6 +457,18 @@ public class NewsAdapter extends RecyclerView.Adapter {
                 presenter.like(Integer.parseInt(myBean.getId() + ""), new BaseObserver<Object>() {
                     @Override
                     protected void onSuccess(Object data) {
+                        if (data.toString().contains("num")) {
+                            try {
+                                CrcmaBean crcmaBean = GsonHel.fromJson(data.toString(), CrcmaBean.class);
+                            if (crcmaBean!=null && !TextUtils.isEmpty(crcmaBean.num)) {
+                                ToastUtil.show(ApplicationLoader.applicationContext, LocaleController.getString(R.string.CdCrcma) + crcmaBean.num);
+                            }
+                            } catch (Exception e){
+                                System.out.println(e.getMessage());
+                            }
+
+                        }
+
                         Drawable drawableLeft = mContext.getResources().getDrawable(R.mipmap.icon_liked);
                         myBean.setIsLike(!myBean.getIsLike());
                         if (myBean.getIsLike()) {

+ 1 - 2
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/NewsGroupAdapter.java

@@ -96,7 +96,7 @@ public class NewsGroupAdapter extends RecyclerView.Adapter {
 
         if (TextUtils.isEmpty(groupData.group_image)) {
             viewHolder.headText.setVisibility(View.VISIBLE);
-            viewHolder.headText.setText(groupData.group_name.substring(0, 1).toUpperCase());
+            viewHolder.headText.setText(!TextUtils.isEmpty(groupData.group_name) ? groupData.group_name.substring(0, 1).toUpperCase() : "");
             viewHolder.head.setVisibility(View.INVISIBLE);
         } else {
             viewHolder.head.setVisibility(View.VISIBLE);
@@ -112,7 +112,6 @@ public class NewsGroupAdapter extends RecyclerView.Adapter {
 
             }
         }
-        System.out.println("wqerqwerqwr    " + groupData.group_name  + "  :  " + groupData.group_image);
 //        if (!TextUtils.isEmpty(groupData.public_link)) {
 //            TLObject request;
 //

+ 6 - 3
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/PointsRecordAdapter.java

@@ -1,5 +1,7 @@
 package org.telegram.cricdit.adapter;
 
+import android.text.format.DateUtils;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.RecyclerView;
@@ -8,6 +10,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
 
 import org.telegram.cricdit.bean.PointsRecordBean;
+import org.telegram.cricdit.utils.TimeUtils;
 import org.telegram.messenger.R;
 
 import java.util.List;
@@ -20,8 +23,8 @@ public class PointsRecordAdapter extends BaseQuickAdapter<PointsRecordBean.Data.
 
     @Override
     protected void convert(@NonNull BaseViewHolder helper, PointsRecordBean.Data.ListDTO item) {
-        helper.setText(R.id.points_record_item_score, item.score);
-        helper.setText(R.id.points_record_item_type, item.type);
-        helper.setText(R.id.points_record_item_time, item.time);
+        helper.setText(R.id.points_record_item_score, (item.types == 1 ? "+" : "-") + item.num);
+        helper.setText(R.id.points_record_item_type, "Types of: "+item.category_name);
+        helper.setText(R.id.points_record_item_time, TimeUtils.timeStamp2Str((item.created_at * 1000), null));
     }
 }

+ 12 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/BaseCrcmaBean.java

@@ -0,0 +1,12 @@
+package org.telegram.cricdit.bean;
+
+public class BaseCrcmaBean {
+    public DataDTO data;
+    public Integer errCode;
+    public String errMsg;
+
+    public static class DataDTO {
+        public Integer id;
+        public String num;
+    }
+}

+ 6 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/CrcmaBean.java

@@ -0,0 +1,6 @@
+package org.telegram.cricdit.bean;
+
+public class CrcmaBean {
+    public Integer id;
+    public String num;
+}

+ 28 - 6
TMessagesProj/src/main/java/org/telegram/cricdit/bean/PointsRecordBean.java

@@ -13,12 +13,34 @@ public class PointsRecordBean {
         public Integer start;
         public Integer total;
 
-        public static class ListDTO{
-            public String time;
-            public String score;
-            public String type;
-
+        public static class ListDTO {
+            public Integer id;
+            public String user_id;
+            public String category;
+            public String category_name;
+            public Integer types;
+            public Integer num;
+            public long created_at;
         }
-
     }
+//    public Data data;
+//    public Integer errCode;
+//    public String errMsg;
+//
+//    public static class Data {
+//        public Integer limit;
+//        public List<ListDTO> list;
+//        public Integer start;
+//        public Integer total;
+//
+//        public static class ListDTO{
+//            public String time;
+//            public String score;
+//            public String type;
+//
+//        }
+//    }
+
+
+
 }

+ 23 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/PointsTypeBean.java

@@ -0,0 +1,23 @@
+package org.telegram.cricdit.bean;
+
+import java.util.List;
+
+public class PointsTypeBean {
+    public List<DataDTO> data;
+    public Integer errCode;
+    public String errMsg;
+
+    public static class DataDTO {
+        public Integer id;
+        public String name;
+    }
+//    public Data data;
+//    public Integer errCode;
+//    public String errMsg;
+//
+//    public static class Data{
+//        public String type;
+//        public int id;
+//    }
+
+}

+ 1 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/ProfileSelfBean.java

@@ -6,6 +6,7 @@ public class ProfileSelfBean {
     public String user_id;
     public String user_bio;
     public Integer feed_num;
+    public Integer integral;
     public Integer group_num;
     public Integer following_num;
     public Integer follow_num;

+ 44 - 4
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PointsRecordPresenter.java

@@ -1,27 +1,67 @@
 package org.telegram.cricdit.mvp;
 
+import android.text.TextUtils;
+
 import org.telegram.cricdit.base.BaseObserver;
 import org.telegram.cricdit.base.BasePresenter;
 import org.telegram.cricdit.bean.PersonPostBean;
 import org.telegram.cricdit.bean.PointsRecordBean;
+import org.telegram.cricdit.bean.PointsTypeBean;
 import org.telegram.cricdit.net.ApiService;
 import org.telegram.cricdit.net.Parameter;
+import org.telegram.cricdit.net.RetrofitClient;
+import org.telegram.cricdit.utils.GsonHel;
 import org.telegram.cricdit.utils.ParamsUtil;
 import org.telegram.messenger.UserConfig;
 
+import java.io.IOException;
+import java.util.List;
+
+import okhttp3.ResponseBody;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
 public class PointsRecordPresenter extends BasePresenter<PointsRecordView> {
 
-    public void getNormalRecord(int start, int limit, String type, String time,int refreshType) {
+    public void getTypeList() {
         Parameter parameter = new Parameter();
-        parameter.add("operationID", ParamsUtil.buildOperationID());
-        parameter.add("limit", limit);
+        ApiService apiService = RetrofitClient.getInstance().getRetrofit().create(ApiService.class);
+        Call<ResponseBody> responseCall = apiService.getPointsType(parameter.buildJsonBody());
+        responseCall.enqueue(new Callback<ResponseBody>() {
+            @Override
+            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
+                try {
+                    String string = response.body().string();
+                    if (!TextUtils.isEmpty(string)) {
+                        PointsTypeBean pointsTypeBean = GsonHel.fromJson(string, PointsTypeBean.class);
+                        getView().getTypeListSuccess(pointsTypeBean);
+                    }
 
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
 
+            @Override
+            public void onFailure(Call<ResponseBody> call, Throwable t) {
+            }
+        });
+
+    }
+
+    public void getNormalRecord(int start, int limit, int type, int refreshType) {
+        Parameter parameter = new Parameter();
+        parameter.add("operationID", ParamsUtil.buildOperationID());
+        parameter.add("limit", limit);
         parameter.add("start", start);
+        parameter.add("category", type);
+        parameter.add("user_id", UserConfig.getInstance(0).getCurrentUser().id + "");
+
         addSubscribe(create(ApiService.class).getPointsRecord(parameter.buildJsonBody()), new BaseObserver<PointsRecordBean.Data>(getView()) {
             @Override
             protected void onSuccess(PointsRecordBean.Data data) {
-                getView().getRecordListSuccess(data,refreshType);
+                getView().getRecordListSuccess(data, refreshType);
             }
 
             @Override

+ 5 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PointsRecordView.java

@@ -2,9 +2,14 @@ package org.telegram.cricdit.mvp;
 
 import org.telegram.cricdit.base.IView;
 import org.telegram.cricdit.bean.PointsRecordBean;
+import org.telegram.cricdit.bean.PointsTypeBean;
+
+import java.util.List;
 
 public interface PointsRecordView extends IView {
 
+    void getTypeListSuccess(PointsTypeBean data);
+
     void getRecordListSuccess(PointsRecordBean.Data data, int refreshType);
 
     void loadDataFailed(int refreshType);

+ 40 - 16
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/SendAnFeedPresenter.java

@@ -1,13 +1,21 @@
 package org.telegram.cricdit.mvp;
 
 
+import android.text.TextUtils;
+
 import org.telegram.cricdit.base.BaseObserver;
 import org.telegram.cricdit.base.BasePresenter;
+import org.telegram.cricdit.bean.CrcmaBean;
 import org.telegram.cricdit.bean.RankListBean;
 import org.telegram.cricdit.bean.VideoLimitBean;
 import org.telegram.cricdit.net.ApiService;
 import org.telegram.cricdit.net.Parameter;
+import org.telegram.cricdit.utils.GsonHel;
 import org.telegram.cricdit.utils.ParamsUtil;
+import org.telegram.cricdit.utils.ToastUtil;
+import org.telegram.messenger.ApplicationLoader;
+import org.telegram.messenger.LocaleController;
+import org.telegram.messenger.R;
 import org.telegram.messenger.UserConfig;
 
 import java.io.File;
@@ -21,17 +29,17 @@ import okhttp3.RequestBody;
 
 public class SendAnFeedPresenter extends BasePresenter<SendAnFeedView> {
 
-    public void publicNews(String content, List<String> images,String[] tags,boolean isVideo){
+    public void publicNews(String content, List<String> images, String[] tags, boolean isVideo) {
         Parameter parameter = new Parameter();
         parameter.add("operationID", ParamsUtil.buildOperationID());
-        parameter.add("content",content);
+        parameter.add("content", content);
         //标签:数组
-        parameter.add("tags",tags);
-        parameter.add("type","feed");
-        parameter.add("title","");
+        parameter.add("tags", tags);
+        parameter.add("type", "feed");
+        parameter.add("title", "");
         //图片/视频
-        parameter.add("medium", isVideo?new ArrayList<>():images.toArray());
-        parameter.add("video",isVideo?images.get(0):"");
+        parameter.add("medium", isVideo ? new ArrayList<>() : images.toArray());
+        parameter.add("video", isVideo ? images.get(0) : "");
         if (UserConfig.getInstance(UserConfig.selectedAccount).isClientActivated()) {
             parameter.add("user_id", UserConfig.getInstance(UserConfig.selectedAccount).getCurrentUser().id + "");
         }
@@ -39,20 +47,36 @@ public class SendAnFeedPresenter extends BasePresenter<SendAnFeedView> {
         addSubscribe(create(ApiService.class).publicNews(parameter.buildJsonBody()), new BaseObserver<Object>() {
             @Override
             protected void onSuccess(Object data) {
+//                if (data instanceof String && !TextUtils.isEmpty((String) data)) {
+//                    ToastUtil.show(mContext, LocaleController.getString(R.string.CdCrcma) + data);
+//                }
+//
+                if (data.toString().contains("num")) {
+                    try {
+                        CrcmaBean crcmaBean = GsonHel.fromJson(data.toString(), CrcmaBean.class);
+                        if (crcmaBean!=null && !TextUtils.isEmpty(crcmaBean.num)) {
+                            ToastUtil.show(ApplicationLoader.applicationContext, LocaleController.getString(R.string.CdCrcma) + crcmaBean.num);
+                        }
+                    } catch (Exception e){
+                        System.out.println(e.getMessage());
+                    }
+                }
+
+
                 getView().showResult(0);
             }
 
             @Override
             public void onError(Throwable e) {
                 super.onError(e);
-                if(getView()!=null){
+                if (getView() != null) {
                     getView().showErrorImg(e);
                 }
             }
         });
     }
 
-    public void getTagList(int limit,int start){
+    public void getTagList(int limit, int start) {
         Parameter parameter = new Parameter();
         parameter.add("operationID", ParamsUtil.buildOperationID());
         parameter.add("limit", limit);
@@ -61,7 +85,7 @@ public class SendAnFeedPresenter extends BasePresenter<SendAnFeedView> {
             @Override
             protected void onSuccess(RankListBean.AllBean data) {
                 List<String> strings = new ArrayList<>();
-                for(RankListBean.TitleBean tag :data.getList()){
+                for (RankListBean.TitleBean tag : data.getList()) {
                     strings.add(tag.getTitle());
                 }
                 getView().showTagList(strings);
@@ -74,20 +98,20 @@ public class SendAnFeedPresenter extends BasePresenter<SendAnFeedView> {
         });
     }
 
-    public void uploadFile(File file,boolean isVideo){
-        RequestBody body = RequestBody.create(MediaType.parse(isVideo?"image/*":"video/*"), file);
+    public void uploadFile(File file, boolean isVideo) {
+        RequestBody body = RequestBody.create(MediaType.parse(isVideo ? "image/*" : "video/*"), file);
         MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), body);
         addSubscribe(create(ApiService.class).uploadFile(part), new BaseObserver<String>() {
             @Override
             protected void onSuccess(String data) {
-                if(getView()!=null){
-                    getView().getImgUrl(data,isVideo);
+                if (getView() != null) {
+                    getView().getImgUrl(data, isVideo);
                 }
             }
 
             @Override
             public void onError(Throwable e) {
-                if(getView()!=null){
+                if (getView() != null) {
                     getView().showErrorImg(e);
                 }
                 super.onError(e);
@@ -95,7 +119,7 @@ public class SendAnFeedPresenter extends BasePresenter<SendAnFeedView> {
         });
     }
 
-    public void getVideoLimit(){
+    public void getVideoLimit() {
         Parameter parameter = new Parameter();
         parameter.add("operationID", ParamsUtil.buildOperationID());
         addSubscribe(create(ApiService.class).getVideoLimit(parameter.buildJsonBody()), new BaseObserver<VideoLimitBean>() {

+ 7 - 1
TMessagesProj/src/main/java/org/telegram/cricdit/net/ApiService.java

@@ -14,6 +14,7 @@ import org.telegram.cricdit.bean.PersonFollowerBean;
 import org.telegram.cricdit.bean.PersonFollowingBean;
 import org.telegram.cricdit.bean.PersonPostBean;
 import org.telegram.cricdit.bean.PointsRecordBean;
+import org.telegram.cricdit.bean.PointsTypeBean;
 import org.telegram.cricdit.bean.ProfileSelfBean;
 import org.telegram.cricdit.bean.RankListBean;
 import org.telegram.cricdit.bean.RankDetailBean;
@@ -21,6 +22,8 @@ import org.telegram.cricdit.bean.ReplyBean;
 import org.telegram.cricdit.bean.VideoLimitBean;
 import org.telegram.cricdit.config.Constants;
 
+import java.util.List;
+
 import io.reactivex.Observable;
 import okhttp3.MultipartBody;
 import okhttp3.RequestBody;
@@ -173,9 +176,12 @@ public interface ApiService {
     @POST(Constants.APP_AUTH_URL + "/demo/video_limit")
     Observable<BaseResponse<VideoLimitBean>> getVideoLimit(@Body RequestBody requestBody);
 
-    @POST(Constants.APP_AUTH_URL + "/demo/video_limit")
+    @POST(Constants.APP_AUTH_URL + "/demo/integral_log")
     Observable<BaseResponse<PointsRecordBean.Data>> getPointsRecord(@Body RequestBody requestBody);
 
+    @POST(Constants.APP_AUTH_URL + "/demo/integral_category")
+    Call<ResponseBody> getPointsType(@Body RequestBody requestBody);
+
     @POST("https://pf.cricdit.com/index.php/api/Rank/GetCategories")
     Call<ResponseBody> publicRanking(@Body RequestBody requestBody);
 

+ 6 - 2
TMessagesProj/src/main/java/org/telegram/cricdit/ui/MeActivity.java

@@ -94,9 +94,11 @@ public class MeActivity extends BaseTabActivity<MePresenter> implements MeView {
     private TextView mPostNum;
     private TextView mFollowingNum;
     private TextView mFollowerNum;
+    private TextView mCrcmaNum;
     private RelativeLayout mAvatarRlContainer;
 
 
+
     @Override
     protected int getLayoutResId() {
         return R.layout.activity_me3;
@@ -171,6 +173,7 @@ public class MeActivity extends BaseTabActivity<MePresenter> implements MeView {
         mFollowingNum = view.findViewById(R.id.me_profile_following_num);
 
         mFollowerNum = view.findViewById(R.id.me_profile_follower_num);
+        mCrcmaNum = view.findViewById(R.id.me_profile_score_num);
 
         mNickname.setTypeface(AndroidUtilities.getNormalTypefaceMedium());
         mUsername.setTypeface(AndroidUtilities.getNormalTypefaceMedium());
@@ -181,6 +184,7 @@ public class MeActivity extends BaseTabActivity<MePresenter> implements MeView {
         mPostNum.setText(NumberUtils.amountConversionToInt(0));
         mFollowingNum.setText(NumberUtils.amountConversionToInt(0));
         mFollowerNum.setText(NumberUtils.amountConversionToInt(0));
+        mCrcmaNum.setText(NumberUtils.amountConversionToInt(0));
 
         String profileSelfDataStr = SPUtils.getInstance().get("profile_self_data", "");
         if (!TextUtils.isEmpty(profileSelfDataStr)) {
@@ -189,6 +193,7 @@ public class MeActivity extends BaseTabActivity<MePresenter> implements MeView {
                 mPostNum.setText(NumberUtils.amountConversionToInt(profileSelfBean.feed_num));
                 mFollowingNum.setText(NumberUtils.amountConversionToInt(profileSelfBean.following_num));
                 mFollowerNum.setText(NumberUtils.amountConversionToInt(profileSelfBean.follow_num));
+                mCrcmaNum.setText(NumberUtils.amountConversionToInt(profileSelfBean.integral)+"");
             }
         }
 
@@ -447,13 +452,12 @@ public class MeActivity extends BaseTabActivity<MePresenter> implements MeView {
 
     @Override
     public void loadProfileDataSuccess(ProfileSelfBean data) {
-
-
         if (data != null) {
             SPUtils.getInstance().save("profile_self_data", GsonHel.toJson(data));
             mPostNum.setText(NumberUtils.amountConversionToInt(data.feed_num));
             mFollowingNum.setText(NumberUtils.amountConversionToInt(data.following_num));
             mFollowerNum.setText(NumberUtils.amountConversionToInt(data.follow_num));
+            mCrcmaNum.setText(NumberUtils.amountConversionToInt(data.integral)+"");
         }
     }
 

+ 55 - 23
TMessagesProj/src/main/java/org/telegram/cricdit/ui/NewsDetailCommentFragment.java

@@ -73,6 +73,7 @@ import org.telegram.cricdit.base.BaseActivity;
 import org.telegram.cricdit.base.BaseObserver;
 import org.telegram.cricdit.bean.ChildCommendBean;
 import org.telegram.cricdit.bean.ChildCommendListBean;
+import org.telegram.cricdit.bean.CrcmaBean;
 import org.telegram.cricdit.bean.MainCommendBean;
 import org.telegram.cricdit.bean.MainCommendListBean;
 import org.telegram.cricdit.bean.MoreCommendBean;
@@ -112,6 +113,7 @@ import org.telegram.cricdit.view.floatwindow.MoveType;
 import org.telegram.cricdit.view.floatwindow.Screen;
 import org.telegram.cricdit.view.floatwindow.Util;
 import org.telegram.messenger.AndroidUtilities;
+import org.telegram.messenger.ApplicationLoader;
 import org.telegram.messenger.ChatObject;
 import org.telegram.messenger.LocaleController;
 import org.telegram.messenger.MessagesController;
@@ -169,7 +171,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
 
     private NestedScrollView nestedScrollview;
     private TextView tvTitle;
-//    private LinearLayout llHead;
+    //    private LinearLayout llHead;
     private ImageView ivHead;
     private TextView tvUserName;
     private TextView tvPublicTime;
@@ -482,7 +484,20 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
 
     @Override
     public void recallCommentSuccess(Object o, MultiItemEntity multiItem) {
-        ToastUtil.show(getParentActivity(), getString(R.string.recall_comment_on_success));
+
+        if (o.toString().contains("num")) {
+            try {
+                CrcmaBean crcmaBean = GsonHel.fromJson(o.toString(), CrcmaBean.class);
+                if (crcmaBean!=null && !TextUtils.isEmpty(crcmaBean.num)) {
+                    ToastUtil.show(ApplicationLoader.applicationContext, LocaleController.getString(R.string.CdCrcma) + crcmaBean.num);
+                }
+            } catch (Exception e){
+                System.out.println(e.getMessage());
+            }
+        } else {
+            ToastUtil.show(getParentActivity(), getString(R.string.recall_comment_on_success));
+        }
+
         if (multiItem instanceof MainCommendBean) {//删除的是主评论
             List<MultiItemEntity> data = adapter.getData();
 //            if (((MainCommendBean) multiItem).getMoreCommendBean() != null) {
@@ -565,6 +580,17 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
 
     @Override
     public void oplikeSuccess(Object o, MultiItemEntity multiItem) {
+        if (o.toString().contains("num")) {
+            try {
+                CrcmaBean crcmaBean = GsonHel.fromJson(o.toString(), CrcmaBean.class);
+                if (crcmaBean!=null && !TextUtils.isEmpty(crcmaBean.num)) {
+                    ToastUtil.show(ApplicationLoader.applicationContext, LocaleController.getString(R.string.CdCrcma) + crcmaBean.num);
+                }
+            } catch (Exception e){
+                System.out.println(e.getMessage());
+            }
+        }
+
         int index = adapter.getData().indexOf(multiItem);
         if (multiItem instanceof MainCommendBean) {
             MainCommendBean mainCommendBean = (MainCommendBean) multiItem;
@@ -1073,7 +1099,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
         ll_head_feed.setVisibility(View.GONE);
         llFollow.setVisibility(View.GONE);
 
-        if("feed".equals(newsType)){
+        if ("feed".equals(newsType)) {
             ll_head_feed.setVisibility(View.VISIBLE);
             tv_user_name_feed.setText(!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(newsBean.getUserName()) ? "" : newsBean.getUserName());
             tv_public_time_feed.setText(TimeUtils.timeEngMonthStr(getContext(), Long.parseLong(newsBean.getPublishTime() + "000")));
@@ -1097,12 +1123,12 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
                     }
                 }
             }
-        }else{
+        } else {
             ll_head_news.setVisibility(View.VISIBLE);
             tvUserName.setText(" " + (!TextUtils.isEmpty(nickname) ? nickname : TextUtils.isEmpty(newsBean.getUserName()) ? "" : newsBean.getUserName()));
             tvPublicTime.setText(" " + getString(R.string.news_updated_on) + " " + TimeUtils.timeEngMonthStr(getContext(), Long.parseLong(newsBean.getPublishTime() + "000")));
             tvContentDown.setText(Html.fromHtml(newsBean.getContent()));
-            showRankGroup(itemBean.getGroup1(),itemBean.getGroup2());
+            showRankGroup(itemBean.getGroup1(), itemBean.getGroup2());
         }
 
         if (TextUtils.isEmpty(newsBean.getTitle())) {
@@ -1231,6 +1257,11 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
                         presenter.like(clientUserId + "", Integer.parseInt(newsId + ""), new BaseObserver<Object>() {
                             @Override
                             protected void onSuccess(Object data) {
+
+                                if (data instanceof String && !TextUtils.isEmpty((String) data)) {
+                                    ToastUtil.show(getContext(), LocaleController.getString(R.string.CdCrcma) + data);
+                                }
+
                                 bean.setIsLike(!bean.getIsLike());
                                 if (!bean.getIsLike()) {
                                     bean.setLikeNum(bean.getLikeNum() - 1);
@@ -1263,9 +1294,9 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
     }
 
     private void showRankGroup(RankDetailBean.GroupBean group1, RankDetailBean.GroupBean group2) {
-        if(group1 == null || TextUtils.isEmpty(group1.getGroup_id())){
+        if (group1 == null || TextUtils.isEmpty(group1.getGroup_id())) {
             rl_group.setVisibility(View.GONE);
-        }else{
+        } else {
             rl_group.setVisibility(View.VISIBLE);
             tv_join_info.setText(LocaleController.getString(R.string.join_live_discussion_groups));
             tv_join_group_name.setText(group1.getGroup_name());
@@ -1277,9 +1308,9 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
                     .into(iv_group);
         }
 
-        if(group2 == null || TextUtils.isEmpty(group2.getGroup_id())){
+        if (group2 == null || TextUtils.isEmpty(group2.getGroup_id())) {
             rl_group2.setVisibility(View.GONE);
-        }else{
+        } else {
             rl_group2.setVisibility(View.VISIBLE);
             tv_join_info2.setText(LocaleController.getString(R.string.join_live_discussion_groups));
             tv_join_group_name2.setText(group2.getGroup_name());
@@ -1295,7 +1326,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
             if (!UserConfig.getInstance(currentAccount).isClientActivated()) {
                 presentFragment(new LoginActivity());
             } else {
-                if(group1 == null || TextUtils.isEmpty(group1.getGroup_id())){
+                if (group1 == null || TextUtils.isEmpty(group1.getGroup_id())) {
                     return;
                 }
                 long chatID = Long.parseLong(group1.getGroup_id());
@@ -1329,7 +1360,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
             if (!UserConfig.getInstance(currentAccount).isClientActivated()) {
                 presentFragment(new LoginActivity());
             } else {
-                if(group2 == null || TextUtils.isEmpty(group2.getGroup_id())){
+                if (group2 == null || TextUtils.isEmpty(group2.getGroup_id())) {
                     return;
                 }
                 long chatID = Long.parseLong(group2.getGroup_id());
@@ -1361,6 +1392,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
         });
 
     }
+
     public void newSkipUrl(String finalWorkingText) {
         if (finalWorkingText.contains("https://t.me/")) {
             int index = finalWorkingText.indexOf("https://t.me/");
@@ -1496,17 +1528,17 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
             orientationUtils.backToProtVideo();
         }
 
-        boolean isFirstRePermission = SPUtils.getInstance().get("is_first_request_window",true);
-        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
-            if(!Util.hasPermission(getContext()) && !isFirstRePermission){//非第一次而且没权限 pass
+        boolean isFirstRePermission = SPUtils.getInstance().get("is_first_request_window", true);
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            if (!Util.hasPermission(getContext()) && !isFirstRePermission) {//非第一次而且没权限 pass
                 getCurPlay().onVideoPause();
                 //GSYVideoManager.releaseAllVideos();
                 return;
             }
         }
 
-        if(isFirstRePermission){
-            SPUtils.getInstance().save("is_first_request_window",false);
+        if (isFirstRePermission) {
+            SPUtils.getInstance().save("is_first_request_window", false);
         }
 
         if (!GSYVideoManager.backFromWindowFull(getContext())) {
@@ -1523,14 +1555,14 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
                 float ratio = 0.55f;
                 FloatingVideo floatingVideo = floatPlayerView.getVideoPlayer();
                 floatingVideo.setAutoFullWithSize(true);
-                if(floatingVideo.isVerticalFullByVideoSize()){
+                if (floatingVideo.isVerticalFullByVideoSize()) {
                     ratio = 0.3f;
                 }
                 FloatWindow
                         .with(getParentActivity().getApplicationContext())
                         .setView(floatPlayerView)
                         .setWidth(Screen.width, ratio)
-                        .setHeight(Screen.width, (float)floatingVideo.getCurrentVideoHeight()/(float)floatingVideo.getCurrentVideoWidth() * ratio)
+                        .setHeight(Screen.width, (float) floatingVideo.getCurrentVideoHeight() / (float) floatingVideo.getCurrentVideoWidth() * ratio)
                         .setX(Screen.width, 0.8f)
                         .setY(Screen.height, 0.3f)
                         .setMoveType(MoveType.slide)
@@ -1545,7 +1577,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
 
     @Override
     public void onUserLeaveHint() {
-        if (!TextUtils.isEmpty(newsBean.getVideo())){
+        if (!TextUtils.isEmpty(newsBean.getVideo())) {
             if (getCurPlay().getCurrentPlayer().getCurrentState() == CURRENT_STATE_PLAYING) {
                 openFloatVideo();
             }
@@ -1555,7 +1587,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
 
     @Override
     public boolean onBackPressed() {
-        if (!TextUtils.isEmpty(newsBean.getVideo())){
+        if (!TextUtils.isEmpty(newsBean.getVideo())) {
             openFloatVideo();
         }
         return super.onBackPressed();
@@ -1564,10 +1596,10 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
     @Override
     public void onPause() {
         //非息屏且在播放 -> 悬浮窗
-        if (newsBean!=null && !TextUtils.isEmpty(newsBean.getVideo())){
+        if (newsBean != null && !TextUtils.isEmpty(newsBean.getVideo())) {
             if (getScreenState(getContext()) && getCurPlay().getCurrentPlayer().getCurrentState() == CURRENT_STATE_PLAYING) {
                 openFloatVideo();
-            }else{
+            } else {
                 getCurPlay().onVideoPause();
             }
         }
@@ -1580,7 +1612,7 @@ public class NewsDetailCommentFragment extends BaseActivity<CommentPresenter> im
         if (newsBean == null) {
             return;
         }
-        if (!TextUtils.isEmpty(newsBean.getVideo())){
+        if (!TextUtils.isEmpty(newsBean.getVideo())) {
             getCurPlay().onVideoResume();
         }
     }

+ 47 - 19
TMessagesProj/src/main/java/org/telegram/cricdit/ui/PointsRecordActivity.java

@@ -18,6 +18,7 @@ import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener;
 import org.telegram.cricdit.adapter.PointsRecordAdapter;
 import org.telegram.cricdit.base.BaseActivity;
 import org.telegram.cricdit.bean.PointsRecordBean;
+import org.telegram.cricdit.bean.PointsTypeBean;
 import org.telegram.cricdit.mvp.PointsRecordPresenter;
 import org.telegram.cricdit.mvp.PointsRecordView;
 import org.telegram.cricdit.view.CustomBubbleAttachPopup;
@@ -45,9 +46,10 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
     private int day;
     private int mLimit = 40;
     private int mStart = 1;
+    private int mChooseType = 0;
     public static final int TYPE_REFRESH = 1;
     public static final int TYPE_LOADMORE = 2;
-
+    private List<PointsTypeBean.DataDTO> mTypeList;
 
     @Override
     protected int getLayoutResId() {
@@ -68,6 +70,7 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
     protected void initView(View view) {
 
         mPointsRecordBeanList = new ArrayList<>();
+        mTypeList = new ArrayList<>();
 
         mFilterType = view.findViewById(R.id.points_record_filter_type);
         mFilterTime = view.findViewById(R.id.points_record_filter_time);
@@ -84,13 +87,13 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
         mFilterTime.setText(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1));
 
 
-        for (int i = 0; i < 5; i++) {
-            PointsRecordBean.Data.ListDTO listDTO = new PointsRecordBean.Data.ListDTO();
-            listDTO.score = "+5";
-            listDTO.time = "2022-12-26 15:35:21";
-            listDTO.type = "Type of: Like";
-            mPointsRecordBeanList.add(listDTO);
-        }
+//        for (int i = 0; i < 5; i++) {
+//            PointsRecordBean.Data.ListDTO listDTO = new PointsRecordBean.Data.ListDTO();
+//            listDTO.score = "+5";
+//            listDTO.time = "2022-12-26 15:35:21";
+//            listDTO.type = "Type of: Like";
+//            mPointsRecordBeanList.add(listDTO);
+//        }
 
         mAdapter = new PointsRecordAdapter(R.layout.item_points_record, mPointsRecordBeanList);
 
@@ -117,17 +120,16 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
             @Override
             public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
                 mStart++;
-//                presenter.getNormalRecord(mStart,mLimit,);
+                presenter.getNormalRecord(mStart, mLimit, mChooseType, TYPE_LOADMORE);
             }
 
             @Override
             public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                 mStart = 1;
-//                presenter.getNormalRecord(mStart,mLimit,);
+                presenter.getNormalRecord(mStart, mLimit, mChooseType, TYPE_REFRESH);
             }
         });
-
-//        presenter.getNormalRecord(mStart,mLimit,);
+        presenter.getTypeList();
     }
 
     public void getDate() {
@@ -140,13 +142,34 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
     }
 
     public void getType() {
-        new XPopup.Builder(getContext())
-                .isDestroyOnDismiss(true)
-                .atView(mFilterType)
-                .isViewMode(true)
-                .hasShadowBg(false)
-                .asCustom(new CustomBubbleAttachPopup(getContext(), type -> mFilterType.setText(type)))
-                .show();
+        if (mTypeList.size() > 0) {
+            new XPopup.Builder(getContext())
+                    .isDestroyOnDismiss(true)
+                    .atView(mFilterType)
+                    .isViewMode(true)
+                    .hasShadowBg(false)
+                    .asCustom(new CustomBubbleAttachPopup(getContext(), data -> {
+                        mFilterType.setText(data.name);
+                        mChooseType = data.id;
+                        mStart = 1;
+                        presenter.getNormalRecord(mStart, mLimit, mChooseType, TYPE_REFRESH);
+                    }, mTypeList))
+                    .show();
+        }
+
+    }
+
+    @Override
+    public void getTypeListSuccess(PointsTypeBean data) {
+        if (data != null && data.data != null && data.data.size() > 0) {
+            mTypeList.clear();
+            PointsTypeBean.DataDTO typeBean = new PointsTypeBean.DataDTO();
+            typeBean.id = 0;
+            typeBean.name = "All";
+            data.data.add(0,typeBean);
+            mTypeList.addAll(data.data);
+            presenter.getNormalRecord(mStart, mLimit, mChooseType, TYPE_REFRESH);
+        }
     }
 
     @Override
@@ -161,6 +184,11 @@ public class PointsRecordActivity extends BaseActivity<PointsRecordPresenter> im
 
         if (refreshType == TYPE_REFRESH) {
             mStart = 1;
+            if (data.list.size() < mLimit) {
+                mRefreshLayout.setEnableLoadMore(false);
+            } else {
+                mRefreshLayout.setEnableLoadMore(true);
+            }
             mPointsRecordBeanList.clear();
             mPointsRecordBeanList.addAll(data.list);
         } else {

+ 2 - 1
TMessagesProj/src/main/java/org/telegram/cricdit/ui/SendAnFeedActivity.java

@@ -452,7 +452,8 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
     public void showResult(int result) {
         EventBusHelper.post(new NewsMsgEvent("feed"));
         dialog.dismiss();
-        ToastUtil.show(mContext,(result == 0)?LocaleController.getString(R.string.submit_success):LocaleController.getString(R.string.submit_error));
+//        ToastUtil.show(mContext,(result == 0)?LocaleController.getString(R.string.submit_success):LocaleController.getString(R.string.submit_error));
+//        ToastUtil.show(mContext,(result == 0)?LocaleController.getString(R.string.CdCrcma) :LocaleController.getString(R.string.submit_error));
         finishFragment();
     }
 

+ 19 - 11
TMessagesProj/src/main/java/org/telegram/cricdit/view/CustomBubbleAttachPopup.java

@@ -17,6 +17,7 @@ import com.lxj.xpopup.core.BubbleAttachPopupView;
 import com.lxj.xpopup.util.XPopupUtils;
 
 import org.telegram.cricdit.adapter.FilterTypeAdapter;
+import org.telegram.cricdit.bean.PointsTypeBean;
 import org.telegram.messenger.R;
 import org.telegram.onecric.widget.ItemDecoration;
 
@@ -27,9 +28,12 @@ public class CustomBubbleAttachPopup extends BubbleAttachPopupView {
 
     private RecyclerView mRecyclerView;
 
-    public CustomBubbleAttachPopup(@NonNull Context context,OnTypeSelectListener onTypeSelectListener) {
+    private List<PointsTypeBean.DataDTO> mDataDTOList;
+
+    public CustomBubbleAttachPopup(@NonNull Context context, OnTypeSelectListener onTypeSelectListener, List<PointsTypeBean.DataDTO> dataDTOList) {
         super(context);
         mOnTypeSelectListener = onTypeSelectListener;
+        mDataDTOList = dataDTOList;
     }
 
     @Override
@@ -52,20 +56,24 @@ public class CustomBubbleAttachPopup extends BubbleAttachPopupView {
 
         mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
 
-        List<String> stringList = new ArrayList<>();
+//        List<String> stringList = new ArrayList<>();
 
-        stringList.add("All");
-        stringList.add("Daily login");
-        stringList.add("Like");
-        stringList.add("Post");
-        stringList.add("Cancel like");
-        stringList.add("Post a comment");
+//        stringList.add("All");
+//        stringList.add("Daily login");
+//        stringList.add("Like");
+//        stringList.add("Post");
+//        stringList.add("Cancel like");
+//        stringList.add("Post a comment");
+//
+//        for (PointsTypeBean.DataDTO dataDTO : mDataDTOList) {
+//            stringList.add(dataDTO.name);
+//        }
 
         DividerItemDecoration decor = new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL);
         decor.setDrawable(getContext().getResources().getDrawable(R.drawable.shape_divider));
         mRecyclerView.addItemDecoration(decor);
 
-        FilterTypeAdapter adapter = new FilterTypeAdapter(R.layout.item_filter_type, stringList);
+        FilterTypeAdapter adapter = new FilterTypeAdapter(R.layout.item_filter_type, mDataDTOList);
         mRecyclerView.setAdapter(adapter);
 
         adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
@@ -73,7 +81,7 @@ public class CustomBubbleAttachPopup extends BubbleAttachPopupView {
             public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                 if (mOnTypeSelectListener != null) {
                     dismiss();
-                    mOnTypeSelectListener.select(stringList.get(position));
+                    mOnTypeSelectListener.select(mDataDTOList.get(position));
                 }
             }
         });
@@ -86,7 +94,7 @@ public class CustomBubbleAttachPopup extends BubbleAttachPopupView {
     }
 
     public interface OnTypeSelectListener {
-        void select(String type);
+        void select(PointsTypeBean.DataDTO data);
     }
 
 }

+ 14 - 0
TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java

@@ -37,12 +37,14 @@ import org.telegram.SQLite.SQLiteCursor;
 import org.telegram.SQLite.SQLiteException;
 import org.telegram.SQLite.SQLitePreparedStatement;
 import org.telegram.cricdit.bean.BaseBean;
+import org.telegram.cricdit.bean.BaseCrcmaBean;
 import org.telegram.cricdit.bean.LoginBean;
 import org.telegram.cricdit.net.ApiService;
 import org.telegram.cricdit.net.Parameter;
 import org.telegram.cricdit.net.RetrofitClient;
 import org.telegram.cricdit.utils.Base64Utils;
 import org.telegram.cricdit.utils.GsonHel;
+import org.telegram.cricdit.utils.ToastUtil;
 import org.telegram.messenger.support.LongSparseIntArray;
 import org.telegram.messenger.support.LongSparseLongArray;
 import org.telegram.messenger.voip.VoIPService;
@@ -16382,6 +16384,18 @@ public class MessagesController extends BaseController implements NotificationCe
         responseCall.enqueue(new Callback<ResponseBody>() {
             @Override
             public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
+                try {
+                    String string = response.body().string();
+                    if (!TextUtils.isEmpty(string)) {
+                        BaseCrcmaBean baseBean = GsonHel.fromJson(string, BaseCrcmaBean.class);
+                        if (baseBean != null && baseBean.data != null && !TextUtils.isEmpty(baseBean.data.num)) {
+                            ToastUtil.show(ApplicationLoader.applicationContext, LocaleController.getString(R.string.CdCrcma) + baseBean.data.num);
+                        }
+                    }
+
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
             }
 
             @Override

+ 14 - 11
TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java

@@ -99,6 +99,7 @@ import org.telegram.cricdit.utils.Base64Utils;
 import org.telegram.cricdit.utils.ColorUtil;
 import org.telegram.cricdit.utils.DrawableUtil;
 import org.telegram.cricdit.utils.GsonHel;
+import org.telegram.cricdit.utils.ToastUtil;
 import org.telegram.messenger.AccountInstance;
 import org.telegram.messenger.AndroidUtilities;
 import org.telegram.messenger.ApplicationLoader;
@@ -9249,17 +9250,19 @@ public class DialogsActivity extends BaseFragment implements NotificationCenter.
         responseCall.enqueue(new Callback<ResponseBody>() {
             @Override
             public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
-                try {
-                    if (response.body() != null) {
-                        String string = response.body().string();
-                        LoginBean loginBean = GsonHel.fromJson(string, LoginBean.class);
-                        if (loginBean != null && loginBean.errCode == 0) {
-
-                        }
-                    }
-                } catch (IOException e) {
-                    e.printStackTrace();
-                }
+//                try {
+//                    if (response.body() != null) {
+//                        String string = response.body().string();
+//                        LoginBean loginBean = GsonHel.fromJson(string, LoginBean.class);
+//                        if (loginBean != null && loginBean.errCode == 0) {
+//                            if (loginBean.data instanceof String && !TextUtils.isEmpty((String) loginBean.data)) {
+//                                ToastUtil.show(getContext(), LocaleController.getString(R.string.CdCrcma) + loginBean.data);
+//                            }
+//                        }
+//                    }
+//                } catch (IOException e) {
+//                    e.printStackTrace();
+//                }
             }
 
             @Override

+ 37 - 9
TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java

@@ -468,6 +468,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
     private int settingsSectionRow;
     private int settingsSectionRow2;
     private int notificationRow;
+    private int groupTabRow;
     private int languageRow;
     private int privacyRow;
     private int dataRow;
@@ -3104,11 +3105,12 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                 onWriteButtonClick();
             } else if (position == premiumRow) {
                 presentFragment(new PremiumPreviewFragment("settings"));
-            }
-//            else if (position == personalDetailRow) {
-//                //TODO 点击后跳转
-//            }
-            else if (position == personFollowRow) {
+            } else if (position == groupTabRow) {
+                //TODO 点击后跳转
+                if (chatInfo!=null && chatInfo.can_set_username) {
+
+                }
+            } else if (position == personFollowRow) {
                 //TODO 点击后跳转
                 follow2();
             } else {
@@ -6426,6 +6428,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
         settingsSectionRow = -1;
         settingsSectionRow2 = -1;
         notificationRow = -1;
+        groupTabRow = -1;
         languageRow = -1;
         premiumRow = -1;
         premiumSectionsRow = -1;
@@ -6581,6 +6584,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                 if (userId != getUserConfig().getClientUserId()) {
 
                     notificationsRow = rowCount++;
+
                     //TODO 修改
                     lastSectionRow = rowCount++;
 
@@ -6644,6 +6648,9 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                 notificationsDividerRow = rowCount++;
             }
             notificationsRow = rowCount++;
+
+            groupTabRow = rowCount++;
+
             infoSectionRow = rowCount++;
 
             if (ChatObject.isChannel(currentChat) && !currentChat.megagroup) {
@@ -8023,7 +8030,8 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                 VIEW_TYPE_ADDTOGROUP_INFO = 17,
                 VIEW_TYPE_PREMIUM_TEXT_CELL = 18,
                 VIEW_TYPE_PERSION_DETAIL = 110,//TODO Cricdit个人资料
-                VIEW_TYPE_PERSION_FOLLOW = 111;//TODO Cricdit个人资料
+                VIEW_TYPE_PERSION_FOLLOW = 111,//TODO Cricdit个人资料
+                VIEW_TYPE_GROUP_TAB = 112;//TODO 群标签
 
 
         private Context mContext;
@@ -8214,6 +8222,15 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
 //                    view = followCell;
                     view = new TextCell(mContext, resourcesProvider);
                     break;
+//                case VIEW_TYPE_GROUP_TAB:
+//                    //TODO 添加群标签布局
+////                    ConstraintLayout followCell = (ConstraintLayout) LayoutInflater.from(getContext()).inflate(R.layout.layout_profile_item_follow, null, false);
+////                    view = followCell;
+//                    final TextDetailCell textDetailCell = new TextDetailCell(mContext, resourcesProvider);
+//                    textDetailCell.setContentDescriptionValueFirst(true);
+////                    textDetailCell.setImageClickListener(ProfileActivity.this::onTextDetailCellImageClicked);
+//                    view = textDetailCell;
+//                    break;
             }
             if (viewType != VIEW_TYPE_SHARED_MEDIA || viewType != VIEW_TYPE_PERSION_DETAIL) {
                 view.setLayoutParams(new RecyclerView.LayoutParams(RecyclerView.LayoutParams.MATCH_PARENT, RecyclerView.LayoutParams.WRAP_CONTENT));
@@ -8260,6 +8277,16 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                     break;
                 case VIEW_TYPE_TEXT_DETAIL:
                     TextDetailCell detailCell = (TextDetailCell) holder.itemView;
+                    //TODO 设置群标签
+                    if (position == groupTabRow) {
+                        System.out.println("qwerqwerrrr   "+chatInfo.can_set_username);
+
+                        if (chatInfo.can_set_username) {
+
+                        }
+                        detailCell.setTextAndValue("Label","None",false);
+                    }
+
                     if (position == usernameRow) {
                         Drawable drawable = ContextCompat.getDrawable(detailCell.getContext(), R.drawable.msg_qr_mini);
                         drawable.setColorFilter(new PorterDuffColorFilter(getThemedColor(Theme.key_switch2TrackChecked), PorterDuff.Mode.MULTIPLY));
@@ -8535,7 +8562,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                             val = LocaleController.getString("NotificationsOff", R.string.NotificationsOff);
                         }
                         checkCell.setAnimationsEnabled(fragmentOpened);
-                        checkCell.setTextAndValueAndCheck(LocaleController.getString("Notifications", R.string.Notifications), val, enabled, false);
+                        checkCell.setTextAndValueAndCheck(LocaleController.getString("Notifications", R.string.Notifications), val, enabled, true);
                     }
                     break;
                 case VIEW_TYPE_SHADOW:
@@ -8621,9 +8648,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                     } else {
                         followCell.setColors(Theme.key_windowBackgroundWhiteRedText, Theme.key_windowBackgroundWhiteRedText);
                         followCell.setTextAndIcon("Following", R.drawable.follow_cancel, false);
-
                     }
-                    break;
             }
         }
 
@@ -8712,6 +8737,8 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
                 return VIEW_TYPE_PERSION_DETAIL;
             } else if (position == personFollowRow) {
                 return VIEW_TYPE_PERSION_FOLLOW;
+            } else if (position == groupTabRow) {
+                return VIEW_TYPE_TEXT_DETAIL;
             }
 //            else if (position == premiumRow) {
 //                return VIEW_TYPE_PREMIUM_TEXT_CELL;
@@ -10364,6 +10391,7 @@ public class ProfileActivity extends BaseFragment implements NotificationCenter.
             put(++pointer, settingsSectionRow, sparseIntArray);
             put(++pointer, settingsSectionRow2, sparseIntArray);
             put(++pointer, notificationRow, sparseIntArray);
+            put(++pointer, groupTabRow, sparseIntArray);
             put(++pointer, languageRow, sparseIntArray);
             put(++pointer, premiumRow, sparseIntArray);
             put(++pointer, premiumSectionsRow, sparseIntArray);

+ 2 - 0
TMessagesProj/src/main/res/layout/activity_points_record.xml

@@ -41,6 +41,7 @@
             app:layout_constraintTop_toTopOf="@id/points_record_filter_type_img" />
 
         <TextView
+            android:visibility="gone"
             android:id="@+id/points_record_filter_time"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -53,6 +54,7 @@
             app:layout_constraintTop_toTopOf="@id/points_record_filter_type" />
 
         <ImageView
+            android:visibility="gone"
             android:id="@+id/points_record_filter_time_img"
             android:layout_width="12dp"
             android:layout_height="12dp"

+ 1 - 0
TMessagesProj/src/main/res/values/strings.xml

@@ -29,6 +29,7 @@
     <string name="CdPublishRanking">Create Poll</string>
     <string name="CdPublishRankingEdit">Edit Voting Options</string>
     <string name="CdPointsRecord">Points record</string>
+    <string name="CdCrcma">Crcma</string>
 
 
     <!--==============================Cricdit结束================================-->

+ 2 - 2
gradle.properties

@@ -15,8 +15,8 @@
 #Sat Mar 12 05:53:50 MSK 2016
 #APP_VERSION_NAME=9.0.2
 #APP_VERSION_CODE=2808
-APP_VERSION_NAME=0.1.7
-APP_VERSION_CODE=18
+APP_VERSION_NAME=0.1.8
+APP_VERSION_CODE=19
 #APP_PACKAGE=org.telegram.messenger
 APP_PACKAGE=com.cricdit.cricdit
 RELEASE_KEY_PASSWORD=123456