Explorar o código

Merge branch 'dev-ranklist'

ltt hai 1 ano
pai
achega
5ec5998e3d

+ 4 - 3
TMessagesProj/src/main/java/org/telegram/cricdit/mvp/PublishRankingPresenter.java

@@ -40,25 +40,26 @@ public class PublishRankingPresenter extends BasePresenter<PublishRankingView> {
             @Override
             protected void onSuccess(String data) {
                 if(getView()!=null){
-                    getView().showSuccess(data);
+                    getView().updateImg(data);
                 }
             }
 
             @Override
             public void onError(Throwable e) {
                 if(getView()!=null){
-                    getView().showError(e);
+                    getView().showErrorImg(e);
                 }
                 super.onError(e);
             }
         });
     }
 
-    public void publishRanking(String title, List<PublishRankBean> list){
+    public void publishRanking(String title, List<PublishRankBean> list,String pic){
         Parameter parameter = new Parameter();
         parameter.add("operationID", ParamsUtil.buildOperationID());
         parameter.add("data", list);
         parameter.add("title", title);
+        parameter.add("img", pic);
         parameter.add("user_id", UserConfig.getInstance(UserConfig.selectedAccount).getCurrentUser().id + "");
         ApiService apiService = RetrofitClient.getInstance().getRetrofit().create(ApiService.class);
         Call<ResponseBody> responseCall = apiService.publicRanking(parameter.buildJsonBody());

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

@@ -4,5 +4,7 @@ import org.telegram.cricdit.base.IView;
 
 public interface PublishRankingView extends IView {
     void showSuccess(String url);
+    void updateImg(String url);
+    void showErrorImg(Throwable e);
     void showError(Throwable e);
 }

+ 108 - 4
TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingActivity.java

@@ -1,6 +1,13 @@
 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.view.pictureselect.ImageFileCompressEngine.getCompressFileEngine;
+import static org.telegram.cricdit.view.pictureselect.PictureGlideEngine.getPictureSelectorStyle;
+
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.GradientDrawable;
 import android.os.Build;
 import android.os.Vibrator;
@@ -18,6 +25,7 @@ import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.FrameLayout;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -25,6 +33,20 @@ import android.widget.Toast;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
+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.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 import org.telegram.cricdit.adapter.PublishRankingAdapter;
@@ -41,17 +63,20 @@ 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.messenger.UserConfig;
 import org.telegram.ui.ActionBar.ActionBarMenu;
 import org.telegram.ui.ActionBar.ActionBarMenuItem;
+import org.telegram.ui.ActionBar.AlertDialog;
 import org.telegram.ui.ActionBar.Theme;
 import org.telegram.ui.Components.EditTextBoldCursor;
 import org.telegram.ui.Components.LayoutHelper;
 import org.telegram.ui.Components.NumberTextView;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -65,11 +90,16 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
     private List<PublishRankBean> mPublishRankBeanList;
     private EditText et_title;
     private NumberTextView tv_title_length;
-    private TextView tv_2;
     private View view_add;
     private LinearLayout ll_title;
+    private ImageView iv_select;
     private ActionBarMenuItem actionBarMenuItem;
     private final int maxTitleLength = 50;
+    private ArrayList<LocalMedia> localMediaList;
+    private PictureSelectorStyle selectorStyle;
+    private ImageEngine imageEngine;
+    private AlertDialog dialog;
+    private String photoUrl;
     @Override
     protected int getLayoutResId() {
         return R.layout.activity_publish_ranking;
@@ -90,9 +120,10 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
         this.view = view;
         mRecyclerView = view.findViewById(R.id.publish_ranking_recyclerview);
         et_title = view.findViewById(R.id.et_title);
-        tv_2 = view.findViewById(R.id.tv_2);
         view_add = view.findViewById(R.id.view_add);
         ll_title = view.findViewById(R.id.ll_title);
+        iv_select = view.findViewById(R.id.iv_select);
+        dialog = new AlertDialog(getContext(), 3);
 
         tv_title_length = new NumberTextView(getContext());
         tv_title_length.setCenterAlign(true);
@@ -130,15 +161,21 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
         actionBarMenuItem.setIconColor(ColorUtil.COLOR_WHITE);
         actionBarMenuItem.setVisibility(View.GONE);
         actionBarMenuItem.setOnClickListener(view1 -> {
+            AndroidUtilities.hideKeyboard(et_title);
             String title = et_title.getText().toString();
+            if(TextUtils.isEmpty(photoUrl)){
+                ToastUtil.show(getContext(),LocaleController.getString(R.string.please_upload_image));
+                return;
+            }
             if(TextUtils.isEmpty(title.trim())){
                 ToastUtil.show(getContext(),et_title.getHint().toString());
                 return;
             }
             if(mPublishRankBeanList.size() > 1){
-                AndroidUtilities.hideKeyboard(et_title);
                 if (UserConfig.getInstance(UserConfig.selectedAccount).isClientActivated()) {
-                    presenter.publishRanking(title,mPublishRankBeanList);
+                    //fixme ltt 封面
+                    dialog.show();
+                    presenter.publishRanking(title,mPublishRankBeanList,photoUrl);
                 }
             }
         });
@@ -184,6 +221,35 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
             return false;
         });
 
+        localMediaList = new ArrayList<>();
+        imageEngine = PictureGlideEngine.createGlideEngine();
+        selectorStyle = getPictureSelectorStyle();
+        iv_select.setOnClickListener(view1 -> {
+            AndroidUtilities.hideKeyboard(et_title);
+            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);
+        });
+
     }
 
     @Subscribe(threadMode = ThreadMode.MAIN)
