1.个人主页增加家族展示
2.公会主页增加家族长和家族公会列表
This commit is contained in:
@@ -998,6 +998,9 @@
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.IncomeStatisticsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.ClanIncomeActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".module_hall.hall.activity.HallNameSettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
@@ -1,10 +1,11 @@
|
||||
package com.yinyuan.doudou.pay.activity
|
||||
package com.yizhuan.erban.pay.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.yinyuan.doudou.pay.activity.GiveGoldSearchActivity
|
||||
import com.yinyuan.doudou.pay.adapter.LatelyGiveAdapter
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseActivity
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package com.yinyuan.doudou.pay.activity
|
||||
package com.yizhuan.erban.pay.activity
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
@@ -9,7 +9,6 @@ import android.text.TextWatcher
|
||||
import com.jungly.gridpasswordview.GridPasswordView
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.base.BaseActivity
|
||||
import com.yizhuan.erban.pay.activity.GiveGoldSuccessActivity
|
||||
import com.yizhuan.erban.pay.password.GiveGoldPassWordFragment
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils
|
||||
import com.yizhuan.xchat_android_core.DemoCache
|
||||
|
@@ -18,6 +18,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.security.biometrics.service.build.V;
|
||||
import com.jude.rollviewpager.hintview.TextHintView;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.netease.nim.uikit.impl.cache.NimUserInfoCache;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.netease.nimlib.sdk.RequestCallbackWrapper;
|
||||
@@ -54,6 +55,7 @@ import com.yizhuan.xchat_android_core.customer_server.CustomerServerModel;
|
||||
import com.yizhuan.xchat_android_core.im.friend.IMFriendModel;
|
||||
import com.yizhuan.xchat_android_core.level.UserLevelVo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
|
||||
import com.yizhuan.xchat_android_core.praise.PraiseModel;
|
||||
import com.yizhuan.xchat_android_core.praise.event.IsLikedEvent;
|
||||
@@ -91,7 +93,7 @@ import java.util.Objects;
|
||||
|
||||
@ActLayoutRes(R.layout.activity_user_info)
|
||||
public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBinding>
|
||||
implements UserPhotoAdapter.ImageClickListener, ObservableScrollView.ScrollViewListener{
|
||||
implements UserPhotoAdapter.ImageClickListener, ObservableScrollView.ScrollViewListener {
|
||||
|
||||
public static final int REQUEST_CODE_UPDATE_VOICE = 1;
|
||||
|
||||
@@ -148,6 +150,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
getUserInfoDetail();
|
||||
initClanAndHall();
|
||||
}
|
||||
|
||||
private void initAttentionView() {
|
||||
@@ -191,10 +194,10 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
* 找到TA, 主态不展示
|
||||
*/
|
||||
private void setWhereVisible() {
|
||||
mBinding.ivWhere.setVisibility(mRoomUid!=0 ? View.VISIBLE : View.GONE);
|
||||
mBinding.ivWhere.setVisibility(mRoomUid != 0 ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
private void getUserInfo(){
|
||||
private void getUserInfo() {
|
||||
UserModel.get().getUserInfoFromServer(userId)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new BeanObserver<UserInfo>() {
|
||||
@@ -212,8 +215,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void getUserInfoDetail(){
|
||||
private void getUserInfoDetail() {
|
||||
UserModel.get().getUserInfoDetail(userId)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new BeanObserver<UserDetailInfo>() {
|
||||
@@ -295,48 +297,74 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
|
||||
mBinding.tvFansCount.setText(String.valueOf(userInfo.getFansNum()));
|
||||
mBinding.tvErbanId.setText(getString(R.string.me_user_id, userInfo.getErbanNo()));
|
||||
mBinding.ivGoodNumber.setVisibility(userInfo.isHasPrettyErbanNo()?View.VISIBLE:View.GONE);
|
||||
mBinding.ivGoodNumber.setVisibility(userInfo.isHasPrettyErbanNo() ? View.VISIBLE : View.GONE);
|
||||
|
||||
//等级魅力值
|
||||
setUserLevel(userInfo.getUserLevelVo());
|
||||
//铭牌
|
||||
setOfficialMask(userInfo.getNameplateWord(),userInfo.getNameplatePic());
|
||||
setOfficialMask(userInfo.getNameplateWord(), userInfo.getNameplatePic());
|
||||
if (AuthModel.get().getCurrentUid() != userInfo.getUid()) {
|
||||
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
|
||||
}
|
||||
|
||||
//如果是主态,没公会,隐藏公会。客态公会一直显示,如果hallId >0隐藏申请按钮
|
||||
mBinding.llModuleHall.setVisibility(View.GONE);
|
||||
if (userInfo.getHallId() > 0){
|
||||
if (AuthModel.get().getCurrentUid() != userId && HallDataManager.get().getHallId() <= 0){
|
||||
mBinding.tvApplyHall.setVisibility(View.VISIBLE);
|
||||
}
|
||||
HallModel.get().getHallInfo(userInfo.getUid(), userInfo.getHallId())
|
||||
.compose(RxHelper.bindContext(context))
|
||||
.subscribe(new BeanObserver<HallInfo>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(HallInfo hallInfo) {
|
||||
mBinding.llModuleHall.setVisibility(View.VISIBLE);
|
||||
mBinding.tvHallName.setText(hallInfo.getHallName());
|
||||
mBinding.tvHallId.setText("公会ID:"+hallInfo.getHallId());
|
||||
mBinding.tvHallMemberNum.setText("公会人数:"+hallInfo.getMemberCount());
|
||||
GlideApp.with(context)
|
||||
.load(hallInfo.getOwnerAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(mBinding.ivHallAvatar);
|
||||
}
|
||||
});
|
||||
mBinding.tvApplyHall.setOnClickListener(v -> applyJoinHall(userInfo.getHallId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void applyJoinHall(long hallId){
|
||||
@SuppressLint({"CheckResult", "SetTextI18n"})
|
||||
private void initClanAndHall() {
|
||||
HallModel.get().getUserHallAndClan(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(clanAndHallInfo -> {
|
||||
HallInfo hallInfo = clanAndHallInfo.getHall();
|
||||
ClanInfo clanInfo = clanAndHallInfo.getClan();
|
||||
boolean showApply = AuthModel.get().getCurrentUid() != userId && HallDataManager.get().getHallId() <= 0;
|
||||
if (hallInfo != null && hallInfo.getHallId() > 0) {
|
||||
mBinding.llModuleHall.setVisibility(View.VISIBLE);
|
||||
mBinding.llHall.setVisibility(View.VISIBLE);
|
||||
mBinding.tvHallId.setText("公会ID:" + hallInfo.getHallId() + "");
|
||||
mBinding.tvHallName.setText(hallInfo.getHallName());
|
||||
mBinding.tvHallMemberNum.setText("公会人数:" + hallInfo.getMemberCount());
|
||||
GlideApp.with(this)
|
||||
.load(hallInfo.getOwnerAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(mBinding.ivHallAvatar);
|
||||
if (clanInfo == null || clanInfo.getId() <= 0) {
|
||||
//单独展示公会头要变大点
|
||||
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mBinding.ivHallAvatar.getLayoutParams();
|
||||
layoutParams.width = ScreenUtil.dip2px(60);
|
||||
layoutParams.height = ScreenUtil.dip2px(60);
|
||||
mBinding.ivHallAvatar.setLayoutParams(layoutParams);
|
||||
if (showApply) {
|
||||
mBinding.tvApplyHall.setVisibility(View.VISIBLE);
|
||||
mBinding.tvApplyHall.setOnClickListener(v -> applyJoinHall(hallInfo.getHallId()));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mBinding.llHall.setVisibility(View.GONE);
|
||||
}
|
||||
if (clanInfo != null && clanInfo.getId() > 0) {
|
||||
mBinding.llModuleHall.setVisibility(View.VISIBLE);
|
||||
mBinding.llHall.setVisibility(View.VISIBLE);
|
||||
mBinding.tvClanId.setText("家族ID:" + clanInfo.getId());
|
||||
mBinding.tvClanName.setText(clanInfo.getName());
|
||||
mBinding.tvClanMemberNum.setText("家族人数:" +clanInfo.getClanMemberNum());
|
||||
mBinding.tvClanHallNum.setText("公会数量:" + clanInfo.getClanHallNum());
|
||||
GlideApp.with(this)
|
||||
.load(clanInfo.getAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(mBinding.ivClanAvatar);
|
||||
|
||||
if (showApply && hallInfo != null && hallInfo.getHallId() > 0) {
|
||||
mBinding.tvApplyHall.setVisibility(View.VISIBLE);
|
||||
mBinding.tvApplyHall.setOnClickListener(v -> applyJoinHall(hallInfo.getHallId()));
|
||||
}
|
||||
} else {
|
||||
mBinding.llHall.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
private void applyJoinHall(long hallId) {
|
||||
HallModel.get().applyJoinHall(hallId)
|
||||
.compose(RxHelper.bindActivity(UserInfoActivity.this))
|
||||
.subscribe(new BeanObserver<String>() {
|
||||
@@ -353,7 +381,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}
|
||||
|
||||
private void initUserDetail(UserDetailInfo.DataBean info) {
|
||||
if (info == null){
|
||||
if (info == null) {
|
||||
return;
|
||||
}
|
||||
initGiftList(info.getUserGiftWall());
|
||||
@@ -365,6 +393,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
|
||||
/**
|
||||
* 礼物列表
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
private void initGiftList(List<UserDetailInfo.DataBean.UserGiftWallBean> list) {
|
||||
@@ -384,13 +413,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}
|
||||
});
|
||||
|
||||
if (ListUtils.isListEmpty(list)){
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
UserDetailInfo.DataBean.UserGiftWallBean giftBean = new UserDetailInfo.DataBean.UserGiftWallBean();
|
||||
giftBean.setItemType(0);
|
||||
list.add(giftBean);
|
||||
}
|
||||
|
||||
GiftAdapter giftAdapter= new GiftAdapter(this,list);
|
||||
GiftAdapter giftAdapter = new GiftAdapter(this, list);
|
||||
|
||||
giftAdapter.setEnableLoadMore(false);
|
||||
mBinding.rvGift.setAdapter(giftAdapter);
|
||||
@@ -398,11 +427,12 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
|
||||
/**
|
||||
* 动态列表
|
||||
*
|
||||
* @param list
|
||||
*/
|
||||
private void initDynamicList(List<WorldDynamicBean> list) {
|
||||
mBinding.rvDynamic.setLayoutManager(new LinearLayoutManager(this));
|
||||
UserInfoDynamicAdapter dynamicAdapter = new UserInfoDynamicAdapter(this,identityState);
|
||||
UserInfoDynamicAdapter dynamicAdapter = new UserInfoDynamicAdapter(this, identityState);
|
||||
dynamicAdapter.setNewData(list);
|
||||
dynamicAdapter.setEnableLoadMore(false);
|
||||
dynamicAdapter.setOnItemChildClickListener((baseQuickAdapter, view, pos) -> {
|
||||
@@ -423,7 +453,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
}
|
||||
if (UserModel.get().isMyseft(bean.getUid()) ||
|
||||
isThisWorldOwner(bean)) {
|
||||
ButtonItem item = new ButtonItem("删除", () -> deleteDynamic(pos,dynamicAdapter));
|
||||
ButtonItem item = new ButtonItem("删除", () -> deleteDynamic(pos, dynamicAdapter));
|
||||
list_adapter.add(item);
|
||||
}
|
||||
getDialogManager().showCommonPopupDialog(list_adapter, "取消");
|
||||
@@ -439,13 +469,13 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
/**
|
||||
* 相册
|
||||
*/
|
||||
private void initPhoto(List<UserDetailInfo.DataBean.PrivatePhotoBean> list){
|
||||
if (ListUtils.isListEmpty(list)){
|
||||
private void initPhoto(List<UserDetailInfo.DataBean.PrivatePhotoBean> list) {
|
||||
if (ListUtils.isListEmpty(list)) {
|
||||
return;
|
||||
}
|
||||
TextHintView hintView = new TextHintView(this);
|
||||
hintView.setBackground(getResources().getDrawable(R.drawable.bg_userinfo_photo_hintview));
|
||||
hintView.setTextSize(SizeUtils.dp2px(this,4));
|
||||
hintView.setTextSize(SizeUtils.dp2px(this, 4));
|
||||
hintView.setTextColor(getResources().getColor(R.color.blue));
|
||||
mBinding.rollView.setHintView(hintView);
|
||||
UserInfoPhotoAdapter bannerAdapter = new UserInfoPhotoAdapter(list, this);
|
||||
@@ -480,20 +510,20 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
|
||||
private void initNestScrollView() {
|
||||
mBinding.scrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||
if (flag == 0 && oldScrollY > SizeUtils.dp2px(this,200)) {
|
||||
if (flag == 0 && oldScrollY > SizeUtils.dp2px(this, 200)) {
|
||||
//展开
|
||||
flag = 1;
|
||||
mBinding.ivUserBack.setImageResource(R.drawable.icon_user_back_black);
|
||||
mBinding.tbUserInfo.setBackgroundColor(getResources().getColor(R.color.white));
|
||||
setTitleVisible(true);
|
||||
setEditButton(identityState,true);
|
||||
setEditButton(identityState, true);
|
||||
} else if (flag == 1 && oldScrollY <= 200) {
|
||||
//合起来
|
||||
flag = 0;
|
||||
mBinding.ivUserBack.setImageResource(R.drawable.icon_user_back);
|
||||
mBinding.tbUserInfo.setBackgroundColor(getResources().getColor(R.color.transparent));
|
||||
setTitleVisible(false);
|
||||
setEditButton(identityState,false);
|
||||
setEditButton(identityState, false);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -626,11 +656,11 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
break;
|
||||
|
||||
case R.id.tv_gift_detail:
|
||||
startActivity(new Intent(this,UserGiftActivity.class));
|
||||
startActivity(new Intent(this, UserGiftActivity.class));
|
||||
break;
|
||||
|
||||
case R.id.iv_where:
|
||||
if (mRoomUid != 0){
|
||||
if (mRoomUid != 0) {
|
||||
AVRoomActivity.start(this, mRoomUid);
|
||||
}
|
||||
break;
|
||||
@@ -691,7 +721,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
|
||||
if (tvOfficialMask != null && ivOfficialMask != null) {
|
||||
tvOfficialMask.setText(name);
|
||||
ImageLoadUtils.loadImage(this,icon,ivOfficialMask);
|
||||
ImageLoadUtils.loadImage(this, icon, ivOfficialMask);
|
||||
}
|
||||
} else {
|
||||
mBinding.inOfficialMask.setVisibility(View.GONE);
|
||||
@@ -731,7 +761,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
|
||||
return bean != null && bean.getWorldUid() == AuthModel.get().getCurrentUid();
|
||||
}
|
||||
|
||||
private void deleteDynamic(int pos,UserInfoDynamicAdapter adapter) {
|
||||
private void deleteDynamic(int pos, UserInfoDynamicAdapter adapter) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_WORLD_DELETE_MOMENTS,
|
||||
"删除动态-区分-动态广场");
|
||||
getDialogManager().showOkCancelWithTitleDialog("删除后不可恢复,确定删除该动态吗?",
|
||||
|
7
app/src/main/res/drawable/shape_7154ee_stroke_1dp.xml
Normal file
7
app/src/main/res/drawable/shape_7154ee_stroke_1dp.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<stroke
|
||||
android:color="#7154EE"
|
||||
android:width="1dp" />
|
||||
</shape>
|
7
app/src/main/res/drawable/shape_ffa768_stroke_1dp.xml
Normal file
7
app/src/main/res/drawable/shape_ffa768_stroke_1dp.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<stroke
|
||||
android:color="#FFA768"
|
||||
android:width="1dp" />
|
||||
</shape>
|
@@ -233,19 +233,21 @@
|
||||
android:paddingBottom="@dimen/dp_15">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_family"
|
||||
android:id="@+id/ll_clan"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_family_avatar"
|
||||
<com.yizhuan.erban.common.widget.RectRoundImageView
|
||||
android:id="@+id/iv_clan_avatar"
|
||||
android:layout_width="@dimen/dp_60"
|
||||
android:layout_height="@dimen/dp_60"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:src="@drawable/default_cover" />
|
||||
android:src="@drawable/default_cover"
|
||||
app:borderRadius="8dp"
|
||||
app:type="round" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@@ -253,7 +255,7 @@
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_family_name"
|
||||
android:id="@+id/tv_clan_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
@@ -263,10 +265,10 @@
|
||||
tools:text="忘忧阁" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_family_id"
|
||||
android:id="@+id/tv_clan_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_5"
|
||||
android:layout_marginTop="@dimen/dp_3"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="#9a9a9a"
|
||||
@@ -274,10 +276,9 @@
|
||||
tools:text="公会ID:123456" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_family_member_num"
|
||||
android:id="@+id/tv_clan_member_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_3"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="#9a9a9a"
|
||||
@@ -285,10 +286,9 @@
|
||||
tools:text="公会人数:123" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_family_hall_num"
|
||||
android:id="@+id/tv_clan_hall_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_3"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="#9a9a9a"
|
||||
@@ -309,15 +309,18 @@
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<ImageView
|
||||
<com.yizhuan.erban.common.widget.RectRoundImageView
|
||||
android:id="@+id/iv_hall_avatar"
|
||||
android:layout_width="@dimen/dp_50"
|
||||
android:layout_height="@dimen/dp_50"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginEnd="@dimen/dp_8"
|
||||
android:src="@drawable/default_cover" />
|
||||
android:src="@drawable/default_cover"
|
||||
app:borderRadius="8dp"
|
||||
app:type="round" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
@@ -349,7 +352,6 @@
|
||||
android:id="@+id/tv_hall_member_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_3"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:textColor="#9a9a9a"
|
||||
|
@@ -3,11 +3,14 @@ package com.yizhuan.erban.module_hall;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.Observer;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.netease.nim.uikit.api.NimUIKit;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.manager.event.HallInfoChangeEvent;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.event.UserHallUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.module_hall.im.HallAttachment;
|
||||
import com.yizhuan.erban.module_hall.im.msgholder.HallMsgViewHolder;
|
||||
@@ -45,6 +48,11 @@ public class HallDataManager {
|
||||
*/
|
||||
private long lastHallId = -1;
|
||||
|
||||
private long clanId = 0;
|
||||
|
||||
/**家族信息*/
|
||||
private MutableLiveData<ClanInfo> liveClanInfo;
|
||||
|
||||
private static final class Helper {
|
||||
public static final HallDataManager INSTANCE = new HallDataManager();
|
||||
}
|
||||
@@ -101,6 +109,7 @@ public class HallDataManager {
|
||||
}
|
||||
}
|
||||
lastHallId = newHallId;
|
||||
clanId = userInfo.getClanId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,6 +129,10 @@ public class HallDataManager {
|
||||
liveHallName.observe(owner, observer);
|
||||
}
|
||||
|
||||
public void registerClanInfo(LifecycleOwner owner, Observer<ClanInfo> observer) {
|
||||
liveClanInfo.observe(owner, observer);
|
||||
}
|
||||
|
||||
public void registerHallID(LifecycleOwner owner, Observer<Long> observer) {
|
||||
liveHallID.observe(owner, observer);
|
||||
}
|
||||
@@ -128,19 +141,23 @@ public class HallDataManager {
|
||||
liveHallExist.observe(owner, observer);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void updateHallInfo() {
|
||||
if (getHallId() <= 0) {
|
||||
return;
|
||||
}
|
||||
HallModel.get().getHallInfo(AuthModel.get().getCurrentUid(), getHallId())
|
||||
.subscribe(info -> {
|
||||
hallInfo = info;
|
||||
liveHallName.setValue(hallInfo.getHallName());
|
||||
liveHallExist.setValue(hallInfo.getHallId() > 0);
|
||||
liveHallID.setValue(hallInfo.getHallId());
|
||||
});
|
||||
.subscribe(this::updateHallInfo);
|
||||
}
|
||||
|
||||
public void updateHallInfo(HallInfo info) {
|
||||
hallInfo = info;
|
||||
liveHallName.setValue(hallInfo.getHallName());
|
||||
liveHallExist.setValue(hallInfo.getHallId() > 0);
|
||||
liveHallID.setValue(hallInfo.getHallId());
|
||||
}
|
||||
|
||||
|
||||
public String getHallName() {
|
||||
String hallName = liveHallName.getValue();
|
||||
if (hallName == null) {
|
||||
|
@@ -0,0 +1,257 @@
|
||||
package com.yizhuan.erban.module_hall.hall.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.module_hall.hall.view.dialog.TimePickerDialog;
|
||||
import com.yizhuan.erban.module_hall.hall.view.indicator.StatisticsIndicatorAdapter;
|
||||
import com.yizhuan.erban.module_hall.income.ClanIncomeFragment;
|
||||
import com.yizhuan.erban.module_hall.income.DayIncomeFragment;
|
||||
import com.yizhuan.erban.module_hall.income.presenter.ClanIncomePresenter;
|
||||
import com.yizhuan.erban.module_hall.income.presenter.IncomeStatisticsPresenter;
|
||||
import com.yizhuan.erban.module_hall.income.view.IIncomeStatisticsView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
|
||||
/**
|
||||
* 家族所有公会的收入统计
|
||||
* Created by lvzebiao on 2018/12/27.
|
||||
*/
|
||||
|
||||
@CreatePresenter(ClanIncomePresenter.class)
|
||||
public class ClanIncomeActivity extends BaseMvpActivity<IIncomeStatisticsView, ClanIncomePresenter>
|
||||
implements IIncomeStatisticsView, TimePickerDialog.TimePickerListener, ClanIncomeFragment.DayIncomeFragmentListener {
|
||||
|
||||
private static final int TYPE_DAY = 0;
|
||||
private static final int TYPE_WEEK = 1;
|
||||
|
||||
@BindView(R.id.view_pager)
|
||||
ViewPager viewPager;
|
||||
|
||||
List<ClanIncomeFragment> list = new ArrayList<>();
|
||||
@BindView(R.id.indicator)
|
||||
MagicIndicator indicator;
|
||||
|
||||
@BindView(R.id.tv_month_day_start)
|
||||
TextView tvMonthDayStart;
|
||||
@BindView(R.id.tv_month_day_end)
|
||||
TextView tvMonthDayEnd;
|
||||
@BindView(R.id.tv_year)
|
||||
TextView tvYear;
|
||||
@BindView(R.id.tv_total)
|
||||
TextView tvTotal;
|
||||
|
||||
public static void start(Context context) {
|
||||
|
||||
StatisticManager.Instance().onEvent(BasicConfig.INSTANCE.getAppContext(),
|
||||
StatisticsProtocol.Event.HALL_INCOME_CLICK, "收入统计入口", null);
|
||||
|
||||
Intent intent = new Intent(context, ClanIncomeActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_income_statistics);
|
||||
ButterKnife.bind(this);
|
||||
|
||||
initTitleBar("收入统计");
|
||||
initIndicator();
|
||||
|
||||
ClanIncomeFragment fragment = ClanIncomeFragment.getInstance(ClanIncomeFragment.TYPE_DAY);
|
||||
fragment.setmDayIncomeFragmentListener(this);
|
||||
list.add(fragment);
|
||||
|
||||
fragment = ClanIncomeFragment.getInstance(ClanIncomeFragment.TYPE_WEEK);
|
||||
fragment.setmDayIncomeFragmentListener(this);
|
||||
list.add(fragment);
|
||||
|
||||
viewPager.setAdapter(adapter);
|
||||
|
||||
// initDay();
|
||||
|
||||
}
|
||||
|
||||
private boolean mHasInit = false;
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (!mHasInit) {
|
||||
mHasInit = true;
|
||||
initDay();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化当前日,周
|
||||
*/
|
||||
private void initDay() {
|
||||
|
||||
ClanIncomePresenter presenter = getMvpPresenter();
|
||||
presenter.initCurrentDay();
|
||||
|
||||
String first = presenter.getmStartTimeStr();
|
||||
String last = presenter.getmEndTimeStr();
|
||||
|
||||
getIncomeTotal(presenter.getDayFormat(), first, last);
|
||||
}
|
||||
|
||||
private void initIndicator() {
|
||||
List<String> tagList = new ArrayList<>();
|
||||
tagList.add("每日统计");
|
||||
tagList.add("每周统计");
|
||||
|
||||
StatisticsIndicatorAdapter adapter = new StatisticsIndicatorAdapter(tagList, 5);
|
||||
adapter.setOnItemSelectListener(position -> viewPager.setCurrentItem(position));
|
||||
CommonNavigator navigator = new CommonNavigator(this);
|
||||
navigator.setAdapter(adapter);
|
||||
navigator.setAdjustMode(true);
|
||||
indicator.setNavigator(navigator);
|
||||
ViewPagerHelper.bind(indicator, viewPager);
|
||||
|
||||
mCurrentType = TYPE_DAY;
|
||||
|
||||
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
// 切换日,周
|
||||
mCurrentType = position;
|
||||
ClanIncomePresenter presenter = getMvpPresenter();
|
||||
String day;
|
||||
|
||||
if (mCurrentType == TYPE_WEEK) {
|
||||
StatisticManager.Instance().onEvent(BasicConfig.INSTANCE.getAppContext(),
|
||||
StatisticsProtocol.Event.HALL_INCOME_WEEKLY_CLICK, "切换每周统计", null);
|
||||
day = presenter.getWeekChooseDayFormat();
|
||||
} else
|
||||
day = presenter.getDayFormat();
|
||||
|
||||
getIncomeTotal(day, presenter.getmStartTimeStr(), presenter.getmEndTimeStr());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
FragmentStatePagerAdapter adapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) {
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return list.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return list.size();
|
||||
}
|
||||
};
|
||||
|
||||
@OnClick({R.id.iv_date_arrow, R.id.ll_day_group})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.iv_date_arrow:
|
||||
case R.id.ll_day_group:
|
||||
ClanIncomePresenter presenter = getMvpPresenter();
|
||||
boolean isWeek = mCurrentType == TYPE_WEEK;
|
||||
|
||||
TimePickerDialog.Builder builder = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH_DAY)
|
||||
.setTitleStringId("")
|
||||
.setThemeColor(getResources().getColor(R.color.line_color))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
// 根据上一次选中时间初始化日期控件
|
||||
.setCurrentMillseconds(isWeek ? presenter.getmWeekChooseDay() : presenter.getmDay())
|
||||
.setmIsWeek(isWeek);
|
||||
|
||||
TimePickerDialog dialog = builder.build();
|
||||
dialog.setmTimePickerListener(this);
|
||||
dialog.show(getSupportFragmentManager(), "year_month_day");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private int mCurrentType;
|
||||
|
||||
@Override
|
||||
public void getTime(long chooseTime, String weekFirstDay, String weekLastDay) {
|
||||
ClanIncomePresenter presenter = getMvpPresenter();
|
||||
|
||||
if (mCurrentType == TYPE_DAY) {
|
||||
presenter.setmDayStr(chooseTime);
|
||||
getIncomeTotal(presenter.getDayFormat(), "", "");
|
||||
|
||||
} else if (mCurrentType == TYPE_WEEK) {
|
||||
presenter.setmWeekChooseDay(chooseTime);
|
||||
presenter.setmStartTimeStr(weekFirstDay);
|
||||
presenter.setmEndTimeStr(weekLastDay);
|
||||
|
||||
getIncomeTotal("", weekFirstDay, weekLastDay);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void getIncomeTotal(String day, String weekFirstDay, String weekLastDay) {
|
||||
|
||||
if (mCurrentType == TYPE_DAY) {
|
||||
String[] dayArray = day.split("-");
|
||||
tvYear.setText(String.format(getString(R.string.format_year), dayArray[0]));
|
||||
|
||||
tvMonthDayEnd.setVisibility(View.GONE);
|
||||
|
||||
tvMonthDayStart.setText(String.format(getString(R.string.format_month_day), dayArray[1], dayArray[2]));
|
||||
list.get(0).getIncomeTotal(day, "");
|
||||
|
||||
} else if (mCurrentType == TYPE_WEEK) {
|
||||
String[] weekFirstArray = weekFirstDay.split("-");
|
||||
String[] weekLastArray = weekLastDay.split("-");
|
||||
|
||||
tvYear.setText(String.format(getString(R.string.format_year), weekFirstArray[0]));
|
||||
|
||||
tvMonthDayEnd.setVisibility(View.VISIBLE);
|
||||
tvMonthDayStart.setText(String.format(getString(R.string.format_month_day), weekFirstArray[1], weekFirstArray[2]));
|
||||
tvMonthDayEnd.setText(String.format(getString(R.string.format_month_day), weekLastArray[1], weekLastArray[2]));
|
||||
list.get(1).getIncomeTotal(weekFirstDay, weekLastDay);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTotal(long total) {
|
||||
tvTotal.setText(getMvpPresenter().setTotal(total));
|
||||
}
|
||||
}
|
@@ -11,6 +11,7 @@ import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@@ -27,10 +28,13 @@ import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
import com.yizhuan.erban.friend.action.AbstractSelectFriendAction;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.GroupMemberListAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.HallListAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.adapter.OptionAdapter;
|
||||
import com.yizhuan.erban.module_hall.hall.presenter.ModuleHallPresenter;
|
||||
import com.yizhuan.erban.module_hall.hall.view.IModuleHallView;
|
||||
import com.yizhuan.erban.module_hall.hall.view.dialog.HallMenuDialog;
|
||||
import com.yizhuan.erban.ui.user.UserInfoActivity;
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem;
|
||||
import com.yizhuan.erban.ui.widget.marqueeview.Utils;
|
||||
@@ -38,6 +42,9 @@ import com.yizhuan.erban.ui.widget.recyclerview.decoration.SpacingDecoration;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.HallModel;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanAndHallInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.MemberInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.OptionInfo;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
@@ -54,6 +61,7 @@ import java.util.List;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
import io.reactivex.functions.Consumer;
|
||||
|
||||
|
||||
/**
|
||||
@@ -65,42 +73,48 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
|
||||
@BindView(R.id.rv_option)
|
||||
RecyclerView mRvOption;
|
||||
|
||||
@BindView(R.id.rv_hall)
|
||||
RecyclerView rvHall;
|
||||
@BindView(R.id.ll_hall_list)
|
||||
View llHallList;
|
||||
@BindView(R.id.tv_clan_member_count)
|
||||
TextView tvClanMemberCount;
|
||||
@BindView(R.id.srl_group)
|
||||
SwipeRefreshLayout mSrlGroup;
|
||||
@BindView(R.id.recycler_view)
|
||||
RecyclerView recyclerView;
|
||||
|
||||
@BindView(R.id.tv_count)
|
||||
TextView tvCount;
|
||||
|
||||
@BindView(R.id.iv_hall_member_more)
|
||||
ImageView ivHallMemberMore;
|
||||
|
||||
@BindView(R.id.iv_hall_member_search)
|
||||
ImageView ivHallMemberSearch;
|
||||
|
||||
@BindView(R.id.tv_title)
|
||||
TextView tvTitle;
|
||||
|
||||
@BindView(R.id.iv_setting)
|
||||
ImageView ivSetting;
|
||||
|
||||
@BindView(R.id.tv_hall_id)
|
||||
TextView tvHallId;
|
||||
|
||||
@BindView(R.id.tv_owner_uid)
|
||||
@BindView(R.id.tv_hall_owner_uid)
|
||||
TextView tvOwnerUid;
|
||||
|
||||
@BindView(R.id.tv_owner_name)
|
||||
@BindView(R.id.tv_hall_owner_name)
|
||||
TextView tvOwnerName;
|
||||
|
||||
@BindView(R.id.iv_avatar)
|
||||
@BindView(R.id.iv_hall_avatar)
|
||||
ImageView ivAvatar;
|
||||
|
||||
@BindView(R.id.cl_clan)
|
||||
View clClan;
|
||||
@BindView(R.id.cl_hall)
|
||||
View clHall;
|
||||
@BindView(R.id.tv_clan_id)
|
||||
TextView tvClanId;
|
||||
@BindView(R.id.tv_clan_owner_uid)
|
||||
TextView tvClanOwnerUid;
|
||||
@BindView(R.id.tv_clan_owner_name)
|
||||
TextView tvClanOwnerName;
|
||||
@BindView(R.id.iv_clan_avatar)
|
||||
ImageView ivClanAvatar;
|
||||
@BindView(R.id.iv_avatar_bg)
|
||||
ImageView ivAvatarBg;
|
||||
|
||||
@BindView(R.id.nsv_hall)
|
||||
NestedScrollView nsvHall;
|
||||
|
||||
@@ -109,10 +123,13 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
private GroupMemberListAdapter mGroupMemberListAdapter;
|
||||
private List<AuthInfo> mAuthInfoList;
|
||||
|
||||
private HallListAdapter hallListAdapter;
|
||||
private RVDelegate<HallInfo> rvDelegate;
|
||||
|
||||
@Nullable
|
||||
private ClanInfo clanInfo;
|
||||
private int page = 100;
|
||||
|
||||
private int pageSize = 100;
|
||||
|
||||
private final int pageSize = 20;
|
||||
private boolean isLoading;
|
||||
private long lastClickTime;
|
||||
|
||||
@@ -148,7 +165,6 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
page = 1;
|
||||
loadMembers();
|
||||
});
|
||||
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||
mGroupMemberListAdapter = new GroupMemberListAdapter(this, null);
|
||||
mGroupMemberListAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@@ -173,11 +189,79 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
recyclerView.setAdapter(mGroupMemberListAdapter);
|
||||
setTvCount(0);
|
||||
getMvpPresenter().getHallAuths();
|
||||
|
||||
getMvpPresenter().getHallMenusByUid(AuthModel.get().getCurrentUid());
|
||||
getMvpPresenter().getHallInfo();
|
||||
EventBus.getDefault().register(this);
|
||||
nsvHall.setNestedScrollingEnabled(false);
|
||||
initClanAndHall();
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint({"CheckResult", "SetTextI18n"})
|
||||
private void initClanAndHall() {
|
||||
HallModel.get().getUserHallAndClan(AuthModel.get().getCurrentUid())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(clanAndHallInfo -> {
|
||||
String bgUrl = "";
|
||||
HallInfo hallInfo = clanAndHallInfo.getHall();
|
||||
if (hallInfo != null && hallInfo.getHallId() != 0) {
|
||||
HallDataManager.get().updateHallInfo(hallInfo);
|
||||
clHall.setVisibility(View.VISIBLE);
|
||||
clHall.setOnClickListener(v -> UserInfoActivity.Companion.start(context,hallInfo.getOwnerUid()));
|
||||
bgUrl = hallInfo.getOwnerAvatar();
|
||||
tvHallId.setText("公会ID:" + hallInfo.getHallId() + "");
|
||||
tvOwnerUid.setText("66号:" + hallInfo.getOwnerErbanNo());
|
||||
tvOwnerName.setText(hallInfo.getOwnerNick());
|
||||
tvTitle.setText(hallInfo.getHallName());
|
||||
GlideApp.with(ivAvatar.getContext())
|
||||
.load(hallInfo.getOwnerAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(ivAvatar);
|
||||
} else {
|
||||
clHall.setVisibility(View.GONE);
|
||||
}
|
||||
clanInfo = clanAndHallInfo.getClan();
|
||||
if (clanInfo != null && clanInfo.getId() != 0) {
|
||||
clClan.setVisibility(View.VISIBLE);
|
||||
clClan.setOnClickListener(v -> UserInfoActivity.Companion.start(context,clanInfo.getElderUid()));
|
||||
bgUrl = clanInfo.getAvatar();
|
||||
tvClanId.setText("家族ID:" + clanInfo.getId());
|
||||
tvClanOwnerUid.setText("66号:" + clanInfo.getElderErbanNo());
|
||||
tvClanOwnerName.setText(clanInfo.getElderName());
|
||||
tvTitle.setText(clanInfo.getName());
|
||||
GlideApp.with(ivClanAvatar.getContext())
|
||||
.load(clanInfo.getAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(ivClanAvatar);
|
||||
loadHallList();
|
||||
} else {
|
||||
clHall.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
GlideApp.with(ivAvatarBg.getContext())
|
||||
.load(bgUrl)
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(ivAvatarBg);
|
||||
});
|
||||
}
|
||||
|
||||
@SuppressLint({"CheckResult", "SetTextI18n"})
|
||||
private void loadHallList() {
|
||||
if (clanInfo == null) return;
|
||||
HallModel.get().getClanHallList(clanInfo.getId())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(hallInfos -> {
|
||||
if (rvDelegate == null) {
|
||||
rvDelegate = new RVDelegate.Builder<HallInfo>()
|
||||
.setAdapter(hallListAdapter = new HallListAdapter())
|
||||
.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false))
|
||||
.setPageSize(20)
|
||||
.setRecyclerView(rvHall)
|
||||
.build();
|
||||
}
|
||||
llHallList.setVisibility(View.VISIBLE);
|
||||
tvClanMemberCount.setText("公会列表(" + hallInfos.size() + ")");
|
||||
rvDelegate.setNewData(hallInfos);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -194,7 +278,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
});
|
||||
isHallOwner = HallDataManager.get().getRole() == 1;
|
||||
isHallAdmin = HallDataManager.get().getRole() == 2;
|
||||
setSearchOption(isHallOwner,isHallAdmin);
|
||||
setSearchOption(isHallOwner, isHallAdmin);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -205,16 +289,16 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
private void setSettingOption(boolean hasOption) {
|
||||
if (hasOption) {
|
||||
ivSetting.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
} else {
|
||||
ivSetting.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
private void setSearchOption(boolean hasOption,boolean isHallAdmin) {
|
||||
private void setSearchOption(boolean hasOption, boolean isHallAdmin) {
|
||||
if (hasOption || isHallAdmin) {
|
||||
ivHallMemberSearch.setVisibility(View.VISIBLE);
|
||||
ivHallMemberMore.setVisibility(View.VISIBLE);
|
||||
}else {
|
||||
} else {
|
||||
ivHallMemberSearch.setVisibility(View.GONE);
|
||||
ivHallMemberMore.setVisibility(View.GONE);
|
||||
}
|
||||
@@ -235,46 +319,48 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
|
||||
mOptionAdapter = new OptionAdapter(this, tabList);
|
||||
mRvOption.setAdapter(mOptionAdapter);
|
||||
mOptionAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
List<OptionInfo> optionInfoList = mOptionAdapter.getData();
|
||||
OptionInfo optionInfo = optionInfoList.get(position);
|
||||
|
||||
// code --> url --> 原生
|
||||
if (OptionInfo.OPTION_LOOK_HALL_INCOME.equals(optionInfo.getCode())) {
|
||||
|
||||
if (!TextUtils.isEmpty(optionInfo.getUrl()))
|
||||
CommonWebViewActivity.start(ModuleHallActivity.this, optionInfo.getUrl());
|
||||
else
|
||||
IncomeStatisticsActivity.start(ModuleHallActivity.this);
|
||||
|
||||
} else if (OptionInfo.OPTION_HALL_BUILD.equals(optionInfo.getCode())) {
|
||||
Log.i("option", "do nothing");
|
||||
} else if (OptionInfo.OPTION_ADD_HALL_MEMBER_WITH_PWD.equals(optionInfo.getCode())) {
|
||||
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HALL_ADDMEMBERS_CLICK,
|
||||
"添加成员-面板");
|
||||
HallSearchActivity.start(context, AbstractSelectFriendAction.TYPE_MODULE_HALL);
|
||||
|
||||
} else if (OptionInfo.OPTION_HALL_OWNER_ROOM_SERIAL.equals(optionInfo.getCode())) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HALL_HALLINCOME_CLICK,
|
||||
"厅收入统计");
|
||||
String url = optionInfo.getUrl();
|
||||
if (!TextUtils.isEmpty(url))
|
||||
CommonWebViewActivity.start(ModuleHallActivity.this, optionInfo.getUrl());
|
||||
mOptionAdapter.setOnItemChildClickListener((adapter, view, position) -> {
|
||||
List<OptionInfo> optionInfoList = mOptionAdapter.getData();
|
||||
OptionInfo optionInfo = optionInfoList.get(position);
|
||||
|
||||
// code --> url --> 原生
|
||||
if (OptionInfo.OPTION_LOOK_HALL_INCOME.equals(optionInfo.getCode())) {
|
||||
if (!TextUtils.isEmpty(optionInfo.getUrl())) {
|
||||
CommonWebViewActivity.start(ModuleHallActivity.this, optionInfo.getUrl());
|
||||
} else {
|
||||
toast("请更新到最新版本");
|
||||
IncomeStatisticsActivity.start(ModuleHallActivity.this);
|
||||
}
|
||||
|
||||
} else if (OptionInfo.OPTION_GUILD_INCOME.equals(optionInfo.getCode())) {
|
||||
if (!TextUtils.isEmpty(optionInfo.getUrl())) {
|
||||
CommonWebViewActivity.start(ModuleHallActivity.this, optionInfo.getUrl());
|
||||
} else {
|
||||
ClanIncomeActivity.start(ModuleHallActivity.this);
|
||||
}
|
||||
} else if (OptionInfo.OPTION_HALL_BUILD.equals(optionInfo.getCode())) {
|
||||
Log.i("option", "do nothing");
|
||||
} else if (OptionInfo.OPTION_ADD_HALL_MEMBER_WITH_PWD.equals(optionInfo.getCode())) {
|
||||
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HALL_ADDMEMBERS_CLICK,
|
||||
"添加成员-面板");
|
||||
HallSearchActivity.start(context, AbstractSelectFriendAction.TYPE_MODULE_HALL);
|
||||
|
||||
} else if (OptionInfo.OPTION_HALL_OWNER_ROOM_SERIAL.equals(optionInfo.getCode())) {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_HALL_HALLINCOME_CLICK,
|
||||
"厅收入统计");
|
||||
String url = optionInfo.getUrl();
|
||||
if (!TextUtils.isEmpty(url))
|
||||
CommonWebViewActivity.start(ModuleHallActivity.this, optionInfo.getUrl());
|
||||
|
||||
} else {
|
||||
toast("请更新到最新版本");
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
super.onReloadDate();
|
||||
@@ -283,6 +369,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
}
|
||||
|
||||
private long mTargetUid;
|
||||
|
||||
private void showRemoveDialog(long targetUid, int targetRoleType, String targetNick) {
|
||||
mTargetUid = targetUid;
|
||||
SpannableString spannableString = getMvpPresenter().getRemoveTips(this, targetRoleType, targetNick);
|
||||
@@ -309,7 +396,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadMembers() {
|
||||
isLoading = true;
|
||||
HallModel.get().getAllMembers(HallDataManager.get().getHallId(), page, pageSize)
|
||||
HallModel.get().getClanAllMembers(AuthModel.get().getCurrentUid(), page, pageSize)
|
||||
.compose(RxHelper.bindActivity(this))
|
||||
.subscribe((listMemberInfo, throwable) -> {
|
||||
mSrlGroup.setRefreshing(false);
|
||||
@@ -334,22 +421,10 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
hideStatus();
|
||||
if (page == 1) {
|
||||
mGroupMemberListAdapter.setNewData(list);
|
||||
tvHallId.setText("公会ID:"+list.get(0).getHallId()+"");
|
||||
tvOwnerUid.setText("66号:"+list.get(0).getErbanNo());
|
||||
tvOwnerName.setText(list.get(0).getNick());
|
||||
GlideApp.with(ivAvatar.getContext())
|
||||
.load(list.get(0).getAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(ivAvatar);
|
||||
|
||||
GlideApp.with(ivAvatarBg.getContext())
|
||||
.load(list.get(0).getAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.into(ivAvatarBg);
|
||||
} else {
|
||||
mGroupMemberListAdapter.addData(list);
|
||||
}
|
||||
page ++;
|
||||
page++;
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -357,6 +432,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
}
|
||||
|
||||
private int mCount;
|
||||
|
||||
private void setTvCount(int count) {
|
||||
mCount = count;
|
||||
tvCount.setText("成员列表(" + mCount + "人)");
|
||||
@@ -437,7 +513,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@OnClick({R.id.iv_hall_member_search,R.id.iv_hall_member_more,R.id.iv_back,R.id.iv_setting})
|
||||
@OnClick({R.id.iv_hall_member_search, R.id.iv_hall_member_more, R.id.iv_back, R.id.iv_setting})
|
||||
public void onViewClicked(View view) {
|
||||
switch (view.getId()) {
|
||||
case R.id.iv_hall_member_search:
|
||||
@@ -456,7 +532,7 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
finish();
|
||||
break;
|
||||
case R.id.iv_setting:
|
||||
if (isHallOwner){
|
||||
if (isHallOwner) {
|
||||
showMenuDialog(view);
|
||||
} else {
|
||||
showExitHallDialog(view);
|
||||
@@ -470,11 +546,11 @@ public class ModuleHallActivity extends BaseMvpActivity<IModuleHallView, ModuleH
|
||||
|
||||
List<ButtonItem> list_adapter = new ArrayList<>();
|
||||
for (AuthInfo authInfo : authInfoList) {
|
||||
if (authInfo.getCode().equals(AuthInfo.AUTH_APPLY_HALL_EXIT)){
|
||||
if (authInfo.getCode().equals(AuthInfo.AUTH_APPLY_HALL_EXIT)) {
|
||||
continue;
|
||||
}
|
||||
if (authInfo.isOwnAuth()) {
|
||||
ButtonItem item = new ButtonItem(authInfo.getName(),() -> {
|
||||
ButtonItem item = new ButtonItem(authInfo.getName(), () -> {
|
||||
jumpCode(authInfo.getCode());
|
||||
});
|
||||
list_adapter.add(item);
|
||||
|
@@ -0,0 +1,20 @@
|
||||
package com.yizhuan.erban.module_hall.hall.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
|
||||
|
||||
public class HallListAdapter extends BaseQuickAdapter<HallInfo, BaseViewHolder> {
|
||||
public HallListAdapter() {
|
||||
super(R.layout.item_hall);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, HallInfo item) {
|
||||
ImageLoadUtils.loadRectImage(mContext,item.getOwnerAvatar(),helper.getView(R.id.iv_hall_avatar),R.drawable.default_cover, ScreenUtil.dip2px(8));
|
||||
helper.setText(R.id.tv_hall_name,item.getHallName());
|
||||
}
|
||||
}
|
@@ -53,10 +53,6 @@ public class ModuleHallPresenter extends BaseMvpPresenter<IModuleHallView>{
|
||||
});
|
||||
}
|
||||
|
||||
public void getHallInfo() {
|
||||
HallDataManager.get().updateHallInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 成员列表
|
||||
*/
|
||||
|
@@ -0,0 +1,182 @@
|
||||
package com.yizhuan.erban.module_hall.income;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.module_hall.income.adapter.IncomeAdapter;
|
||||
import com.yizhuan.erban.module_hall.income.presenter.IncomePresenter;
|
||||
import com.yizhuan.erban.module_hall.income.view.IIncomeView;
|
||||
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.income.bean.IncomeTotalInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.Unbinder;
|
||||
|
||||
/**
|
||||
* 日收入统计
|
||||
* Created by lvzebiao on 2018/12/27.
|
||||
*/
|
||||
|
||||
@CreatePresenter(IncomePresenter.class)
|
||||
public class ClanIncomeFragment extends BaseMvpFragment<IIncomeView, IncomePresenter> implements IIncomeView{
|
||||
|
||||
public static final int TYPE_DAY = 0;
|
||||
public static final int TYPE_WEEK = 1;
|
||||
public static final String FLAG_DAY_TYPE = "dayType";
|
||||
|
||||
private int mDayType;
|
||||
private IncomeAdapter mIncomeAdapter;
|
||||
|
||||
private DayIncomeFragmentListener mDayIncomeFragmentListener;
|
||||
|
||||
Unbinder unbinder;
|
||||
|
||||
@BindView(R.id.recycler_view)
|
||||
RecyclerView recyclerView;
|
||||
|
||||
public static ClanIncomeFragment getInstance(int dayType) {
|
||||
ClanIncomeFragment fragment = new ClanIncomeFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt(FLAG_DAY_TYPE, dayType);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
mIncomeAdapter = new IncomeAdapter(mContext, null);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
|
||||
mIncomeAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
List<IncomeInfo> incomeInfos = mIncomeAdapter.getData();
|
||||
if (incomeInfos.size() > 0) {
|
||||
IncomeInfo incomeInfo = incomeInfos.get(position);
|
||||
|
||||
if (mDayType == TYPE_WEEK)
|
||||
IncomeDetailActivity.start(mContext, incomeInfo, mStartTimeStr, mEndTimeStr);
|
||||
else
|
||||
IncomeDetailActivity.start(mContext, incomeInfo, mStartTimeStr, "");
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
recyclerView.setAdapter(mIncomeAdapter);
|
||||
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
||||
super.onScrollStateChanged(recyclerView, newState);
|
||||
// if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
||||
// if (isLoading || noMoreData) {
|
||||
// return;
|
||||
// }
|
||||
// LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
||||
// int lastfirst = manager.findLastVisibleItemPosition();
|
||||
// int itemCount = mGroupMemberListAdapter.getItemCount();
|
||||
// if (itemCount >= 2 && lastfirst >= itemCount - 2) {
|
||||
// loadMembers();
|
||||
// }
|
||||
// }
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
}
|
||||
|
||||
public void getIncomeTotal(String startTimeStr, String endTimeStr) {
|
||||
mStartTimeStr = startTimeStr;
|
||||
mEndTimeStr = endTimeStr;
|
||||
|
||||
if (mDayType == TYPE_WEEK) {
|
||||
getMvpPresenter().incomeTotal(startTimeStr, endTimeStr);
|
||||
} else {
|
||||
getMvpPresenter().incomeTotal(startTimeStr, "");
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
unbinder = ButterKnife.bind(this, mView);
|
||||
|
||||
return mView;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onInitArguments(Bundle bundle) {
|
||||
if (bundle != null) {
|
||||
mDayType = bundle.getInt(FLAG_DAY_TYPE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_day_income;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
unbinder.unbind();
|
||||
}
|
||||
|
||||
private String mStartTimeStr = "";
|
||||
private String mEndTimeStr = "";
|
||||
|
||||
private void setTotal(long total) {
|
||||
if (mDayIncomeFragmentListener != null)
|
||||
mDayIncomeFragmentListener.setTotal(total);
|
||||
}
|
||||
|
||||
public void setmDayIncomeFragmentListener(DayIncomeFragmentListener mDayIncomeFragmentListener) {
|
||||
this.mDayIncomeFragmentListener = mDayIncomeFragmentListener;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incomeTotalSuccess(IncomeTotalInfo incomeTotalInfo) {
|
||||
hideStatus();
|
||||
setTotal(incomeTotalInfo.getTotal());
|
||||
|
||||
if (incomeTotalInfo.getVos() != null) {
|
||||
mIncomeAdapter.setNewData(incomeTotalInfo.getVos());
|
||||
mIncomeAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incomeTotalFail(String message) {
|
||||
hideStatus();
|
||||
showNoData();
|
||||
setTotal(0);
|
||||
mIncomeAdapter.setNewData(null);
|
||||
mIncomeAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public interface DayIncomeFragmentListener {
|
||||
void setTotal(long total);
|
||||
}
|
||||
}
|
@@ -0,0 +1,107 @@
|
||||
package com.yizhuan.erban.module_hall.income.presenter;
|
||||
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.RelativeSizeSpan;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.module_hall.income.view.IIncomeStatisticsView;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Calendar;
|
||||
|
||||
public class ClanIncomePresenter extends BaseMvpPresenter<IIncomeStatisticsView> {
|
||||
|
||||
private String mStartTimeStr;
|
||||
private String mEndTimeStr;
|
||||
/** 周范围内选中的日期 */
|
||||
private long mWeekChooseDay;
|
||||
/** 日范围内选中的日期 */
|
||||
private long mDay;
|
||||
|
||||
public void initCurrentDay() {
|
||||
mDay = mWeekChooseDay = System.currentTimeMillis();
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(mDay);
|
||||
|
||||
int curWeekDay = calendar.get(Calendar.DAY_OF_WEEK);
|
||||
//周一的时间
|
||||
long firstDayTime;
|
||||
if (curWeekDay == 1) {//周日
|
||||
firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (7 - curWeekDay));
|
||||
} else {
|
||||
firstDayTime = calendar.getTimeInMillis() - (TimeUtils.MILLIS_OF_A_DAY * (curWeekDay - 2));
|
||||
}
|
||||
//周日
|
||||
long lastDayTime = firstDayTime + (TimeUtils.MILLIS_OF_A_DAY * 6);
|
||||
|
||||
mStartTimeStr = TimeUtils.getDateTimeString(firstDayTime, TimeUtils.DATE_FORMAT);
|
||||
mEndTimeStr = TimeUtils.getDateTimeString(lastDayTime, TimeUtils.DATE_FORMAT);
|
||||
}
|
||||
|
||||
public SpannableString setTotal(long total) {
|
||||
|
||||
SpannableString spannableString;
|
||||
RelativeSizeSpan sizeSpan = new RelativeSizeSpan(0.5f);
|
||||
|
||||
if (total > 10000) {
|
||||
double d = (double) total;
|
||||
d = d / 10000;
|
||||
BigDecimal df = new BigDecimal(d);
|
||||
String str = df.setScale(2, RoundingMode.DOWN).toString() + "万钻石";
|
||||
|
||||
spannableString = new SpannableString(str);
|
||||
spannableString.setSpan(sizeSpan, str.length() - 3, str.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
|
||||
} else {
|
||||
String str = String.valueOf(total) + "钻石";
|
||||
|
||||
spannableString = new SpannableString(str);
|
||||
spannableString.setSpan(sizeSpan, str.length() - 2, str.length(), SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
}
|
||||
|
||||
return spannableString;
|
||||
}
|
||||
|
||||
public String getmStartTimeStr() {
|
||||
return mStartTimeStr;
|
||||
}
|
||||
|
||||
public void setmStartTimeStr(String mStartTimeStr) {
|
||||
this.mStartTimeStr = mStartTimeStr;
|
||||
}
|
||||
|
||||
public String getmEndTimeStr() {
|
||||
return mEndTimeStr;
|
||||
}
|
||||
|
||||
public void setmEndTimeStr(String mEndTimeStr) {
|
||||
this.mEndTimeStr = mEndTimeStr;
|
||||
}
|
||||
|
||||
public long getmDay() {
|
||||
return mDay;
|
||||
}
|
||||
|
||||
public void setmDayStr(long day) {
|
||||
this.mDay = day;
|
||||
}
|
||||
|
||||
public String getDayFormat() {
|
||||
return TimeUtils.getDateTimeString(mDay, TimeUtils.DATE_FORMAT);
|
||||
}
|
||||
|
||||
public long getmWeekChooseDay() {
|
||||
return mWeekChooseDay;
|
||||
}
|
||||
|
||||
public void setmWeekChooseDay(long weekChooseDay) {
|
||||
this.mWeekChooseDay = weekChooseDay;
|
||||
}
|
||||
|
||||
public String getWeekChooseDayFormat() {
|
||||
return TimeUtils.getDateTimeString(mWeekChooseDay, TimeUtils.DATE_FORMAT);
|
||||
}
|
||||
|
||||
}
|
@@ -34,60 +34,231 @@
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar"
|
||||
android:layout_width="75dp"
|
||||
android:layout_height="75dp"
|
||||
android:layout_marginStart="@dimen/dp_25"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_clan"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:src="@drawable/nim_avatar_default"
|
||||
app:civ_border_color="@color/black"
|
||||
app:civ_border_width="5dp"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintEnd_toStartOf="@id/cl_hall"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<LinearLayout
|
||||
<View
|
||||
android:layout_width="66dp"
|
||||
android:layout_height="66dp"
|
||||
android:background="@drawable/shape_ffa768_stroke_1dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_clan_avatar"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_clan_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_clan_avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_clan_avatar" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_clan_avatar"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginStart="17dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:layout_width="35dp"
|
||||
android:layout_height="15dp"
|
||||
android:gravity="center"
|
||||
android:text="族长"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:corner="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_clan_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_clan_avatar"
|
||||
app:shaderEnable="true"
|
||||
app:shaderEndColor="#FFBC59"
|
||||
app:shaderMode="leftToRight"
|
||||
app:shaderStartColor="#FF8F57" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_clan_avatar"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_clan_owner_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:maxEms="6"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_15"
|
||||
tools:text="我是会长" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_clan_owner_uid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="66号:3979655" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_clan_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="公会ID:123456" />
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_hall"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="?attr/actionBarSize"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/cl_clan"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<View
|
||||
android:layout_width="66dp"
|
||||
android:layout_height="66dp"
|
||||
android:background="@drawable/shape_7154ee_stroke_1dp"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_hall_avatar" />
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_hall_avatar"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
android:src="@drawable/default_avatar"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="1dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.coorchice.library.SuperTextView
|
||||
android:layout_width="35dp"
|
||||
android:layout_height="15dp"
|
||||
android:gravity="center"
|
||||
android:text="会长"
|
||||
android:textColor="#ffffffff"
|
||||
android:textSize="11sp"
|
||||
app:corner="8dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_hall_avatar"
|
||||
app:shaderEnable="true"
|
||||
app:shaderEndColor="#6956F0"
|
||||
app:shaderMode="leftToRight"
|
||||
app:shaderStartColor="#987EF7" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_hall_avatar">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hall_owner_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:ellipsize="end"
|
||||
android:lines="1"
|
||||
android:maxEms="6"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_15"
|
||||
tools:text="我是会我是会长长" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hall_owner_uid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="66号:3979655" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hall_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="公会ID:123456" />
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:id="@+id/barrier_top"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_20"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="@id/iv_avatar"
|
||||
app:layout_constraintStart_toEndOf="@id/iv_avatar"
|
||||
app:layout_constraintTop_toTopOf="@id/iv_avatar">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_owner_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_18"
|
||||
tools:text="我是会长" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_owner_uid"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="66号:3979655" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hall_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_11"
|
||||
tools:text="公会ID:123456" />
|
||||
</LinearLayout>
|
||||
|
||||
app:barrierDirection="bottom"
|
||||
app:constraint_referenced_ids="cl_clan,cl_hall" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_option"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_avatar" />
|
||||
app:layout_constraintTop_toBottomOf="@id/barrier_top" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_hall_list"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_15"
|
||||
android:layout_marginTop="@dimen/dp_13"
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:background="@drawable/bg_corner_shadow_12"
|
||||
android:orientation="vertical"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingBottom="17dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/rv_option">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_clan_member_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
android:paddingStart="14dp"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingEnd="14dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:text="公会列表(8)"
|
||||
android:textColor="@color/color_333333"
|
||||
android:textSize="15dp" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/rv_hall"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_member_list"
|
||||
@@ -98,9 +269,7 @@
|
||||
android:layout_marginEnd="@dimen/dp_15"
|
||||
android:background="@drawable/bg_corner_shadow_12"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintTop_toBottomOf="@id/rv_option"
|
||||
|
||||
>
|
||||
app:layout_constraintTop_toBottomOf="@id/ll_hall_list">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
|
36
app/src/module_labour_union/res/layout/item_hall.xml
Normal file
36
app/src/module_labour_union/res/layout/item_hall.xml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="8dp">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_hall_avatar"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:src="@drawable/default_cover" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_hall_name"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="5dp"
|
||||
android:text="忘忧阁忘忧阁忘忧阁忘忧阁"
|
||||
android:gravity="center"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:textColor="#ff333333"
|
||||
android:textSize="13sp"
|
||||
app:layout_constraintEnd_toEndOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintStart_toStartOf="@id/iv_hall_avatar"
|
||||
app:layout_constraintTop_toBottomOf="@id/iv_hall_avatar" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -6,7 +6,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/white"
|
||||
android:orientation="vertical"
|
||||
tools:context="com.yinyuan.doudou.pay.activity.GiveGoldToUserActivity">
|
||||
tools:context=".pay.activity.GiveGoldToUserActivity">
|
||||
|
||||
<com.yizhuan.erban.base.TitleBar
|
||||
android:id="@+id/title_bar"
|
||||
|
@@ -125,6 +125,13 @@ public class UserInfo implements Serializable {
|
||||
*/
|
||||
private long hallId;
|
||||
|
||||
/**
|
||||
* 家族
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
private long clanId;
|
||||
|
||||
/**
|
||||
* 判断是否已经实名认证了
|
||||
*/
|
||||
|
@@ -7,6 +7,8 @@ import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ApplyResult;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthListResult;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanAndHallInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallMenuByUidResult;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ListMemberInfo;
|
||||
@@ -252,6 +254,26 @@ public class HallModel extends BaseModel implements IHallModel {
|
||||
.compose(RxHelper.handleCommon(OwnerHallInfo::new));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<List<HallInfo>> getClanHallList(long clanId) {
|
||||
return api.getClanHallList(clanId)
|
||||
.compose(RxHelper.handleCommon());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Single<ListMemberInfo> getClanAllMembers(long uid, int page, int pageSize) {
|
||||
return api.getClanAllMembers(uid, page, pageSize)
|
||||
.compose(RxHelper.handleCommon(ListMemberInfo::new));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<ClanAndHallInfo> getUserHallAndClan(long uid) {
|
||||
return api.getUserHallAndClan(uid)
|
||||
.compose(RxHelper.handleCommon());
|
||||
}
|
||||
|
||||
|
||||
private interface Api {
|
||||
/**
|
||||
* 申请加入模厅
|
||||
@@ -372,5 +394,33 @@ public class HallModel extends BaseModel implements IHallModel {
|
||||
@GET("/hall/getOwnerHallInfo")
|
||||
Single<ServiceResult<OwnerHallInfo>> getOwnerHallInfo(@Query("uid") long uid,
|
||||
@Query("targetUid") long targetUid);
|
||||
|
||||
/**
|
||||
* 获取家族下的公会列表
|
||||
*/
|
||||
@GET("/clan/listHall")
|
||||
Single<ServiceResult<List<HallInfo>>> getClanHallList(@Query("clanId") long clanId);
|
||||
|
||||
/**
|
||||
* 获取家族下的成员列表
|
||||
*/
|
||||
@GET("/clan/listMember")
|
||||
Single<ServiceResult<ListMemberInfo>> getClanAllMembers(@Query("uid") long uid,
|
||||
@Query("page") int page,
|
||||
@Query("pageSize") int pageSize);
|
||||
|
||||
/**
|
||||
*
|
||||
* 获取用户家族信息
|
||||
*/
|
||||
@GET("/clan/getUserClanInfo")
|
||||
Single<ServiceResult<ClanInfo>> getUserClanInfo(@Query("uid") long uid);
|
||||
|
||||
/**
|
||||
*
|
||||
* 获取用户家族和公会信息
|
||||
*/
|
||||
@GET("/clan/getUserHallAndClan")
|
||||
Single<ServiceResult<ClanAndHallInfo>> getUserHallAndClan(@Query("uid") long uid);
|
||||
}
|
||||
}
|
@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_core.module_hall.hall;
|
||||
|
||||
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.AuthInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ClanAndHallInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.OptionInfo;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.ApplyResult;
|
||||
import com.yizhuan.xchat_android_core.module_hall.hall.bean.HallInfo;
|
||||
@@ -67,4 +68,9 @@ public interface IHallModel {
|
||||
|
||||
Single<OwnerHallInfo> getOwnerHallInfo(long targetUid);
|
||||
|
||||
Single<List<HallInfo>> getClanHallList(long clanId);
|
||||
|
||||
Single<ListMemberInfo> getClanAllMembers(long clanId, int page, int pageSize);
|
||||
|
||||
Single<ClanAndHallInfo> getUserHallAndClan(long uid);
|
||||
}
|
||||
|
@@ -0,0 +1,9 @@
|
||||
package com.yizhuan.xchat_android_core.module_hall.hall.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ClanAndHallInfo {
|
||||
private ClanInfo clan;
|
||||
private HallInfo hall;
|
||||
}
|
@@ -0,0 +1,19 @@
|
||||
package com.yizhuan.xchat_android_core.module_hall.hall.bean;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ClanInfo {
|
||||
private String avatar;
|
||||
private String clanHallNum;
|
||||
private int clanMemberNum;
|
||||
private int id;
|
||||
private String name;
|
||||
private long elderUid;
|
||||
private String elderName;
|
||||
private long elderErbanNo;
|
||||
private int status;
|
||||
private long ownerId;
|
||||
private boolean userIsElder;
|
||||
|
||||
}
|
@@ -20,6 +20,11 @@ public class HallInfo {
|
||||
*/
|
||||
private long ownerUid;
|
||||
|
||||
/**
|
||||
* 厅主Id
|
||||
*/
|
||||
private long ownerErbanNo;
|
||||
|
||||
/**
|
||||
* 厅人数
|
||||
*/
|
||||
|
Reference in New Issue
Block a user