|
@@ -1,23 +1,47 @@
|
|
package org.telegram.cricdit.ui;
|
|
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.InputType;
|
|
|
|
+import android.text.TextUtils;
|
|
|
|
+import android.text.TextWatcher;
|
|
import android.util.TypedValue;
|
|
import android.util.TypedValue;
|
|
import android.view.Gravity;
|
|
import android.view.Gravity;
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.View;
|
|
|
|
+import android.view.accessibility.AccessibilityNodeInfo;
|
|
import android.view.inputmethod.EditorInfo;
|
|
import android.view.inputmethod.EditorInfo;
|
|
|
|
+import android.widget.Button;
|
|
|
|
+import android.widget.EditText;
|
|
import android.widget.FrameLayout;
|
|
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.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
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.adapter.PublishRankingAdapter;
|
|
import org.telegram.cricdit.base.BaseActivity;
|
|
import org.telegram.cricdit.base.BaseActivity;
|
|
import org.telegram.cricdit.base.IPresenter;
|
|
import org.telegram.cricdit.base.IPresenter;
|
|
import org.telegram.cricdit.bean.PublishRankBean;
|
|
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.AndroidUtilities;
|
|
import org.telegram.messenger.LocaleController;
|
|
import org.telegram.messenger.LocaleController;
|
|
import org.telegram.messenger.R;
|
|
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.ActionBar.Theme;
|
|
import org.telegram.ui.Components.EditTextBoldCursor;
|
|
import org.telegram.ui.Components.EditTextBoldCursor;
|
|
import org.telegram.ui.Components.LayoutHelper;
|
|
import org.telegram.ui.Components.LayoutHelper;
|
|
@@ -25,14 +49,18 @@ import org.telegram.ui.Components.LayoutHelper;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
-public class PublishRankingActivity extends BaseActivity {
|
|
|
|
|
|
+public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter> implements PublishRankingView {
|
|
|
|
|
|
private RecyclerView mRecyclerView;
|
|
private RecyclerView mRecyclerView;
|
|
- private EditTextBoldCursor firstNameField;
|
|
|
|
- private FrameLayout mHeadContainer;
|
|
|
|
|
|
+// private EditTextBoldCursor firstNameField;
|
|
|
|
+// private FrameLayout mHeadContainer;
|
|
private PublishRankingAdapter mAdapter;
|
|
private PublishRankingAdapter mAdapter;
|
|
private List<PublishRankBean> mPublishRankBeanList;
|
|
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
|
|
@Override
|
|
protected int getLayoutResId() {
|
|
protected int getLayoutResId() {
|
|
return R.layout.activity_publish_ranking;
|
|
return R.layout.activity_publish_ranking;
|
|
@@ -44,30 +72,119 @@ public class PublishRankingActivity extends BaseActivity {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- protected IPresenter createPresenter() {
|
|
|
|
- return null;
|
|
|
|
|
|
+ protected PublishRankingPresenter createPresenter() {
|
|
|
|
+ return new PublishRankingPresenter();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
protected void initView(View view) {
|
|
protected void initView(View view) {
|
|
-
|
|
|
|
mRecyclerView = view.findViewById(R.id.publish_ranking_recyclerview);
|
|
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<>();
|
|
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);
|
|
mHeadContainer = inflate.findViewById(R.id.head_publish_ranking_container);
|
|
initEdit();
|
|
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() {
|
|
private void initEdit() {
|
|
|
|
+/*
|
|
firstNameField = new EditTextBoldCursor(getContext());
|
|
firstNameField = new EditTextBoldCursor(getContext());
|
|
firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
|
|
firstNameField.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);
|
|
firstNameField.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText));
|
|
firstNameField.setHintTextColor(Theme.getColor(Theme.key_windowBackgroundWhiteHintText));
|
|
@@ -86,5 +203,17 @@ public class PublishRankingActivity extends BaseActivity {
|
|
firstNameField.setCursorSize(AndroidUtilities.dp(20));
|
|
firstNameField.setCursorSize(AndroidUtilities.dp(20));
|
|
firstNameField.setCursorWidth(1.5f);
|
|
firstNameField.setCursorWidth(1.5f);
|
|
mHeadContainer.addView(firstNameField, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, 36, 24, 24, 24, 0));
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|