@@ -223,12 +289,14 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
 
     @Override
     public void showSuccess(String info) {
+        dialog.dismiss();
         ToastUtil.show(getContext(),info);
         finishFragment();
     }
 
     @Override
     public void showError(Throwable e) {
+        dialog.dismiss();
         if (!(e instanceof ApiException)) {
             ToastUtil.show(getContext(),LocaleController.getString(R.string.network_failed));
         } else {
@@ -236,5 +304,41 @@ public class PublishRankingActivity extends BaseActivity<PublishRankingPresenter
         }
     }
 
+    @Override
+    public void updateImg(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(), 7))))
+                .into(iv_select);
+    }
+
+    @Override
+    public void showErrorImg(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_title);
+                    break;
+            }
+        }
+    }
 
 }

+ 11 - 1
TMessagesProj/src/main/java/org/telegram/cricdit/ui/PublishRankingEditActivity.java

@@ -254,6 +254,16 @@ public class PublishRankingEditActivity extends BaseActivity<PublishRankingPrese
 
     @Override
     public void showSuccess(String url) {
+        //pass
+    }
+    @Override
+    public void showError(Throwable e) {
+        //pass
+    }
+
+
+    @Override
+    public void updateImg(String url) {
         dialog.dismiss();
         photoUrl = url;
         Glide.with(getContext())
@@ -264,7 +274,7 @@ public class PublishRankingEditActivity extends BaseActivity<PublishRankingPrese
     }
 
     @Override
-    public void showError(Throwable e) {
+    public void showErrorImg(Throwable e) {
         dialog.dismiss();
         photoUrl = "";
         iv_select.setImageResource(R.mipmap.img_select_add);

+ 14 - 2
TMessagesProj/src/main/res/layout/activity_publish_ranking.xml

@@ -5,17 +5,29 @@
     android:layout_height="match_parent"
     xmlns:tools="http://schemas.android.com/tools">
 
+
+    <ImageView
+        android:id="@+id/iv_select"
+        android:layout_width="120dp"
+        android:layout_height="120dp"
+        android:src="@mipmap/img_select_add"
+        android:scaleType="centerCrop"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="25dp"
+        android:layout_marginTop="30dp"/>
+
     <TextView
         android:id="@+id/tv_1"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="19.5dp"
+        android:layout_marginTop="13dp"
         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"/>
+        android:text="@string/leaderboard_title"
+        android:layout_below="@id/iv_select"/>
 
     <LinearLayout
         android:id="@+id/ll_title"