Merge branch '2.2' of https://git.oschina.net/dreamhua/GH-ASSISTv1.45 into 2.2
Conflicts: app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java
This commit is contained in:
@ -1,7 +1,10 @@
|
||||
package com.gh.gamecenter;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.v7.widget.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@ -9,11 +12,12 @@ import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.View;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.volley.VolleyError;
|
||||
import com.android.volley.toolbox.DiskBasedCache;
|
||||
@ -21,6 +25,7 @@ import com.facebook.drawee.view.SimpleDraweeView;
|
||||
import com.gh.base.AppController;
|
||||
import com.gh.base.BaseActivity;
|
||||
import com.gh.common.constant.Config;
|
||||
import com.gh.common.util.DialogUtils;
|
||||
import com.gh.common.util.GzipUtils;
|
||||
import com.gh.common.util.PostCommentUtils;
|
||||
import com.gh.common.util.TimestampUtils;
|
||||
@ -48,7 +53,7 @@ import butterknife.OnTouch;
|
||||
* Created by khy on 2016/11/8.
|
||||
* 消息详情界面
|
||||
*/
|
||||
public class MessageDetailActivity extends BaseActivity {
|
||||
public class MessageDetailActivity extends BaseActivity implements MessageDetailAdapter.OnCommentCallBackListener{
|
||||
|
||||
@BindView(R.id.message_detail_rv) RecyclerView mMessageDetailRv;
|
||||
@BindView(R.id.message_detail_user_rl) RelativeLayout mMessageDetailUserRl;
|
||||
@ -58,6 +63,8 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
@BindView(R.id.comment_send) TextView mMessageDetailCommentSend;
|
||||
@BindView(R.id.message_detail_comment_et) EditText mMessageDetailEt;
|
||||
@BindView(R.id.message_detail_comment_hint) TextView mMessageDetailCommentHint;
|
||||
@BindView(R.id.message_detail_sv) ScrollView mMessageDetailSv;
|
||||
@BindView(R.id.message_detail_hint_line) View mMessageDetailLine;
|
||||
|
||||
private LinearLayoutManager mLayoutManager;
|
||||
|
||||
@ -65,7 +72,7 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
|
||||
private SharedPreferences sp;
|
||||
|
||||
private Toast mToast;
|
||||
private Dialog mSendingDialog;
|
||||
|
||||
private CommentDao mCommentDao;
|
||||
|
||||
@ -88,7 +95,7 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
|
||||
mCommentDao = new CommentDao(this);
|
||||
|
||||
adapter = new MessageDetailAdapter(this, mCommentDao);
|
||||
adapter = new MessageDetailAdapter(this, mCommentDao, mMessageDetailRv);
|
||||
mLayoutManager = new LinearLayoutManager(this);
|
||||
mMessageDetailRv.setLayoutManager(mLayoutManager);
|
||||
mMessageDetailRv.setAdapter(adapter);
|
||||
@ -131,6 +138,22 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
mMessageDetailUserNameTv.setText(sp.getString("user_name", "光环用户"));
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 19) {
|
||||
//解决透明沉浸栏和软键盘冲突(重置ScrollView高度)
|
||||
final View decorView=getWindow().getDecorView();
|
||||
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
Rect rect=new Rect();
|
||||
decorView.getWindowVisibleDisplayFrame(rect);
|
||||
int screenHeight = decorView.getRootView().getHeight();
|
||||
int heightDifference = screenHeight-rect.bottom;//计算软键盘占有的高度 = 屏幕高度 - 视图可见高度
|
||||
RelativeLayout.LayoutParams layoutParams= (RelativeLayout.LayoutParams) mMessageDetailSv.getLayoutParams();
|
||||
layoutParams.setMargins(0,0,0,heightDifference);//设置ScrollView的marginBottom的值为软键盘占有的高度即可
|
||||
mMessageDetailSv.requestLayout();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -163,22 +186,12 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
|
||||
@OnClick(R.id.message_detail_comment_hint)
|
||||
public void OnHintClikListener() {
|
||||
mMessageDetailCommentHint.setVisibility(View.GONE);
|
||||
mMessageDetailCommentRl.setVisibility(View.VISIBLE);
|
||||
mMessageDetailUserRl.setVisibility(View.VISIBLE);
|
||||
mMessageDetailEt.setFocusable(true);
|
||||
mMessageDetailEt.setFocusableInTouchMode(true);
|
||||
mMessageDetailEt.requestFocus();
|
||||
setSoftInput(true);
|
||||
}
|
||||
|
||||
@OnTouch(R.id.message_detail_rv)
|
||||
public boolean OnRecyclerTouchListener() {
|
||||
if (mMessageDetailCommentRl.getVisibility() == View.VISIBLE) {
|
||||
mMessageDetailCommentHint.setVisibility(View.VISIBLE);
|
||||
mMessageDetailCommentRl.setVisibility(View.GONE);
|
||||
mMessageDetailUserRl.setVisibility(View.GONE);
|
||||
mMessageDetailEt.setText("");
|
||||
setSoftInput(false);
|
||||
}
|
||||
return false;
|
||||
@ -192,8 +205,8 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
Utils.toast(MessageDetailActivity.this, "评论内容不能为空!");
|
||||
return;
|
||||
}
|
||||
mToast = Toast.makeText(MessageDetailActivity.this, "正在提交评论", Toast.LENGTH_SHORT);
|
||||
mToast.show();
|
||||
|
||||
mSendingDialog = DialogUtils.showWaitDialog(this, "正在提交");
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
try {
|
||||
@ -208,11 +221,8 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
new PostCommentUtils.PostCommentListener() {
|
||||
@Override
|
||||
public void postSucced(JSONObject response) {
|
||||
mToast.cancel();
|
||||
mSendingDialog.dismiss();
|
||||
Utils.toast(MessageDetailActivity.this, "发表成功");
|
||||
mMessageDetailCommentHint.setVisibility(View.VISIBLE);
|
||||
mMessageDetailCommentRl.setVisibility(View.GONE);
|
||||
mMessageDetailUserRl.setVisibility(View.GONE);
|
||||
mMessageDetailEt.setText("");
|
||||
setSoftInput(false);
|
||||
|
||||
@ -247,9 +257,10 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
|
||||
@Override
|
||||
public void postFailed(VolleyError error) {
|
||||
mToast.cancel();
|
||||
mSendingDialog.dismiss();
|
||||
|
||||
if (error.networkResponse == null) {
|
||||
Utils.log("评论错误返回为空======");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -263,9 +274,6 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
Utils.toast(MessageDetailActivity.this, "账号状态异常,暂时无法发表评论");
|
||||
} else if ("article blocked".equals(detail)) {
|
||||
Utils.toast(MessageDetailActivity.this, "文章异常,无法发表评论");
|
||||
mMessageDetailCommentHint.setVisibility(View.VISIBLE);
|
||||
mMessageDetailCommentRl.setVisibility(View.GONE);
|
||||
mMessageDetailUserRl.setVisibility(View.GONE);
|
||||
setSoftInput(false);
|
||||
} else if ("illegal".equals(detail)) {
|
||||
Utils.toast(MessageDetailActivity.this, "评论内容可能包括敏感信息,请修改后再发表");
|
||||
@ -314,9 +322,26 @@ public class MessageDetailActivity extends BaseActivity {
|
||||
if (isShow){
|
||||
imm.showSoftInputFromInputMethod(mMessageDetailEt.getWindowToken(), 0);
|
||||
imm.toggleSoftInputFromWindow(mMessageDetailEt.getWindowToken(), 0, InputMethodManager.HIDE_NOT_ALWAYS);
|
||||
mMessageDetailCommentHint.setVisibility(View.GONE);
|
||||
mMessageDetailLine.setVisibility(View.GONE);
|
||||
mMessageDetailCommentRl.setVisibility(View.VISIBLE);
|
||||
mMessageDetailUserRl.setVisibility(View.VISIBLE);
|
||||
mMessageDetailEt.setFocusable(true);
|
||||
mMessageDetailEt.setFocusableInTouchMode(true);
|
||||
mMessageDetailEt.requestFocus();
|
||||
|
||||
} else {
|
||||
imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
|
||||
mMessageDetailCommentHint.setVisibility(View.VISIBLE);
|
||||
mMessageDetailLine.setVisibility(View.VISIBLE);
|
||||
mMessageDetailCommentRl.setVisibility(View.GONE);
|
||||
mMessageDetailUserRl.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showSoftInput() {
|
||||
setSoftInput(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user