Jelajahi Sumber

上传排行榜(仅页面)

ltt 1 tahun lalu
induk
melakukan
efc152a62e
19 mengubah file dengan 826 tambahan dan 93 penghapusan
  1. 23 3
      TMessagesProj/src/main/java/org/telegram/cricdit/adapter/PublishRankingAdapter.java
  2. 10 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/PublishRankBean.java
  3. 16 0
      TMessagesProj/src/main/java/org/telegram/cricdit/bean/PublishRankEvent.java
  4. 41 0
      TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PublishRankingPresenter.java
  5. 8 0
      TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PublishRankingView.java
  6. 141 12
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingActivity.java
  7. 243 0
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingEditActivity.java
  8. 4 71
      TMessagesProj/src/main/java/org/telegram/cricdit/ui/SendAnFeedActivity.java
  9. 54 0
      TMessagesProj/src/main/java/org/telegram/cricdit/view/pictureselect/ImageFileCompressEngine.java
  10. 29 0
      TMessagesProj/src/main/java/org/telegram/cricdit/view/pictureselect/PictureGlideEngine.java
  11. 15 0
      TMessagesProj/src/main/res/drawable/shape_publish_icon.xml
  12. 85 4
      TMessagesProj/src/main/res/layout/activity_publish_ranking.xml
  13. 87 0
      TMessagesProj/src/main/res/layout/activity_publish_ranking_edit.xml
  14. 60 3
      TMessagesProj/src/main/res/layout/item_publish_rank.xml
  15. TEMPAT SAMPAH
      TMessagesProj/src/main/res/mipmap-xxhdpi/icon_arrow_right_grey.png
  16. TEMPAT SAMPAH
      TMessagesProj/src/main/res/mipmap-xxhdpi/img_select_add.png
  17. 1 0
      TMessagesProj/src/main/res/values/colors.xml
  18. 8 0
      TMessagesProj/src/main/res/values/string-cricdit.xml
  19. 1 0
      TMessagesProj/src/main/res/values/strings.xml

+ 23 - 3
TMessagesProj/src/main/java/org/telegram/cricdit/adapter/PublishRankingAdapter.java

@@ -1,25 +1,45 @@
 package org.telegram.cricdit.adapter;
 
+import android.app.Activity;
+import android.content.Context;
+import android.widget.ImageView;
+import android.widget.TextView;
+
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.RecyclerView;
 
+import com.airbnb.lottie.animation.content.Content;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.CenterCrop;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.bumptech.glide.request.RequestOptions;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
 
 import org.telegram.cricdit.bean.PublishRankBean;
+import org.telegram.cricdit.utils.UIUtil;
+import org.telegram.messenger.R;
+import org.telegram.onecric.base.BaseActivity;
 import org.telegram.tgnet.TLRPC;
 
 import java.util.List;
 
 public class PublishRankingAdapter extends BaseQuickAdapter<PublishRankBean, BaseViewHolder> {
-
-    public PublishRankingAdapter(int layoutResId, @Nullable List<PublishRankBean> data) {
+    private RequestOptions options;
+    public PublishRankingAdapter(Context context, int layoutResId, @Nullable List<PublishRankBean> data) {
         super(layoutResId, data);
+        options = new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(UIUtil.dip2px(context, 5)));
     }
 
     @Override
     protected void convert(@NonNull BaseViewHolder helper, PublishRankBean item) {
-
+        helper.setText(R.id.tv_name,item.name);
+        helper.setText(R.id.tv_info,item.info);
+        Glide.with(helper.itemView)
+                .load(item.phoneUrl)
+                .placeholder(R.drawable.img_placeholder_short)
+                .apply(options)
+                .into((ImageView) helper.getView(R.id.iv_img));
     }
 }

+ 10 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/PublishRankBean.java

@@ -1,4 +1,14 @@
 package org.telegram.cricdit.bean;
 
 public class PublishRankBean {
+    public int position = -1;
+    public String name;
+    public String info;
+    public String phoneUrl;
+    public PublishRankBean(int position,String name,String info,String phoneUrl){
+        this.position = position;
+        this.name = name;
+        this.info = info;
+        this.phoneUrl = phoneUrl;
+    }
 }

+ 16 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/bean/PublishRankEvent.java

@@ -0,0 +1,16 @@
+package org.telegram.cricdit.bean;
+
+public class PublishRankEvent {
+    private PublishRankBean bean;
+    public PublishRankEvent(PublishRankBean detailBean){
+        this.bean = detailBean;
+    }
+
+    public PublishRankBean getBean() {
+        return bean;
+    }
+
+    public void setBean(PublishRankBean detailBean) {
+        this.bean = detailBean;
+    }
+}

+ 41 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PublishRankingPresenter.java

@@ -0,0 +1,41 @@
+package org.telegram.cricdit.mvp;
+
+import org.telegram.cricdit.base.BaseObserver;
+import org.telegram.cricdit.base.BasePresenter;
+import org.telegram.cricdit.net.ApiService;
+import org.telegram.cricdit.utils.ToastUtil;
+
+import java.io.File;
+
+import okhttp3.MediaType;
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
+
+public class PublishRankingPresenter extends BasePresenter<PublishRankingView> {
+
+    public void uploadFile(File file){
+        RequestBody body = RequestBody.create(MediaType.parse("image/*"), 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().showSuccess(data);
+                }
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                if(getView()!=null){
+                    getView().showError(e);
+                }
+                super.onError(e);
+            }
+        });
+    }
+
+    public void publishRanking(){
+
+    }
+
+}

