|
@@ -67,6 +67,7 @@ import com.zhy.view.flowlayout.TagFlowLayout;
|
|
|
|
|
|
import org.telegram.cricdit.bean.NewsMsgEvent;
|
|
|
import org.telegram.cricdit.utils.EventBusHelper;
|
|
|
+import org.telegram.cricdit.utils.FileUtils;
|
|
|
import org.telegram.cricdit.view.pictureselect.FullyGridLayoutManager;
|
|
|
import org.telegram.cricdit.adapter.PictureAdapter;
|
|
|
import org.telegram.cricdit.base.BaseActivity;
|
|
@@ -82,8 +83,10 @@ 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.BaseFragment;
|
|
|
|
|
|
import java.io.File;
|
|
|
+import java.lang.ref.WeakReference;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
@@ -119,11 +122,9 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
private int maxSelectNum = 9,maxSelectVideoNum = 1;
|
|
|
private static final int CHOOSE_REQUEST = 1000;
|
|
|
private int pageSize = 10,page = 1,offset=0;
|
|
|
- private final Handler mHandler = new Handler() {
|
|
|
- @SuppressLint("HandlerLeak")
|
|
|
+ private final Handler mHandler = new Handler(new Handler.Callback() {
|
|
|
@Override
|
|
|
- public void handleMessage(@NonNull Message msg) {
|
|
|
- super.handleMessage(msg);
|
|
|
+ public boolean handleMessage(Message msg) {
|
|
|
if(msg.what == 1){
|
|
|
//发布动态-图片
|
|
|
String str = edit.getText().toString();
|
|
@@ -132,16 +133,24 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
}else if(msg.what == 2){
|
|
|
//有图片/视频上传失败
|
|
|
dialog.dismiss();
|
|
|
- ToastUtil.show(mContext,LocaleController.getString("please_try_again", R.string.send_news_char_short_info));
|
|
|
+ ToastUtil.show(mContext,LocaleController.getString(R.string.please_try_again));
|
|
|
mImages.clear();
|
|
|
+// finishFragment();
|
|
|
}else if(msg.what == 3){
|
|
|
//发布动态-视频
|
|
|
String str = edit.getText().toString();
|
|
|
presenter.publicNews(str, mImages, selectTags.toArray(new String[selectTags.size()]),true);
|
|
|
mImages.clear();
|
|
|
+ }else if(msg.what == 4){
|
|
|
+ //超过大小
|
|
|
+ if(localMediaList.size() == 0){
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ ToastUtil.show(mContext,LocaleController.getString(R.string.post_resource_size_tip));
|
|
|
}
|
|
|
+ return false;
|
|
|
}
|
|
|
- };
|
|
|
+ });
|
|
|
|
|
|
@Override
|
|
|
protected void initView(View v) {
|
|
@@ -300,7 +309,7 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
selectionModel.forResult(CHOOSE_REQUEST);
|
|
|
}
|
|
|
});
|
|
|
- //话题
|
|
|
+
|
|
|
tvChooseTag.setOnClickListener((view -> {
|
|
|
if(offset<=0){
|
|
|
presenter.getTagList(pageSize,page);
|
|
@@ -311,14 +320,10 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
|
|
|
edit.addTextChangedListener(new TextWatcher() {
|
|
|
@Override
|
|
|
- public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
|
-
|
|
|
- }
|
|
|
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
|
|
|
|
|
|
@Override
|
|
|
- public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
|
|
-
|
|
|
- }
|
|
|
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {}
|
|
|
|
|
|
@Override
|
|
|
public void afterTextChanged(Editable editable) {
|
|
@@ -381,65 +386,40 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
rvTags.setAdapter(tagsArrayAdapter);
|
|
|
tagPopupView.setBackgroundColor(ColorUtil.COLOR_WHITE);
|
|
|
smartRefreshLayout.setEnableRefresh(false);
|
|
|
- smartRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
|
|
|
- @Override
|
|
|
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
|
|
- smartRefreshLayout.finishLoadMore();
|
|
|
- if (tagsArrayAdapter.getCount() == page * pageSize) {
|
|
|
- page++;
|
|
|
- presenter.getTagList(pageSize, page);
|
|
|
- offset = page * pageSize;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- mTagPopupWindow = new PopupWindow(tagPopupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
|
|
|
- mTagPopupWindow.setAnimationStyle(R.style.PopupAnimation);
|
|
|
- mTagPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
- @Override
|
|
|
- public void onDismiss() {
|
|
|
- backgroundAlpha(1.0f);
|
|
|
+ smartRefreshLayout.setOnLoadMoreListener(refreshLayout -> {
|
|
|
+ smartRefreshLayout.finishLoadMore();
|
|
|
+ if (tagsArrayAdapter.getCount() == page * pageSize) {
|
|
|
+ page++;
|
|
|
+ presenter.getTagList(pageSize, page);
|
|
|
+ offset = page * pageSize;
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- rvTags.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
- @Override
|
|
|
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
|
|
|
- String str = showTags.get(i);
|
|
|
- if(selectTags.size()>4){
|
|
|
- ToastUtil.show(mContext,String.format(LocaleController.getString("news_post_tags_maximum", R.string.news_post_tags_maximum),"5"));
|
|
|
- }else if(!selectTags.contains(showTags.get(i))){
|
|
|
- selectTags.add(0, str);
|
|
|
- selTagAdapter.notifyDataChanged();
|
|
|
- }
|
|
|
- mTagPopupWindow.dismiss();
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- mTagPopupWindow.setTouchable(true);
|
|
|
- mTagPopupWindow.setFocusable(true);
|
|
|
- mTagPopupWindow.setOutsideTouchable(false);
|
|
|
if(mTagPopupWindow == null){
|
|
|
mTagPopupWindow = new PopupWindow(tagPopupView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
|
|
|
+ mTagPopupWindow.setAnimationStyle(R.style.PopupAnimation);
|
|
|
+ mTagPopupWindow.setOnDismissListener(() -> backgroundAlpha(1.0f));
|
|
|
+ mTagPopupWindow.setTouchable(true);
|
|
|
+ mTagPopupWindow.setFocusable(true);
|
|
|
+ mTagPopupWindow.setOutsideTouchable(false);
|
|
|
}
|
|
|
-
|
|
|
- mTagPopupWindow.setAnimationStyle(R.style.PopupAnimation);
|
|
|
- mTagPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
- @Override
|
|
|
- public void onDismiss() {
|
|
|
- backgroundAlpha(1.0f);
|
|
|
+ rvTags.setOnItemClickListener((adapterView, view, i, l) -> {
|
|
|
+ String str = showTags.get(i);
|
|
|
+ if(selectTags.size()>4){
|
|
|
+ ToastUtil.show(mContext,String.format(LocaleController.getString(R.string.news_post_tags_maximum),"5"));
|
|
|
+ }else if(!selectTags.contains(showTags.get(i))){
|
|
|
+ selectTags.add(0, str);
|
|
|
+ selTagAdapter.notifyDataChanged();
|
|
|
}
|
|
|
+ mTagPopupWindow.dismiss();
|
|
|
});
|
|
|
- mTagPopupWindow.setTouchable(true);
|
|
|
- mTagPopupWindow.setFocusable(true);
|
|
|
- mTagPopupWindow.setOutsideTouchable(false);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void showResult(int result) {
|
|
|
EventBusHelper.post(new NewsMsgEvent("feed"));
|
|
|
dialog.dismiss();
|
|
|
- ToastUtil.show(mContext,(result == 0)?LocaleController.getString("submit_success", R.string.submit_success):LocaleController.getString("submit_success", R.string.submit_error));
|
|
|
+ ToastUtil.show(mContext,(result == 0)?LocaleController.getString(R.string.submit_success):LocaleController.getString(R.string.submit_error));
|
|
|
finishFragment();
|
|
|
}
|
|
|
|
|
@@ -476,91 +456,70 @@ public class SendAnFeedActivity extends BaseActivity<SendAnFeedPresenter> implem
|
|
|
hideKeyboard(edit);
|
|
|
String string = edit.getText().toString();
|
|
|
if (TextUtils.isEmpty(string) || string.length() < 20) {
|
|
|
- ToastUtil.show(mContext, LocaleController.getString("send_news_char_short_info", R.string.send_news_char_short_info));
|
|
|
+ ToastUtil.show(mContext, LocaleController.getString(R.string.send_news_char_short_info));
|
|
|
return;
|
|
|
}
|
|
|
if(isFastClick()){
|
|
|
dialog.show();
|
|
|
-// ThreadPoolUtil.execute(() ->{
|
|
|
- /*localMediaList = pictureAdapter.getData();
|
|
|
+ localMediaList = pictureAdapter.getData();
|
|
|
if(localMediaList.size() > 0){
|
|
|
- String fileVideoPath = localMediaList.get(0).getRealPath();
|
|
|
+ String fileVideoPath = localMediaList.get(0).getRealPath();
|
|
|
if(PictureMimeType.isHasVideo(localMediaList.get(0).getMimeType()) && (!TextUtils.isEmpty(fileVideoPath))){
|
|
|
- //fixme ltt 上传文件接口
|
|
|
- OpenIMClient.getInstance().uploadFile(new OnFileUploadProgressListener() {
|
|
|
- @Override
|
|
|
- public void onError(int code, String error) {
|
|
|
- Message message = new Message();
|
|
|
- message.what = 2;
|
|
|
- mHandler.sendMessage(message);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onProgress(long progress) {}
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSuccess(String s) {
|
|
|
- if(!TextUtils.isEmpty(s)){
|
|
|
- mImages.add(s);
|
|
|
- }
|
|
|
- if(mImages.size() == localMediaList.size()){
|
|
|
- Message message = new Message();
|
|
|
- message.what = 3;
|
|
|
- mHandler.sendMessage(message);
|
|
|
- }
|
|
|
+ if(FileUtils.getAutoFileOrFilesSize(fileVideoPath,FILE_SPECIFY_SIZE)){
|
|
|
+ localMediaList.remove(0);
|
|
|
+ Message message = new Message();
|
|
|
+ message.what = 4;
|
|
|
+ mHandler.sendMessage(message);
|
|
|
+ }else{
|
|
|
+ if (!TextUtils.isEmpty(fileVideoPath)) {
|
|
|
+ presenter.uploadFile(new File(fileVideoPath),true);
|
|
|
}
|
|
|
- }, fileVideoPath);
|
|
|
+ }
|
|
|
}else{
|
|
|
- //上传图片
|
|
|
for (LocalMedia media :localMediaList) {
|
|
|
String filePath = media.getRealPath();
|
|
|
- if(FileUtils.getAutoFileOrFilesSize(media.getRealPath(),2097152)){
|
|
|
- localMediaList.remove(media);
|
|
|
- Message message = new Message();
|
|
|
- message.what = 3;
|
|
|
- mHandler.sendMessage(message);
|
|
|
- continue;
|
|
|
- }
|
|
|
+ if(FileUtils.getAutoFileOrFilesSize(filePath,FILE_SPECIFY_SIZE)){
|
|
|
+ localMediaList.remove(media);
|
|
|
+ Message message = new Message();
|
|
|
+ message.what = 4;
|
|
|
+ mHandler.sendMessage(message);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
|
|
|
if (!TextUtils.isEmpty(filePath)) {
|
|
|
- //上传图片接口
|
|
|
- OpenIMClient.getInstance().uploadFile(new OnFileUploadProgressListener() {
|
|
|
- @Override
|
|
|
- public void onError(int code, String error) {
|
|
|
- Message message = new Message();
|
|
|
- message.what = 2;
|
|
|
- mHandler.sendMessage(message);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onProgress(long progress) {}
|
|
|
-
|
|
|
- @Override
|
|
|
- public void onSuccess(String s) {
|
|
|
- if(!TextUtils.isEmpty(s)){
|
|
|
- mImages.add(s);
|
|
|
- }
|
|
|
- if(mImages.size() == localMediaList.size()){
|
|
|
- Message message = new Message();
|
|
|
- message.what = 1;
|
|
|
- mHandler.sendMessage(message);
|
|
|
- }
|
|
|
- }
|
|
|
- }, filePath);
|
|
|
+ presenter.uploadFile(new File(filePath),false);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- }else{*/
|
|
|
- //纯文字
|
|
|
+ }else{
|
|
|
Message message = new Message();
|
|
|
message.what = 1;
|
|
|
mHandler.sendMessage(message);
|
|
|
-// }
|
|
|
+ }
|
|
|
};
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public void getImgUrl(String url) {
|
|
|
+ if(!TextUtils.isEmpty(url)){
|
|
|
+ mImages.add(url);
|
|
|
+ }
|
|
|
+ if(mImages.size() == localMediaList.size()){
|
|
|
+ Message message = new Message();
|
|
|
+ message.what = 1;
|
|
|
+ mHandler.sendMessage(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void showErrorImg(Throwable e) {
|
|
|
+ Message message = new Message();
|
|
|
+ message.what = 2;
|
|
|
+ mHandler.sendMessage(message);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
protected int getLayoutResId() {
|
|
|
return R.layout.activity_send_an_feed;
|
|
|
}
|