From f77fbe680f3c4c9d398a9ede2898a100f8e740ec Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Thu, 12 Apr 2018 14:19:12 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=9B=9E=E7=AD=94=E8=AF=84=E8=AE=BA?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=AD=94=E6=A1=88=E4=BD=9C=E8=80=85=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E4=BD=9C=E8=80=85=202=E3=80=81=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=9B=9E=E7=AD=94=E8=AF=A6=E6=83=85=E9=A1=B5=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E5=A4=A7=E5=9B=BE=E6=BB=91=E5=8A=A8=E5=90=8E=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E4=BE=9D=E6=97=A7=E4=B8=8D=E6=98=AF=E5=A4=A7=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/common/util/CommentUtils.java | 12 ++++++-- .../com/gh/gamecenter/ViewImageActivity.java | 10 +++++++ .../gamecenter/ask/AnswerDetailFragment.java | 30 +++++++++++++++++-- .../gh/gamecenter/entity/UserDataEntity.kt | 8 ++++- 4 files changed, 55 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/gh/common/util/CommentUtils.java b/app/src/main/java/com/gh/common/util/CommentUtils.java index ccc13aca6f..cbe5215240 100644 --- a/app/src/main/java/com/gh/common/util/CommentUtils.java +++ b/app/src/main/java/com/gh/common/util/CommentUtils.java @@ -450,10 +450,18 @@ public class CommentUtils { //检查是否是自身评论 UserInfoEntity userInfo = UserManager.getInstance().getUserInfoEntity(); if (userDataEntity != null && userDataEntity.isCommentOwn() && userInfo != null) { - holder.commentUserNameTv.setText(userInfo.getName()); + if (entity.getUserData() != null && entity.getUserData().isAnswerOwn()) { + holder.commentUserNameTv.setText(userInfo.getName() + "(作者)"); + } else { + holder.commentUserNameTv.setText(userInfo.getName()); + } ImageUtils.Companion.display(holder.commentUserIconDv, userInfo.getIcon()); } else { - holder.commentUserNameTv.setText(entity.getUser().getName()); + if (entity.getUserData() != null && entity.getUserData().isAnswerOwn()) { + holder.commentUserNameTv.setText(entity.getUser().getName() + "(作者)"); + } else { + holder.commentUserNameTv.setText(entity.getUser().getName()); + } if (TextUtils.isEmpty(entity.getUser().getIcon())) { ImageUtils.Companion.display(holder.commentUserIconDv, R.drawable.user_default_icon_comment); } else { diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index bf6b6529a8..fb86b53bb4 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -56,6 +56,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import butterknife.ButterKnife; @@ -68,6 +69,9 @@ import butterknife.ButterKnife; //TODO 处理这里activity到统一主题 public class ViewImageActivity extends Activity implements OnPageChangeListener { + public static final int REQUEST_FOR_VIEWED_IMAGE= 921; + public static final String VIEWED_IMAGE = "viewed_image"; + private Gh_ViewPager mViewimageVp; private View mViewimageLine; @@ -83,6 +87,7 @@ public class ViewImageActivity extends Activity implements OnPageChangeListener private ArrayList urls; private Map newUrls; + private HashSet mViewedSet; // 让调用者知道该图片是否被看过了 private String scaleType; @@ -138,6 +143,8 @@ public class ViewImageActivity extends Activity implements OnPageChangeListener int current = extras.getInt(KEY_CURRENT, 0); scaleType = extras.getString(KEY_SCALETYPE); + mViewedSet = new HashSet(); + if (savedInstanceState != null) { current = savedInstanceState.getInt(EntranceUtils.KEY_CURRENTITEM, 0); isOrientation = savedInstanceState.getBoolean("isOrientation"); @@ -195,6 +202,9 @@ public class ViewImageActivity extends Activity implements OnPageChangeListener rparams.leftMargin = (int) (width * (positionOffset + position)); mViewimageLine.setLayoutParams(rparams); } + + mViewedSet.add(position); + setResult(Activity.RESULT_OK, new Intent().putExtra(VIEWED_IMAGE, mViewedSet)); } @Override diff --git a/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java b/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java index e28f7d535e..8644553b80 100644 --- a/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/ask/AnswerDetailFragment.java @@ -54,6 +54,7 @@ import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import butterknife.BindView; import butterknife.OnClick; @@ -126,6 +127,8 @@ public class AnswerDetailFragment extends NormalFragment { private boolean mIsShowCommentManager; + private HashSet mViewedImageSet; + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -172,12 +175,35 @@ public class AnswerDetailFragment extends NormalFragment { @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Activity.RESULT_OK && requestCode == ANSWER_PATCH_REQUEST && data != null && getActivity() != null) { + if (data == null || getActivity() == null) return; + + if (resultCode == Activity.RESULT_OK && requestCode == ANSWER_PATCH_REQUEST) { if (mDetailEntity != null) { mDetailEntity.setContent(data.getStringExtra(EntranceUtils.KEY_ANSWER_CONTENT)); mBinding.setDetail(mDetailEntity); } getActivity().setResult(Activity.RESULT_OK, new Intent()); // 编辑答案问题详情页面已存在Id,只需要一个空Intent + } else if (requestCode == ViewImageActivity.REQUEST_FOR_VIEWED_IMAGE && resultCode == Activity.RESULT_OK) { + mViewedImageSet = (HashSet) data.getExtras().get(ViewImageActivity.VIEWED_IMAGE); + } + } + + @Override + public void onStart() { + super.onStart(); + // 返回时把点过的图片变为大图 + if (mViewedImageSet != null && mAnswersImgs != null && mAnswersImgs.size() > 0) { + if (mViewedImageSet.size() == mAnswersImgs.size()) { + mRichEditor.replaceAllDfImage(); + } else { + for (int i : mViewedImageSet) { + String url = mAnswersImgs.get(i); + int lastPathDivider = url.lastIndexOf("/") + 1; + url = url.substring(0, lastPathDivider) + "tb/" + url.substring(lastPathDivider, url.length()); + mRichEditor.replaceDfImageByUrl(url); + } + } + mViewedImageSet.clear(); } } @@ -520,7 +546,7 @@ public class AnswerDetailFragment extends NormalFragment { } Intent intent = ViewImageActivity.getViewImageIntent(getContext(), mAnswersImgs, current, mEntrance + "+(回答详情[" + mTitle.getText().toString() + "])"); - startActivity(intent); + startActivityForResult(intent, ViewImageActivity.REQUEST_FOR_VIEWED_IMAGE); } } diff --git a/app/src/main/java/com/gh/gamecenter/entity/UserDataEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/UserDataEntity.kt index fbb8ac31c5..881ace9d6e 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/UserDataEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/UserDataEntity.kt @@ -34,6 +34,9 @@ class UserDataEntity : Parcelable { @SerializedName("libao") var userDataLibaoList: List? = null + @SerializedName("is_answer_own") // 是否为回答的作者 + var isAnswerOwn: Boolean = false + override fun describeContents(): Int { return 0 } @@ -46,6 +49,7 @@ class UserDataEntity : Parcelable { dest.writeByte(if (this.isCommentVoted) 1.toByte() else 0.toByte()) dest.writeByte(if (this.isAnswerCommented) 1.toByte() else 0.toByte()) dest.writeTypedList(this.userDataLibaoList) + dest.writeByte(if (this.isAnswerOwn) 1.toByte() else 0.toByte()) } constructor() {} @@ -58,11 +62,13 @@ class UserDataEntity : Parcelable { this.isCommentVoted = `in`.readByte().toInt() != 0 this.isAnswerCommented = `in`.readByte().toInt() != 0 this.userDataLibaoList = `in`.createTypedArrayList(UserDataLibaoEntity.CREATOR) + this.isAnswerOwn = `in`.readByte().toInt() != 0 } companion object { - @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { + @JvmField + val CREATOR: Parcelable.Creator = object : Parcelable.Creator { override fun createFromParcel(source: Parcel): UserDataEntity { return UserDataEntity(source) }