+ 8 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PublishRankingView.java

@@ -0,0 +1,8 @@
+package org.telegram.cricdit.mvp;
+
+import org.telegram.cricdit.base.IView;
+
+public interface PublishRankingView extends IView {
+    void showSuccess(String url);
+    void showError(Throwable e);
+}

+ 141 - 12
TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingActivity.java

@@ -1,23 +1,47 @@
 package org.telegram.cricdit.ui;
 
+import android.graphics.drawable.GradientDrawable;
+import android.os.Build;
+import android.text.Editable;
 import android.text.InputType;
+import android.text.TextUtils;
+import android.text.TextWatcher;
 import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
+import android.widget.EditText;
 import android.widget.FrameLayout;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+import android.widget.Toast;
 
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 import org.telegram.cricdit.adapter.PublishRankingAdapter;
 import org.telegram.cricdit.base.BaseActivity;
 import org.telegram.cricdit.base.IPresenter;
 import org.telegram.cricdit.bean.PublishRankBean;
+import org.telegram.cricdit.bean.PublishRankEvent;
+import org.telegram.cricdit.bean.RankVoteEvent;
+import org.telegram.cricdit.config.Config;
+import org.telegram.cricdit.mvp.PublishRankingPresenter;
+import org.telegram.cricdit.mvp.PublishRankingView;
+import org.telegram.cricdit.utils.ColorUtil;
+import org.telegram.cricdit.utils.EventBusHelper;
+import org.telegram.cricdit.utils.ToastUtil;
+import org.telegram.cricdit.utils.UIUtil;
 import org.telegram.messenger.AndroidUtilities;
 import org.telegram.messenger.LocaleController;
 import org.telegram.messenger.R;
+import org.telegram.ui.ActionBar.ActionBarMenu;
+import org.telegram.ui.ActionBar.ActionBarMenuItem;
 import org.telegram.ui.ActionBar.Theme;
 import org.telegram.ui.Components.EditTextBoldCursor;
 import org.telegram.ui.Components.LayoutHelper;
@@ -25,14 +49,18 @@ import org.telegram.ui.Components.LayoutHelper;
 import java.util.ArrayList;
 import java.util.List;
 
-public class PublishRankingActivity extends BaseActivity {
+public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter> implements PublishRankingView {
 
     private RecyclerView mRecyclerView;
-    private EditTextBoldCursor firstNameField;
-    private FrameLayout mHeadContainer;
+//    private EditTextBoldCursor firstNameField;
+//    private FrameLayout mHeadContainer;
     private PublishRankingAdapter mAdapter;
     private List<PublishRankBean> mPublishRankBeanList;
-
+    private EditText et_title;
+    private TextView tv_title_length;
+    private TextView tv_2;
+    private View view_add;
+    private ActionBarMenuItem actionBarMenuItem;
     @Override
     protected int getLayoutResId() {
         return R.layout.activity_publish_ranking;
@@ -44,30 +72,119 @@ public class PublishRankingActivity extends BaseActivity {
     }
 
     @Override
-    protected IPresenter createPresenter() {
-        return null;
+    protected PublishRankingPresenter createPresenter() {
+        return new PublishRankingPresenter();
     }
 
     @Override
     protected void initView(View view) {
-
         mRecyclerView = view.findViewById(R.id.publish_ranking_recyclerview);
-        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+        et_title = view.findViewById(R.id.et_title);
+        tv_title_length = view.findViewById(R.id.tv_title_length);
+        tv_2 = view.findViewById(R.id.tv_2);
+        view_add = view.findViewById(R.id.view_add);
 
+        EventBusHelper.register(this);
+
+        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
         mPublishRankBeanList = new ArrayList<>();
+        mAdapter = new PublishRankingAdapter(getContext(),R.layout.item_publish_rank, mPublishRankBeanList);
+        mRecyclerView.setAdapter(mAdapter);
 
-        mAdapter = new PublishRankingAdapter(R.layout.item_publish_rank, mPublishRankBeanList);
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+            GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{ColorUtil.COLOR_CHECKED, ColorUtil.COLOR_CHECKED});
+            gd.setSize(UIUtil.dip2px(getContext(), 1.5), UIUtil.dip2px(getContext(), et_title.getTextCursorDrawable().getIntrinsicHeight()));
+            et_title.setTextCursorDrawable(gd);
+        }
 
-        View inflate = LayoutInflater.from(getContext()).inflate(R.layout.head_publish_rank, null, false);
+        initListener();
+
+/*        View inflate = LayoutInflater.from(getContext()).inflate(R.layout.head_publish_rank, null, false);
         mHeadContainer = inflate.findViewById(R.id.head_publish_ranking_container);
         initEdit();
-        mAdapter.addHeaderView(inflate);
+        mAdapter.addHeaderView(inflate);*/
+    }
 
-        mRecyclerView.setAdapter(mAdapter);
+    private void initListener(){
+        ActionBarMenu menu = actionBar.createMenu();
+        actionBarMenuItem = menu.addItem(0, R.drawable.msg_text_check);
+        actionBarMenuItem.setIconColor(ColorUtil.COLOR_WHITE);
+        actionBarMenuItem.setVisibility(View.GONE);
+        actionBarMenuItem.setOnClickListener(view1 -> {
+            String title = et_title.getText().toString();
+            if(TextUtils.isEmpty(title.trim())){
+                ToastUtil.show(getContext(),et_title.getHint().toString());
+                return;
+            }
+            if(mPublishRankBeanList.size() > 1){
+                //fixme ltt 请求接口,发布排行榜
+                ToastUtil.show(getContext(),LocaleController.getString(R.string.publish_success));
+                finishFragment();
+            }
+        });
+
+        mAdapter.setOnItemClickListener((adapter, view1, position) -> {
+            presentFragment(new PublishRankingEditActivity(mPublishRankBeanList.get(position)));
+        });
+
+        view_add.setOnClickListener(v -> {
+            presentFragment(new PublishRankingEditActivity());
+        });
+
+        et_title.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                tv_title_length.setText(editable.length()+"/50");
+                //fixme ltt 加晃动动画
+
+            }
+        });
+
+    }
 
