CommentActivity.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package com.edufound.reader.activity;
  2. import android.annotation.SuppressLint;
  3. import android.app.Activity;
  4. import android.content.Context;
  5. import android.os.Bundle;
  6. import android.text.TextUtils;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.view.inputmethod.InputMethodManager;
  10. import android.widget.EditText;
  11. import android.widget.FrameLayout;
  12. import android.widget.ImageView;
  13. import android.widget.RadioButton;
  14. import android.widget.Space;
  15. import android.widget.TextView;
  16. import android.widget.Toast;
  17. import com.baidu.duer.bot.directive.payload.AmountInfo;
  18. import com.baidu.duer.botsdk.BotIntent;
  19. import com.edufound.reader.R;
  20. import com.edufound.reader.annotation.BindView;
  21. import com.edufound.reader.base.BaseMvpActivity;
  22. import com.edufound.reader.contract.CommentContract;
  23. import com.edufound.reader.presenter.CommentPresenter;
  24. import com.edufound.reader.util.Consts;
  25. import com.jakewharton.rxbinding4.view.RxView;
  26. import com.orhanobut.logger.Logger;
  27. import java.util.HashMap;
  28. import androidx.annotation.NonNull;
  29. import androidx.recyclerview.widget.RecyclerView;
  30. import io.reactivex.rxjava3.annotations.Nullable;
  31. public class CommentActivity extends BaseMvpActivity<CommentPresenter> implements CommentContract.View {
  32. Activity mActivity;
  33. @BindView(id = R.id.comment_touch_back)
  34. Space mTouchBack;
  35. @BindView(id = R.id.comment_close_quick)
  36. ImageView mCloseKuaijie;
  37. @BindView(id = R.id.comment_quick_layout)
  38. FrameLayout mQuickLayout;
  39. @BindView(id = R.id.comment_edit_text)
  40. EditText mCommentEdit;
  41. @BindView(id = R.id.comment_sendcomment)
  42. FrameLayout mSendComment;
  43. @BindView(id = R.id.comment_back)
  44. ImageView mBack;
  45. @BindView(id = R.id.comment_no_comment)
  46. FrameLayout mNoCommentLayout;
  47. @BindView(id = R.id.comment_item_layout)
  48. RecyclerView mRecyclerView;
  49. @BindView(id = R.id.comment_count)
  50. TextView mCommentCount;
  51. @BindView(id = R.id.comment_quick_layout_item1)
  52. FrameLayout mQuickItem1;
  53. @BindView(id = R.id.comment_quick_layout_item2)
  54. FrameLayout mQuickItem2;
  55. @BindView(id = R.id.comment_quick_layout_item3)
  56. FrameLayout mQuickItem3;
  57. @Override
  58. public int getLayoutId() {
  59. return R.layout.activity_comment;
  60. }
  61. @SuppressLint("AutoDispose")
  62. @Override
  63. public void initView() {
  64. mActivity = this;
  65. mPresenter = new CommentPresenter();
  66. mPresenter.attachView(this);
  67. addUiClickListener(mBack, o -> {
  68. mActivity.finish();
  69. });
  70. addUiClickListener(mCloseKuaijie, o -> {
  71. mQuickLayout.setVisibility(View.GONE);
  72. });
  73. addUiClickListener(mSendComment, o -> {
  74. if (mPresenter.getReCommentId() != null) {
  75. //发送评论回复
  76. Toast.makeText(getActivity(), "发送评论回复", Toast.LENGTH_SHORT).show();
  77. if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
  78. mPresenter.doReplyComment(mCommentEdit.getText().toString());
  79. }
  80. } else {
  81. Toast.makeText(getActivity(), "发送评论", Toast.LENGTH_SHORT).show();
  82. if (!TextUtils.isEmpty(mCommentEdit.getText().toString().trim())) {
  83. mPresenter.doPosts(mCommentEdit.getText().toString());
  84. }
  85. }
  86. });
  87. addUiClickListener(mQuickItem1, o -> {
  88. mPresenter.doPosts("很优秀,向你学习");
  89. });
  90. addUiClickListener(mQuickItem2, o -> {
  91. mPresenter.doPosts("挺好的,期待更好");
  92. });
  93. addUiClickListener(mQuickItem3, o -> {
  94. mPresenter.doPosts("还可以,继续努力");
  95. });
  96. RxView.focusChanges(mCommentEdit).subscribe(hasFocus -> {
  97. if (!hasFocus) {
  98. InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
  99. if (manager != null) {
  100. manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0);
  101. }
  102. mPresenter.clearReCommentId();
  103. }
  104. });
  105. Bundle params = getIntent().getBundleExtra("params_bundle");
  106. String exampleId = params.getString("id");
  107. if (TextUtils.isEmpty(exampleId)) {
  108. Logger.e("获取参数失败");
  109. } else {
  110. mPresenter.getAllComment(String.valueOf(exampleId), String.valueOf(1));
  111. }
  112. }
  113. @Override
  114. public void onGetDisconnect() {
  115. }
  116. @Override
  117. public void onGetMobileConnect() {
  118. }
  119. @Override
  120. public void onGetWifiConnect() {
  121. }
  122. @Override
  123. public void showLoading() {
  124. }
  125. @Override
  126. public void hideLoading() {
  127. }
  128. @Override
  129. public void onError(String errMessage) {
  130. }
  131. @Override
  132. public Activity getActivity() {
  133. return mActivity;
  134. }
  135. @Override
  136. public ViewGroup getRootView() {
  137. return findViewById(android.R.id.content);
  138. }
  139. @Override
  140. public void botHandleIntent(BotIntent intent, String customData) {
  141. }
  142. @Override
  143. public void botOnClickLink(String url, HashMap<String, String> paramMap) {
  144. }
  145. @Override
  146. public void botOnHandleScreenNavigatorEvent(int event) {
  147. }
  148. @Override
  149. public void botOnLinkAccountSucceed(String s, String s1) {
  150. }
  151. @Override
  152. public void botOnChargeStatusUpdated(String purchaseResult, AmountInfo authorizationAmount, AmountInfo capturedAmount, long creationTimestamp, String baiduOrderReferenceId, String sellerOrderId, String msg) {
  153. }
  154. @Override
  155. public void botOnBuyStatusUpdated(@NonNull String purchaseResult, @NonNull String productId, @NonNull String baiduOrderId, @NonNull String sellerOrderId, @Nullable String msg, String token) {
  156. }
  157. @Override
  158. public void getCommentAllSuccess() {
  159. mPresenter.initComment(mRecyclerView, mNoCommentLayout);
  160. }
  161. @Override
  162. public void setMaxCommentCount(int count) {
  163. mCommentCount.setText("评论 " + count);
  164. }
  165. @Override
  166. public void editRequestFocus() {
  167. mCommentEdit.requestFocus();
  168. InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
  169. imm.showSoftInput(mCommentEdit, InputMethodManager.SHOW_IMPLICIT);
  170. }
  171. @Override
  172. public void moveRecyclearView(int scroll) {
  173. mRecyclerView.smoothScrollToPosition(scroll);
  174. }
  175. @Override
  176. public void doPostsSuccess() {
  177. mCommentEdit.setText("");
  178. InputMethodManager manager = ((InputMethodManager) Consts.getmApplicAtion().getSystemService(Context.INPUT_METHOD_SERVICE));
  179. if (manager != null) {
  180. manager.hideSoftInputFromWindow(mCommentEdit.getWindowToken(), 0);
  181. }
  182. }
  183. @Override
  184. protected void onDestroy() {
  185. mPresenter.activityDestory();
  186. super.onDestroy();
  187. }
  188. }