diff --git a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt index b663288f1..fbda07d59 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt +++ b/app/src/main/java/com/nnbc123/app/avroom/fragment/BaseRoomFragment.kt @@ -456,13 +456,9 @@ open class BaseRoomFragment?> : override fun makeFocusDrawable(): Drawable? { val dotFocus = GradientDrawable() dotFocus.setColor(Color.WHITE) - dotFocus.cornerRadius = Util.dip2px( - context, 2f - ).toFloat() + dotFocus.cornerRadius = Util.dip2px(context, 2f).toFloat() dotFocus.setSize( - Util.dip2px(context, 9f), Util.dip2px( - context, 4f - ) + Util.dip2px(context, 9f), Util.dip2px(context, 4f) ) return if (show) dotFocus else null } @@ -470,13 +466,9 @@ open class BaseRoomFragment?> : override fun makeNormalDrawable(): Drawable? { val dotNormal = GradientDrawable() dotNormal.setColor(mContext.resources.getColor(R.color.color_66FFFFFF)) - dotNormal.cornerRadius = Util.dip2px( - context, 2f - ).toFloat() + dotNormal.cornerRadius = Util.dip2px(context, 2f).toFloat() dotNormal.setSize( - Util.dip2px(context, 4f), Util.dip2px( - context, 4f - ) + Util.dip2px(context, 4f), Util.dip2px(context, 4f) ) return if (show) dotNormal else null } @@ -538,7 +530,8 @@ open class BaseRoomFragment?> : } rootView.setOnClickListener { WishListPanelDialog.newInstance().show(mContext) - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_WISHLIST_POP_CLICK,"礼物心愿气泡点击") + StatisticManager.Instance() + .onEvent(StatisticsProtocol.EVENT_WISHLIST_POP_CLICK, "礼物心愿气泡点击") } return rootView } diff --git a/app/src/main/java/com/nnbc123/app/home/fragment/PartyFragment.kt b/app/src/main/java/com/nnbc123/app/home/fragment/PartyFragment.kt index 67b915ee3..484900af3 100644 --- a/app/src/main/java/com/nnbc123/app/home/fragment/PartyFragment.kt +++ b/app/src/main/java/com/nnbc123/app/home/fragment/PartyFragment.kt @@ -127,9 +127,8 @@ class PartyFragment : BaseFragment(), MainMagicIndicatorAdapter.OnItemSelectList mFragments.add(fragment) } val commonNavigator = CommonNavigator(context) - commonNavigator.setTitleWrapContent(false) - commonNavigator.titleMargin = ScreenUtil.dip2px(2.0F) - commonNavigator.setTitleGravity(Gravity.CENTER_VERTICAL) + commonNavigator.setTitleWrapContent(true) + commonNavigator.titleMargin = ScreenUtil.dip2px(6.0F) val magicIndicatorAdapter = MainMagicIndicatorAdapter(context, mTabInfoList) magicIndicatorAdapter.textSize = 16 magicIndicatorAdapter.minScale = 0.85f diff --git a/app/src/main/java/com/nnbc123/app/ui/utils/ImageLoad.kt b/app/src/main/java/com/nnbc123/app/ui/utils/ImageLoad.kt index 0d478c700..f3b66efc3 100644 --- a/app/src/main/java/com/nnbc123/app/ui/utils/ImageLoad.kt +++ b/app/src/main/java/com/nnbc123/app/ui/utils/ImageLoad.kt @@ -30,6 +30,7 @@ import java.io.File import java.net.MalformedURLException import java.net.URL +@JvmOverloads fun ImageView.load( url: String?, @Dimension(unit = DP) round: Float = 0f, diff --git a/app/src/main/res/drawable/shape_232323_bottom_40dp.xml b/app/src/main/res/drawable/shape_232323_bottom_40dp.xml new file mode 100644 index 000000000..ec739f987 --- /dev/null +++ b/app/src/main/res/drawable/shape_232323_bottom_40dp.xml @@ -0,0 +1,10 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/shape_dynamic_bottom.xml b/app/src/main/res/drawable/shape_dynamic_bottom.xml new file mode 100644 index 000000000..0742b5c09 --- /dev/null +++ b/app/src/main/res/drawable/shape_dynamic_bottom.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/app/src/main/res/drawable/shape_dynamic_topic.xml b/app/src/main/res/drawable/shape_dynamic_topic.xml new file mode 100644 index 000000000..f73ceeef3 --- /dev/null +++ b/app/src/main/res/drawable/shape_dynamic_topic.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/app/src/main/res/layout/fragment_party.xml b/app/src/main/res/layout/fragment_party.xml index f01b79dfd..9099f8978 100644 --- a/app/src/main/res/layout/fragment_party.xml +++ b/app/src/main/res/layout/fragment_party.xml @@ -8,46 +8,71 @@ + android:orientation="vertical" + android:paddingTop="54dp"> - + android:layout_height="match_parent"> - + - + - + - + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_square_topic_banner.xml b/app/src/main/res/layout/item_square_topic_banner.xml new file mode 100644 index 000000000..c2cd90a11 --- /dev/null +++ b/app/src/main/res/layout/item_square_topic_banner.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + diff --git a/app/src/module_community/java/com/nnbc123/app/community/square/SquareDynamicFragment.java b/app/src/module_community/java/com/nnbc123/app/community/square/SquareDynamicFragment.java index 95ba060aa..e03fe3dd5 100644 --- a/app/src/module_community/java/com/nnbc123/app/community/square/SquareDynamicFragment.java +++ b/app/src/module_community/java/com/nnbc123/app/community/square/SquareDynamicFragment.java @@ -5,31 +5,21 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.TextView; import androidx.annotation.Nullable; -import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.trello.rxlifecycle3.android.FragmentEvent; import com.nnbc123.app.R; import com.nnbc123.app.UIHelper; import com.nnbc123.app.avroom.activity.AVRoomActivity; -import com.nnbc123.app.base.BaseMvpFragment; +import com.nnbc123.app.base.BaseFragment; import com.nnbc123.app.common.EmptyViewHelper; import com.nnbc123.app.common.widget.dialog.DialogManager; import com.nnbc123.app.community.helper.ShareDynamicHelper; -import com.nnbc123.app.community.square.adapter.SquareDynamicAdapter; -import com.nnbc123.app.miniworld.activity.AllTopicActivity; -import com.nnbc123.app.miniworld.activity.TopicMainActivity; -import com.nnbc123.app.miniworld.adapter.RecommendTopicListAdapter; -import com.nnbc123.app.miniworld.listener.DoubleClickCheckListener; -import com.nnbc123.app.miniworld.presenter.MiniWorldCategoryPresenter; -import com.nnbc123.app.miniworld.view.IMiniWorldCategoryView; +import com.nnbc123.app.community.square.adapter.NewSquareDynamicAdapter; import com.nnbc123.app.ui.widget.ButtonItem; -import com.nnbc123.xchat_android_constants.XChatConstants; import com.nnbc123.core.auth.AuthModel; import com.nnbc123.core.community.CommunityConstant; import com.nnbc123.core.community.bean.WorldDynamicBean; @@ -37,14 +27,12 @@ import com.nnbc123.core.community.bean.WorldDynamicListResult; import com.nnbc123.core.community.dynamic.DynamicModel; import com.nnbc123.core.community.event.DynamicPublishEvent; import com.nnbc123.core.community.square.SquareModel; -import com.nnbc123.core.miniworld.bean.MiniWorldInfo; -import com.nnbc123.core.statistic.StatisticManager; -import com.nnbc123.core.statistic.protocol.StatisticsProtocol; import com.nnbc123.core.user.UserModel; import com.nnbc123.core.user.event.LoadLoginUserInfoEvent; import com.nnbc123.core.utils.net.DontWarnObserver; -import com.nnbc123.library.base.factory.CreatePresenter; import com.nnbc123.library.utils.SizeUtils; +import com.nnbc123.xchat_android_constants.XChatConstants; +import com.trello.rxlifecycle3.android.FragmentEvent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -62,8 +50,7 @@ import io.reactivex.Single; /** * create by lvzebiao @2020/1/7 */ -@CreatePresenter(MiniWorldCategoryPresenter.class) -public class SquareDynamicFragment extends BaseMvpFragment implements IMiniWorldCategoryView { +public class SquareDynamicFragment extends BaseFragment { public static final String EXTRA_SQUARE_TYPE = "square_type"; @@ -72,31 +59,15 @@ public class SquareDynamicFragment extends BaseMvpFragment { loadData(true); - if (squareType == SquareFragment.TAB_TYPE_RECOMMEND) { - getMvpPresenter().getMiniWorldList(TOPIC_CATEGORY_ID, 1); - } }); loadData(true); - if (squareType == SquareFragment.TAB_TYPE_RECOMMEND) { - getMvpPresenter().getMiniWorldList(TOPIC_CATEGORY_ID, 1); - } } private void loadData(boolean isRefresh) { @@ -295,44 +246,6 @@ public class SquareDynamicFragment extends BaseMvpFragment { - AllTopicActivity.start(getActivity(), 0); - }); - - rvTopic = headerView.findViewById(R.id.recycler_view); - initRecyclerView(headerView); - adapter.addHeaderView(headerView); - - } - - private void initRecyclerView(View headerView) { - RecyclerView recyclerView = headerView.findViewById(R.id.rv_topic); - LinearLayoutManager layoutManager = new LinearLayoutManager(getContext()); - layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); - recyclerView.setLayoutManager(layoutManager); - List list = new ArrayList<>(); - for (int i = 0; i < 100; i++) { - list.add(new MiniWorldInfo()); - } - mRecommendTopicAdapter = new RecommendTopicListAdapter(list); - mRecommendTopicAdapter.setEnableLoadMore(false); - mRecommendTopicAdapter.setOnItemClickListener(new DoubleClickCheckListener() { - @Override - protected void onItemClickSingle(BaseQuickAdapter adapter, View view, int position) { - MiniWorldInfo miniWorldInfo = mRecommendTopicAdapter.getItem(position); - if (miniWorldInfo == null) { - return; - } - StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SQUARE_DONGTAI_TJ_HJ_CLICK, - "广场动态页_推荐_点击话题"); - TopicMainActivity.start(mContext, String.valueOf(miniWorldInfo.getId())); - } - }); - recyclerView.setAdapter(mRecommendTopicAdapter); - } @Subscribe(threadMode = ThreadMode.MAIN) public void onDynamicPublishEvent(DynamicPublishEvent event) { @@ -360,18 +273,4 @@ public class SquareDynamicFragment extends BaseMvpFragment miniWorldInfos, boolean isRefresh, boolean isNextData) { - mRecommendTopicAdapter.replaceData(miniWorldInfos); - } - - @Override - public void showNoMoreData() { - - } } diff --git a/app/src/module_community/java/com/nnbc123/app/community/square/SquareFragment.java b/app/src/module_community/java/com/nnbc123/app/community/square/SquareFragment.java index af961dd1d..dd6b52956 100644 --- a/app/src/module_community/java/com/nnbc123/app/community/square/SquareFragment.java +++ b/app/src/module_community/java/com/nnbc123/app/community/square/SquareFragment.java @@ -1,34 +1,56 @@ package com.nnbc123.app.community.square; +import static android.view.View.GONE; +import static android.view.View.VISIBLE; + import android.annotation.SuppressLint; +import android.graphics.Color; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.GradientDrawable; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; -import androidx.viewpager.widget.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + import com.netease.nim.uikit.common.ui.draggablebubbles.BubbleView; +import com.netease.nim.uikit.common.util.sys.ScreenUtil; import com.nnbc123.app.R; import com.nnbc123.app.avroom.adapter.RoomContributeListAdapter; import com.nnbc123.app.base.BaseFragment; import com.nnbc123.app.common.widget.DragLayout; +import com.nnbc123.app.community.dynamic.view.DynamicDetailActivity; import com.nnbc123.app.community.publish.view.PublishActivity; -import com.nnbc123.app.home.adapter.TopMagicIndicatorAdapter; import com.nnbc123.app.home.activity.CommunityNoticeAct; +import com.nnbc123.app.home.adapter.MainMagicIndicatorAdapter; +import com.nnbc123.app.miniworld.activity.TopicMainActivity; +import com.nnbc123.app.ui.utils.ImageLoadKt; import com.nnbc123.app.ui.widget.OnPageSelectedListener; import com.nnbc123.app.ui.widget.magicindicator.MagicIndicator; import com.nnbc123.app.ui.widget.magicindicator.ViewPagerHelper; import com.nnbc123.app.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator; +import com.nnbc123.app.ui.widget.rollviewpager.RollPagerView; +import com.nnbc123.app.ui.widget.rollviewpager.Util; +import com.nnbc123.app.ui.widget.rollviewpager.adapter.StaticPagerAdapter; +import com.nnbc123.app.ui.widget.rollviewpager.hintview.ColorPointHintView; import com.nnbc123.core.auth.AuthModel; +import com.nnbc123.core.community.dynamic.DynamicModel; import com.nnbc123.core.community.event.UnReadCountEvent; import com.nnbc123.core.home.model.HomeModel; +import com.nnbc123.core.miniworld.bean.MiniWorldInfo; +import com.nnbc123.core.miniworld.model.MiniWorldModel; import com.nnbc123.core.statistic.StatisticManager; import com.nnbc123.core.statistic.protocol.StatisticsProtocol; import com.nnbc123.core.user.event.LoadLoginUserInfoEvent; +import com.nnbc123.core.utils.net.RxHelper; +import com.nnbc123.library.base.PresenterEvent; +import com.nnbc123.library.utils.ListUtils; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -42,14 +64,11 @@ import butterknife.ButterKnife; import butterknife.Unbinder; import io.reactivex.functions.BiConsumer; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; - /** * create by lvzebiao @2020/1/7 */ -public class SquareFragment extends BaseFragment implements TopMagicIndicatorAdapter.OnItemSelectListener, View.OnClickListener{ +public class SquareFragment extends BaseFragment implements MainMagicIndicatorAdapter.OnItemSelectListener, View.OnClickListener { public static final String TAG = "SquareFragment"; /** * 关注 @@ -75,6 +94,8 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd FrameLayout flContactList; @BindView(R.id.msg_number) TextView tvCommunityUnread; + @BindView(R.id.roll_view) + RollPagerView rollView; public static SquareFragment newInstance() { @@ -94,7 +115,7 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd tagList.add(getResources().getString(R.string.dys_tab_attent)); } else if (integer == TAB_TYPE_RECOMMEND) { tagList.add(getResources().getString(R.string.dys_tab_recommend)); - } else if (integer == TAB_TYPE_NEW){ + } else if (integer == TAB_TYPE_NEW) { tagList.add(getResources().getString(R.string.dys_tab_new)); } fragmentList.add(SquareDynamicFragment.newInstance(integer)); @@ -108,13 +129,13 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd @Override public void onPageSelected(int position) { String tag = ""; - if(position == 0){ + if (position == 0) { StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SQUARE_DONGTAI_FOLLOW_CLICK, "广场动态页_关注"); tag = getResources().getString(R.string.dys_tab_attent); - }else if (position == 1){ + } else if (position == 1) { tag = getResources().getString(R.string.dys_tab_recommend); - } else if (position == 2){ + } else if (position == 2) { StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_SQUARE_DONGTAI_NEW_CLICK, "广场动态页_最新"); tag = getResources().getString(R.string.dys_tab_new); @@ -123,24 +144,68 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd }); CommonNavigator commonNavigator = new CommonNavigator(getContext()); - TopMagicIndicatorAdapter magicIndicatorAdapter = new TopMagicIndicatorAdapter(getContext(), tagList); + commonNavigator.setTitleMargin(ScreenUtil.dip2px(6.0F)); + MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(getContext(), tagList); magicIndicatorAdapter.setOnItemSelectListener(this); + magicIndicatorAdapter.setTextSize(16); + magicIndicatorAdapter.setMinScale(0.85f); + magicIndicatorAdapter.setResId(R.drawable.ic_home_indicator_center); commonNavigator.setTitleWrapContent(true); commonNavigator.setAdapter(magicIndicatorAdapter); - magicIndicator.setNavigator(commonNavigator); - - //init indicator - ViewPagerHelper.bind(magicIndicator, viewPager); viewPager.setCurrentItem(TAB_TYPE_RECOMMEND); - - + initTopic(); } - @Override - public void onItemSelect(int position) { - viewPager.setCurrentItem(position); + @SuppressLint({"CheckResult", "SetTextI18n"}) + private void initTopic() { + rollView.setHintView(new ColorPointHintView(mContext, Color.WHITE, mContext.getResources().getColor(R.color.color_66FFFFFF)) { + @Override + public Drawable makeFocusDrawable() { + GradientDrawable dotFocus = new GradientDrawable(); + dotFocus.setColor(Color.WHITE); + dotFocus.setCornerRadius(Util.dip2px(getContext(), 2)); + dotFocus.setSize(Util.dip2px(getContext(), 9), Util.dip2px(getContext(), 4)); + return dotFocus; + } + + @Override + public Drawable makeNormalDrawable() { + GradientDrawable dotNormal = new GradientDrawable(); + dotNormal.setColor(mContext.getResources().getColor(R.color.color_66FFFFFF)); + dotNormal.setCornerRadius(Util.dip2px(getContext(), 2)); + dotNormal.setSize(Util.dip2px(getContext(), 4), Util.dip2px(getContext(), 4)); + return dotNormal; + } + }); + + MiniWorldModel.getInstance().getCategoryMiniWorldList("0", 1, 500) + .compose(RxHelper.handleSchAndExce()) + .compose(bindToLifecycle()) + .subscribe((miniWorldInfos, throwable) -> { + if (miniWorldInfos != null) { + rollView.setAdapter(new StaticPagerAdapter() { + @Override + public View getView(ViewGroup container, int position) { + MiniWorldInfo worldInfo = miniWorldInfos.get(position); + View flRoot = LayoutInflater.from(container.getContext()).inflate(R.layout.item_square_topic_banner, container, false); + ImageView imgBanner = flRoot.findViewById(R.id.iv_cover); + ImageLoadKt.load(imgBanner, worldInfo.getIcon(), 12); + TextView tvTopic = flRoot.findViewById(R.id.tv_topic); + tvTopic.setText("#" + worldInfo.getName()); + flRoot.setOnClickListener(v -> TopicMainActivity.start(mContext, String.valueOf(worldInfo.getId()))); + return flRoot; + } + + @Override + public int getCount() { + return miniWorldInfos.size(); + } + }); + rollView.setPlayDelay(5000); + } + }); } @Override @@ -196,7 +261,7 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd @SuppressLint("SetTextI18n") public void setNumber(int number) { - if(tvCommunityUnread instanceof BubbleView){ + if (tvCommunityUnread instanceof BubbleView) { ((BubbleView) tvCommunityUnread).setNumText(number); return; } @@ -217,15 +282,16 @@ public class SquareFragment extends BaseFragment implements TopMagicIndicatorAd private void getUnReadCount() { HomeModel.INSTANCE.getUnreadCount(AuthModel.get().getCurrentUid()) .compose(bindToLifecycle()) - .subscribe(new BiConsumer() { - @Override - public void accept(Integer integer, Throwable throwable) throws Exception { - if (integer != null) { - EventBus.getDefault().post(new UnReadCountEvent(integer)); - } + .subscribe((integer, throwable) -> { + if (integer != null) { + EventBus.getDefault().post(new UnReadCountEvent(integer)); } }); } + @Override + public void onItemSelect(int position, TextView view) { + viewPager.setCurrentItem(position); + } } diff --git a/app/src/module_community/java/com/nnbc123/app/community/square/adapter/NewSquareDynamicAdapter.kt b/app/src/module_community/java/com/nnbc123/app/community/square/adapter/NewSquareDynamicAdapter.kt new file mode 100644 index 000000000..4de566fec --- /dev/null +++ b/app/src/module_community/java/com/nnbc123/app/community/square/adapter/NewSquareDynamicAdapter.kt @@ -0,0 +1,104 @@ +package com.nnbc123.app.community.square.adapter + +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import com.chad.library.adapter.base.BaseQuickAdapter +import com.chad.library.adapter.base.BaseViewHolder +import com.netease.nim.uikit.common.util.log.LogUtil +import com.nnbc123.app.R +import com.nnbc123.app.community.dynamic.view.DynamicDetailActivity +import com.nnbc123.app.ui.utils.load +import com.nnbc123.app.ui.utils.loadAvatar +import com.nnbc123.core.community.bean.WorldDynamicBean +import com.nnbc123.core.community.dynamic.DynamicModel +import com.nnbc123.core.utils.net.DontWarnObserver +import com.nnbc123.core.utils.net.RxHelper +import com.nnbc123.core.utils.subAndReplaceDot +import com.nnbc123.library.utils.SingleToastUtil + + +class NewSquareDynamicAdapter : + BaseQuickAdapter(R.layout.item_square_dynamic_new) { + + + override fun convert(helper: BaseViewHolder, item: WorldDynamicBean) { + + helper.getView(R.id.iv_avatar).loadAvatar(item.avatar) + helper.setText(R.id.tv_nickname, item.nick.subAndReplaceDot(10)) + helper.setText(R.id.tv_content, item.content) + helper.getView(R.id.iv_cover) + .load(item.dynamicResList?.getOrNull(0)?.resUrl, 12f) + helper.setGone(R.id.tv_live, item.inRoomUid != null) + helper.addOnClickListener(R.id.iv_in_room) + //点赞 + setLikeCount(helper, item.likeCount, item.isLike) + val llLike: LinearLayout = helper.getView(R.id.ll_like) + llLike.isEnabled = true + llLike.setOnClickListener { + llLike.isEnabled = false + val status = if (item.isLike) 0 else 1 + DynamicModel.get() + .like(item.worldId, item.dynamicId, item.uid, status, 4) + .compose(RxHelper.bindContext(mContext)) + .subscribe(object : DontWarnObserver() { + override fun accept(s: String?, error: String?) { + super.accept(s, error) + llLike.isEnabled = true + if (error != null) { + SingleToastUtil.showToast(error) + } else { + LogUtil.print("调用点赞接口完成...") + if (status == 1) { + item.likeCount = item.likeCount + 1 + } else { + item.likeCount = item.likeCount - 1 + } + item.isLike = status == 1 + setLikeCount(helper, item.likeCount, item.isLike) + } + } + }) + } + + helper.itemView.setOnClickListener { + DynamicDetailActivity.start( + mContext, + item.dynamicId, + item.worldId, + helper.bindingAdapterPosition, + false, + 6 + ) + } + + } + + + private fun setLikeCount( + helper: BaseViewHolder, + likeCount: Int, + isLike: Boolean + ) { + val tvLike = helper.getView(R.id.tv_like) + val likeCountStr: String = when { + likeCount < 0 -> { + "0" + } + likeCount >= 1000 -> { + "999+" + } + else -> { + likeCount.toString() + } + } + tvLike.text = likeCountStr + val ivLikeAnim = helper.getView(R.id.iv_like_pic) + if (isLike) { + ivLikeAnim.setImageResource(R.drawable.icon_square_dynamic_like_checked_new) + } else { + ivLikeAnim.setImageResource(R.drawable.icon_square_dynamic_like_normal_new) + } + } + +} \ No newline at end of file diff --git a/app/src/module_community/java/com/nnbc123/app/community/square/adapter/SquareDynamicAdapter.java b/app/src/module_community/java/com/nnbc123/app/community/square/adapter/SquareDynamicAdapter.java index bf56e8b39..da5d5a3c0 100644 --- a/app/src/module_community/java/com/nnbc123/app/community/square/adapter/SquareDynamicAdapter.java +++ b/app/src/module_community/java/com/nnbc123/app/community/square/adapter/SquareDynamicAdapter.java @@ -24,7 +24,6 @@ import com.nnbc123.app.community.widget.ExpandableTextView; import com.nnbc123.app.community.widget.GridImageWidget; import com.nnbc123.app.community.widget.TopicLabelWidget; import com.nnbc123.app.miniworld.activity.TopicMainActivity; -import com.nnbc123.app.miniworld.presenter.MiniWorldCategoryPresenter; import com.nnbc123.app.ui.utils.ImageLoadUtilsV2; import com.nnbc123.app.ui.widget.magicindicator.buildins.UIUtil; import com.nnbc123.app.utils.TimeUiUtils; @@ -35,7 +34,6 @@ import com.nnbc123.core.statistic.StatisticManager; import com.nnbc123.core.statistic.protocol.StatisticsProtocol; import com.nnbc123.core.utils.net.DontWarnObserver; import com.nnbc123.core.utils.net.RxHelper; -import com.nnbc123.library.base.factory.CreatePresenter; import com.nnbc123.library.utils.SingleToastUtil; import java.util.List; @@ -43,7 +41,6 @@ import java.util.List; /** * create by lvzebiao @2019/11/13 */ -@CreatePresenter(MiniWorldCategoryPresenter.class) public class SquareDynamicAdapter extends BaseQuickAdapter { private SparseBooleanArray mCollapsedStatus = new SparseBooleanArray(); diff --git a/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_checked_new.png b/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_checked_new.png new file mode 100644 index 000000000..42d4ae069 Binary files /dev/null and b/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_checked_new.png differ diff --git a/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_normal_new.png b/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_normal_new.png new file mode 100644 index 000000000..f370c6c25 Binary files /dev/null and b/app/src/module_community/res/drawable-xhdpi/icon_square_dynamic_like_normal_new.png differ diff --git a/app/src/module_community/res/layout/fragment_square.xml b/app/src/module_community/res/layout/fragment_square.xml index 9a544d597..532e932c7 100644 --- a/app/src/module_community/res/layout/fragment_square.xml +++ b/app/src/module_community/res/layout/fragment_square.xml @@ -5,79 +5,110 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bg_normal_1c1b22" - app:layout_constraintTop_toTopOf="parent"> + android:paddingTop="54dp"> - + android:layout_height="match_parent"> - + android:background="@color/transparent" + app:elevation="0dp" + app:layout_behavior="com.nnbc123.app.ui.widget.AppBarLayoutBehavior"> - - - - - + android:layout_marginStart="15dp" + android:layout_marginEnd="15dp" + app:contentScrim="@color/transparent" + app:layout_scrollFlags="scroll|enterAlwaysCollapsed"> - + + + + + + + + + + + + + + + + + + + + + + + app:layout_behavior="@string/appbar_scrolling_view_behavior" /> - + + + + + android:src="@drawable/ic_square_publish" /> - - - - + \ No newline at end of file diff --git a/app/src/module_community/res/layout/item_square_dynamic.xml b/app/src/module_community/res/layout/item_square_dynamic.xml index 5ae61bb74..808db3f3f 100644 --- a/app/src/module_community/res/layout/item_square_dynamic.xml +++ b/app/src/module_community/res/layout/item_square_dynamic.xml @@ -210,6 +210,7 @@ android:textColor="@color/color_666666" android:textSize="@dimen/sp_12" tools:text="0123" /> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file