+    @Subscribe(threadMode = ThreadMode.MAIN)
+    public void addVoteData(PublishRankEvent event) {
+        PublishRankBean bean = event.getBean();
+        if(bean.position > -1){
+            mPublishRankBeanList.set(bean.position,bean);
+        }else {
+            bean.position = mPublishRankBeanList.size();
+            if(mPublishRankBeanList.size()<10){
+                mPublishRankBeanList.add(bean);
+            }
+        }
+        mAdapter.notifyDataSetChanged();
+
+        //<2条时隐藏发布按钮,>9条隐藏添加按钮
+        if(mPublishRankBeanList.size() > 1){
+            actionBarMenuItem.setVisibility(View.VISIBLE);
+            tv_2.setVisibility(View.VISIBLE);
+        }else{
+            actionBarMenuItem.setVisibility(View.GONE);
+            tv_2.setVisibility(View.GONE);
+        }
+        actionBarMenuItem.setVisibility(mPublishRankBeanList.size() > 1 ? View.VISIBLE : View.GONE);
+        view_add.setVisibility(mPublishRankBeanList.size() >9 ? View.GONE : View.VISIBLE);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        EventBusHelper.unregister(this);
     }
 
     private void initEdit() {
+/*
         firstNameField = new EditTextBoldCursor(getContext());
         firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
         firstNameField.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText));
@@ -86,5 +203,17 @@ public class PublishRankingActivity extends BaseActivity {
         firstNameField.setCursorSize(AndroidUtilities.dp(20));
         firstNameField.setCursorWidth(1.5f);
         mHeadContainer.addView(firstNameField, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 36, 24, 24, 24, 0));
+*/
+
+    }
+
+    @Override
+    public void showSuccess(String url) {
+        //pass
+    }
+
+    @Override
+    public void showError(Throwable e) {
+        //pass
     }
 }

+ 243 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingEditActivity.java

