package com.edufound.reader.activity; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.Space; import android.widget.TextView; import android.widget.Toast; import com.baidu.duer.bot.directive.payload.AmountInfo; import com.baidu.duer.botsdk.BotIntent; import com.edufound.reader.R; import com.edufound.reader.annotation.BindView; import com.edufound.reader.base.BaseMvpActivity; import com.edufound.reader.contract.CommentContract; import com.edufound.reader.presenter.CommentPresenter; import com.edufound.reader.util.Consts; import com.jakewharton.rxbinding4.view.RxView; import com.orhanobut.logger.Logger; import java.util.HashMap; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import io.reactivex.rxjava3.annotations.Nullable; public class CommentActivity extends BaseMvpActivity implements CommentContract.View { Activity mActivity; @BindView(id = R.id.comment_touch_back) Space mTouchBack; @BindView(id = R.id.comment_close_quick) ImageView mCloseKuaijie; @BindView(id = R.id.comment_quick_layout) FrameLayout mQuickLayout; @BindView(id = R.id.comment_edit_text) EditText mCommentEdit; @BindView(id = R.id.comment_sendcomment) FrameLayout mSendComment; @BindView(id = R.id.comment_back) ImageView mBack; @BindView(id = R.id.comment_no_comment) FrameLayout mNoCommentLayout; @BindView(id = R.id.comment_item_layout) RecyclerView mRecyclerView; @BindView(id = R.id.comment_count) TextView mCommentCount; @BindView(id = R.id.comment_quick_layout_item1) FrameLayout mQuickItem1; @BindView(id = R.id.comment_quick_layout_item2) FrameLayout mQuickItem2; @BindView(id = R.id.comment_quick_layout_item3) FrameLayout mQuickItem3; @Override public int getLayoutId() { return R.layout.activity_comment; } @SuppressLint("AutoDispose") @Override public void initView() { mActivity = this; mPresenter = new CommentPresenter(); mPresenter.attachView(this); addUiClickListener(mBack, o -> { mActivity.finish(); }); addUiClickListener(mCloseKuaijie, o -> { mQuickLayout.setVisibility(View.GONE); }); addUiClickListener(mSendComment, o -> { if (mPresenter.getReCommentId() != null) { //发送评论回复 Toast.makeText(getActivity(), "发送评论回复", Toast.LENGTH_SHORT).show(); if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) { mPresenter.doReplyComment(mCommentEdit.getText().toString()); } } else { Toast.makeText(getActivity(), "发送评论", Toast.LENGTH_SHORT).show(); if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) { mPresenter.doPosts(mCommentEdit.getText().toString()); } } }); addUiClickListener(mQuickItem1, o -> { mPresenter.doPosts("很优秀,向你学习"); }); addUiClickListener(mQuickItem2, o -> { mPresenter.doPosts("挺好的,期待更好"); }); addUiClickListener(mQuickItem3, o -> { mPresenter.doPosts("还可以,继续努力"); }); RxView.focusChanges(mCommentEdit).subscribe(hasFocus -> { if (!hasFocus) { InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE)); if (manager != null) { manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0); } mPresenter.clearReCommentId(); } }); Bundle params = getIntent().getBundleExtra("params_bundle"); String exampleId = params.getString("id"); if (TextUtils.isEmpty(exampleId)) { Logger.e("获取参数失败"); } else { mPresenter.getAllComment(String.valueOf(exampleId), String.valueOf(1)); } } @Override public void onGetDisconnect() { } @Override public void onGetMobileConnect() { } @Override public void onGetWifiConnect() { } @Override public void showLoading() { } @Override public void hideLoading() { } @Override public void onError(String errMessage) { } @Override public Activity getActivity() { return mActivity; } @Override public ViewGroup getRootView() { return findViewById(android.R.id.content); } @Override public void botHandleIntent(BotIntent intent, String customData) { } @Override public void botOnClickLink(String url, HashMap paramMap) { } @Override public void botOnHandleScreenNavigatorEvent(int event) { } @Override public void botOnLinkAccountSucceed(String s, String s1) { } @Override public void botOnChargeStatusUpdated(String purchaseResult, AmountInfo authorizationAmount, AmountInfo capturedAmount, long creationTimestamp, String baiduOrderReferenceId, String sellerOrderId, String msg) { } @Override public void botOnBuyStatusUpdated(@NonNull String purchaseResult, @NonNull String productId, @NonNull String baiduOrderId, @NonNull String sellerOrderId, @Nullable String msg, String token) { } @Override public void getCommentAllSuccess() { mPresenter.initComment(mRecyclerView, mNoCommentLayout); } @Override public void setMaxCommentCount(int count) { mCommentCount.setText("评论 " + count); } @Override public void editRequestFocus() { mCommentEdit.requestFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(mCommentEdit, InputMethodManager.SHOW_IMPLICIT); } @Override public void moveRecyclearView(int scroll) { mRecyclerView.smoothScrollToPosition(scroll); } @Override public void doPostsSuccess() { mCommentEdit.setText(""); InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE)); if (manager != null) { manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0); } } @Override protected void onDestroy() { mPresenter.activityDestory(); super.onDestroy(); } }