diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java b/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java index 0938e67..3758edf 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/controller/dynamics/adapter/DynamicsAdapter1.java @@ -195,8 +195,8 @@ public class DynamicsAdapter1 extends BaseAdapter { } else { holder.msgBtn.setVisibility(View.INVISIBLE); } - //holder.likeCountLabel.setText(bean.getLike_count() + ""); - // holder.commentCountLabel.setText(bean.getComment_count() + ""); + holder.likeCountLabel.setText(bean.getLike_count() + ""); + holder.commentCountLabel.setText(bean.getComment_count() + ""); final int index = i; holder.name.setText(bean.getNickname()); holder.head.setImageURI(StrU.getResourcePath(bean.getAvatar(), mContext)); @@ -226,14 +226,14 @@ public class DynamicsAdapter1 extends BaseAdapter { holder.years.setCompoundDrawables(drawableLeft, null, null, null); } holder.years.setText(bean.getAge() + ""); - holder.location.setText(bean.getCity() + " | " + bean.getCreate_time()); +// holder.location.setText(bean.getCity() + " | " + bean.getCreate_time()); + holder.location.setText(bean.getCreate_time()); // holder.info.setText(bean.getContent()); //TODO 显示浏览次数 holder.tv_see_count.setText("已有"+bean.getLike_count()+"次浏览"); - //TODO 显示话题 - holder.tv_topic.setText("# 只想发个自拍"); + holder.info.setText(bean.getContent(), bean.getExpand(), new ExpandLayout.OnExpandListener() { @Override @@ -248,31 +248,34 @@ public class DynamicsAdapter1 extends BaseAdapter { NimUIKit.startChat(bean.getUser_id(), mContext); } }); - /*holder.commentImageView.setOnClickListener(new View.OnClickListener() { + holder.commentImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (dynamicCommentCallback != null) { dynamicCommentCallback.commentDynamic(bean); - } else { - Intent intent = new Intent(mContext, DynamicDetailActivity.class); - intent.putExtra("dynamic_id", bean.getId()); - mContext.startActivity(intent); } +// else { +// Intent intent = new Intent(mContext, DynamicDetailActivity.class); +// intent.putExtra("dynamic_id", bean.getId()); +// mContext.startActivity(intent); +// } } - });*/ + }); holder.getMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - if (String.valueOf(SPUtils.getInt(mContext, ConsUser.USER_ID)).equals(mDynamicsItemList.get(index).getUser_id())) { - if (null != mOnMunuDeleteClickListener) { +// if (String.valueOf(SPUtils.getInt(mContext, ConsUser.USER_ID)).equals(mDynamicsItemList.get(index).getUser_id())) { +// if (null != mOnMunuDeleteClickListener) { +// +// mOnMunuDeleteClickListener.onMenuDelete(index, mDynamicsItemList); +// } +// } else { +// if (null != mMenuClickListener) { +// mMenuClickListener.onMenuClicked(index); +// } +// } - mOnMunuDeleteClickListener.onMenuDelete(index, mDynamicsItemList); - } - } else { - if (null != mMenuClickListener) { - mMenuClickListener.onMenuClicked(index); - } - } + NimUIKit.startChat("4", mContext); } }); @@ -295,11 +298,11 @@ public class DynamicsAdapter1 extends BaseAdapter { addImageView(holder, bean.getImages()); - /* if (bean.getIs_like() == 1) { + if (bean.getIs_like() == 1) { holder.likeImageView.setImageResource(R.mipmap.feed_heart_); } else { holder.likeImageView.setImageResource(R.mipmap.feed_heart); - }*/ + } holder.head.setOnClickListener(new View.OnClickListener() { @Override @@ -309,7 +312,7 @@ public class DynamicsAdapter1 extends BaseAdapter { mContext.startActivity(intent); } }); - /* holder.likeImageView.setOnClickListener(new View.OnClickListener() { + holder.likeImageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (likeDynamicCallback != null) { @@ -317,7 +320,7 @@ public class DynamicsAdapter1 extends BaseAdapter { } } - });*/ + }); view.setTag(R.id.tag_second, holder); return view; @@ -539,14 +542,14 @@ public class DynamicsAdapter1 extends BaseAdapter { holder.dynamic_image_num = v.findViewById(R.id.dynamic_image_num); holder.imageListView3 = v.findViewById(R.id.dynamic_list_image_list_3); holder.msgBtn = v.findViewById(R.id.msgBtn); - // holder.commentCountLabel = v.findViewById(R.id.commentCountLabel); - //holder.likeCountLabel = v.findViewById(R.id.likeCountLabel); - // holder.likeImageView = v.findViewById(R.id.likeImageView); - // holder.commentImageView = v.findViewById(R.id.commentImageView); + holder.commentCountLabel = v.findViewById(R.id.commentCountLabel); + holder.likeCountLabel = v.findViewById(R.id.likeCountLabel); + holder.likeImageView = v.findViewById(R.id.likeImageView); + holder.commentImageView = v.findViewById(R.id.commentImageView); holder.realPeopleImageView = v.findViewById(R.id.realPeopleImageView); holder.newPeopleImageView = v.findViewById(R.id.newPeopleImageView); holder.rl_dynamic_item = v.findViewById(R.id.rl_dynamic_item); - holder.tv_topic = v.findViewById(R.id.tv_topic); + return holder; } @@ -558,8 +561,8 @@ public class DynamicsAdapter1 extends BaseAdapter { TextView years; ImageView iv_sex; ExpandLayout info; - // TextView commentCountLabel; - // TextView likeCountLabel; + TextView commentCountLabel; + TextView likeCountLabel; LinearLayout imageListView1; ConstraintLayout imageListView2; SimpleDraweeView dynamic_image1; @@ -571,12 +574,12 @@ public class DynamicsAdapter1 extends BaseAdapter { TextView tv_see_count; ImageView getMenu; ImageView msgBtn; - //ImageView likeImageView; - // ImageView commentImageView; + ImageView likeImageView; + ImageView commentImageView; ImageView realPeopleImageView; ImageView newPeopleImageView; RelativeLayout rl_dynamic_item; - TextView tv_topic; + } public void delete(int index) { diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicDetailActivity.kt b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicDetailActivity.kt index 2bee892..2fbb9cf 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicDetailActivity.kt +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/activity/DynamicDetailActivity.kt @@ -15,31 +15,37 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.facebook.drawee.view.SimpleDraweeView +import com.fengliyan.uikit.dialog.BottomGiftDialog +import com.fengliyan.uikit.dialog.BottomSelectiveDialog +import com.fengliyan.uikit.dialog.DialogGiftBean +import com.fengliyan.uikit.dialog.GiftListBean +import com.fengliyan.uikit.toast.MaleToast +import com.ryan.github.menupopupview.MenuPopupAdapter +import com.ryan.github.menupopupview.PopupLayout +import com.ryan.github.menupopupview.PopupView import com.xuebiping.bolizhuzi.R import com.xuebiping.bolizhuzi.controller.constant.ConsUser import com.xuebiping.bolizhuzi.controller.constant.ConstUrl -import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter.* +import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter1 import com.xuebiping.bolizhuzi.controller.dynamics.adapter.MenuPopupItemAdapter import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager import com.xuebiping.bolizhuzi.controller.eventBus.DynamicLikeEvent +import com.xuebiping.bolizhuzi.controller.main.manager.MainManager import com.xuebiping.bolizhuzi.databinding.ActivityDynamicdetailBinding import com.xuebiping.bolizhuzi.databinding.HeaderDynamicDetailBinding import com.xuebiping.bolizhuzi.model.dynamics.CommentBean import com.xuebiping.bolizhuzi.model.dynamics.DynamicsItemBean import com.xuebiping.bolizhuzi.model.main.FollowResultBean +import com.xuebiping.bolizhuzi.model.main.GiftBean +import com.xuebiping.bolizhuzi.model.settings.RechargeListBean import com.xuebiping.bolizhuzi.utils.SPUtils import com.xuebiping.bolizhuzi.view.base.BaseActivity import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack import com.xuebiping.bolizhuzi.view.base.utils.view.HangUpDialog import com.xuebiping.bolizhuzi.view.base.utils.view.HangUpDialog.OnHangUpListener -import com.xuebiping.bolizhuzi.view.main.ComplaintActivity import com.xuebiping.bolizhuzi.view.main.MainPageActivity -import com.fengliyan.uikit.dialog.BottomSelectiveDialog -import com.fengliyan.uikit.toast.MaleToast -import com.ryan.github.menupopupview.MenuPopupAdapter -import com.ryan.github.menupopupview.PopupLayout -import com.ryan.github.menupopupview.PopupView +import com.xuebiping.bolizhuzi.view.settings.CaibeiRechargeActivity import de.greenrobot.event.EventBus import kotlinx.android.synthetic.main.header_dynamic_detail.* import kotlinx.android.synthetic.main.header_dynamic_detail.view.* @@ -51,7 +57,7 @@ class DynamicDetailActivity : BaseActivity() { var datas = mutableListOf() var likes = mutableListOf() val dynamidData: ArrayList = ArrayList() - lateinit var dynamicAdapter: DynamicsAdapter + lateinit var dynamicAdapter: DynamicsAdapter1 var dynamic_id: String? = null var dynamic_from: Int = 0 lateinit var adapter: BaseQuickAdapter @@ -62,7 +68,7 @@ class DynamicDetailActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - dynamicAdapter = DynamicsAdapter(this) + dynamicAdapter = DynamicsAdapter1(this) bindDynamicEvent(dynamicAdapter) dynamicAdapter.setList(dynamidData) dynamic_id = intent.getStringExtra("dynamic_id") @@ -236,55 +242,146 @@ class DynamicDetailActivity : BaseActivity() { } - fun bindDynamicEvent(mAdapter: DynamicsAdapter) { - mAdapter.likeDynamicCallback = DynamicLikeCallback { bean -> likeFeed(bean) } - mAdapter.dynamicCommentCallback = DynamicCommentCallback { - replcyCommentId = null - binding.contentField.hint = "想和TA说..." - showKeyboard(true) - } - mAdapter.setOnMenuClickListener(OnMenuClickListener { dynamicIndex -> - mSelectiveDialog = - BottomSelectiveDialog(DynamicDetailActivity@ this, R.style.SelectiveDialog) - if (0 == dynamidData.get(dynamicIndex).is_follow) { - mSelectiveDialog?.addSelectButton( - "关注", - BottomSelectiveDialog.OnButtonSelectListener { view, index -> - mSelectiveDialog?.dismiss() - focus(dynamidData.get(dynamicIndex).getUser_id()) - }) - } - mSelectiveDialog?.addSelectButton( - "举报", - BottomSelectiveDialog.OnButtonSelectListener { view, index -> - mSelectiveDialog?.dismiss() - var intent = Intent(DynamicDetailActivity@ this, ComplaintActivity::class.java) - intent.putExtra("uid", dynamidData.get(dynamicIndex).getUser_id()) - intent.putExtra("type", 3) - startActivity(intent) - }) - mSelectiveDialog?.show() - }) + fun bindDynamicEvent(mAdapter: DynamicsAdapter1) { +// mAdapter.likeDynamicCallback = DynamicLikeCallback { bean -> likeFeed(bean) }) +// mAdapter.dynamicCommentCallback = DynamicCommentCallback { +// replcyCommentId = null +// binding.contentField.hint = "想和TA说..." +// showKeyboard(true) +// } +// mAdapter.setOnMenuClickListener(OnMenuClickListener { dynamicIndex -> +// mSelectiveDialog = +// BottomSelectiveDialog(DynamicDetailActivity@ this, R.style.SelectiveDialog) +// if (0 == dynamidData.get(dynamicIndex).is_follow) { +// mSelectiveDialog?.addSelectButton( +// "关注", +// BottomSelectiveDialog.OnButtonSelectListener { view, index -> +// mSelectiveDialog?.dismiss() +// focus(dynamidData.get(dynamicIndex).getUser_id()) +// }) +// } +// mSelectiveDialog?.addSelectButton( +// "举报", +// BottomSelectiveDialog.OnButtonSelectListener { view, index -> +// mSelectiveDialog?.dismiss() +// var intent = Intent(DynamicDetailActivity@ this, ComplaintActivity::class.java) +// intent.putExtra("uid", dynamidData.get(dynamicIndex).getUser_id()) +// intent.putExtra("type", 3) +// startActivity(intent) +// }) +// mSelectiveDialog?.show() +// }) //删除动态 - mAdapter.setOnMenuDeleteClickListener(OnMenuDeleteClickListener { position, mDynamicsItemList -> - val hangUpDialog = HangUpDialog( - this@DynamicDetailActivity, - OnHangUpListener { - deleteDynamics(mDynamicsItemList[position].id, position) - }, "您确定要删除吗?", "确定", "取消" - ) - hangUpDialog.show() -// mDeleteBottomDialog = -// BottomSelectiveDialog(this@DynamicDetailActivity, R.style.SelectiveDialog) -// mDeleteBottomDialog?.addSelectButton( -// "删除", -// BottomSelectiveDialog.OnButtonSelectListener { view, index -> -// mDeleteBottomDialog?.dismiss() +// mAdapter.setOnMenuDeleteClickListener(OnMenuDeleteClickListener { position, mDynamicsItemList -> +// val hangUpDialog = HangUpDialog( +// this@DynamicDetailActivity, +// OnHangUpListener { // deleteDynamics(mDynamicsItemList[position].id, position) -// }) -// mDeleteBottomDialog?.show() - }) +// }, "您确定要删除吗?", "确定", "取消" +// ) +// hangUpDialog.show() +//// mDeleteBottomDialog = +//// BottomSelectiveDialog(this@DynamicDetailActivity, R.style.SelectiveDialog) +//// mDeleteBottomDialog?.addSelectButton( +//// "删除", +//// BottomSelectiveDialog.OnButtonSelectListener { view, index -> +//// mDeleteBottomDialog?.dismiss() +//// deleteDynamics(mDynamicsItemList[position].id, position) +//// }) +//// mDeleteBottomDialog?.show() +// }) + + mAdapter.likeDynamicCallback = DynamicsAdapter1.DynamicLikeCallback { bean -> + likeFeed( + bean + ) + } + + mAdapter.setOnGiftSendListener { bean, quantity -> // sendGift(bean.getId(), quantity, bean); + getGiftData(bean.user_id) + } + } + + private var mGiftDialog: BottomGiftDialog? = null + + /** + * 礼物列表数据 + */ + private fun getGiftData(user_id: String) { + + val callBack = object : HttpUiCallBack { + override fun onSuccess(activity: BaseActivity?, result: GiftListBean?, tips: String?) { + mGiftDialog = BottomGiftDialog( + this@DynamicDetailActivity, + R.style.SelectiveDialog + ) + mGiftDialog!!.setGiftListBean(result) + mGiftDialog!!.setOnGiftItemClickedListener(object : + BottomGiftDialog.OnGiftItemClickedListener { + override fun onGiftClicked(bean: DialogGiftBean) { + if (!TextUtils.isEmpty(user_id)) { + sendGift(user_id.toInt(), bean.id) + } + } + + override fun onWalletClicked() { + val intent = Intent(this@DynamicDetailActivity, CaibeiRechargeActivity::class.java) + startActivity(intent) + } + }) + mGiftDialog!!.show() + } + + override fun onFailure(activity: BaseActivity?, tip: String?) { + MaleToast.showMessage(activity, tip) + } + + override fun onException(activity: BaseActivity?, e: Throwable?) { + MaleToast.showMessage(activity, "请重试") + } + + } + + MainManager.getGiftBeans(this as BaseActivity?, callBack) + } + + /** + * 赠送礼物 + * + * @param toUid + * @param giftId + */ + fun sendGift(toUid: Int, giftId: Int) { + + val callBack = object : HttpUiCallBack { + override fun onSuccess(activity: BaseActivity?, result: GiftListBean?, tips: String?) { + if (null != mGiftDialog) { + mGiftDialog!!.setCoin(result!!.coin.toString() + "") + mGiftDialog!!.dismiss() + } + MaleToast.showMessage(this@DynamicDetailActivity, "赠送成功") + } + + override fun onFailure(activity: BaseActivity?, tip: String?) { + MaleToast.showMessage(this@DynamicDetailActivity, tip) + } + + override fun onException(activity: BaseActivity?, e: Throwable?) { + MaleToast.showMessage(this@DynamicDetailActivity, "赠送失败") + } + + } + + MainManager.sendGift( + this as BaseActivity?, + 1, + toUid, + giftId, + 1, + callBack) + + } fun likeFeed(bean: DynamicsItemBean) { @@ -464,6 +561,7 @@ class DynamicDetailActivity : BaseActivity() { object : HttpUiCallBack { override fun onSuccess(activity: BaseActivity?, result: Any?, tips: String?) { binding.contentField.setText("") + getCommentList() refresh() } diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java new file mode 100644 index 0000000..bf1a28f --- /dev/null +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/DynamicViewPager2Fragment.java @@ -0,0 +1,201 @@ +package com.xuebiping.bolizhuzi.view.dynamics.fragment; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Color; +import android.graphics.Typeface; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.RelativeLayout; + +import androidx.fragment.app.Fragment; +import androidx.viewpager.widget.ViewPager; + +import com.fengliyan.base.base.AnyCallback; +import com.xuebiping.bolizhuzi.R; +import com.xuebiping.bolizhuzi.controller.main.adapter.MainViewPagerAdapter; +import com.xuebiping.bolizhuzi.controller.main.adapter.ScaleTransitionPagerTitleView; +import com.xuebiping.bolizhuzi.view.base.BaseActivity; +import com.xuebiping.bolizhuzi.view.dynamics.activity.DynamicPostActivity; +import com.xuebiping.bolizhuzi.view.main.SearchActivity; + +import net.lucode.hackware.magicindicator.MagicIndicator; +import net.lucode.hackware.magicindicator.ViewPagerHelper; +import net.lucode.hackware.magicindicator.buildins.UIUtil; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator; +import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView; + +import java.util.ArrayList; +import java.util.List; + +import static android.app.Activity.RESULT_OK; + +public class DynamicViewPager2Fragment extends Fragment implements View.OnClickListener { + + private MagicIndicator mMagicIndicator; + private RelativeLayout mRl_home_search; + private ViewPager mDynamicViewPager; + + private List mDataList = new ArrayList<>(); + private int mIndex = 1; + + private MainViewPagerAdapter mViewPagerAdapter; + private List mDynamicFragments = new ArrayList<>(); + private RecentDynamicFragment mRecent; + private FollowUsersDynamicFragment mFocusFragment; + private ImageView mAddFeedBtn; + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View v = inflater.inflate(R.layout.fragment_dynamic_view_pager2, container, false); + initView(v); + return v; + } + + @Override + public void onHiddenChanged(boolean hidden) { + if (!hidden) { + ((BaseActivity) getActivity()).hideTitleBar(); + } + } + + private void initView(View v) { + + mMagicIndicator = v.findViewById(R.id.magic_indicator); + mDynamicViewPager = v.findViewById(R.id.dynamic_view_pager); + mRl_home_search = v.findViewById(R.id.rl_home_search); + mAddFeedBtn = v.findViewById(R.id.addFeedBtn); + + mRecent = new RecentDynamicFragment(); + mFocusFragment = new FollowUsersDynamicFragment(); + + mDynamicFragments.add(mFocusFragment); + mDynamicFragments.add(mRecent); + + + mViewPagerAdapter = new MainViewPagerAdapter(getChildFragmentManager(), + mDynamicFragments); + mDynamicViewPager.setAdapter(mViewPagerAdapter); + + initMagicIndicator(); + + mDynamicViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + mIndex = position; + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + }); + + mViewPagerAdapter.notifyDataSetChanged(); + mDynamicViewPager.setCurrentItem(mIndex); + + + mAddFeedBtn.setOnClickListener(this); + mRl_home_search.setOnClickListener(this); + } + + private void initMagicIndicator() { + mDataList.clear(); + mDataList.add("关注"); + mDataList.add("动态"); + + CommonNavigator commonNavigator = new CommonNavigator(getActivity()); + commonNavigator.setAdapter(new CommonNavigatorAdapter() { + @Override + public int getCount() { + return mDataList == null ? 0 : mDataList.size(); + } + + @Override + public IPagerTitleView getTitleView(Context context, final int index) { + SimplePagerTitleView simplePagerTitleView = new ScaleTransitionPagerTitleView(context); + simplePagerTitleView.setText(mDataList.get(index)); + simplePagerTitleView.setTextSize(20); + simplePagerTitleView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗 + simplePagerTitleView.setNormalColor(Color.parseColor("#33000000")); + simplePagerTitleView.setSelectedColor(Color.parseColor("#000000")); + simplePagerTitleView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + mDynamicViewPager.setCurrentItem(index); + } + }); + return simplePagerTitleView; + } + + @Override + public IPagerIndicator getIndicator(Context context) { + + LinePagerIndicator indicator = new LinePagerIndicator(context); + indicator.setColors(getResources().getColor(R.color.yellow_ffd33e)); + indicator.setLineHeight(UIUtil.dip2px(context, 10)); + indicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT); + return null; + } + }); + mMagicIndicator.setNavigator(commonNavigator); + ViewPagerHelper.bind(mMagicIndicator, mDynamicViewPager); + } + + public static int REQUEST_POST = 206; + + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == REQUEST_POST && resultCode == RESULT_OK) { + clickRefresh(); + } + } + + public void clickRefresh() { + if (mIndex == 1) { + if (null != mRecent) { + mRecent.getDynamicList(1, 1); + } + } else { + mDynamicViewPager.setCurrentItem(1, false); + } + } + + void chooseFeedType() { + ChooseFeedTypeDialog dialog = new ChooseFeedTypeDialog(getActivity()); + dialog.setCallback(new AnyCallback() { + @Override + public void callback(ChooseFeedTypeDialog.FeedType feedType) { + Intent intent = new Intent(getActivity(), DynamicPostActivity.class); + intent.putExtra("isVideo", feedType == ChooseFeedTypeDialog.FeedType.Video); + getActivity().startActivityForResult(intent, REQUEST_POST); + } + }); + dialog.show(); + } + + @Override + public void onClick(View view) { + + if (view == mRl_home_search) { + Intent intent = new Intent(getActivity(), SearchActivity.class); + startActivity(intent); + }else if (view == mAddFeedBtn) { + chooseFeedType(); + } + } +} diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java index ec62f35..504d154 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/FollowUsersDynamicFragment.java @@ -3,6 +3,7 @@ package com.xuebiping.bolizhuzi.view.dynamics.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -11,10 +12,14 @@ import android.widget.AbsListView; import androidx.fragment.app.Fragment; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import com.fengliyan.uikit.dialog.BottomGiftDialog; +import com.fengliyan.uikit.dialog.DialogGiftBean; +import com.fengliyan.uikit.dialog.GiftListBean; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter1; import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; import com.xuebiping.bolizhuzi.controller.eventBus.DynamicLikeEvent; +import com.xuebiping.bolizhuzi.controller.main.manager.MainManager; import com.xuebiping.bolizhuzi.model.dynamics.DynamicsItemBean; import com.xuebiping.bolizhuzi.model.dynamics.DynamicsListBean; import com.xuebiping.bolizhuzi.model.main.BannerBean; @@ -29,6 +34,7 @@ import com.xuebiping.bolizhuzi.view.main.ComplaintActivity; import com.fengliyan.uikit.dialog.BottomSelectiveDialog; import com.fengliyan.uikit.refresh.LoadMoreListView; import com.fengliyan.uikit.toast.MaleToast; +import com.xuebiping.bolizhuzi.view.settings.CaibeiRechargeActivity; import java.util.ArrayList; import java.util.List; @@ -111,7 +117,8 @@ public class FollowUsersDynamicFragment extends Fragment { mAdapter.setOnGiftSendListener(new DynamicsAdapter1.OnGiftSendListener() { @Override public void onSend(DynamicsItemBean bean, int quantity) { - sendGift(bean.getId(), quantity, bean); +// sendGift(bean.getId(), quantity, bean); + getGiftData(bean.getUser_id()); } }); @@ -180,6 +187,16 @@ public class FollowUsersDynamicFragment extends Fragment { startActivity(intent); } }); + + mAdapter.dynamicCommentCallback = new DynamicsAdapter1.DynamicCommentCallback() { + @Override + public void commentDynamic(DynamicsItemBean bean) { + Intent intent = new Intent(getActivity(), DynamicDetailActivity.class); + intent.putExtra("dynamic_id", bean.getId()); + getActivity().startActivity(intent); + } + }; + mRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { @@ -201,6 +218,48 @@ public class FollowUsersDynamicFragment extends Fragment { } } + private BottomGiftDialog mGiftDialog; + + /** + * 礼物列表数据 + */ + private void getGiftData(String user_id) { + MainManager.getGiftBeans((BaseActivity) getActivity(), new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, GiftListBean result, String message) { + mGiftDialog = new BottomGiftDialog(getActivity(), + R.style.SelectiveDialog); + + mGiftDialog.setGiftListBean(result); + mGiftDialog.setOnGiftItemClickedListener(new BottomGiftDialog.OnGiftItemClickedListener() { + @Override + public void onGiftClicked(final DialogGiftBean bean) { + if (!TextUtils.isEmpty(user_id)) { + sendGift(Integer.parseInt(user_id), bean.getId()); + } + } + + @Override + public void onWalletClicked() { + Intent intent = new Intent(getActivity(), CaibeiRechargeActivity.class); + startActivity(intent); + } + }); + mGiftDialog.show(); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + MaleToast.showMessage(activity, tip); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + MaleToast.showMessage(activity, "请重试"); + } + }); + } + void likeFeed(DynamicsItemBean bean) { BaseActivity activity = (BaseActivity) getActivity(); boolean isLikeParam = false; @@ -315,15 +374,22 @@ public class FollowUsersDynamicFragment extends Fragment { }); } - public void sendGift(String dynamicId, final int number, final DynamicsItemBean bean) { - DynamicsManager.sendGifts((BaseActivity) getActivity(), dynamicId, number, new HttpUiCallBack() { + /** + * 赠送礼物 + * + * @param toUid + * @param giftId + */ + private void sendGift(int toUid, int giftId) { + MainManager.sendGift((BaseActivity) getActivity(), 1, toUid, giftId, 1, new HttpUiCallBack() { @Override - public void onSuccess(BaseActivity activity, Object result, String message) { - MaleToast.showMessage(getActivity(), "礼物赠送成功"); - if (null != mAdapter) { - mAdapter.setGiftCount(number + bean.getReward_count(), bean.getId()); - mAdapter.notifyDataSetChanged(); + public void onSuccess(BaseActivity activity, GiftListBean result, String message) { + if (null != mGiftDialog) { + mGiftDialog.setCoin(result.getCoin() + ""); + mGiftDialog.dismiss(); } + MaleToast.showMessage(getActivity(), "赠送成功"); +// mSvgaDialog.show(giftUrl); } @Override @@ -333,11 +399,34 @@ public class FollowUsersDynamicFragment extends Fragment { @Override public void onException(BaseActivity activity, Throwable e) { - MaleToast.showMessage(getActivity(), "赠送失败,请重试"); + MaleToast.showMessage(getActivity(), "赠送失败"); } }); } +// public void sendGift(String dynamicId, final int number, final DynamicsItemBean bean) { +// DynamicsManager.sendGifts((BaseActivity) getActivity(), dynamicId, number, new HttpUiCallBack() { +// @Override +// public void onSuccess(BaseActivity activity, Object result, String message) { +// MaleToast.showMessage(getActivity(), "礼物赠送成功"); +// if (null != mAdapter) { +// mAdapter.setGiftCount(number + bean.getReward_count(), bean.getId()); +// mAdapter.notifyDataSetChanged(); +// } +// } +// +// @Override +// public void onFailure(BaseActivity activity, String tip) { +// MaleToast.showMessage(getActivity(), tip); +// } +// +// @Override +// public void onException(BaseActivity activity, Throwable e) { +// MaleToast.showMessage(getActivity(), "赠送失败,请重试"); +// } +// }); +// } + private void focus(String userId) { DynamicsManager.follow((BaseActivity) getActivity(), userId, diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/RecentDynamicFragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/RecentDynamicFragment.java index 64fe00e..24edf1c 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/RecentDynamicFragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/dynamics/fragment/RecentDynamicFragment.java @@ -3,6 +3,7 @@ package com.xuebiping.bolizhuzi.view.dynamics.fragment; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -11,10 +12,14 @@ import android.widget.AbsListView; import androidx.fragment.app.Fragment; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; +import com.fengliyan.uikit.dialog.BottomGiftDialog; +import com.fengliyan.uikit.dialog.DialogGiftBean; +import com.fengliyan.uikit.dialog.GiftListBean; import com.xuebiping.bolizhuzi.R; import com.xuebiping.bolizhuzi.controller.dynamics.adapter.DynamicsAdapter1; import com.xuebiping.bolizhuzi.controller.dynamics.manager.DynamicsManager; import com.xuebiping.bolizhuzi.controller.eventBus.DynamicLikeEvent; +import com.xuebiping.bolizhuzi.controller.main.manager.MainManager; import com.xuebiping.bolizhuzi.model.dynamics.DynamicsItemBean; import com.xuebiping.bolizhuzi.model.dynamics.DynamicsListBean; import com.xuebiping.bolizhuzi.model.main.BannerBean; @@ -29,6 +34,7 @@ import com.xuebiping.bolizhuzi.view.main.ComplaintActivity; import com.fengliyan.uikit.dialog.BottomSelectiveDialog; import com.fengliyan.uikit.refresh.LoadMoreListView; import com.fengliyan.uikit.toast.MaleToast; +import com.xuebiping.bolizhuzi.view.settings.CaibeiRechargeActivity; import java.util.ArrayList; import java.util.List; @@ -124,7 +130,9 @@ public class RecentDynamicFragment extends Fragment { mAdapter.setOnGiftSendListener(new DynamicsAdapter1.OnGiftSendListener() { @Override public void onSend(DynamicsItemBean bean, int quantity) { - sendGift(bean.getId(), quantity, bean); +// sendGift(bean.getId(), quantity, bean); + + getGiftData(bean.getUser_id()); } }); @@ -190,6 +198,15 @@ public class RecentDynamicFragment extends Fragment { } }); + mAdapter.dynamicCommentCallback = new DynamicsAdapter1.DynamicCommentCallback() { + @Override + public void commentDynamic(DynamicsItemBean bean) { + Intent intent = new Intent(getActivity(), DynamicDetailActivity.class); + intent.putExtra("dynamic_id", bean.getId()); + getActivity().startActivity(intent); + } + }; + mRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { @@ -211,6 +228,48 @@ public class RecentDynamicFragment extends Fragment { } } + private BottomGiftDialog mGiftDialog; + + /** + * 礼物列表数据 + */ + private void getGiftData(String user_id) { + MainManager.getGiftBeans((BaseActivity) getActivity(), new HttpUiCallBack() { + @Override + public void onSuccess(BaseActivity activity, GiftListBean result, String message) { + mGiftDialog = new BottomGiftDialog(getActivity(), + R.style.SelectiveDialog); + + mGiftDialog.setGiftListBean(result); + mGiftDialog.setOnGiftItemClickedListener(new BottomGiftDialog.OnGiftItemClickedListener() { + @Override + public void onGiftClicked(final DialogGiftBean bean) { + if (!TextUtils.isEmpty(user_id)) { + sendGift(Integer.parseInt(user_id), bean.getId()); + } + } + + @Override + public void onWalletClicked() { + Intent intent = new Intent(getActivity(), CaibeiRechargeActivity.class); + startActivity(intent); + } + }); + mGiftDialog.show(); + } + + @Override + public void onFailure(BaseActivity activity, String tip) { + MaleToast.showMessage(activity, tip); + } + + @Override + public void onException(BaseActivity activity, Throwable e) { + MaleToast.showMessage(activity, "请重试"); + } + }); + } + void likeFeed(DynamicsItemBean bean) { BaseActivity activity = (BaseActivity) getActivity(); boolean isLikeParam = false; @@ -327,16 +386,22 @@ public class RecentDynamicFragment extends Fragment { }); } - public void sendGift(String dynamicId, final int number, final DynamicsItemBean bean) { - DynamicsManager.sendGifts((BaseActivity) getActivity(), dynamicId, number, new HttpUiCallBack() { + /** + * 赠送礼物 + * + * @param toUid + * @param giftId + */ + private void sendGift(int toUid, int giftId) { + MainManager.sendGift((BaseActivity) getActivity(), 1, toUid, giftId, 1, new HttpUiCallBack() { @Override - public void onSuccess(BaseActivity activity, Object result, String message) { - MaleToast.showMessage(getActivity(), "礼物赠送成功"); - if (null != mAdapter) { - mAdapter.setGiftCount(number + bean.getReward_count(), bean.getId()); - mAdapter.notifyDataSetChanged(); + public void onSuccess(BaseActivity activity, GiftListBean result, String message) { + if (null != mGiftDialog) { + mGiftDialog.setCoin(result.getCoin() + ""); + mGiftDialog.dismiss(); } - + MaleToast.showMessage(getActivity(), "赠送成功"); +// mSvgaDialog.show(giftUrl); } @Override @@ -346,11 +411,35 @@ public class RecentDynamicFragment extends Fragment { @Override public void onException(BaseActivity activity, Throwable e) { - MaleToast.showMessage(getActivity(), "赠送失败,请重试"); + MaleToast.showMessage(getActivity(), "赠送失败"); } }); } +// public void sendGift(String dynamicId, final int number, final DynamicsItemBean bean) { +// DynamicsManager.sendGifts((BaseActivity) getActivity(), dynamicId, number, new HttpUiCallBack() { +// @Override +// public void onSuccess(BaseActivity activity, Object result, String message) { +// MaleToast.showMessage(getActivity(), "礼物赠送成功"); +// if (null != mAdapter) { +// mAdapter.setGiftCount(number + bean.getReward_count(), bean.getId()); +// mAdapter.notifyDataSetChanged(); +// } +// +// } +// +// @Override +// public void onFailure(BaseActivity activity, String tip) { +// MaleToast.showMessage(getActivity(), tip); +// } +// +// @Override +// public void onException(BaseActivity activity, Throwable e) { +// MaleToast.showMessage(getActivity(), "赠送失败,请重试"); +// } +// }); +// } + private void focus(String userId) { DynamicsManager.follow((BaseActivity) getActivity(), userId, diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java index 7448e86..0848459 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainActivity.java @@ -108,6 +108,7 @@ import com.xuebiping.bolizhuzi.view.base.utils.HttpUiCallBack; import com.xuebiping.bolizhuzi.view.base.utils.view.AttentionDialog; import com.xuebiping.bolizhuzi.view.base.utils.view.KidDialog; import com.xuebiping.bolizhuzi.view.base.utils.view.KidOpenDialog; +import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicViewPager2Fragment; import com.xuebiping.bolizhuzi.view.dynamics.fragment.DynamicViewPagerFragment; import com.xuebiping.bolizhuzi.view.login.LoginActivity; import com.xuebiping.bolizhuzi.view.login.utils.LoginUtils; @@ -167,7 +168,7 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat private long mExitTime; private LuckFragment luckFragment; private SwipeCardFragment swipeCardFragment; - private DynamicViewPagerFragment mDynamicViewPagerFragment; + private DynamicViewPager2Fragment mDynamicViewPagerFragment; private MainRecommend2Fragment mMainRecommendFragment; private MainMessageFragment mMainMessageFragment; private SettingFragment mSettingFragment; @@ -1057,7 +1058,7 @@ public class MainActivity extends BaseActivity implements DemoHelper.AppIdsUpdat } } if (mDynamicViewPagerFragment == null) { - mDynamicViewPagerFragment = new DynamicViewPagerFragment(); + mDynamicViewPagerFragment = new DynamicViewPager2Fragment(); } if (mMainRecommendFragment == null) { mMainRecommendFragment = new MainRecommend2Fragment(); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java index 9e23058..c44882c 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/MainRecommend2Fragment.java @@ -62,7 +62,7 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList private MainNewPeopleFragment mNewPeopleFragment; private MainFiveStarFragment mFiveStarFragment; private MainFourStarFragment mFourStarFragment; - private MainThreeStarFragment mThreeStarFragment; + private MainRecommendActiveFragment mThreeStarFragment; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -97,7 +97,7 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList mNewPeopleFragment = new MainNewPeopleFragment(); mFiveStarFragment = new MainFiveStarFragment(); mFourStarFragment = new MainFourStarFragment(); - mThreeStarFragment = new MainThreeStarFragment(); + mThreeStarFragment = new MainRecommendActiveFragment(); mChannelFragments.add(mLookMeFragment); mChannelFragments.add(mRecommendFragment); @@ -277,7 +277,8 @@ public class MainRecommend2Fragment extends Fragment implements View.OnClickList @Override public void onClick(View view) { if (view == mRl_home_search) { - MaleToast.showMessage(getActivity(), "搜索"); + Intent intent = new Intent(getActivity(), SearchActivity.class); + startActivity(intent); }else if (view == mLl_select) { ShaiXuanDialog shaiXuanDialog = new ShaiXuanDialog(getActivity()); diff --git a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/SearchActivity.java b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/SearchActivity.java index 1f8dd8f..8991360 100644 --- a/app/src/main/java/com/xuebiping/bolizhuzi/view/main/SearchActivity.java +++ b/app/src/main/java/com/xuebiping/bolizhuzi/view/main/SearchActivity.java @@ -64,7 +64,7 @@ public class SearchActivity extends BaseActivity implements View.OnClickListener String searchText = mSearchEdit.getText().toString(); if (TextUtils.isEmpty(searchText)) { mListView.setVisibility(View.GONE); - mOptionView.setVisibility(View.VISIBLE); +// mOptionView.setVisibility(View.VISIBLE); } else { search(); } @@ -130,7 +130,7 @@ public class SearchActivity extends BaseActivity implements View.OnClickListener private void initTitle() { Title title = getCustomTitle(); - title.findViewById(R.id.title_bg).setBackgroundResource(R.color.yellow_ffd33e); + title.findViewById(R.id.title_bg).setBackgroundResource(R.color.white); title.dismissBottomLine(); title.dimissRight(); title.dismissLeft(); @@ -155,7 +155,7 @@ public class SearchActivity extends BaseActivity implements View.OnClickListener MainManager.search(this, mSelectedType, searchText, mSelectedGender, new HttpUiCallBack() { @Override public void onSuccess(BaseActivity activity, SearchListBean result, String message) { - mOptionView.setVisibility(View.GONE); +// mOptionView.setVisibility(View.GONE); mListView.setVisibility(View.VISIBLE); mSearchList.clear(); mSearchList.addAll(result.getList()); diff --git a/app/src/main/res/drawable/shape_search_layout.xml b/app/src/main/res/drawable/shape_search_layout.xml index 3c6b7e7..672748e 100644 --- a/app/src/main/res/drawable/shape_search_layout.xml +++ b/app/src/main/res/drawable/shape_search_layout.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_search.xml b/app/src/main/res/layout/activity_search.xml index e583c17..70ad775 100644 --- a/app/src/main/res/layout/activity_search.xml +++ b/app/src/main/res/layout/activity_search.xml @@ -3,7 +3,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:viewBindingIgnore="true"> + tools:viewBindingIgnore="true" + android:background="@color/white"> diff --git a/app/src/main/res/layout/fragment_dynamic_view_pager2.xml b/app/src/main/res/layout/fragment_dynamic_view_pager2.xml new file mode 100644 index 0000000..d4bac68 --- /dev/null +++ b/app/src/main/res/layout/fragment_dynamic_view_pager2.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main_recommend2.xml b/app/src/main/res/layout/fragment_main_recommend2.xml index 14864e3..8ade0c2 100644 --- a/app/src/main/res/layout/fragment_main_recommend2.xml +++ b/app/src/main/res/layout/fragment_main_recommend2.xml @@ -45,7 +45,6 @@ @@ -58,7 +57,6 @@ diff --git a/app/src/main/res/layout/item_dynamic_list1.xml b/app/src/main/res/layout/item_dynamic_list1.xml index 134a5d6..9fd7814 100644 --- a/app/src/main/res/layout/item_dynamic_list1.xml +++ b/app/src/main/res/layout/item_dynamic_list1.xml @@ -270,18 +270,6 @@ android:gravity="center_vertical" android:orientation="vertical"> - - - + android:layout_width="match_parent" + android:layout_height="wrap_content"> - + android:layout_marginStart="16dp" + android:gravity="center_vertical" + android:orientation="horizontal"> - - + + + + + + + + + + + + + + + + + - - - + android:src="@drawable/ic_return" /> + + + android:textSize="12sp" />