@@ -0,0 +1,243 @@
+package org.telegram.cricdit.ui;
+
+import static android.app.Activity.RESULT_OK;
+import static com.luck.picture.lib.config.PictureConfig.CHOOSE_REQUEST;
+import static org.telegram.cricdit.config.Constants.FILE_SPECIFY_SIZE;
+import static org.telegram.cricdit.utils.Common.hideKeyboard;
+import static org.telegram.cricdit.view.pictureselect.ImageFileCompressEngine.getCompressFileEngine;
+import static org.telegram.cricdit.view.pictureselect.PictureGlideEngine.getPictureSelectorStyle;
+
+import android.content.Intent;
+import android.graphics.drawable.GradientDrawable;
+import android.os.Build;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.TextView;
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.CenterCrop;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.bumptech.glide.request.RequestOptions;
+import com.luck.picture.lib.animators.AnimationType;
+import com.luck.picture.lib.basic.PictureSelectionModel;
+import com.luck.picture.lib.basic.PictureSelector;
+import com.luck.picture.lib.config.SelectMimeType;
+import com.luck.picture.lib.config.SelectModeConfig;
+import com.luck.picture.lib.engine.ImageEngine;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.language.LanguageConfig;
+import com.luck.picture.lib.style.PictureSelectorStyle;
+import org.telegram.cricdit.base.BaseActivity;
+import org.telegram.cricdit.bean.PublishRankBean;
+import org.telegram.cricdit.bean.PublishRankEvent;
+import org.telegram.cricdit.mvp.PublishRankingPresenter;
+import org.telegram.cricdit.mvp.PublishRankingView;
+import org.telegram.cricdit.utils.ColorUtil;
+import org.telegram.cricdit.utils.EventBusHelper;
+import org.telegram.cricdit.utils.ToastUtil;
+import org.telegram.cricdit.utils.UIUtil;
+import org.telegram.cricdit.view.pictureselect.PictureGlideEngine;
+import org.telegram.messenger.AndroidUtilities;
+import org.telegram.messenger.LocaleController;
+import org.telegram.messenger.R;
+import org.telegram.ui.ActionBar.ActionBarMenu;
+import org.telegram.ui.ActionBar.ActionBarMenuItem;
+import org.telegram.ui.ActionBar.AlertDialog;
+
+import java.io.File;
+import java.util.ArrayList;
+
+public class PublishRankingEditActivity extends BaseActivity<PublishRankingPresenter> implements PublishRankingView {
+    private View view;
+    private EditText et_name;
+    private EditText et_info;
+    private TextView tv_name_length;
+    private TextView tv_info_length;
+    private ImageView iv_select;
+    private String photoUrl;
+    private PublishRankBean optionBean;
+    private AlertDialog dialog;
+    private ImageEngine imageEngine;
+    private ArrayList<LocalMedia> localMediaList;
+    private PictureSelectorStyle selectorStyle;
+
+    public PublishRankingEditActivity(){}
+    public PublishRankingEditActivity(PublishRankBean bean){
+        optionBean = bean;
+    }
+    @Override
+    protected int getLayoutResId() {
+        return R.layout.activity_publish_ranking_edit;
+    }
+
+    @Override
+    public String setActionBarTitle() {
+        return LocaleController.getString(R.string.CdPublishRankingEdit);
+    }
+
+    @Override
+    protected PublishRankingPresenter createPresenter() {
+        return new PublishRankingPresenter();
+    }
+
+    @Override
+    protected void initView(View view) {
+        this.view = view;
+        et_name = view.findViewById(R.id.et_name);
+        et_info = view.findViewById(R.id.et_info);
+        tv_name_length = view.findViewById(R.id.tv_name_length);
+        tv_info_length = view.findViewById(R.id.tv_info_length);
+        iv_select = view.findViewById(R.id.iv_select);
+        dialog = new AlertDialog(getContext(), 3);
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
+            GradientDrawable gd = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{ColorUtil.COLOR_CHECKED, ColorUtil.COLOR_CHECKED});
+            gd.setSize(UIUtil.dip2px(getContext(), 1.5), UIUtil.dip2px(getContext(), et_name.getTextCursorDrawable().getIntrinsicHeight()));
+            GradientDrawable gd2 = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[]{ColorUtil.COLOR_CHECKED, ColorUtil.COLOR_CHECKED});
+            gd2.setSize(UIUtil.dip2px(getContext(), 1.5), UIUtil.dip2px(getContext(), et_info.getTextCursorDrawable().getIntrinsicHeight()));
+            et_name.setTextCursorDrawable(gd);
+            et_info.setTextCursorDrawable(gd2);
+        }
+
+        ActionBarMenu menu = actionBar.createMenu();
+        ActionBarMenuItem actionBarMenuItem = menu.addItem(0, R.drawable.msg_text_check);
+        actionBarMenuItem.setIconColor(ColorUtil.COLOR_WHITE);
+        actionBarMenuItem.setOnClickListener(view1 -> {
+            AndroidUtilities.hideKeyboard(et_info);
+            if(TextUtils.isEmpty(photoUrl)){
+                ToastUtil.show(getContext(),LocaleController.getString(R.string.please_upload_image));
+                return;
+            }
+            String name = et_name.getText().toString();
+            String info = et_info.getText().toString();
+            if(TextUtils.isEmpty(name.trim())){
+                ToastUtil.show(getContext(),et_name.getHint().toString());
+                return;
+            }
+            if(TextUtils.isEmpty(info.trim())){
+                ToastUtil.show(getContext(),et_info.getHint().toString());
+                return;
+            }
+
+            EventBusHelper.post(new PublishRankEvent(new PublishRankBean((optionBean!=null)?optionBean.position:-1,name,info,photoUrl)));
+            finishFragment();
+        });
+
+        localMediaList = new ArrayList<>();
+        imageEngine = PictureGlideEngine.createGlideEngine();
+        selectorStyle = getPictureSelectorStyle();
+
+        iv_select.setOnClickListener(view1 -> {
+            AndroidUtilities.hideKeyboard(et_info);
+            PictureSelectionModel selectionModel = PictureSelector.create(getContext())
+                    .openGallery(SelectMimeType.ofImage())
+                    .setSelectorUIStyle(selectorStyle)
+                    .setImageEngine(imageEngine)
+                    .isPageSyncAlbumCount(true)
+                    .setCompressEngine(getCompressFileEngine())
+                    .setSelectionMode(SelectModeConfig.SINGLE)
+                    .setLanguage(LanguageConfig.SYSTEM_LANGUAGE)
+                    .isDisplayTimeAxis(true)
+                    .isDisplayCamera(false)
+                    .isFastSlidingSelect(true)
+                    .isWithSelectVideoImage(false)
+                    .isPreviewFullScreenMode(true)
+                    .isPreviewZoomEffect(true)
+                    .isPreviewImage(true)
+                    .isMaxSelectEnabledMask(true)
+                    .setMaxSelectNum(1)
+                    .setFilterMaxFileSize(FILE_SPECIFY_SIZE)
+                    .setSelectMaxFileSize(FILE_SPECIFY_SIZE)
+                    .setRecyclerAnimationMode(AnimationType.DEFAULT_ANIMATION)
+                    .setSelectedData(localMediaList);
+            selectionModel.forResult(CHOOSE_REQUEST);
+        });
+
+        et_name.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                tv_name_length.setText(editable.length()+"/50");
+                //fixme ltt 加晃动动画
+
+            }
+        });
+
+        et_info.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                tv_info_length.setText(editable.length()+"/1000");
+
+            }
+        });
+
+        initData();
+    }
+
+    private void initData(){
+        if(optionBean!=null){
+            photoUrl = optionBean.phoneUrl;
+            Glide.with(getContext()).load(photoUrl).placeholder(R.mipmap.img_select_add).into(iv_select);
+            et_name.setText(optionBean.name);
+            et_info.setText(optionBean.info);
+        }
+    }
+
+    @Override
+    public void showSuccess(String url) {
+        dialog.dismiss();
+        photoUrl = url;
+        Glide.with(getContext())
+                .load(photoUrl)
+                .placeholder(R.mipmap.img_select_add)
+                .apply(new RequestOptions().transforms(new CenterCrop(), new RoundedCorners(UIUtil.dip2px(getContext(), 5))))
+                .into(iv_select);
+    }
+
+    @Override
+    public void showError(Throwable e) {
+        dialog.dismiss();
+        photoUrl = "";
+        iv_select.setImageResource(R.mipmap.img_select_add);
+        ToastUtil.show(getContext(),LocaleController.getString(R.string.please_try_again));
+    }
+
+    @Override
+    public void onActivityResultFragment(int requestCode, int resultCode, Intent data) {
+        super.onActivityResultFragment(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            switch (requestCode) {
+                case CHOOSE_REQUEST:
+                    localMediaList = PictureSelector.obtainSelectorList(data);
+                    String fileVideoPath = localMediaList.get(0).getRealPath();
+                    if(!TextUtils.isEmpty(fileVideoPath)){
+                        dialog.show();
+                        presenter.uploadFile(new File(fileVideoPath));
+                    }
+                    AndroidUtilities.hideKeyboard(et_info);
+                    break;
+            }
+        }
+    }
+}

