From 2b31767a809515e05d307fe7273d0d82c6351aff Mon Sep 17 00:00:00 2001
From: oujunhui <313127320@qq.com>
Date: Mon, 27 Apr 2020 17:46:30 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yizhuan/erban/MainActivity.java | 2 +-
.../home/activity/HomeMoreRoomActivity.java | 14 +-
.../home/adapter/HomeConcernsAdapter.java | 17 +-
.../home/adapter/HomeRoomFragmentAdapter.java | 69 ++---
.../adapter/MainMagicIndicatorAdapter.java | 40 ++-
.../erban/home/bean/HomeTabMapInfo.java | 17 +-
.../erban/home/fragment/GameHomeFragment.java | 272 +++++++-----------
.../home/fragment/HomeDynamicFragment.java | 6 +-
.../home/fragment/HomeTabHomeFragment.java | 31 +-
.../home/fragment/HomeTabMapFragment.java | 21 +-
.../erban/home/fragment/MainFragment.java | 11 +
.../erban/home/fragment/MeFragment.java | 11 +
.../home/presenter/MainFragmentPresenter.java | 72 +++--
.../erban/home/view/IMainFragmentView.java | 15 +
.../main/res/drawable/bg_living_my_room.xml | 11 +
app/src/main/res/layout/activity_charge.xml | 8 +
.../res/layout/activity_home_more_room.xml | 2 +-
app/src/main/res/layout/activity_main.xml | 2 +-
.../main/res/layout/fragment_game_home.xml | 188 ++++++------
.../main/res/layout/item_erban_grid_empty.xml | 14 +-
.../main/res/layout/item_home_concerns.xml | 12 +-
app/src/main/res/layout/item_home_tab_map.xml | 5 +-
app/src/main/res/values/colors.xml | 1 +
.../res/layout/fragment_home_dynamic.xml | 10 -
24 files changed, 487 insertions(+), 364 deletions(-)
create mode 100644 app/src/main/res/drawable/bg_living_my_room.xml
diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java
index 82333dec2..79b23352b 100644
--- a/app/src/main/java/com/yizhuan/erban/MainActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java
@@ -573,7 +573,7 @@ public class MainActivity extends BaseMvpActivity
private void initMaterialView() {
avatarLayout.setVisibility(View.GONE);
- avatarImage.setOnClickListener(v -> {
+ avatarLayout.setOnClickListener(v -> {
RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo;
if (roomInfo != null) {
if (AvRoomDataManager.get().isParty()) {
diff --git a/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java b/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java
index accd9bdab..39fd69a8c 100644
--- a/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/home/activity/HomeMoreRoomActivity.java
@@ -73,9 +73,7 @@ public class HomeMoreRoomActivity extends BaseMvpActivity list = adapter.getData();
if (position >= 0 && position < list.size()) {
-//// ImeUtil.hideIME(HomeMoreRoomActivity.this, tvSearch);
HomeConcernsInfo record = list.get(position);
-// if (record.isValid()) {
-// list.remove(position);
-// list.add(0, record);
-// mFollowRoomsAdapter.setNewData(list);
-// }
AVRoomActivity.start(HomeMoreRoomActivity.this, record.getRoomUid());
}
}
@@ -173,14 +164,11 @@ public class HomeMoreRoomActivity extends BaseMvpActivity 首页热门adapter
*
* @author Administrator
* @date 2017/11/16
*/
-public class HomeRoomFragmentAdapter extends BaseQuickAdapter {
+public class HomeRoomFragmentAdapter extends BaseMultiItemQuickAdapter {
private int mBadgeHeight;
private Context mContext;
/**
* 校验跳转房间的频率
*/
- public HomeRoomFragmentAdapter(Context context) {
- super(R.layout.item_home_tab_map);
+ public HomeRoomFragmentAdapter(Context context, List data) {
+ super(data);
+ addItemType(HomeTabMapInfo.TYPE_NORMAL,R.layout.item_home_tab_map);
+ addItemType(HomeTabMapInfo.TYPE_EMPTY,R.layout.item_erban_grid_empty);
this.mContext = context;
mBadgeHeight = (int) context.getResources().getDimension(R.dimen.tag_height);
@@ -45,24 +44,22 @@ public class HomeRoomFragmentAdapter extends BaseQuickAdapter mTitleList;
+ private boolean mIsShowIndicator;
- public MainMagicIndicatorAdapter(Context context, List extends CharSequence> charSequences) {
+ public MainMagicIndicatorAdapter(Context context, List extends CharSequence> charSequences,boolean isShowIndicator) {
this.mContext = context;
this.mTitleList = charSequences;
+ this.mIsShowIndicator = isShowIndicator;
}
@Override
@@ -31,9 +38,9 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
@Override
public IPagerTitleView getTitleView(Context context, final int i) {
ScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new ScaleTransitionPagerTitleView(context, true, 8);
- scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(mContext, R.color.color_white));
- scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(mContext, R.color.color_white));
- scaleTransitionPagerTitleView.setMinScale(0.7f);
+ scaleTransitionPagerTitleView.setNormalColor(mIsShowIndicator?ContextCompat.getColor(mContext, R.color.color_white):ContextCompat.getColor(mContext, R.color.color_666666));
+ scaleTransitionPagerTitleView.setSelectedColor(mIsShowIndicator?ContextCompat.getColor(mContext, R.color.color_white):ContextCompat.getColor(mContext, R.color.color_333333));
+ scaleTransitionPagerTitleView.setMinScale(0.8f);
scaleTransitionPagerTitleView.setTextSize(18);
int padding = UIUtil.dip2px(context, 5);
scaleTransitionPagerTitleView.setPadding(padding,0,padding,0);
@@ -43,6 +50,10 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
if (mOnItemSelectListener != null) {
mOnItemSelectListener.onItemSelect(i, scaleTransitionPagerTitleView);
}
+
+ if (mOnBottomItemSelectListener != null) {
+ mOnBottomItemSelectListener.onBottomItemSelect(i, scaleTransitionPagerTitleView);
+ }
});
return scaleTransitionPagerTitleView;
}
@@ -50,7 +61,16 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
@Override
public IPagerIndicator getIndicator(Context context) {
- return null;
+ LinePagerIndicator indicator = new LinePagerIndicator(context);
+ indicator.setMode(LinePagerIndicator.MODE_EXACTLY);
+ indicator.setLineHeight(UIUtil.dip2px(mContext, 5));
+ indicator.setRoundRadius(UIUtil.dip2px(mContext, 5));
+ indicator.setLineWidth(UIUtil.dip2px(mContext, 9));
+ indicator.setColors(context.getResources().getColor(R.color.white));
+ FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ lp.bottomMargin = 0;
+ indicator.setLayoutParams(lp);
+ return mIsShowIndicator?indicator:null;
}
private OnItemSelectListener mOnItemSelectListener;
@@ -62,4 +82,14 @@ public class MainMagicIndicatorAdapter extends CommonNavigatorAdapter {
public interface OnItemSelectListener {
void onItemSelect(int position, TextView view);
}
+
+ private OnBottomItemSelectListener mOnBottomItemSelectListener;
+
+ public void setOnBottomItemSelectListener(OnBottomItemSelectListener onBottomItemSelectListener) {
+ mOnBottomItemSelectListener = onBottomItemSelectListener;
+ }
+
+ public interface OnBottomItemSelectListener {
+ void onBottomItemSelect(int position, TextView view);
+ }
}
diff --git a/app/src/main/java/com/yizhuan/erban/home/bean/HomeTabMapInfo.java b/app/src/main/java/com/yizhuan/erban/home/bean/HomeTabMapInfo.java
index ebc89e01a..a0f7c9a34 100644
--- a/app/src/main/java/com/yizhuan/erban/home/bean/HomeTabMapInfo.java
+++ b/app/src/main/java/com/yizhuan/erban/home/bean/HomeTabMapInfo.java
@@ -1,6 +1,10 @@
package com.yizhuan.erban.home.bean;
-public class HomeTabMapInfo {
+import com.chad.library.adapter.base.entity.MultiItemEntity;
+
+import java.io.Serializable;
+
+public class HomeTabMapInfo implements MultiItemEntity, Serializable {
/**
* onlineNum : 1
@@ -17,6 +21,9 @@ public class HomeTabMapInfo {
private String avatar;
private int seq;
private boolean isTop;
+ public static final int TYPE_EMPTY = 0;
+ public static final int TYPE_NORMAL = 1;
+ private int itemType=0;
public int getOnlineNum() {
return onlineNum;
@@ -66,4 +73,12 @@ public class HomeTabMapInfo {
this.isTop = isTop;
}
+ public void setItemType(int itemType) {
+ this.itemType = itemType;
+ }
+
+ @Override
+ public int getItemType() {
+ return itemType;
+ }
}
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java
index c63de5d73..54f1dac6d 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/GameHomeFragment.java
@@ -5,28 +5,19 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.text.Spannable;
-import android.text.SpannableString;
import android.text.SpannableStringBuilder;
-import android.text.Spanned;
-import android.text.style.DynamicDrawableSpan;
import android.text.style.ForegroundColorSpan;
-import android.text.style.ImageSpan;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
-import android.widget.ArrayAdapter;
-import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.ListView;
-import android.widget.PopupWindow;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -35,7 +26,6 @@ import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
@@ -44,6 +34,8 @@ import com.amap.api.location.AMapLocationListener;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import com.bumptech.glide.request.RequestOptions;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.coorchice.library.utils.LogUtils;
import com.google.android.material.appbar.AppBarLayout;
import com.jude.rollviewpager.Util;
import com.jude.rollviewpager.hintview.ColorPointHintView;
@@ -57,42 +49,36 @@ import com.yizhuan.erban.avroom.activity.AVRoomActivity;
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
import com.yizhuan.erban.avroom.game.MatchActivity;
import com.yizhuan.erban.base.BaseMvpFragment;
-import com.yizhuan.erban.base.list.BaseViewHolder;
-import com.yizhuan.erban.base.list.CommonAdapter;
import com.yizhuan.erban.bindadapter.BaseAdapter;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.databinding.FragmentGameHomeBinding;
import com.yizhuan.erban.home.activity.HomeMoreRoomActivity;
import com.yizhuan.erban.home.adapter.BannerAdapter;
+import com.yizhuan.erban.home.adapter.HomeConcernsAdapter;
import com.yizhuan.erban.home.adapter.MainMagicIndicatorAdapter;
import com.yizhuan.erban.home.bean.HomeTagInfo;
import com.yizhuan.erban.home.dialog.CreateRoomDialog;
import com.yizhuan.erban.home.event.RefreshHomeDataEvent;
-import com.yizhuan.erban.home.model.HomeModel;
import com.yizhuan.erban.home.presenter.MainFragmentPresenter;
import com.yizhuan.erban.home.view.IMainFragmentView;
import com.yizhuan.erban.location.LocationManager;
import com.yizhuan.erban.location.LocationUploadEvent;
import com.yizhuan.erban.radish.signin.SignInActivity;
-import com.yizhuan.erban.ui.indicator_impl.IndicatorHelper;
import com.yizhuan.erban.ui.search.SearchActivity;
-import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.erban.ui.widget.OnPageSelectedListener;
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
-import com.yizhuan.erban.utils.CommonJumpHelper;
+import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.certification.CertificationModel;
-import com.yizhuan.xchat_android_core.family.bean.HomeBannerInfo;
-import com.yizhuan.xchat_android_core.family.bean.HomeTitleInfo;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
+import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo;
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
-import com.yizhuan.xchat_android_core.im.custom.bean.RouterType;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
@@ -108,8 +94,8 @@ import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.net.rxnet.callback.CallBack;
-import com.yizhuan.xchat_android_library.utils.JavaUtil;
import com.yizhuan.xchat_android_library.utils.ListUtils;
+import com.yizhuan.xchat_android_library.utils.SizeUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@@ -119,7 +105,6 @@ import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.Objects;
import io.reactivex.Observable;
import io.reactivex.ObservableOnSubscribe;
@@ -131,16 +116,13 @@ import io.reactivex.schedulers.Schedulers;
import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE;
import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE;
import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE;
-import static com.yizhuan.xchat_android_core.home.bean.BannerInfo.SKIP_TYPE_ROUTER;
-import static com.yizhuan.xchat_android_core.home.bean.BannerInfo.SKIP_TYP_APP;
-import static com.yizhuan.xchat_android_core.home.bean.BannerInfo.SKIP_TYP_H5;
/**
* 66星球首页
*/
@CreatePresenter(MainFragmentPresenter.class)
public class GameHomeFragment extends BaseMvpFragment
- implements IMainFragmentView, View.OnClickListener, MainMagicIndicatorAdapter.OnItemSelectListener {
+ implements IMainFragmentView, View.OnClickListener, MainMagicIndicatorAdapter.OnItemSelectListener, MainMagicIndicatorAdapter.OnBottomItemSelectListener {
public static final String TAG = "GameHomeFragment";
private FragmentGameHomeBinding mBinding;
@@ -166,6 +148,7 @@ public class GameHomeFragment extends BaseMvpFragment mFragments;
+ private List mFragmentsBottom;
private volatile boolean isUserLogin;
/**
@@ -182,6 +165,8 @@ public class GameHomeFragment extends BaseMvpFragment {
+// if (verticalOffset == 0)
+// {
+// LogUtils.e("展开状态");
+// mBinding.collapsingLayout.setContentScrim(null);
+// }
+// else if (Math.abs(verticalOffset) >= appBarLayout.getTotalScrollRange())
+// {
+// LogUtils.e("折叠状态");
+// mBinding.collapsingLayout.setContentScrimResource(R.color.color_7154EE);
+// }
+// else
+// {
+// LogUtils.e("中间状态");
+// mBinding.collapsingLayout.setContentScrimResource(R.color.color_7154EE);
+// }
+// });
}
private void initRefreshView() {
- mBinding.appBar.addOnOffsetChangedListener((AppBarLayout.OnOffsetChangedListener) (appBarLayout, i) -> {
+ mBinding.appBar.addOnOffsetChangedListener((appBarLayout, i) -> {
if (i >= 0) {
mBinding.refreshLayout.setEnabled(true); //当滑动到顶部的时候开启
} else {
@@ -273,6 +277,7 @@ public class GameHomeFragment extends BaseMvpFragment tagList = new ArrayList<>();
- List fragmentList = new ArrayList<>();
+ mFragmentsBottom = new ArrayList<>();
tagList.add(getResources().getString(R.string.home_tab_dynamic));
tagList.add(getResources().getString(R.string.home_tab_caht));
- fragmentList.add(HomeDynamicFragment.newInstance());
- fragmentList.add(HomePlayFragment.newInstance());
+ mFragmentsBottom.add(HomeDynamicFragment.newInstance());
+ mFragmentsBottom.add(HomePlayFragment.newInstance());
//init viewpager
- mBinding.viewPagerBottom.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragmentList));
-
+// mBinding.viewPagerBottom.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragmentList));
+//
+// mBinding.viewPagerBottom.addOnPageChangeListener(new OnPageSelectedListener() {
+// @Override
+// public void onPageSelected(int position) {
+// StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_SQUARE_RECOMMEND_FOLLOW,
+// "切换推荐和关注tab-区分-" + ((position == 0) ? "动态" : "聊天交友"));
+// }
+// });
+ CommonNavigator commonNavigator = new CommonNavigator(getContext());
+ MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(getContext(), tagList,false);
+ magicIndicatorAdapter.setOnBottomItemSelectListener(this);
+ commonNavigator.setAdapter(magicIndicatorAdapter);
+ mBinding.magicIndicatorBottom.setNavigator(commonNavigator);
+ commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+ mBinding.viewPagerBottom.setOffscreenPageLimit(5);
+ mBinding.viewPagerBottom.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), mFragmentsBottom));
mBinding.viewPagerBottom.addOnPageChangeListener(new OnPageSelectedListener() {
@Override
public void onPageSelected(int position) {
- StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_SQUARE_RECOMMEND_FOLLOW,
- "切换推荐和关注tab-区分-" + ((position == 0) ? "动态" : "聊天交友"));
+
}
});
-
- CommonNavigator commonNavigator = new CommonNavigator(getContext());
- MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(getContext(), tagList);
- magicIndicatorAdapter.setOnItemSelectListener(this);
-
- commonNavigator.setAdapter(magicIndicatorAdapter);
- mBinding.magicIndicatorBottom.setNavigator(commonNavigator);
- //init indicator
- IndicatorHelper.handle(getContext(), mBinding.viewPagerBottom, mBinding.magicIndicatorBottom, tagList);
+ ViewPagerHelper.bind(mBinding.magicIndicatorBottom, mBinding.viewPagerBottom);
}
@@ -556,6 +566,46 @@ public class GameHomeFragment extends BaseMvpFragment list) {
+ if (list != null && list.size() > 0) {
+ mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
+ mFollowRoomsAdapter.setNewData(list);
+ } else {
+ mBinding.rvFollowRoom.setVisibility(View.GONE);
+ }
+ }
+
+ @Override
+ public void getFollowRoomFail() {
+
+ }
+
+ /**
+ * 顶部关注房间
+ */
+ private void initRoomConcern() {
+ mFollowRoomsAdapter = new HomeConcernsAdapter(null,mContext);
+ mBinding.rvFollowRoom.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
+ mBinding.rvFollowRoom.addItemDecoration(new VerticalDecoration(SizeUtils.dp2px(mContext, 10), false, true));
+ mFollowRoomsAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
+ @Override
+ public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
+ StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_SEARCH_RECENT_ENTER_ROOM, "最近进房记录");
+ List list = adapter.getData();
+ if (position >= 0 && position < list.size()) {
+ HomeConcernsInfo record = list.get(position);
+ AVRoomActivity.start(mContext, record.getRoomUid());
+ }
+ }
+ });
+ mBinding.rvFollowRoom.setAdapter(mFollowRoomsAdapter);
+ }
+
+ private void getHomeConcern(){
+ getMvpPresenter().getHomeConcerns();
+ }
+
@Override
public void titleListSuccess(List tagListInfoList) {
@@ -566,11 +616,13 @@ public class GameHomeFragment extends BaseMvpFragment convert(@NonNull List homeTitleInfos) {
- List list = new ArrayList<>(homeTitleInfos.size());
- for (HomeTitleInfo homeTitleInfo : homeTitleInfos) {
- list.add(homeTitleInfo.getName());
- }
- return list;
}
/**
- * 显示下拉框
- *
- * @param opts 下拉列表
+ * 底部动态聊天交友
+ * @param position
+ * @param view
*/
- private void showPopup(List opts, TextView targetView, int itemPosition) {
- List labels = convert(opts);
-
- int currentPosition = 0;
- if (targetView.getTag() == null) {
- for (int i = 0; i < opts.size(); i++) {
- HomeTitleInfo item = opts.get(i);
- if (targetView.getText().toString().startsWith(item.getName())) {
- currentPosition = i;
- break;
- }
- }
- } else {
- currentPosition = (Integer) targetView.getTag();
- }
-
- View view = getLayoutInflater().inflate(R.layout.layout_home_pop_list, null);
- PopupWindow popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
- popupWindow.setOutsideTouchable(true);
- popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
- popupWindow.setFocusable(true);
- ListView listView = popupWindow.getContentView().findViewById(R.id.listView);
-
-
- int finalCurrentPosition = currentPosition;
- listView.setAdapter(new ArrayAdapter(getContext(), R.layout.item_pop_list, labels) {
- @NonNull
- @Override
- public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
- CheckBox tv = (CheckBox) super.getView(position, convertView, parent);
- tv.setChecked(finalCurrentPosition == position);
- tv.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- targetView.setText(labels.get(position));
- targetView.setTag(position);
- popupWindow.dismiss();
- refreshFragment(itemPosition, String.valueOf(opts.get(position).getId()), opts.get(position).getName());
- opts.get(position).saveDefault();
- }
- });
- return tv;
- }
- });
-
- popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
- @Override
- public void onDismiss() {
- setTabArrow(targetView, false);
- backgroundAlpha(1.0f);
- }
- });
- popupWindow.showAsDropDown(targetView, ScreenUtil.dip2px(6), 0);
- backgroundAlpha(0.6f);
- setTabArrow(targetView, true);
- }
-
- private void refreshFragment(int itemPosition, String type, String name) {
- if (mFragments == null) {
+ @Override
+ public void onBottomItemSelect(int position, TextView view) {
+ if (mFragmentsBottom == null || mFragmentsBottom.isEmpty()) {
return;
}
- Fragment fragment = mFragments.get(itemPosition);
+ Fragment fragment = mFragmentsBottom.get(position);
if (fragment == null) {
return;
}
- if (fragment instanceof RecommendationFragment) {
- StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HOME_GODDESS_OF_HARMONY, "首页-" + name);
- ((RecommendationFragment) fragment).setTypeAndRefresh(type, name);
- }
-
+ mBinding.viewPagerBottom.setCurrentItem(position);
}
- private void setTabArrow(TextView tv, boolean isUp) {
- String text = tv.getText().toString();
- SpannableString ss = getArrowSpannableString(isUp, text);
- tv.setText(ss);
- LogUtil.i("test", tv.getText().toString());
- }
-
- /**
- * 转换成带箭头的文本
- */
- private SpannableString getArrowSpannableString(boolean isUp, String text) {
- if (!text.endsWith("[arrow]")) {
- text = text + " [arrow]";
- }
- SpannableString ss = new SpannableString(text);
- ss.setSpan(new ImageSpan(getContext(), isUp ? R.drawable.ic_home_arrow_up_black : R.drawable.ic_home_arrow_down_black, DynamicDrawableSpan.ALIGN_BASELINE), text.length() - "[arrow]".length(), text.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
- return ss;
- }
@Override
public void onGetFirstPageBannerFailed(String message) {
@@ -731,14 +695,11 @@ public class GameHomeFragment extends BaseMvpFragment bannerList){
//审核中状态,去掉跳转房间banner
if (MarketVerifyModel.get().isMarketChecking()) {
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java
index 0b96790f0..bfe057bcc 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeDynamicFragment.java
@@ -1,5 +1,6 @@
package com.yizhuan.erban.home.fragment;
+import android.annotation.SuppressLint;
import android.graphics.Rect;
import android.os.Bundle;
import androidx.annotation.Nullable;
@@ -40,8 +41,6 @@ public class HomeDynamicFragment extends BaseFragment{
Unbinder unbinder;
@BindView(R.id.recycler_view)
RecyclerView recyclerView;
-// @BindView(R.id.refresh_layout)
-// SwipeRefreshLayout refreshLayout;
private boolean isLoading = false;
@@ -100,6 +99,7 @@ public class HomeDynamicFragment extends BaseFragment{
getHomeDynamic();
}
+ @SuppressLint("CheckResult")
private void getHomeDynamic(){
HomeModel.get().getHomeDynamic().subscribe((serviceResult, throwable) -> {
if (throwable != null) {
@@ -118,6 +118,8 @@ public class HomeDynamicFragment extends BaseFragment{
});
}
+
+
@Override
public void onReloadData() {
loadData();
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java
index 652a6544d..bc4502734 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabHomeFragment.java
@@ -15,6 +15,7 @@ import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseFragment;
import com.yizhuan.erban.common.NoDataFragment;
import com.yizhuan.erban.home.adapter.HomeRoomFragmentAdapter;
+import com.yizhuan.erban.home.bean.HomeTabMapInfo;
import com.yizhuan.erban.home.model.HomeModel;
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
@@ -106,7 +107,7 @@ public class HomeTabHomeFragment extends BaseFragment {
showNoData();
mHomeRoomAdapter.notifyDataSetChanged();
}
- mHomeRoomAdapter.setNewData(serviceResult);
+ mHomeRoomAdapter.setNewData(getMultipleItemData(serviceResult));
mHomeRoomAdapter.notifyDataSetChanged();
} else {
@@ -120,7 +121,7 @@ public class HomeTabHomeFragment extends BaseFragment {
private void initRecyclerView() {
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerView.setItemAnimator(null);
- mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext());
+ mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext(),null);
mHomeRoomAdapter.setEnableLoadMore(false);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), ROWS);
mHomeRoomAdapter.setEnableLoadMore(false);
@@ -134,6 +135,32 @@ public class HomeTabHomeFragment extends BaseFragment {
}
+ //重点转化方法啊,
+ /**
+ * 添加布局Itemtype
+ * @param itemList
+ * @return
+ */
+ private List getMultipleItemData(List itemList) {
+ if (null==itemList||itemList.size()<=0){
+ return null;
+ }
+
+ final int ROOM_COUNT = 6;
+ final int ADD_COUNT = ROOM_COUNT - itemList.size();
+
+ for (int i = 0; i < ADD_COUNT; i++) {
+ HomeTabMapInfo info = new HomeTabMapInfo();
+ info.setItemType(HomeTabMapInfo.TYPE_EMPTY);
+ itemList.add(info);
+ }
+
+ for (int i = 0; i < itemList.size(); i++) {
+ itemList.get(i).setItemType(itemList.get(i).getRoomTitle() == null?HomeTabMapInfo.TYPE_EMPTY:HomeTabMapInfo.TYPE_NORMAL);
+ }
+ return itemList;
+ }
+
@Override
public void initiate() {
refreshData();
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java
index 5f7766d86..bcda57401 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/HomeTabMapFragment.java
@@ -12,7 +12,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseMvpFragment;
-import com.yizhuan.erban.community.publish.presenter.WorldChoosePresenter;
import com.yizhuan.erban.home.adapter.HomeRoomFragmentAdapter;
import com.yizhuan.erban.home.bean.HomeTabMapInfo;
import com.yizhuan.erban.home.presenter.HomeTabMapPresenter;
@@ -91,15 +90,16 @@ public class HomeTabMapFragment extends BaseMvpFragment getMultipleItemData(List itemList) {
+ if (null==itemList||itemList.size()<=0){
+ return null;
+ }
+
+ for (int i = 0; i < itemList.size(); i++) {
+ itemList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);
+ }
+ return itemList;
+ }
+
@Override
public void homeTabMapFails(String error) {
hideStatus();
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java
index 07ca195e8..1a0be6c8a 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MainFragment.java
@@ -35,6 +35,7 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.certification.CertificationModel;
import com.yizhuan.xchat_android_core.family.bean.HomeBannerInfo;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
+import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo;
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
@@ -315,6 +316,16 @@ public class MainFragment extends BaseMvpFragment infos) {
+
+ }
+
+ @Override
+ public void getFollowRoomFail() {
+
+ }
+
@Override
public void titleListSuccess(List tagListInfoList) {
showByMarketCheckingStatus(tagListInfoList);
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java
index 2132153e6..efee303d2 100644
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java
+++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java
@@ -39,6 +39,7 @@ import com.yizhuan.xchat_android_core.customer_server.CustomerServerModel;
import com.yizhuan.xchat_android_core.decoration.headwear.bean.HeadWearInfo;
import com.yizhuan.xchat_android_core.family.bean.HomeBannerInfo;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
+import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo;
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
@@ -647,6 +648,16 @@ public class MeFragment extends BaseMvpFragment infos) {
+
+ }
+
+ @Override
+ public void getFollowRoomFail() {
+
+ }
+
@Override
public void titleListSuccess(List tagListInfoList) {
diff --git a/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java b/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java
index 1921bc50b..b6a0ca331 100644
--- a/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java
+++ b/app/src/main/java/com/yizhuan/erban/home/presenter/MainFragmentPresenter.java
@@ -5,6 +5,7 @@ import android.os.Bundle;
import androidx.annotation.Nullable;
import android.text.TextUtils;
+import com.netease.nim.uikit.common.util.log.LogUtil;
import com.yizhuan.erban.base.BaseMvpPresenter;
import com.yizhuan.erban.home.bean.HomeTagInfo;
import com.yizhuan.erban.home.view.IMainFragmentView;
@@ -290,42 +291,56 @@ public class MainFragmentPresenter extends BaseMvpPresenter {
* 获取首页banner
*/
public void getHomeBanner(String type) {
- if (mDisposable != null && !mDisposable.isDisposed()) {
- return;
- }
- mDisposable = com.yizhuan.erban.home.model.HomeModel.get()
+ com.yizhuan.erban.home.model.HomeModel.get()
.getHomeBanner(type)
- .compose(bindUntilEvent(PresenterEvent.DESTROY))
- .subscribe(new BiConsumer, Throwable>() {
+ .compose(bindToLifecycle())
+ .subscribe(new SingleObserver>() {
@Override
- public void accept(List infos, Throwable throwable) throws Exception {
- if (throwable == null) {
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onSuccess(List infos) {
+ IMainFragmentView iMainFragmentView = getMvpView();
+ if (iMainFragmentView != null)
getMvpView().onGetHomeBannerSuccess(infos);
- }
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ LogUtil.e(e.getMessage());
}
});
- mCompositeDisposable.add(mDisposable);
}
/**
- * 获取首页banner和tab
+ * 获取首页tag
*/
public void getHomeTag() {
- if (mDisposable != null && !mDisposable.isDisposed()) {
- return;
- }
- mDisposable = com.yizhuan.erban.home.model.HomeModel.get()
+ com.yizhuan.erban.home.model.HomeModel.get()
.getHomeTag()
- .compose(bindUntilEvent(PresenterEvent.DESTROY))
- .subscribe(new BiConsumer, Throwable>() {
+ .compose(bindToLifecycle())
+ .subscribe(new SingleObserver>() {
@Override
- public void accept(List infos, Throwable throwable) throws Exception {
- if (throwable == null) {
+ public void onSubscribe(Disposable d) {
+
+ }
+
+ @Override
+ public void onSuccess(List infos) {
+ IMainFragmentView iMainFragmentView = getMvpView();
+ if (iMainFragmentView != null)
getMvpView().onGetHomeTagSuccess(infos);
- }
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ LogUtil.e(e.getMessage());
}
});
- mCompositeDisposable.add(mDisposable);
}
public void uploadAddress(long uid, String address, int adcode, double longitude, double latitude) {
@@ -355,4 +370,19 @@ public class MainFragmentPresenter extends BaseMvpPresenter {
});
}
+ @SuppressLint("CheckResult")
+ public void getHomeConcerns(){
+ com.yizhuan.erban.home.model.HomeModel.get().getHomeConcerns().subscribe((result, throwable) -> {
+ if (throwable != null) {
+ if (mMvpView != null) {
+ mMvpView.getFollowRoomFail();
+ }
+ } else {
+ if (mMvpView != null) {
+ mMvpView.getFollowRoomsSuccess(result);
+ }
+ }
+ });
+ }
+
}
diff --git a/app/src/main/java/com/yizhuan/erban/home/view/IMainFragmentView.java b/app/src/main/java/com/yizhuan/erban/home/view/IMainFragmentView.java
index c3b5fe5bf..aa3ad0d10 100644
--- a/app/src/main/java/com/yizhuan/erban/home/view/IMainFragmentView.java
+++ b/app/src/main/java/com/yizhuan/erban/home/view/IMainFragmentView.java
@@ -3,6 +3,7 @@ package com.yizhuan.erban.home.view;
import com.yizhuan.erban.home.bean.HomeTagInfo;
import com.yizhuan.xchat_android_core.family.bean.HomeBannerInfo;
import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
+import com.yizhuan.xchat_android_core.home.bean.HomeConcernsInfo;
import com.yizhuan.xchat_android_core.home.bean.TagListInfo;
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
import com.yizhuan.xchat_android_core.home.bean.HomeItem;
@@ -27,6 +28,9 @@ public interface IMainFragmentView extends IMvpBaseView {
void showByMarketCheckingStatus(List tagListInfoList);
+ void getFollowRoomsSuccess(List infos);
+
+ void getFollowRoomFail();
/**
* 假实现,用于在View销毁后 调用View方法导致空指针问题,的一种解决方案
@@ -43,6 +47,16 @@ public interface IMainFragmentView extends IMvpBaseView {
}
+ @Override
+ public void getFollowRoomsSuccess(List infos) {
+
+ }
+
+ @Override
+ public void getFollowRoomFail() {
+
+ }
+
@Override
public void titleListSuccess(List tagListInfoList) {
@@ -98,4 +112,5 @@ public interface IMainFragmentView extends IMvpBaseView {
void onGetHomeTagSuccess(List tagInfos);
+
}
diff --git a/app/src/main/res/drawable/bg_living_my_room.xml b/app/src/main/res/drawable/bg_living_my_room.xml
new file mode 100644
index 000000000..bcd7d8874
--- /dev/null
+++ b/app/src/main/res/drawable/bg_living_my_room.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_charge.xml b/app/src/main/res/layout/activity_charge.xml
index e1066bec8..8c2a26b77 100644
--- a/app/src/main/res/layout/activity_charge.xml
+++ b/app/src/main/res/layout/activity_charge.xml
@@ -259,6 +259,14 @@
android:textSize="@dimen/dp_15"
android:layout_marginBottom="@dimen/dp_40"
app:layout_constraintBottom_toBottomOf="parent" />
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_home_more_room.xml b/app/src/main/res/layout/activity_home_more_room.xml
index 9e6574539..cf3ad871a 100644
--- a/app/src/main/res/layout/activity_home_more_room.xml
+++ b/app/src/main/res/layout/activity_home_more_room.xml
@@ -36,7 +36,7 @@
diff --git a/app/src/main/res/layout/fragment_game_home.xml b/app/src/main/res/layout/fragment_game_home.xml
index 26bf1397e..23980ef58 100644
--- a/app/src/main/res/layout/fragment_game_home.xml
+++ b/app/src/main/res/layout/fragment_game_home.xml
@@ -52,107 +52,115 @@
-
+
+
+
+ android:minHeight="55dp"
+ app:layout_constraintTop_toTopOf="parent" />
-
-
-
-
-
-
-
+
-
-
+
-
-
-
-
-
-
-
-
-
+ android:layout_height="48dp"
+ android:gravity="center"
+ android:text="更多房间"
+ android:onClick="@{click}"
+ android:textColor="@color/white"
+ android:textSize="@dimen/dp_12"
+ android:drawablePadding="@dimen/dp_5"
+ android:drawableRight="@drawable/arrow_right_white"
+ />
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_erban_grid_empty.xml b/app/src/main/res/layout/item_erban_grid_empty.xml
index e66b22b45..e62c0c32f 100644
--- a/app/src/main/res/layout/item_erban_grid_empty.xml
+++ b/app/src/main/res/layout/item_erban_grid_empty.xml
@@ -6,17 +6,24 @@
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
tools:layout_width="108dp"
+ android:layout_marginStart="3dp"
+ android:layout_marginEnd="3dp"
+ android:layout_marginTop="1.5dp"
+ android:background="@drawable/bg_corner_shadow_12"
android:orientation="vertical">
+ android:layout_height="match_parent"
+ android:layout_marginStart="@dimen/dp_2"
+ android:layout_marginEnd="@dimen/dp_2"
+ android:layout_marginBottom="@dimen/dp_4">
@@ -36,6 +43,7 @@
+ android:layout_height="@dimen/dp_15"
+ />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_home_concerns.xml b/app/src/main/res/layout/item_home_concerns.xml
index c0ad48f29..e862519ce 100644
--- a/app/src/main/res/layout/item_home_concerns.xml
+++ b/app/src/main/res/layout/item_home_concerns.xml
@@ -10,7 +10,7 @@
@@ -19,16 +19,19 @@
android:id="@+id/civ_room_avatar"
android:layout_width="50dp"
android:layout_height="50dp"
- app:civ_border_width="1dp"
+ app:civ_border_width="2dp"
+ tools:src="@color/multiple_image_select_accent"
app:civ_border_color="@color/appColor"/>
@@ -29,9 +30,9 @@
#F770FF
#EFEBFF
+ #FF6B82
diff --git a/app/src/module_community/res/layout/fragment_home_dynamic.xml b/app/src/module_community/res/layout/fragment_home_dynamic.xml
index 8c5cefa2c..a5a8b4b8b 100644
--- a/app/src/module_community/res/layout/fragment_home_dynamic.xml
+++ b/app/src/module_community/res/layout/fragment_home_dynamic.xml
@@ -3,14 +3,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file