首页房间随机逻辑
This commit is contained in:
@@ -39,10 +39,12 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
private RecyclerView recyclerView;
|
||||
private String tabId;
|
||||
private HomeRoomFragmentAdapter mHomeRoomAdapter;
|
||||
private List<HomeTabMapInfo> sixRoomsList;
|
||||
|
||||
private List<HomeTabMapInfo> allRoomList = new ArrayList<>();
|
||||
private final int ROOM_COUNT = 6;
|
||||
private Runnable runnable;
|
||||
private Handler handler = new Handler();
|
||||
List<HomeTabMapInfo> sixRoomsList = new ArrayList<>();
|
||||
|
||||
public static HomeTabHomeFragment newInstance(int tabId) {
|
||||
|
||||
@@ -63,6 +65,7 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
if (getArguments() != null) {
|
||||
tabId = getArguments().getString(PARAM_TAB_ID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -90,12 +93,7 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
initRecyclerView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*/
|
||||
private void refreshData() {
|
||||
getData();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 请求数据
|
||||
@@ -108,20 +106,9 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
.compose(bindUntilEvent(FragmentEvent.DESTROY_VIEW))
|
||||
.subscribe((serviceResult, throwable) -> {
|
||||
if (throwable == null) {
|
||||
|
||||
int max = getMultipleItemData(serviceResult).size();
|
||||
int min = 0;
|
||||
|
||||
sixRoomsList = new ArrayList<>();
|
||||
for (int i = 0; i < ROOM_COUNT ; i++) {
|
||||
Random random = new Random();
|
||||
int s = random.nextInt(max)%(max-min+1) + min;
|
||||
sixRoomsList.add(getMultipleItemData(serviceResult).get(s));
|
||||
}
|
||||
|
||||
mHomeRoomAdapter.setNewData(sixRoomsList);
|
||||
mHomeRoomAdapter.notifyDataSetChanged();
|
||||
|
||||
allRoomList.clear();
|
||||
allRoomList = serviceResult;
|
||||
refreshRoomData();
|
||||
} else {
|
||||
if (!(throwable instanceof CancellationException)) {
|
||||
toast("请求失败,请稍后再试!!" + throwable.getMessage());
|
||||
@@ -130,6 +117,15 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新数据
|
||||
*/
|
||||
private void refreshRoomData(){
|
||||
mHomeRoomAdapter.setNewData(getConvertData(allRoomList));
|
||||
mHomeRoomAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
private void initRecyclerView() {
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
recyclerView.setItemAnimator(null);
|
||||
@@ -144,7 +140,6 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
emptyView.setLayoutParams(lp);
|
||||
mHomeRoomAdapter.setEmptyView(emptyView);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -153,25 +148,45 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
* @param itemList
|
||||
* @return
|
||||
*/
|
||||
private List<HomeTabMapInfo> getMultipleItemData(List<HomeTabMapInfo> itemList) {
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
private List<HomeTabMapInfo> getConvertData(List<HomeTabMapInfo> itemList) {
|
||||
sixRoomsList.clear();
|
||||
int ROOM_COUNT = 6;
|
||||
for (int i = 0; i < itemList.size(); i++) {
|
||||
itemList.get(i).setItemType(itemList.get(i).getRoomTitle() == null?HomeTabMapInfo.TYPE_EMPTY:HomeTabMapInfo.TYPE_NORMAL);
|
||||
itemList.get(i).setItemType(HomeTabMapInfo.TYPE_NORMAL);
|
||||
}
|
||||
return itemList;
|
||||
|
||||
itemList = randomList(itemList);
|
||||
if (itemList.size() >= ROOM_COUNT){
|
||||
for (int i = 0; i < ROOM_COUNT ; i++) {
|
||||
sixRoomsList.add(itemList.get(i));
|
||||
}
|
||||
}else {
|
||||
while (itemList.size() < ROOM_COUNT){
|
||||
HomeTabMapInfo info = new HomeTabMapInfo();
|
||||
info.setItemType(HomeTabMapInfo.TYPE_EMPTY);
|
||||
itemList.add(info);
|
||||
}
|
||||
sixRoomsList = itemList;
|
||||
}
|
||||
return sixRoomsList;
|
||||
}
|
||||
|
||||
public List<HomeTabMapInfo> randomList(List<HomeTabMapInfo> sourceList) {
|
||||
if (sourceList == null || sourceList.size() == 0) {
|
||||
return sourceList;
|
||||
}
|
||||
ArrayList randomList = new ArrayList(sourceList.size());
|
||||
do {
|
||||
int randomIndex = Math.abs(new Random().nextInt(sourceList.size()));
|
||||
randomList.add(sourceList.remove(randomIndex));
|
||||
} while (sourceList.size() > 0);
|
||||
return randomList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
refreshData();
|
||||
getData();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -28,6 +28,7 @@ import com.netease.nimlib.sdk.uinfo.model.NimUserInfo;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.avroom.ButtonItemFactory;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.common.widget.dialog.CommonPopupDialog;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
@@ -51,11 +52,13 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicBean;
|
||||
import com.yizhuan.xchat_android_core.im.friend.IMFriendModel;
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.praise.PraiseModel;
|
||||
import com.yizhuan.xchat_android_core.praise.event.IsLikedEvent;
|
||||
import com.yizhuan.xchat_android_core.praise.event.PraiseEvent;
|
||||
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.UserInfoUiMgr;
|
||||
@@ -151,6 +154,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
if (AuthModel.get().getCurrentUid() == userId) {
|
||||
identityState = IdentityState.OWN;
|
||||
mBinding.tvFansCount.setOnClickListener(this);
|
||||
setWhereVisible(false);
|
||||
if (bottomViewLayout != null)
|
||||
bottomViewLayout.setVisibility(View.GONE);
|
||||
} else {
|
||||
@@ -159,6 +163,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
} else {
|
||||
identityState = IdentityState.OTHER;
|
||||
}
|
||||
setWhereVisible(true);
|
||||
if (bottomViewLayout == null) {
|
||||
View view = mBinding.vsBottomLayout.getViewStub().inflate();
|
||||
bottomViewLayout = view.findViewById(R.id.bottom_view_layout);
|
||||
@@ -176,6 +181,14 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
mBinding.ivEdit.setOnClickListener(this);
|
||||
mBinding.tvEdit.setOnClickListener(this);
|
||||
mBinding.tvGiftDetail.setOnClickListener(this);
|
||||
mBinding.ivWhere.setOnClickListener(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* 找到TA, 主态不展示
|
||||
*/
|
||||
private void setWhereVisible(boolean visible) {
|
||||
mBinding.ivWhere.setVisibility(visible ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void getUserInfo(){
|
||||
@@ -542,6 +555,24 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
startActivity(new Intent(this,UserGiftActivity.class));
|
||||
break;
|
||||
|
||||
case R.id.iv_where:
|
||||
getDialogManager().showProgressDialog(this, "请稍后...");
|
||||
AvRoomModel.get()
|
||||
.getUserRoom(userId)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((roomResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetUserRoomFail(throwable.getMessage());
|
||||
} else if (roomResult != null && roomResult.isSuccess()) {
|
||||
onGetUserRoom(roomResult.getData());
|
||||
} else if (roomResult != null && !roomResult.isSuccess()) {
|
||||
onGetUserRoomFail(roomResult.getError());
|
||||
} else {
|
||||
onGetUserRoomFail("未知错误");
|
||||
}
|
||||
});
|
||||
break;
|
||||
|
||||
// /**************** 测试代码 **************/
|
||||
// AVRoomActivity.start(this, 91, mRoomInfo!!.type)
|
||||
}
|
||||
@@ -632,4 +663,26 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void onGetUserRoom(RoomInfo roomInfo) {
|
||||
getDialogManager().dismissDialog();
|
||||
RoomInfo current = AvRoomDataManager.get().mCurrentRoomInfo;
|
||||
if (roomInfo != null && roomInfo.getUid() > 0) {
|
||||
if (current != null) {
|
||||
if (current.getUid() == roomInfo.getUid()) {
|
||||
toast("已经和对方在同一个房间");
|
||||
return;
|
||||
}
|
||||
}
|
||||
AVRoomActivity.start(this, roomInfo.getUid(), roomInfo.getType());
|
||||
} else {
|
||||
toast("对方不在房间内");
|
||||
}
|
||||
}
|
||||
|
||||
public void onGetUserRoomFail(String msg) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -60,21 +60,32 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nick"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="6dp"
|
||||
android:drawablePadding="@dimen/space_normal"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
android:layout_marginEnd="@dimen/dp_20"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="15dp"
|
||||
app:layout_constraintEnd_toStartOf="@id/iv_where"
|
||||
android:textStyle="bold"
|
||||
tools:drawableRight="@drawable/ic_gender_male"
|
||||
tools:text="King天地为asdasdasdasdsadsadsad"
|
||||
tools:text="King天地为"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_where"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="@id/tv_nick"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:src="@drawable/ic_dy_in_room"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_level"
|
||||
android:layout_width="match_parent"
|
||||
|
@@ -41,7 +41,7 @@ public class XChatConstants {
|
||||
/**
|
||||
* bugly key (DEBUG)
|
||||
*/
|
||||
public static final String BUGLY_KEY_DEBUG = "f251d1616b";//已更改
|
||||
public static final String BUGLY_KEY_DEBUG = "d2dec194c0";//已更改
|
||||
|
||||
/**
|
||||
* bugly key (RELEASE)
|
||||
|
Reference in New Issue
Block a user