+ 4 - 71
TMessagesProj/src/main/java/org/telegram/cricdit/ui/SendAnFeedActivity.java

@@ -4,12 +4,13 @@ import static android.app.Activity.RESULT_OK;
 import static com.luck.picture.lib.language.LanguageConfig.ENGLISH;
 import static org.telegram.cricdit.config.Constants.FILE_SPECIFY_SIZE;
 import static org.telegram.cricdit.utils.TimeUtils.isFastClick;
+import static org.telegram.cricdit.view.pictureselect.ImageFileCompressEngine.getCompressFileEngine;
+import static org.telegram.cricdit.view.pictureselect.PictureGlideEngine.getPictureSelectorStyle;
 import static org.telegram.messenger.AndroidUtilities.hideKeyboard;
 
 import android.content.Context;
 import android.content.Intent;
 import android.graphics.drawable.GradientDrawable;
-import android.net.Uri;
 import android.os.Build;
 import android.os.Handler;
 import android.os.Message;
@@ -39,19 +40,16 @@ import com.luck.picture.lib.basic.PictureSelector;
 import com.luck.picture.lib.config.PictureMimeType;
 import com.luck.picture.lib.config.SelectMimeType;
 import com.luck.picture.lib.config.SelectModeConfig;
-import com.luck.picture.lib.engine.CompressFileEngine;
 import com.luck.picture.lib.engine.ImageEngine;
 import com.luck.picture.lib.engine.MediaPlayerEngine;
 import com.luck.picture.lib.engine.VideoPlayerEngine;
 import com.luck.picture.lib.entity.LocalMedia;
 import com.luck.picture.lib.entity.MediaExtraInfo;
 import com.luck.picture.lib.interfaces.OnExternalPreviewEventListener;
-import com.luck.picture.lib.interfaces.OnKeyValueResultCallbackListener;
 import com.luck.picture.lib.language.LanguageConfig;
 import com.luck.picture.lib.style.BottomNavBarStyle;
 import com.luck.picture.lib.style.PictureSelectorStyle;
 import com.luck.picture.lib.style.SelectMainStyle;
-import com.luck.picture.lib.utils.DateUtils;
 import com.luck.picture.lib.utils.MediaUtils;
 import com.scwang.smart.refresh.layout.SmartRefreshLayout;
 import com.zhy.view.flowlayout.FlowLayout;
@@ -79,9 +77,6 @@ import org.telegram.ui.ActionBar.AlertDialog;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
-import top.zibin.luban.Luban;
-import top.zibin.luban.OnNewCompressListener;
-import top.zibin.luban.OnRenameListener;
 
 
 public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implements SendAnFeedView {
@@ -367,30 +362,12 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
         }
         pictureAdapter = new PictureAdapter(mContext, localMediaList);
         pictureAdapter.setSelectMax(maxSelectNum);
-        pictureAdapter.setSelectMax(maxSelectNum);
         rv.setAdapter(pictureAdapter);
         imageEngine = PictureGlideEngine.createGlideEngine();
         videoPlayerEngine = new MediaPlayerEngine();
-        selectorStyle = new PictureSelectorStyle();
-        BottomNavBarStyle whiteBottomNavBarStyle = new BottomNavBarStyle();
-        whiteBottomNavBarStyle.setBottomNarBarBackgroundColor(ColorUtil.COLOR_WHITE);
-        whiteBottomNavBarStyle.setBottomPreviewSelectTextColor(ColorUtil.COLOR_GRAY_TEXT);
-        whiteBottomNavBarStyle.setBottomPreviewNormalTextColor(ColorUtil.COLOR_BLACK_TEXT);
-        whiteBottomNavBarStyle.setCompleteCountTips(false);
-        whiteBottomNavBarStyle.setBottomEditorTextColor(ColorUtil.COLOR_GRAY_TEXT);
-        whiteBottomNavBarStyle.setBottomOriginalTextColor(ColorUtil.COLOR_BLACK_TEXT);
-        whiteBottomNavBarStyle.setBottomPreviewNarBarBackgroundColor(ColorUtil.COLOR_WHITE);
-
-        SelectMainStyle selectMainStyle = new SelectMainStyle();
-        selectMainStyle.setStatusBarColor(ColorUtil.COLOR_WHITE);
-        selectMainStyle.setDarkStatusBarBlack(true);
-        selectMainStyle.setSelectNormalTextColor(ColorUtil.COLOR_BLACK_TEXT);
-        selectMainStyle.setSelectTextColor(ColorUtil.COLOR_BLUE_TEXT);
-        selectMainStyle.setSelectBackground(R.drawable.sel_ps_checkbox);
-
-        selectorStyle.setBottomBarStyle(whiteBottomNavBarStyle);
-        selectorStyle.setSelectMainStyle(selectMainStyle);
+        selectorStyle = getPictureSelectorStyle();
     }
