diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1e725bd35..fd9da0c1d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -603,6 +603,10 @@
android:name=".home.activity.CollectionRoomActivity"
android:label="收藏房间"
android:screenOrientation="portrait" />
+
mFragments;
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_home_more_room);
+ ButterKnife.bind(this);
+ initTitleBar("房间",true);
+ initRoomTitleTab();
+ }
+
+ public static void start(Context context) {
+ Intent intent = new Intent(context, HomeMoreRoomActivity.class);
+ context.startActivity(intent);
+ }
+
+
+ private void initRoomTitleTab() {
+ List mTabInfoList = new ArrayList<>();
+ if (!ListUtils.isListEmpty(mFragments)) {
+ mFragments.clear();
+ }
+ mFragments = new ArrayList<>();
+
+ HomeModel.get().getHomeTag().subscribe((serviceResult, throwable) -> {
+ if (throwable != null) {
+ } else {
+ List info = serviceResult;
+ for (int i = 0; i < info.size(); i++) {
+ //过滤对象是空和没有标签名同时也没有子标签的情况
+ CharSequence title;
+ int tabId;
+ Fragment fragment;
+ String name = info.get(i).getName();
+ if (name != null) {
+ name = name.trim();
+ }
+ title = name;
+ tabId = info.get(i).getId();
+ fragment = HomeTabMapFragment.newInstance(tabId);
+ mFragments.add(fragment);
+ mTabInfoList.add(title);
+ }
+
+ CommonNavigator commonNavigator = new CommonNavigator(HomeMoreRoomActivity.this);
+ MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(HomeMoreRoomActivity.this, mTabInfoList);
+ magicIndicatorAdapter.setOnItemSelectListener(this);
+
+ commonNavigator.setAdapter(magicIndicatorAdapter);
+ magicIndicator.setNavigator(commonNavigator);
+
+ commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
+
+ viewPager.setOffscreenPageLimit(5);
+ viewPager.setAdapter(new RoomContributeListAdapter(getSupportFragmentManager(),mFragments));
+ viewPager.addOnPageChangeListener(new OnPageSelectedListener() {
+ @Override
+ public void onPageSelected(int position) {
+
+ }
+ });
+ ViewPagerHelper.bind(magicIndicator, viewPager);
+ }
+ });
+ }
+
+
+// @Override
+// protected boolean needSteepStateBar() {
+// return true;
+// }
+//
+// @Override
+// protected void setStatusBar() {
+// super.setStatusBar();
+// StatusBarUtil.transparencyBar(this);
+// StatusBarUtil.StatusBarLightMode(this);
+// }
+
+ @Override
+ public void onItemSelect(int position, TextView view) {
+// if (mHomeTitleInfos == null) {
+// return;
+// }
+ if (mFragments == null || mFragments.isEmpty()) {
+ return;
+ }
+ Fragment fragment = mFragments.get(position);
+ if (fragment == null) {
+ return;
+ }
+
+ viewPager.setCurrentItem(position);
+
+ }
+}
diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.java
index 2e679b87b..de173f039 100644
--- a/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.java
+++ b/app/src/main/java/com/yizhuan/erban/home/adapter/HomePlayAdapter.java
@@ -10,8 +10,10 @@ 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.netease.nim.uikit.support.glide.GlideApp;
import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
+import com.yizhuan.erban.common.widget.CircleImageView;
import com.yizhuan.erban.community.dynamic.view.DynamicDetailActivity;
import com.yizhuan.erban.community.widget.DynamicNickDetailWidget;
import com.yizhuan.erban.home.bean.HomePlayInfo;
@@ -44,16 +46,52 @@ public class HomePlayAdapter extends BaseQuickAdapter AVRoomActivity.start(mContext,item.getUid()));
}
-
-
}
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 975484d28..b04b97072 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
@@ -36,6 +36,7 @@ import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.TextView;
+import android.widget.Toast;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationClient;
@@ -61,6 +62,7 @@ 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.MainMagicIndicatorAdapter;
import com.yizhuan.erban.home.bean.HomeTagInfo;
@@ -162,11 +164,9 @@ public class GameHomeFragment extends BaseMvpFragment mHomeTitleInfos;
+
private List mFragments;
private volatile boolean isUserLogin;
- private volatile boolean initHomeTitle;
-
/**
* 动态
@@ -209,14 +209,14 @@ public class GameHomeFragment extends BaseMvpFragment {
mBinding.refreshLayout.setRefreshing(false);
+ initRoomTitleTab();
+ initBanner();
EventBus.getDefault().post(new RefreshHomeDataEvent());
});
}
@@ -287,94 +291,11 @@ public class GameHomeFragment extends BaseMvpFragment homeTitleInfos) {
-// if (ListUtils.isListEmpty(homeTitleInfos)) {
-// return;
-// }
-// initHomeTitle = true;
-// UserInfo userInfo = UserModel.get().getCacheLoginUserInfo();
-// int gender = 3;
-// if (userInfo != null) {
-// gender = userInfo.getGender();
-// }
-// List mTabInfoList = new ArrayList<>();
-// if (!ListUtils.isListEmpty(mFragments)) {
-// mFragments.clear();
-// }
-// mFragments = new ArrayList<>();
-//
-// // 审核中模式去掉这个 tab
-// if (MarketVerifyModel.get().isMarketChecking()) {
-// Iterator iterator = homeTitleInfos.iterator();
-// while (iterator.hasNext()) {
-// HomeTitleInfo next = iterator.next();
-// // 没法准确判断「合拍男神女神」只能是把第一个可以下拉的 item 给删除掉
-// if (!ListUtils.isListEmpty(next.getOpts())) {
-// iterator.remove();
-// }
-// }
-// }
-//
-// for (HomeTitleInfo homeTitleInfo : homeTitleInfos) {
-// //过滤对象是空和没有标签名同时也没有子标签的情况
-// if (homeTitleInfo == null || (TextUtils.isEmpty(homeTitleInfo.getName()) && !homeTitleInfo.hasSubTitle())) {
-// continue;
-// }
-// Log.e(TAG, "initTitleTab: " + homeTitleInfo);
-// HomeTitleInfo defaultValue = homeTitleInfo.getDefault(gender);
-// CharSequence title;
-// int tabId;
-// Fragment fragment;
-// if (defaultValue != null) {
-// String name = defaultValue.getName();
-// if (name != null) {
-// name = name.trim();
-// }
-// title = getArrowSpannableString(false, name);
-// tabId = defaultValue.getId();
-// fragment = RecommendationFragment.newInstance(String.valueOf(tabId));
-//
-// } else {
-// String name = homeTitleInfo.getName();
-// if (name != null) {
-// name = name.trim();
-// }
-// title = name;
-// tabId = homeTitleInfo.getTabId();
-// fragment = HomeOtherTabFragment.newInstance(tabId);
-// }
-// mFragments.add(fragment);
-// mTabInfoList.add(title);
-// }
-//
-// CommonNavigator commonNavigator = new CommonNavigator(getContext());
-// MainMagicIndicatorAdapter magicIndicatorAdapter = new MainMagicIndicatorAdapter(getContext(), mTabInfoList);
-// magicIndicatorAdapter.setOnItemSelectListener(this);
-// commonNavigator.setAdapter(magicIndicatorAdapter);
-// mBinding.magicIndicator.setNavigator(commonNavigator);
-// commonNavigator.getTitleContainer().setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
-//
-// mBinding.viewPager.setOffscreenPageLimit(5);
-// mBinding.viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), mFragments));
-// mBinding.viewPager.addOnPageChangeListener(new OnPageSelectedListener() {
-// @Override
-// public void onPageSelected(int position) {
-// mLastPosition = position;
-// }
-// });
-// ViewPagerHelper.bind(mBinding.magicIndicator, mBinding.viewPager);
-// }
-
-
/**
* 测试tab
*/
private void initRoomTitleTab() {
- initHomeTitle = true;
List mTabInfoList = new ArrayList<>();
if (!ListUtils.isListEmpty(mFragments)) {
mFragments.clear();
@@ -396,7 +317,7 @@ public class GameHomeFragment extends BaseMvpFragment tagListInfoList) {
- if (MarketVerifyModel.get().isMarketChecking() && mHomeTitleInfos != null) {
- Iterator iterator = mHomeTitleInfos.iterator();
- while (iterator.hasNext()) {
- HomeTitleInfo next = iterator.next();
- // 没法准确判断「合拍男神女神」只能是把第一个可以下拉的 item 给删除掉
- if (!ListUtils.isListEmpty(next.getOpts())) {
- iterator.remove();
- initHomeTitle = false;
- break;
- }
- }
- refreshData();
- }
+
}
@Override
@@ -703,9 +612,9 @@ public class GameHomeFragment extends BaseMvpFragment bannerList) {
+ public void initBanner() {
+ HomeModel.get().getHomeBanner("1").subscribe((serviceResult, throwable) -> {
+ if (throwable != null) {
+ } else {
+ List info = serviceResult;
+ setBanner(info);
+ }
+ });
+
+
+ }
+
+ private void setBanner(List bannerList){
//审核中状态,去掉跳转房间banner
if (MarketVerifyModel.get().isMarketChecking()) {
Iterator iterator = bannerList.iterator();
@@ -1164,7 +1076,6 @@ public class GameHomeFragment extends BaseMvpFragment totalHomeItemList = new ArrayList<>();
+
+ public static HomeTabHomeFragment newInstance(int tabId) {
+
+ Bundle args = new Bundle();
+ args.putString(PARAM_TAB_ID, String.valueOf(tabId));
+ HomeTabHomeFragment fragment = new HomeTabHomeFragment();
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ public HomeTabHomeFragment() {
+ // Required empty public constructor
+ }
+
+ @Override
+ public void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ tabId = getArguments().getString(PARAM_TAB_ID);
+ }
+ }
+
+
+ @Override
+ public int getRootLayoutId() {
+ return R.layout.fragment_home_room_tab;
+ }
+
+ @Override
+ public void onFindViews() {
+ super.onFindViews();
+ recyclerView = mView.findViewById(R.id.recycler_view);
+
+ initRecyclerView();
+
+ }
+
+
+ /**
+ * 刷新数据
+ */
+ private void refreshData() {
+ getData();
+ }
+
+
+
+ /**
+ * 请求数据
+ */
+ @SuppressLint("CheckResult")
+ private void getData() {
+ HomeModel.get()
+ .getHomeTabHome(tabId)
+ .compose(RxHelper.handleSchedulers())
+ .compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
+ .subscribe((serviceResult, throwable) -> {
+ if (throwable == null) {
+ if (ListUtils.isListEmpty(serviceResult)) {
+ showNoData();
+ mHomeRoomAdapter.notifyDataSetChanged();
+ }
+ mHomeRoomAdapter.setNewData(serviceResult);
+ mHomeRoomAdapter.notifyDataSetChanged();
+
+ } else {
+ if (!(throwable instanceof CancellationException)) {
+ toast("请求失败,请稍后再试!!" + throwable.getMessage());
+ }
+ }
+ });
+ }
+
+ private void initRecyclerView() {
+ recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+ recyclerView.setItemAnimator(null);
+ mHomeRoomAdapter = new HomeRoomFragmentAdapter(getContext());
+ mHomeRoomAdapter.setEnableLoadMore(false);
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), ROWS);
+ mHomeRoomAdapter.setEnableLoadMore(false);
+ recyclerView.setLayoutManager(gridLayoutManager);
+ recyclerView.setAdapter(mHomeRoomAdapter);
+
+ View emptyView = getLayoutInflater().inflate(R.layout.layout_home_empty_no_header, null);
+ ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
+ emptyView.setLayoutParams(lp);
+ mHomeRoomAdapter.setEmptyView(emptyView);
+
+ }
+
+ @Override
+ public void initiate() {
+ refreshData();
+ }
+
+ @Override
+ public void setUserVisibleHint(boolean isVisibleToUser) {
+ super.setUserVisibleHint(isVisibleToUser);
+ }
+
+ @SuppressLint("ResourceType")
+ @Override
+ public void showNoData(View view, int drawable, CharSequence charSequence) {
+ if (!checkActivityValid()) {
+ return;
+ }
+
+ if (view == null) {
+ MLog.error(this, "xuwakao, showNoData view is NULL");
+ return;
+ }
+ View status = view.findViewById(R.id.status_layout);
+ if (status == null || status.getId() <= 0) {
+ MLog.error(this, "xuwakao, had not set layout id ");
+ return;
+ }
+ NoDataFragment fragment = NoDataFragment.newInstance(R.layout.layout_home_empty_no_header, drawable, charSequence);
+ fragment.setListener(getLoadListener());
+ getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
+ }
+}
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 50d9a4100..2583844ff 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
@@ -25,17 +25,17 @@ import java.util.List;
import java.util.concurrent.CancellationException;
/**
- * 语音排队 没用下拉式的tab
+ *
*/
public class HomeTabMapFragment extends BaseFragment {
- public static final int ROWS = 3;
+ public static final int ROWS = 2;
private static final String PARAM_TAB_ID = "tabId";
private RecyclerView recyclerView;
private String tabId;
- private int pageIndex = 1;
- private static final int PAGE_SIZE = 20;
private HomeRoomFragmentAdapter mHomeRoomAdapter;
private final Object lock = new Object();
+ private static final int PAGE = 1;
+ private static final int PAGE_SIZE = 20;
/**
* 是否包含了banner
*/
@@ -70,16 +70,14 @@ public class HomeTabMapFragment extends BaseFragment {
@Override
public int getRootLayoutId() {
- return R.layout.fragment_home_room_tab;
+ return R.layout.fragment_home_tab_map;
}
@Override
public void onFindViews() {
super.onFindViews();
recyclerView = mView.findViewById(R.id.recycler_view);
-
initRecyclerView();
-
}
@@ -90,15 +88,13 @@ public class HomeTabMapFragment extends BaseFragment {
getData();
}
-
-
/**
* 请求数据
*/
@SuppressLint("CheckResult")
private void getData() {
HomeModel.get()
- .getHomeTabMap(tabId,pageIndex, PAGE_SIZE)
+ .getHomeTabMap(tabId,PAGE,PAGE_SIZE)
.compose(RxHelper.handleSchedulers())
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
.subscribe((serviceResult, throwable) -> {
diff --git a/app/src/main/java/com/yizhuan/erban/home/model/HomeModel.java b/app/src/main/java/com/yizhuan/erban/home/model/HomeModel.java
index 1816b75c9..eceb648a3 100644
--- a/app/src/main/java/com/yizhuan/erban/home/model/HomeModel.java
+++ b/app/src/main/java/com/yizhuan/erban/home/model/HomeModel.java
@@ -8,6 +8,7 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.base.BaseModel;
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
import com.yizhuan.xchat_android_core.community.CommunityConstant;
+import com.yizhuan.xchat_android_core.home.bean.BannerInfo;
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
@@ -50,13 +51,30 @@ public class HomeModel extends BaseModel {
}
public Single> getHomeTabMap(String tabId, int page, int pageSize) {
- return api.apiHomeTabMap(tabId,String.valueOf(page),String.valueOf(pageSize),String.valueOf(AuthModel.get().getCurrentUid()),
+ return api.apiHomeTabMap(tabId, String.valueOf(page), String.valueOf(pageSize), String.valueOf(AuthModel.get().getCurrentUid()),
CommunityConstant.VERSION_VALID_TYPE,
AuthModel.get().getTicket())
.compose(RxHelper.handleBeanData())
.compose(RxHelper.handleSchedulers());
}
+ public Single> getHomeTabHome(String tabId) {
+ return api.apiHomeTabHome(tabId,String.valueOf(AuthModel.get().getCurrentUid()),
+ CommunityConstant.VERSION_VALID_TYPE,
+ AuthModel.get().getTicket())
+ .compose(RxHelper.handleBeanData())
+ .compose(RxHelper.handleSchedulers());
+ }
+
+ public Single> getHomeBanner(String type) {
+ return api.apiHomeBanner(type,String.valueOf(AuthModel.get().getCurrentUid()),
+ CommunityConstant.VERSION_VALID_TYPE,
+ AuthModel.get().getTicket())
+ .compose(RxHelper.handleBeanData())
+ .compose(RxHelper.handleSchedulers());
+ }
+
+
private static final class Helper {
public static final HomeModel INSTANCE = new HomeModel();
}
@@ -89,12 +107,30 @@ public class HomeModel extends BaseModel {
@Query("types") String types,
@Query("ticket") String ticket);
+
+ /**
+ * 首页推荐房间标签
+ * @param uid
+ * @param types
+ * @param ticket
+ * @return
+ */
@GET("/home/tag")
Single>> apiHomeTag(
@Query("uid") String uid,
@Query("types") String types,
@Query("ticket") String ticket);
+ /**
+ * 首页更多房间
+ * @param tabId
+ * @param page
+ * @param pageSize
+ * @param uid
+ * @param types
+ * @param ticket
+ * @return
+ */
@GET("/home/tab/map")
Single>> apiHomeTabMap(
@Query("tabId") String tabId,
@@ -103,6 +139,37 @@ public class HomeModel extends BaseModel {
@Query("uid") String uid,
@Query("types") String types,
@Query("ticket") String ticket);
+
+ /**
+ * 首页推荐房间
+ * @param tabId
+ * @param uid
+ * @param types
+ * @param ticket
+ * @return
+ */
+ @GET("/home/tab/home")
+ Single>> apiHomeTabHome(
+ @Query("tabId") String tabId,
+ @Query("uid") String uid,
+ @Query("types") String types,
+ @Query("ticket") String ticket);
+
+ /**
+ * 首页Banner
+ * @param type
+ * @param uid
+ * @param types
+ * @param ticket
+ * @return
+ */
+ @GET("/home/banner")
+ Single>> apiHomeBanner(
+ @Query("type") String type,
+ @Query("uid") String uid,
+ @Query("types") String types,
+ @Query("ticket") String ticket);
}
+
}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java
index ebad3ea7c..5dee9af0c 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/login/LoginCodeActivity.java
@@ -82,7 +82,7 @@ public class LoginCodeActivity extends BaseLoginAct {
onFindViews();
initData();
onSetListener();
- getSmsCode();
+// getSmsCode();
}
@SuppressLint("SetTextI18n")
diff --git a/app/src/main/java/com/yizhuan/erban/utils/VpSwipeRefreshLayout.java b/app/src/main/java/com/yizhuan/erban/utils/VpSwipeRefreshLayout.java
new file mode 100644
index 000000000..25d907143
--- /dev/null
+++ b/app/src/main/java/com/yizhuan/erban/utils/VpSwipeRefreshLayout.java
@@ -0,0 +1,60 @@
+package com.yizhuan.erban.utils;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.ViewConfiguration;
+
+import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
+
+public class VpSwipeRefreshLayout extends SwipeRefreshLayout {
+
+ private float startY;
+ private float startX;
+ // 记录viewPager是否拖拽的标记
+ private boolean mIsVpDragger;
+ private final int mTouchSlop;
+
+ public VpSwipeRefreshLayout(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
+ }
+
+ @Override
+ public boolean onInterceptTouchEvent(MotionEvent ev) {
+ int action = ev.getAction();
+ switch (action) {
+ case MotionEvent.ACTION_DOWN:
+ // 记录手指按下的位置
+ startY = ev.getY();
+ startX = ev.getX();
+ // 初始化标记
+ mIsVpDragger = false;
+ break;
+ case MotionEvent.ACTION_MOVE:
+ // 如果viewpager正在拖拽中,那么不拦截它的事件,直接return false;
+ if(mIsVpDragger) {
+ return false;
+ }
+
+ // 获取当前手指位置
+ float endY = ev.getY();
+ float endX = ev.getX();
+ float distanceX = Math.abs(endX - startX);
+ float distanceY = Math.abs(endY - startY);
+ // 如果X轴位移大于Y轴位移,那么将事件交给viewPager处理。
+ if(distanceX > mTouchSlop && distanceX > distanceY) {
+ mIsVpDragger = true;
+ return false;
+ }
+ break;
+ case MotionEvent.ACTION_UP:
+ case MotionEvent.ACTION_CANCEL:
+ // 初始化标记
+ mIsVpDragger = false;
+ break;
+ }
+ // 如果是Y轴位移大于X轴,事件交给swipeRefreshLayout处理。
+ return super.onInterceptTouchEvent(ev);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_home_more_room.xml b/app/src/main/res/layout/activity_home_more_room.xml
new file mode 100644
index 000000000..30dce4379
--- /dev/null
+++ b/app/src/main/res/layout/activity_home_more_room.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_game_home.xml b/app/src/main/res/layout/fragment_game_home.xml
index ae01498d4..26bf1397e 100644
--- a/app/src/main/res/layout/fragment_game_home.xml
+++ b/app/src/main/res/layout/fragment_game_home.xml
@@ -15,7 +15,7 @@
type="Boolean" />
-
-
-
-
-
-
-
+ app:contentScrim="@color/appColor"
+ app:layout_scrollFlags="scroll|enterAlwaysCollapsed|exitUntilCollapsed">
-
-
+ android:paddingLeft="14dp"
+ android:paddingRight="15dp"
+ >
+
+
+
+
+
+
@@ -137,15 +154,12 @@
-
-
-
-
+ app:layout_collapseMode="pin"
+ >
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home_tab_map.xml b/app/src/main/res/layout/fragment_home_tab_map.xml
new file mode 100644
index 000000000..090b99cef
--- /dev/null
+++ b/app/src/main/res/layout/fragment_home_tab_map.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+