From 0feffda7f3aa763a10da4bbd0866b8fdf112927e Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Fri, 7 Dec 2018 16:06:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=20V3.6=20=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20https://gitlab.ghzhushou.com/pm/halo-app-i?= =?UTF-8?q?ssues/issues/402?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gh/base/GHUmengNotificationService.kt | 2 + .../java/com/gh/common/notifier/Notifier.kt | 2 +- .../com/gh/common/notifier/NotifierView.kt | 18 +- .../java/com/gh/common/util/NetworkUtils.java | 6 + .../com/gh/gamecenter/NewsDetailActivity.java | 13 +- .../adapter/MessageDetailAdapter.java | 168 ++++++++--------- .../gh/gamecenter/kaifu/KaiFuFragment.java | 11 +- .../gh/gamecenter/kaifu/KaiFuVpAdapter.java | 18 +- .../gh/gamecenter/kaifu/KaiFuVpFragment.java | 18 +- .../kaifu/KaiFuWrapperFragment.java | 15 +- .../message/MessageDetailFragment.java | 171 +++++++++--------- .../newsdetail/NewsDetailAdapter.java | 1 + .../qa/answer/edit/AnswerEditFragment.java | 2 +- .../qa/article/edit/ArticleEditActivity.kt | 11 +- .../edit/pic/QuestionsEditPicAdapter.kt | 2 +- .../fragment/user/UserInfoEditFragment.java | 12 ++ .../res/layout/fragment_userinfo_edit.xml | 2 - app/src/main/res/layout/kaifu_item_time.xml | 2 +- 18 files changed, 240 insertions(+), 234 deletions(-) diff --git a/app/src/main/java/com/gh/base/GHUmengNotificationService.kt b/app/src/main/java/com/gh/base/GHUmengNotificationService.kt index f32f27c923..2e8ca0a38b 100644 --- a/app/src/main/java/com/gh/base/GHUmengNotificationService.kt +++ b/app/src/main/java/com/gh/base/GHUmengNotificationService.kt @@ -156,6 +156,8 @@ class GHUmengNotificationService : UmengMessageService() { bundle.putString(EntranceUtils.KEY_TO, AnswerDetailActivity::class.java.name) EntranceUtils.jumpActivity(context, bundle) + // TODO 发送消息已读给后端,然后调用 MessageUnreadRepository.loadMessageUnreadData() 刷新红点(需要延时处理吗?) + DataUtils.onMtaEvent(context, "消息弹窗", type, "Does not contains any parameter.") diff --git a/app/src/main/java/com/gh/common/notifier/Notifier.kt b/app/src/main/java/com/gh/common/notifier/Notifier.kt index 9b7499465a..52eb84650a 100644 --- a/app/src/main/java/com/gh/common/notifier/Notifier.kt +++ b/app/src/main/java/com/gh/common/notifier/Notifier.kt @@ -32,7 +32,7 @@ class Notifier private constructor() { @JvmStatic fun tagNotifierAsShowed(content: String) { val viewedNotifierCollection = SPUtils.getString(SP_VIEWED_NOTIFIER) - if (viewedNotifierCollection.length > 1000) { + if (viewedNotifierCollection.length > 3000) { SPUtils.setString(SP_VIEWED_NOTIFIER, content) } else { SPUtils.setString(SP_VIEWED_NOTIFIER, viewedNotifierCollection + content) diff --git a/app/src/main/java/com/gh/common/notifier/NotifierView.kt b/app/src/main/java/com/gh/common/notifier/NotifierView.kt index b8d1b5a423..531cce6532 100644 --- a/app/src/main/java/com/gh/common/notifier/NotifierView.kt +++ b/app/src/main/java/com/gh/common/notifier/NotifierView.kt @@ -201,12 +201,16 @@ class NotifierView @JvmOverloads constructor(context: Context, attrs: AttributeS showAnimatorSet.cancel() hideAnimatorSet.cancel() - removeAllListeners(expandAnimator, - shrinkAnimator, - translateUpAnimator, - translateDownAnimator, - translateToLeftAnimator, - translateToRightAnimator) + try { + removeAllListeners(expandAnimator, + shrinkAnimator, + translateUpAnimator, + translateDownAnimator, + translateToLeftAnimator, + translateToRightAnimator) + } catch (e: Exception) { + e.printStackTrace() + } } private fun removeAllListeners(vararg ts: Animator) { @@ -227,7 +231,7 @@ class NotifierView @JvmOverloads constructor(context: Context, attrs: AttributeS postDelayed({ shrink() }, duration) } - fun shrink() { + private fun shrink() { shrinkAnimator.doOnEnd { hide() } shrinkAnimator.start() } diff --git a/app/src/main/java/com/gh/common/util/NetworkUtils.java b/app/src/main/java/com/gh/common/util/NetworkUtils.java index bd5755a90c..358b5fd1fd 100644 --- a/app/src/main/java/com/gh/common/util/NetworkUtils.java +++ b/app/src/main/java/com/gh/common/util/NetworkUtils.java @@ -52,6 +52,12 @@ public class NetworkUtils { return false; } + public static boolean isWifiOr4GOr3GConnected(Context context) { + String network = DeviceUtils.getNetwork(context); + return "WIFI".equals(network) || "4G".equals(network) || "3G".equals(network); + } + + /** * 判断MOBILE网络是否可用 * diff --git a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java index b23a96e2a3..8f5dfe58bc 100644 --- a/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java +++ b/app/src/main/java/com/gh/gamecenter/NewsDetailActivity.java @@ -270,14 +270,11 @@ public class NewsDetailActivity extends BaseActivity implements OnClickListener, View view = getWindow().findViewById(Window.ID_ANDROID_CONTENT); if (view != null) { - view.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); - mHits[mHits.length - 1] = SystemClock.uptimeMillis(); - if (mHits[0] >= (SystemClock.uptimeMillis() - 1000)) { - mDetailRv.scrollToPosition(0); - } + view.setOnClickListener(v -> { + System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); + mHits[mHits.length - 1] = SystemClock.uptimeMillis(); + if (mHits[0] >= (SystemClock.uptimeMillis() - 1000)) { + mDetailRv.scrollToPosition(0); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java index 826e905181..386b59b76c 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/MessageDetailAdapter.java @@ -12,6 +12,7 @@ import android.view.ViewGroup; import android.widget.LinearLayout; import com.gh.common.constant.Config; +import com.gh.common.util.CheckLoginUtils; import com.gh.common.util.CommentUtils; import com.gh.common.util.ConcernContentUtils; import com.gh.common.util.DataCollectionUtils; @@ -277,65 +278,53 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.title.setText(mConcernEntity.getGameName()); NewsUtils.setNewsPublishOn(viewHolder.time, mConcernEntity.getTime()); - viewHolder.share.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (mConcernEntity.getImg() != null && mConcernEntity.getImg().size() > 0) { - ShareCardPicActivity.startShareCardPicActivity(mContext, mConcernEntity, mEntrance); + viewHolder.share.setOnClickListener(v -> { + if (mConcernEntity.getImg() != null && mConcernEntity.getImg().size() > 0) { + ShareCardPicActivity.startShareCardPicActivity(mContext, mConcernEntity, mEntrance); + } else { + String shareContent; + if (mConcernEntity.getBrief() != null) { + shareContent = mConcernEntity.getBrief(); } else { - String shareContent; - if (mConcernEntity.getBrief() != null) { - shareContent = mConcernEntity.getBrief(); - } else { - shareContent = mConcernEntity.getContent(); + shareContent = mConcernEntity.getContent(); + } + mContext.startActivity(ShareCardActivity.getIntent(mContext, mConcernEntity, shareContent)); + } + }); + + viewHolder.itemView.setOnClickListener(v -> { + DataCollectionUtils.uploadClick(mContext, "详情", "消息详情", mConcernEntity.getTitle()); + + // 统计阅读量 + statNewsViews(mConcernEntity.getId()); + + if (mConcernEntity.getLink() != null) { + mContext.startActivity(WebActivity.getIntentByNews(mContext, mConcernEntity + , StringUtils.buildString(mEntrance, "+(消息详情)"))); + } else { + Intent intent = new Intent(mContext, NewsDetailActivity.class); + intent.putExtra(EntranceUtils.KEY_NEWSID, mConcernEntity.getId()); + intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情)")); + mContext.startActivity(intent); + } + }); + + viewHolder.comment.setOnClickListener(v -> { + if (mOnCommentCallBackListener != null) { + mOnCommentCallBackListener.onCommentCallback(null); + } + }); + + viewHolder.itemView.post(() -> { + if (isRefreshPosition) { + Timer timer = new Timer(); // 延迟半秒,防止出现闪屏现象 + timer.schedule(new TimerTask() { + @Override + public void run() { + mRecyclerView.smoothScrollBy(0, viewHolder.itemView.getHeight()); //定位到评论顶部 } - mContext.startActivity(ShareCardActivity.getIntent(mContext, mConcernEntity, shareContent)); - } - } - }); - - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DataCollectionUtils.uploadClick(mContext, "详情", "消息详情", mConcernEntity.getTitle()); - - // 统计阅读量 - statNewsViews(mConcernEntity.getId()); - - if (mConcernEntity.getLink() != null) { - mContext.startActivity(WebActivity.getIntentByNews(mContext, mConcernEntity - , StringUtils.buildString(mEntrance, "+(消息详情)"))); - } else { - Intent intent = new Intent(mContext, NewsDetailActivity.class); - intent.putExtra(EntranceUtils.KEY_NEWSID, mConcernEntity.getId()); - intent.putExtra(EntranceUtils.KEY_ENTRANCE, StringUtils.buildString(mEntrance, "+(消息详情)")); - mContext.startActivity(intent); - } - } - }); - - viewHolder.comment.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (mOnCommentCallBackListener != null) { - mOnCommentCallBackListener.onCommentCallback(null); - } - } - }); - - viewHolder.itemView.post(new Runnable() { - @Override - public void run() { - if (isRefreshPosition) { - Timer timer = new Timer(); // 延迟半秒,防止出现闪屏现象 - timer.schedule(new TimerTask() { - @Override - public void run() { - mRecyclerView.smoothScrollBy(0, viewHolder.itemView.getHeight()); //定位到评论顶部 - } - }, 300); - isRefreshPosition = false; - } + }, 300); + isRefreshPosition = false; } }); } @@ -386,38 +375,28 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { final CommentEntity finalCommentEntity = commentEntity; final boolean finalIsHotComment = isHotComment; final int finalCommentPosition = commentPosition; - holder.commentLikeIv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - CommentUtils.postVote(mContext, finalCommentEntity, holder.commentLikeCountTv, - holder.commentLikeIv, new CommentUtils.OnVoteListener() { - @Override - public void onVote() { - int index = (finalCommentPosition / 10) * 10; + holder.commentLikeIv.setOnClickListener(v -> + CheckLoginUtils.checkLogin(mContext, + () -> CommentUtils.postVote(mContext, finalCommentEntity, holder.commentLikeCountTv, + holder.commentLikeIv, () -> { + int index1 = (finalCommentPosition / 10) * 10; - //获取需要修改缓存的链接 - String cacheUrl; - if (finalIsHotComment) { - cacheUrl = StringUtils.buildString(Config.COMMENT_HOST, "article/", mConcernEntity.getId(), - "/comment?order=hot&limit=10", "&offset=0"); // 热门评论固定链接 - } else { - cacheUrl = StringUtils.buildString(Config.COMMENT_HOST, "article/", mConcernEntity.getId(), - "/comment?limit=10&offset=", String.valueOf(index)); - } + //获取需要修改缓存的链接 + String cacheUrl; + if (finalIsHotComment) { + cacheUrl = StringUtils.buildString(Config.COMMENT_HOST, "article/", mConcernEntity.getId(), + "/comment?order=hot&limit=10", "&offset=0"); // 热门评论固定链接 + } else { + cacheUrl = StringUtils.buildString(Config.COMMENT_HOST, "article/", mConcernEntity.getId(), + "/comment?limit=10&offset=", String.valueOf(index1)); + } - modifyVolleyCache(finalCommentEntity.getId(), cacheUrl); //修改缓存 - } - }); + modifyVolleyCache(finalCommentEntity.getId(), cacheUrl); //修改缓存 + }) + )); - } - }); - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - CommentUtils.showReportDialog(finalCommentEntity, mContext, true, mOnCommentCallBackListener, null); - } - }); + holder.itemView.setOnClickListener(v -> + CommentUtils.showReportDialog(finalCommentEntity, mContext, true, mOnCommentCallBackListener, null)); holder.commentUserNameTv.setOnClickListener(v -> PersonalHomeActivity.startTargetActivity(mContext, finalCommentEntity.getUser().getId(), mEntrance, "文章-评论详情")); holder.commentUserIconDv.setOnClickListener(v -> PersonalHomeActivity.startTargetActivity(mContext, finalCommentEntity.getUser().getId(), mEntrance, "文章-评论详情")); @@ -472,16 +451,13 @@ public class MessageDetailAdapter extends BaseRecyclerAdapter { viewHolder.loading.setVisibility(View.GONE); } - viewHolder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (isNetworkError) { - isNetworkError = false; - viewHolder.loading.setVisibility(View.VISIBLE); - viewHolder.hint.setText(R.string.loading); - addHotComment(); - notifyDataSetChanged(); - } + viewHolder.itemView.setOnClickListener(v -> { + if (isNetworkError) { + isNetworkError = false; + viewHolder.loading.setVisibility(View.VISIBLE); + viewHolder.hint.setText(R.string.loading); + addHotComment(); + notifyDataSetChanged(); } }); } diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuFragment.java b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuFragment.java index a2a9cd4de1..0073b15a39 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuFragment.java +++ b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuFragment.java @@ -134,13 +134,10 @@ public class KaiFuFragment extends BaseFragment { } private void setPageScrollState(final int state) { - HaloApp.getInstance().getMainExecutor().execute(new Runnable() { - @Override - public void run() { - for (Fragment fragment : mFragments) { - if (fragment.getUserVisibleHint() && fragment instanceof KaiFuVpFragment) { - ((KaiFuVpFragment) fragment).vpScrollState(state); - } + HaloApp.getInstance().getMainExecutor().execute(() -> { + for (Fragment fragment : mFragments) { + if (fragment.getUserVisibleHint() && fragment instanceof KaiFuVpFragment) { + ((KaiFuVpFragment) fragment).vpScrollState(state); } } }); diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java index 0d63006a7b..1a07604792 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpAdapter.java @@ -64,12 +64,18 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter { private boolean mIsRemove; private boolean mIsNetworkError; private boolean mIsLoaded; + private FooterCallback mFooterCallback; private static final int VIEW_TYPE_TOP = 0; private static final int VIEW_TYPE_ITEM = 1; private static final int VIEW_TYPE_FOOTER = 2; - public KaiFuVpAdapter(Context context, OnRequestCallBackListener onCallBackListener, String gameId, String day, String entrance) { + public KaiFuVpAdapter(Context context, + OnRequestCallBackListener onCallBackListener, + String gameId, + String day, + String entrance, + FooterCallback footerCallback) { super(context); this.entrance = entrance; @@ -79,6 +85,7 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter { mLocationMap = new ArrayMap<>(); mEntityList = new ArrayList<>(); mPage = 1; + mFooterCallback = footerCallback; } public void addList() { @@ -389,16 +396,17 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter { dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(container); dialog.show(); - } private void initFooterViewHolder(FooterViewHolder viewHolder) { - viewHolder.initFooterViewHolder(!mIsLoaded, mIsNetworkError, mIsRemove, R.string.ask_loadover_hint); + viewHolder.initFooterViewHolder(!mIsLoaded, mIsNetworkError, mIsRemove, R.string.ask_recommend_loadover_hint); viewHolder.itemView.setOnClickListener(v -> { if (mIsNetworkError) { mIsNetworkError = false; notifyItemChanged(getItemCount() - 1); addList(); + } else { + mFooterCallback.onClick(); } }); } @@ -418,4 +426,8 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter { public ArrayMap> getLocationMap() { return mLocationMap; } + + interface FooterCallback { + void onClick(); + } } diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpFragment.java b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpFragment.java index 21adb99232..599bcb855e 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpFragment.java +++ b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuVpFragment.java @@ -113,7 +113,7 @@ public class KaiFuVpFragment extends BaseFragment { ((DefaultItemAnimator) mRecyclerView.getItemAnimator()).setSupportsChangeAnimations(false); mLayoutManager = new LinearLayoutManager(getContext()); mRecyclerView.setLayoutManager(mLayoutManager); - mAdapter = new KaiFuVpAdapter(getContext(), this, mGameId, mDay, mEntrance); + mAdapter = new KaiFuVpAdapter(getContext(), this, mGameId, mDay, mEntrance, this::scrollToTop); mRecyclerView.setAdapter(mAdapter); mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @@ -251,7 +251,7 @@ public class KaiFuVpFragment extends BaseFragment { mLoading.setVisibility(View.VISIBLE); mNoConn.setVisibility(View.GONE); mNoneData.setVisibility(View.GONE); - mAdapter = new KaiFuVpAdapter(getContext(), this, mGameId, mDay, mEntrance); + mAdapter = new KaiFuVpAdapter(getContext(), this, mGameId, mDay, mEntrance, this::scrollToTop); mRecyclerView.setAdapter(mAdapter); } @@ -329,15 +329,17 @@ public class KaiFuVpFragment extends BaseFragment { // mLayoutManager.scrollToPosition(position); } } else if (KaiFuWrapperFragment.SKIP_LIST_TOP.equals(type)) { - mLayoutManager.scrollToPosition(0); - mBaseHandler.postDelayed(() -> { - mLlparams.topMargin = 0; - mKaiFuTimeLl.setLayoutParams(mLlparams); - }, 10); - + scrollToTop(); } } + } + private void scrollToTop() { + mLayoutManager.scrollToPosition(0); + mBaseHandler.postDelayed(() -> { + mLlparams.topMargin = 0; + mKaiFuTimeLl.setLayoutParams(mLlparams); + }, 10); } public int getNextTimePosition() { diff --git a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuWrapperFragment.java index f4b6568662..638dc545b6 100644 --- a/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/kaifu/KaiFuWrapperFragment.java @@ -153,14 +153,8 @@ public class KaiFuWrapperFragment extends NormalFragment { } private void changeHintStyle(String status) { - if (status.equals(SHOW_LIST_TOP)) { - if (mSkipNextTime != null) { - mSkipNextTime.setImageResource(R.drawable.kaifu_hint_icon_up); - } - } else { - if (mSkipNextTime != null) { - mSkipNextTime.setImageResource(R.drawable.kaifu_hint_icon_down); - } + if (mSkipNextTime != null) { + mSkipNextTime.setImageResource(R.drawable.kaifu_hint_icon_down); } if (mSkipNextTime != null) mSkipNextTime.setTag(status); @@ -177,9 +171,8 @@ public class KaiFuWrapperFragment extends NormalFragment { @OnClick({R.id.kaifu_skip_next_time, R.id.kaifu_skip_cur_time}) public void onViewClick(View view) { if (view.getId() == R.id.kaifu_skip_next_time) { - EventBus.getDefault().post(new EBTypeChange(mSkipNextTime.getTag().toString().equals(SHOW_LIST_TOP) - ? SKIP_LIST_TOP : SKIP_NEXT_TIME, mGameKaiFuFragment != null - && mGameKaiFuFragment.isVisible() ? CUR_GAME_KAIFU : CUR_ALL_KAIFU)); + EventBus.getDefault().post(new EBTypeChange(SKIP_NEXT_TIME, + mGameKaiFuFragment != null && mGameKaiFuFragment.isVisible() ? CUR_GAME_KAIFU : CUR_ALL_KAIFU)); } else { EventBus.getDefault().post(new EBTypeChange(SKIP_CUR_TIME, mGameKaiFuFragment != null && mGameKaiFuFragment.isVisible() ? CUR_GAME_KAIFU : CUR_ALL_KAIFU)); diff --git a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java index 785c6375a7..2dfc8d7520 100644 --- a/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java +++ b/app/src/main/java/com/gh/gamecenter/message/MessageDetailFragment.java @@ -303,96 +303,99 @@ public class MessageDetailFragment extends NormalFragment implements OnCommentCa return; } - mSendingDialog = DialogUtils.showWaitDialog(getActivity(), getString(R.string.post_dialog_hint)); + CheckLoginUtils.checkLogin(requireContext(), () -> { + mSendingDialog = DialogUtils.showWaitDialog(getActivity(), getString(R.string.post_dialog_hint)); - JSONObject jsonObject = new JSONObject(); - try { - jsonObject.put("content", content); - } catch (JSONException e) { - e.printStackTrace(); - } - if (newsId == null && mConcernEntity == null || - newsId == null && mConcernEntity.getId() == null) { - Utils.toast(getContext(), "评论异常 id null"); - mSendingDialog.cancel(); - return; - } else if (newsId == null) { - newsId = mConcernEntity.getId(); - } + JSONObject jsonObject = new JSONObject(); + try { + jsonObject.put("content", content); + } catch (JSONException e) { + e.printStackTrace(); + } + if (newsId == null && mConcernEntity == null || + newsId == null && mConcernEntity.getId() == null) { + Utils.toast(getContext(), "评论异常 id null"); + mSendingDialog.cancel(); + return; + } else if (newsId == null) { + newsId = mConcernEntity.getId(); + } - PostCommentUtils.addCommentData(getContext(), newsId, jsonObject.toString(), mCommentEntity, - new PostCommentUtils.PostCommentListener() { - @Override - public void postSuccess(JSONObject response) { - mSendingDialog.dismiss(); - toast("发表成功"); - mMessageDetailEt.setText(""); + PostCommentUtils.addCommentData(getContext(), newsId, jsonObject.toString(), mCommentEntity, + new PostCommentUtils.PostCommentListener() { + @Override + public void postSuccess(JSONObject response) { + mSendingDialog.dismiss(); + toast("发表成功"); + mMessageDetailEt.setText(""); - try { - JSONObject cacheObject = new JSONObject(); - JSONObject cacheUser = new JSONObject(); - JSONObject userData = new JSONObject(); - cacheUser.put("_id", mUserInfo.getId()); - cacheUser.put("icon", mUserInfo.getIcon()); - cacheUser.put("name", mUserInfo.getName()); - userData.put("is_comment_own", true); - cacheObject.put("_id", response.getString("_id")); - cacheObject.put("content", content); - cacheObject.put("time", System.currentTimeMillis() / 1000); - cacheObject.put("vote", 0); - cacheObject.put("user", cacheUser); - cacheObject.put("me", userData); - - if (mCommentEntity != null) { - JSONObject cacheParent = new JSONObject(); - JSONObject cacheParentUser = new JSONObject(); - cacheParentUser.put("_id", mCommentEntity.getId()); - cacheParentUser.put("name", mCommentEntity.getUser().getName()); - cacheParent.put("user", cacheParentUser); - cacheParent.put("comment", mCommentEntity.getContent()); - cacheObject.put("parent", cacheParent); - } - - CommentEntity commentEntity = new Gson().fromJson(cacheObject.toString(), CommentEntity.class); - if (mConcernEntity != null) { - adapter.addNormalComment(commentEntity); - } - - modifyNewsCommentOkhttpCache(adapter.findTheLastPriorComment(), cacheObject, newsId); - } catch (JSONException e) { - e.printStackTrace(); - } - - if (mConcernEntity != null) { - // 完成评论操作,添加评论数 - adapter.addCommentCount(); - //修改评论缓存 - CommentManager.updateOkhttpCacheForId(getContext(), newsId); - CommentManager.updateOkhttpCache(getContext(), newsId); - adapter.notifyItemInserted(adapter.getHotCommentListSize() + 2); - adapter.notifyItemChanged(adapter.getItemCount() - 1); //刷新脚布局高度 - } else { - showNoConnection(false); - } - - setSoftInput(false); - - } - - @Override - public void postFailed(Throwable e) { - mSendingDialog.dismiss(); - String errorString = null; - if (e instanceof HttpException) { try { - errorString = ((HttpException) e).response().errorBody().string(); - } catch (Exception e1) { - e1.printStackTrace(); + JSONObject cacheObject = new JSONObject(); + JSONObject cacheUser = new JSONObject(); + JSONObject userData = new JSONObject(); + cacheUser.put("_id", mUserInfo.getId()); + cacheUser.put("icon", mUserInfo.getIcon()); + cacheUser.put("name", mUserInfo.getName()); + userData.put("is_comment_own", true); + cacheObject.put("_id", response.getString("_id")); + cacheObject.put("content", content); + cacheObject.put("time", System.currentTimeMillis() / 1000); + cacheObject.put("vote", 0); + cacheObject.put("user", cacheUser); + cacheObject.put("me", userData); + + if (mCommentEntity != null) { + JSONObject cacheParent = new JSONObject(); + JSONObject cacheParentUser = new JSONObject(); + cacheParentUser.put("_id", mCommentEntity.getId()); + cacheParentUser.put("name", mCommentEntity.getUser().getName()); + cacheParent.put("user", cacheParentUser); + cacheParent.put("comment", mCommentEntity.getContent()); + cacheObject.put("parent", cacheParent); + } + + CommentEntity commentEntity = new Gson().fromJson(cacheObject.toString(), CommentEntity.class); + if (mConcernEntity != null) { + adapter.addNormalComment(commentEntity); + } + + modifyNewsCommentOkhttpCache(adapter.findTheLastPriorComment(), cacheObject, newsId); + } catch (JSONException e) { + e.printStackTrace(); } + + if (mConcernEntity != null) { + // 完成评论操作,添加评论数 + adapter.addCommentCount(); + //修改评论缓存 + CommentManager.updateOkhttpCacheForId(getContext(), newsId); + CommentManager.updateOkhttpCache(getContext(), newsId); + adapter.notifyItemInserted(adapter.getHotCommentListSize() + 2); + adapter.notifyItemChanged(adapter.getItemCount() - 1); //刷新脚布局高度 + } else { + showNoConnection(false); + } + + setSoftInput(false); + } - LoginUtils.userPostErrorToast(errorString, getContext(), false); - } - }); + + @Override + public void postFailed(Throwable e) { + mSendingDialog.dismiss(); + String errorString = null; + if (e instanceof HttpException) { + try { + errorString = ((HttpException) e).response().errorBody().string(); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + LoginUtils.userPostErrorToast(errorString, getContext(), false); + } + }); + }); + } private void modifyNewsCommentOkhttpCache(int offset, JSONObject commentData, String id) { diff --git a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java index a4f951e981..442f14c57e 100644 --- a/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java +++ b/app/src/main/java/com/gh/gamecenter/newsdetail/NewsDetailAdapter.java @@ -168,6 +168,7 @@ public class NewsDetailAdapter extends BaseRecyclerAdapter { initGameViewHolder((NewsDetailGameViewHolder) holder); } else if (holder instanceof GameDetailNewsViewHolder) { initNewsDetailNewsViewHolder((GameDetailNewsViewHolder) holder); + ((GameDetailNewsViewHolder)holder).newsTitle.setText("大家都在看"); } else if (holder instanceof NewsDetailCommentListViewHolder) { initNewsDetailNewsCommentViewHolder((NewsDetailCommentListViewHolder) holder); } diff --git a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java index c7daddade5..39c27c4385 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java +++ b/app/src/main/java/com/gh/gamecenter/qa/answer/edit/AnswerEditFragment.java @@ -555,7 +555,7 @@ public class AnswerEditFragment extends NormalFragment { if (view.getId() == R.id.answer_edit_img_icon) { MtaHelper.onEvent("发表答案", "上传图片", mCommunityName); - if (!mAgreePostPic && !NetworkUtils.isWifiConnected(getContext())) { + if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(getContext())) { mAgreePostPic = true; DialogUtils.showAlertDialog(getContext(), "警告", diff --git a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt index 33db457155..89f459ff4c 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/article/edit/ArticleEditActivity.kt @@ -28,6 +28,7 @@ import butterknife.OnClick import com.gh.base.BaseActivity import com.gh.base.fragment.BaseDialogWrapperFragment import com.gh.base.fragment.WaitingDialogFragment +import com.gh.common.util.CheckLoginUtils import com.gh.common.util.DialogUtils import com.gh.common.util.MtaHelper import com.gh.common.util.NetworkUtils @@ -175,7 +176,7 @@ class ArticleEditActivity : BaseActivity() { when (v.id) { R.id.article_edit_img_icon -> { MtaHelper.onEvent("发表文章", "上传图片", UserManager.getInstance().community.name) - if (!mAgreePostPic && !NetworkUtils.isWifiConnected(this)) { + if (!mAgreePostPic && !NetworkUtils.isWifiOr4GOr3GConnected(this)) { mAgreePostPic = true DialogUtils.showAlertDialog(this, "警告", @@ -320,9 +321,11 @@ class ArticleEditActivity : BaseActivity() { override fun onMenuItemClick(item: MenuItem?): Boolean { if (item?.itemId == R.id.menu_answer_post) { - mViewModel?.title = mEditTitle.text.toString() - mViewModel?.content = mEditContent.html - mViewModel?.checkDataAndLoadTitleTag() + CheckLoginUtils.checkLogin(this) { + mViewModel?.title = mEditTitle.text.toString() + mViewModel?.content = mEditContent.html + mViewModel?.checkDataAndLoadTitleTag() + } } return super.onMenuItemClick(item) } diff --git a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt index 89d1272dd9..ad7d99e205 100644 --- a/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/qa/questions/edit/pic/QuestionsEditPicAdapter.kt @@ -45,7 +45,7 @@ class QuestionsEditPicAdapter(context: Context, viewModel: QuestionEditViewModel if (!ClickUtils.isFastDoubleClick(R.id.menu_question_post) && position == itemCount - 1 && picList.size < QuestionEditViewModel.PIC_MAX_AMOUNT && mContext is Activity) { - if (NetworkUtils.isWifiConnected(mContext) || mAgreePostPic) { + if (NetworkUtils.isWifiOr4GOr3GConnected(mContext) || mAgreePostPic) { addPic(mContext as Activity) } else { mAgreePostPic = true diff --git a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java index 1e7d4f7dac..4f6fcf6c10 100644 --- a/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java +++ b/app/src/main/java/com/halo/assistant/fragment/user/UserInfoEditFragment.java @@ -324,12 +324,24 @@ public class UserInfoEditFragment extends NormalFragment { if (mEditText == mUserinfoNicknameEt) { if (tvCount > 0) { mUserinfoNicknameIv.setVisibility(View.VISIBLE); + if (tvCount > 12) { + String str = mEditText.getText().toString().substring(0, 12); + mEditText.setText(str); + mEditText.setSelection(str.length()); + Utils.toast(requireContext(), "最多12个字"); + } } else { mUserinfoNicknameIv.setVisibility(View.GONE); } } else if (mEditText == mUserInfoIntroduceEt) { if (tvCount > 0) { mUserInfoIntroduceIv.setVisibility(View.VISIBLE); + if (tvCount > 30) { + String str = mEditText.getText().toString().substring(0, 30); + mEditText.setText(str); + mEditText.setSelection(str.length()); + Utils.toast(requireContext(), "最多30个字"); + } } else { mUserInfoIntroduceIv.setVisibility(View.GONE); } diff --git a/app/src/main/res/layout/fragment_userinfo_edit.xml b/app/src/main/res/layout/fragment_userinfo_edit.xml index ddbc9a896a..18fdc4c306 100644 --- a/app/src/main/res/layout/fragment_userinfo_edit.xml +++ b/app/src/main/res/layout/fragment_userinfo_edit.xml @@ -83,7 +83,6 @@ android:layout_height = "48dp" android:background = "@null" android:hint = "@string/nickname_hint" - android:maxLength = "12" android:singleLine = "true" android:textColor = "@color/title" android:textCursorDrawable = "@drawable/cursor_color" @@ -163,7 +162,6 @@ android:layout_marginRight = "20dp" android:background = "@null" android:hint = "@string/introduce_hint" - android:maxLength = "30" android:singleLine = "true" android:textColor = "@color/title" android:textCursorDrawable = "@drawable/cursor_color" diff --git a/app/src/main/res/layout/kaifu_item_time.xml b/app/src/main/res/layout/kaifu_item_time.xml index 1cc9413d72..424f5d5803 100644 --- a/app/src/main/res/layout/kaifu_item_time.xml +++ b/app/src/main/res/layout/kaifu_item_time.xml @@ -13,7 +13,7 @@ android:layout_height = "wrap_content" android:src = "@drawable/kaifu_time_icon" android:layout_marginRight="8dp" - android:layout_marginLeft="20dp"/> + android:layout_marginLeft="19dp"/>