+
     
     private void initListener(){
         tvChooseTag.setOnClickListener((view -> {
@@ -629,50 +606,6 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
         }
     }
 
-    /**
-     * 压缩引擎
-     */
-    private ImageFileCompressEngine getCompressFileEngine() {
-        return new ImageFileCompressEngine();
-    }
-
-    /**
-     * 自定义压缩
-     */
-    private static class ImageFileCompressEngine implements CompressFileEngine {
-
-        @Override
-        public void onStartCompress(Context context, ArrayList<Uri> source, OnKeyValueResultCallbackListener call) {
-            Luban.with(context).load(source).ignoreBy(100).setRenameListener(new OnRenameListener() {
-                @Override
-                public String rename(String filePath) {
-                    int indexOf = filePath.lastIndexOf(".");
-                    String postfix = indexOf != -1 ? filePath.substring(indexOf) : ".jpg";
-                    return DateUtils.getCreateFileName("CMP_") + postfix;
-                }
-            }).setCompressListener(new OnNewCompressListener() {
-                @Override
-                public void onStart() {
-
-                }
-
-                @Override
-                public void onSuccess(String source, File compressFile) {
-                    if (call != null) {
-                        call.onCallback(source, compressFile.getAbsolutePath());
-                    }
-                }
-
-                @Override
-                public void onError(String source, Throwable e) {
-                    if (call != null) {
-                        call.onCallback(source, null);
-                    }
-                }
-            }).launch();
-        }
-    }
-
     @Override
     public void onActivityResultFragment(int requestCode, int resultCode, Intent data) {
         super.onActivityResultFragment(requestCode, resultCode, data);

+ 54 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/view/pictureselect/ImageFileCompressEngine.java

@@ -0,0 +1,54 @@
+package org.telegram.cricdit.view.pictureselect;
+
+import android.content.Context;
+import android.net.Uri;
+
+import com.luck.picture.lib.engine.CompressFileEngine;
+import com.luck.picture.lib.interfaces.OnKeyValueResultCallbackListener;
+import com.luck.picture.lib.utils.DateUtils;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import top.zibin.luban.Luban;
+import top.zibin.luban.OnNewCompressListener;
+import top.zibin.luban.OnRenameListener;
+
+public class ImageFileCompressEngine implements CompressFileEngine {
+    /**
+     * 压缩引擎
+     */
+    public static ImageFileCompressEngine getCompressFileEngine() {
+        return new ImageFileCompressEngine();
+    }
+    @Override
+    public void onStartCompress(Context context, ArrayList<Uri> source, OnKeyValueResultCallbackListener call) {
+        Luban.with(context).load(source).ignoreBy(100).setRenameListener(new OnRenameListener() {
+            @Override
+            public String rename(String filePath) {
+                int indexOf = filePath.lastIndexOf(".");
+                String postfix = indexOf != -1 ? filePath.substring(indexOf) : ".jpg";
+                return DateUtils.getCreateFileName("CMP_") + postfix;
+            }
+        }).setCompressListener(new OnNewCompressListener() {
+            @Override
+            public void onStart() {
+
+            }
+
+            @Override
+            public void onSuccess(String source, File compressFile) {
+                if (call != null) {
+                    call.onCallback(source, compressFile.getAbsolutePath());
+                }
+            }
+
+            @Override
+            public void onError(String source, Throwable e) {
+                if (call != null) {
+                    call.onCallback(source, null);
+                }
+            }
+        }).launch();
+    }
+}

+ 29 - 0
TMessagesProj/src/main/java/org/telegram/cricdit/view/pictureselect/PictureGlideEngine.java

@@ -9,8 +9,14 @@ import com.bumptech.glide.Glide;
 import com.bumptech.glide.load.resource.bitmap.CenterCrop;
 import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
 import com.luck.picture.lib.engine.ImageEngine;
+import com.luck.picture.lib.style.BottomNavBarStyle;
+import com.luck.picture.lib.style.PictureSelectorStyle;
+import com.luck.picture.lib.style.SelectMainStyle;
 import com.luck.picture.lib.utils.ActivityCompatHelper;
 
+import org.telegram.cricdit.utils.ColorUtil;
+import org.telegram.messenger.R;
+
 public class PictureGlideEngine implements ImageEngine {
 
     /**
@@ -118,4 +124,27 @@ public class PictureGlideEngine implements ImageEngine {
         }
         return instance;
     }
+
+    public static PictureSelectorStyle getPictureSelectorStyle(){
+        PictureSelectorStyle selectorStyle = new PictureSelectorStyle();
+        BottomNavBarStyle whiteBottomNavBarStyle = new BottomNavBarStyle();
+        whiteBottomNavBarStyle.setBottomNarBarBackgroundColor(ColorUtil.COLOR_WHITE);
+        whiteBottomNavBarStyle.setBottomPreviewSelectTextColor(ColorUtil.COLOR_GRAY_TEXT);
+        whiteBottomNavBarStyle.setBottomPreviewNormalTextColor(ColorUtil.COLOR_BLACK_TEXT);
+        whiteBottomNavBarStyle.setCompleteCountTips(false);
+        whiteBottomNavBarStyle.setBottomEditorTextColor(ColorUtil.COLOR_GRAY_TEXT);
+        whiteBottomNavBarStyle.setBottomOriginalTextColor(ColorUtil.COLOR_BLACK_TEXT);
+        whiteBottomNavBarStyle.setBottomPreviewNarBarBackgroundColor(ColorUtil.COLOR_WHITE);
+
+        SelectMainStyle selectMainStyle = new SelectMainStyle();
+        selectMainStyle.setStatusBarColor(ColorUtil.COLOR_WHITE);
+        selectMainStyle.setDarkStatusBarBlack(true);
+        selectMainStyle.setSelectNormalTextColor(ColorUtil.COLOR_BLACK_TEXT);
+        selectMainStyle.setSelectTextColor(ColorUtil.COLOR_BLUE_TEXT);
+        selectMainStyle.setSelectBackground(R.drawable.sel_ps_checkbox);
+
+        selectorStyle.setBottomBarStyle(whiteBottomNavBarStyle);
+        selectorStyle.setSelectMainStyle(selectMainStyle);
+        return selectorStyle;
+    }
 }

+ 15 - 0
TMessagesProj/src/main/res/drawable/shape_publish_icon.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:width="50dp"
+        android:height="50dp">
+        <shape android:shape="oval">
+            <solid android:color="@color/colorBlue" />
+        </shape>
+    </item>
+    <item
+        android:drawable="@drawable/add"
+		android:gravity="center"
+        android:width="20dp"
+        android:height="20dp" />
+</layer-list>

+ 85 - 4
TMessagesProj/src/main/res/layout/activity_publish_ranking.xml

@@ -1,13 +1,94 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    xmlns:tools="http://schemas.android.com/tools">
+
+    <TextView
+        android:id="@+id/tv_1"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="19.5dp"
+        android:layout_marginBottom="2.5dp"
+        android:layout_marginLeft="13dp"
+        android:textSize="@dimen/sp_16"
+        android:textColor="@color/c_111111"
+        android:textStyle="bold"
+        android:text="@string/leaderboard_title"/>
+
+    <LinearLayout
+        android:id="@+id/ll_title"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="45dp"
+        android:orientation="horizontal"
+        android:background="@drawable/shape_cccccc_5dp_stroke_rec"
+        android:layout_margin="13dp"
+        android:padding="9dp"
+        android:gravity="center_vertical"
+        android:layout_below="@id/tv_1">
+        
+        <EditText
+            android:id="@+id/et_title"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:background="@null"
+            android:hint="@string/please_enter_a_title"
+            android:textColorHint="@color/c_A0A4A7"
+            android:maxLength="50"
+            android:textSize="@dimen/sp_16"
+            android:inputType="text"
+            android:imeOptions="actionDone"/>
+
+        <TextView
+            android:id="@+id/tv_title_length"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/c_A0A4A7"
+            android:textSize="@dimen/sp_16"
+            android:text="0/50"
+            android:layout_marginLeft="@dimen/dp_10"/>
+        
+    </LinearLayout>
+
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="match_parent"
+        android:layout_height="9dp"
+        android:background="@color/line_color"
+        android:layout_below="@id/ll_title"/>
+
+    <TextView
+        android:id="@+id/tv_2"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:layout_marginBottom="12dp"
+        android:layout_marginLeft="13dp"
+        android:textSize="@dimen/sp_16"
+        android:textColor="@color/c_111111"
+        android:text="@string/voting_options"
+        android:layout_below="@id/view_line"
+        android:visibility="invisible"
+        android:textStyle="bold"/>
 
     <androidx.recyclerview.widget.RecyclerView
         android:overScrollMode="never"
         android:id="@+id/publish_ranking_recyclerview"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        app:layout_constraintTop_toTopOf="parent" />
-</androidx.constraintlayout.widget.ConstraintLayout>
+        android:layout_below="@id/tv_2"/>
+
+    <View
+        android:id="@+id/view_add"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:background="@drawable/shape_publish_icon"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentRight="true"
+        android:layout_marginBottom="50dp"
+        android:layout_marginRight="15dp"/>
+
+</RelativeLayout>

+ 87 - 0
TMessagesProj/src/main/res/layout/activity_publish_ranking_edit.xml

@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:paddingTop="30dp">
+
+    <ImageView
+        android:id="@+id/iv_select"
+        android:layout_width="120dp"
+        android:layout_height="90dp"
+        android:src="@mipmap/img_select_add"
+        android:scaleType="centerCrop"
+        android:layout_gravity="center_horizontal"
+        android:layout_marginBottom="23dp"/>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="45dp"
+        android:orientation="horizontal"
+        android:background="@drawable/shape_cccccc_5dp_stroke_rec"
+        android:layout_margin="13dp"
+        android:padding="9dp"
+        android:gravity="center_vertical"
+        android:layout_below="@id/tv_1">
+
+        <EditText
+            android:id="@+id/et_name"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:maxLength="50"
+            android:maxLines="1"
+            android:background="@null"
+            android:hint="@string/please_enter_name"
+            android:textColorHint="@color/c_A0A4A7"
+            android:textSize="@dimen/sp_16"
+            android:inputType="text"
+            android:imeOptions="actionNext"/>
+
+        <TextView
+            android:id="@+id/tv_name_length"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/c_A0A4A7"
+            android:textSize="@dimen/sp_16"
+            android:text="0/50"
+            android:layout_marginLeft="@dimen/dp_10"
+            android:layout_marginTop="2.5dp"/>
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="45dp"
+        android:orientation="vertical"
+        android:background="@drawable/shape_cccccc_5dp_stroke_rec"
+        android:layout_marginLeft="13dp"
+        android:layout_marginRight="13dp"
+        android:padding="9dp">
+
+        <EditText
+            android:id="@+id/et_info"
+            android:layout_width="match_parent"
+            android:layout_height="140dp"
+            android:background="@null"
+            android:gravity="left"
+            android:textSize="@dimen/sp_16"
+            android:hint="@string/please_enter_introduction"
+            android:textColorHint="@color/c_A0A4A7"
+            android:maxLength="1000"/>
+
+        <TextView
+            android:id="@+id/tv_info_length"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/c_A0A4A7"
+            android:textSize="@dimen/sp_16"
+            android:text="0/1000"
+            android:layout_gravity="right"
+            android:layout_marginTop="5dp"/>
+
+    </LinearLayout>
+
+</LinearLayout>

+ 60 - 3
TMessagesProj/src/main/res/layout/item_publish_rank.xml

@@ -1,6 +1,63 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="wrap_content"
+    android:paddingLeft="13dp"
+    android:paddingRight="13dp"
+    android:paddingBottom="13dp"
+    android:background="?android:attr/selectableItemBackground">
 
-</androidx.constraintlayout.widget.ConstraintLayout>
+    <View
+        android:id="@+id/view_line"
+        android:layout_width="match_parent"
+        android:layout_height="0.5dp"
+        android:background="@color/line_color"
+        android:layout_marginBottom="13dp"/>
+
+    <ImageView
+        android:id="@+id/iv_img"
+        android:layout_width="120dp"
+        android:layout_height="90dp"
+        android:scaleType="centerCrop"
+        android:layout_below="@+id/view_line"
+        android:layout_centerVertical="true"/>
+
+    <TextView
+        android:id="@+id/tv_name"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:maxLines="2"
+        android:ellipsize="end"
+        android:textSize="@dimen/sp_15"
+        android:textColor="@color/c_111111"
+        android:layout_alignTop="@+id/iv_img"
+        android:layout_toLeftOf="@+id/iv_arrow"
+        android:layout_toRightOf="@+id/iv_img"
+        android:layout_marginTop="8dp"
+        android:lineSpacingExtra="4dp"
+        android:layout_marginLeft="14.5dp"/>
+
+    <TextView
+        android:id="@+id/tv_info"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:maxLines="1"
+        android:ellipsize="end"
+        android:textSize="@dimen/sp_14"
+        android:textColor="@color/c_A0A4A7"
+        android:layout_below="@id/tv_name"
+        android:layout_alignLeft="@id/tv_name"
+        android:layout_alignRight="@id/tv_name"
+        android:layout_marginTop="18dp"/>
+
+    <ImageView
+        android:id="@+id/iv_arrow"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@mipmap/icon_arrow_right_grey"
+        android:layout_alignParentRight="true"
+        android:layout_centerVertical="true"
+        android:layout_marginRight="5dp"
+        android:layout_marginLeft="15dp"/>
+
+</RelativeLayout>

TEMPAT SAMPAH
TMessagesProj/src/main/res/mipmap-xxhdpi/icon_arrow_right_grey.png


TEMPAT SAMPAH
TMessagesProj/src/main/res/mipmap-xxhdpi/img_select_add.png


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

@@ -90,6 +90,7 @@
     <color name="c_A0A4A7">#A0A4A7</color>
     <color name="c_9D9D9D">#9D9D9D</color>
     <color name="c_141414">#141414</color>
+    <color name="c_111111">#111111</color>
 
     <color name="black">#FF000000</color>
     <color name="c_80000000">#80000000</color>

+ 8 - 0
TMessagesProj/src/main/res/values/string-cricdit.xml

@@ -133,4 +133,12 @@
     <string name="post_resource_video_format_tip">Uploading this video format is not supported</string>
     <string name="news_by">By</string>
     <string name="news_updated_on">• Updated on</string>
+    <string name="leaderboard_title">Leaderboard title</string>
+    <string name="please_enter_a_title">Please enter a title</string>
+    <string name="voting_options">Voting Options</string>
+    <string name="please_enter_name">Please enter a name</string>
+    <string name="please_enter_introduction">Please enter a brief introduction</string>
+    <string name="please_upload_image">Please upload a image.</string>
+    <string name="publish_success">Successful release</string>
+
 </resources>

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

@@ -27,6 +27,7 @@
     <string name="CdExpiredGroup">Expired Group</string>
     <string name="CdExpiredUser">Expired User</string>
     <string name="CdPublishRanking">Create Poll</string>
+    <string name="CdPublishRankingEdit">Edit Voting Options</string>
 
 
     <!--==============================Cricdit结束================================-->