diff --git a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java index 4149a3f86..a792aa311 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/fragment/HomePartyFragment.java @@ -14,6 +14,7 @@ import android.support.v7.widget.AppCompatImageView; import android.text.Html; import android.text.TextUtils; import android.text.style.ForegroundColorSpan; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewConfiguration; @@ -95,6 +96,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.TimeUnit; import cn.sharesdk.framework.Platform; @@ -147,6 +149,9 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi private ShareDialog shareDialog; + //收藏房间 + private String FOLLOW_ROOM_TYPE = ""; + //取消收藏房间 public static HomePartyFragment newInstance(long roomUid, boolean isRoomMin) { HomePartyFragment homePartyFragment = new HomePartyFragment(); @@ -569,6 +574,11 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi roomTitle.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); } + +// tvFollowRoom.setVisibility(AvRoomDataManager.get().isRoomOwner()?View.GONE:View.VISIBLE); + FOLLOW_ROOM_TYPE = AvRoomDataManager.get().isRoomFans?"2":"1"; + tvFollowRoom.setText(AvRoomDataManager.get().isRoomFans?"已收藏":"收藏"); + setIdOnlineData(); } } @@ -602,7 +612,7 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi break; case R.id.room_back: - ((AVRoomActivity) getActivity()).onBackPressed(); + (Objects.requireNonNull(getActivity())).onBackPressed(); break; case R.id.iv_room_share: shareRoom(); @@ -618,14 +628,21 @@ public class HomePartyFragment extends AbsRoomFragment implements View.OnClickLi * 收藏房间 */ private void followRoom() { - CollectionRoomModel.get().followRoom(String.valueOf(mUserInfo.getErbanNo())) + RoomInfo currentRoomInfo = AvRoomDataManager.get().mCurrentRoomInfo; + if (currentRoomInfo == null){ + return; + } + CollectionRoomModel.get().followRoom(FOLLOW_ROOM_TYPE,mTargetRoomUid) .compose(bindUntilEvent(FragmentEvent.DESTROY)) .doOnError(throwable -> { toast(throwable.getMessage()); }) .subscribe(s -> { - + AvRoomDataManager.get().isRoomFans = AvRoomDataManager.get().isRoomFans?false:true; + FOLLOW_ROOM_TYPE = AvRoomDataManager.get().isRoomFans?"2":"1"; + tvFollowRoom.setText(AvRoomDataManager.get().isRoomFans?"已收藏":"收藏"); }); + } public void shareRoom() { diff --git a/app/src/main/java/com/yizhuan/erban/avroom/presenter/AvRoomPresenter.java b/app/src/main/java/com/yizhuan/erban/avroom/presenter/AvRoomPresenter.java index 43dfbc17f..608434c9d 100644 --- a/app/src/main/java/com/yizhuan/erban/avroom/presenter/AvRoomPresenter.java +++ b/app/src/main/java/com/yizhuan/erban/avroom/presenter/AvRoomPresenter.java @@ -125,6 +125,7 @@ public class AvRoomPresenter extends BaseMvpPresenter { AvRoomDataManager.get().nick = roomInfo.getNick(); AvRoomDataManager.get().gender = roomInfo.getGender(); AvRoomDataManager.get().avatar = roomInfo.getAvatar(); + AvRoomDataManager.get().isRoomFans = roomInfo.isRoomFans(); StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_ROOM_LIST_TYPE, "区分房间类型:" + roomInfo.getRoomTypeLable()); diff --git a/app/src/main/java/com/yizhuan/erban/home/activity/CollectionRoomActivity.java b/app/src/main/java/com/yizhuan/erban/home/activity/CollectionRoomActivity.java index 1174a73ec..5f530508f 100644 --- a/app/src/main/java/com/yizhuan/erban/home/activity/CollectionRoomActivity.java +++ b/app/src/main/java/com/yizhuan/erban/home/activity/CollectionRoomActivity.java @@ -6,14 +6,20 @@ import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.view.View; +import com.chad.library.adapter.base.BaseQuickAdapter; import com.yizhuan.erban.R; +import com.yizhuan.erban.avroom.activity.AVRoomActivity; import com.yizhuan.erban.base.BaseActivity; import com.yizhuan.erban.home.adapter.CollectionRoomAdapter; import com.yizhuan.erban.home.bean.CollectionRoomInfo; import com.yizhuan.erban.home.model.CollectionRoomModel; +import com.yizhuan.erban.ui.relation.AttentionListActivity; import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.auth.AuthModel; +import com.yizhuan.xchat_android_core.user.bean.AttentionInfo; +import com.yizhuan.xchat_android_core.user.bean.AttentionItem; import com.yizhuan.xchat_android_library.utils.ListUtils; import java.util.List; @@ -21,7 +27,7 @@ import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class CollectionRoomActivity extends BaseActivity { +public class CollectionRoomActivity extends BaseActivity implements SwipeRefreshLayout.OnRefreshListener,BaseQuickAdapter.RequestLoadMoreListener{ @BindView(R.id.recycler_view) @@ -42,7 +48,12 @@ public class CollectionRoomActivity extends BaseActivity { ButterKnife.bind(this); initTitleBar("我收藏的房间"); initRecyclerView(); - initSwipRefresh(); + swipeRefresh.setOnRefreshListener(this); + } + + @Override + protected void onResume() { + super.onResume(); loadData(); } @@ -54,37 +65,53 @@ public class CollectionRoomActivity extends BaseActivity { private void initRecyclerView() { recyclerView.setLayoutManager(new LinearLayoutManager(this)); roomAdapter = new CollectionRoomAdapter(); + roomAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() { + @Override + public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { + CollectionRoomInfo.FansRoomListBean fansRoomListBean = (CollectionRoomInfo.FansRoomListBean) adapter.getItem(position); + switch (view.getId()){ + case R.id.cl_root: + AVRoomActivity.start(CollectionRoomActivity.this,fansRoomListBean.getRoomUid() ); + break; + default: + break; + } + } + }); + + recyclerView.setAdapter(roomAdapter); } - private void initSwipRefresh() { - swipeRefresh.setOnRefreshListener(() -> loadData()); - } - private boolean isLoading = false; private void loadData() { - if (isLoading) { - return; - } - isLoading = true; + CollectionRoomModel.get().getCollectionRoomList(AuthModel.get().getCurrentUid(),page,pageSize) .subscribe((serviceResult, throwable) -> { if (throwable != null) { - + swipeRefresh.setRefreshing(false); } else { + swipeRefresh.setRefreshing(false); List info = serviceResult.getFansRoomList(); if (ListUtils.isListEmpty(info)) { showNoData(R.drawable.icon_common_failure, "亲爱的用户,你还没有收藏哦!"); - return; + }else { + hideStatus(); } - roomAdapter.setNewData(info); roomAdapter.notifyDataSetChanged(); - swipeRefresh.setRefreshing(false); - isLoading = false; } }); } + @Override + public void onLoadMoreRequested() { + + } + + @Override + public void onRefresh() { + loadData(); + } } diff --git a/app/src/main/java/com/yizhuan/erban/home/adapter/CollectionRoomAdapter.java b/app/src/main/java/com/yizhuan/erban/home/adapter/CollectionRoomAdapter.java index 9b27ff5ca..e5acf2124 100644 --- a/app/src/main/java/com/yizhuan/erban/home/adapter/CollectionRoomAdapter.java +++ b/app/src/main/java/com/yizhuan/erban/home/adapter/CollectionRoomAdapter.java @@ -23,10 +23,13 @@ public class CollectionRoomAdapter extends BaseQuickAdapter followRoom(String roomId){ + public Single followRoom(String type,long roomUid){ long uid = AuthModel.get().getCurrentUid(); String ticket = AuthModel.get().getTicket(); - return api.followRoom(String.valueOf(uid),roomId,ticket) + return api.followRoom(String.valueOf(uid),String.valueOf(roomUid),type,ticket) .flatMap(new Function, SingleSource>() { @Override public SingleSource apply(ServiceResult stringServiceResult) throws Exception { if (stringServiceResult.isSuccess()) { - return Single.just("收藏成功"); + return Single.just(stringServiceResult.getMessage()); }else { return Single.error(new Throwable(stringServiceResult.getMessage())); } } }) .doOnSuccess(s -> { - SingleToastUtil.showToast("收藏成功"); + }) .compose(RxHelper.handleSchedulers()); } @@ -89,7 +89,8 @@ public class CollectionRoomModel extends BaseModel { @POST("fans/fansRoom") Single> followRoom(@Query("uid") String uid, - @Query("roomId") String roomId, - @Query("ticket") String ticket); + @Query("roomUid") String roomUid, + @Query("type") String type, + @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 0832de75a..d3281aeb3 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 @@ -226,7 +226,7 @@ public class LoginCodeActivity extends BaseLoginAct { String shuMeiDeviceId = SmAntiFraud.getDeviceId(); AuthModel.get().login( mPhone, - "123456aa", + "", smsCode, yiDunLoginToken, shuMeiDeviceId) diff --git a/app/src/main/res/layout/activity_collection_room.xml b/app/src/main/res/layout/activity_collection_room.xml index 67f4b62ec..7e972bc2c 100644 --- a/app/src/main/res/layout/activity_collection_room.xml +++ b/app/src/main/res/layout/activity_collection_room.xml @@ -1,9 +1,9 @@ - - + android:id="@+id/status_layout"> - + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 800f0a6eb..8392a5a4e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -102,6 +102,8 @@ #bdbdbd #333333 + #5F45D6 + #666666 #999999 diff --git a/app/src/module_bank_card/res/layout/item_room_collection.xml b/app/src/module_bank_card/res/layout/item_room_collection.xml index 399785062..d79abe308 100644 --- a/app/src/module_bank_card/res/layout/item_room_collection.xml +++ b/app/src/module_bank_card/res/layout/item_room_collection.xml @@ -4,6 +4,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/cl_root" android:background="@color/white"> - - + android:layout_height="match_parent" + android:id="@+id/status_layout"> - - + + + + \ No newline at end of file diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java index 0364251b6..fd3d350c8 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/auth/AuthModel.java @@ -267,7 +267,7 @@ public class AuthModel extends BaseModel implements IAuthModel { VersionUtil.getLocalName(BasicConfig.INSTANCE.getAppContext()), "erban-client", account, - DESAndBase64(password), + "",//DESAndBase64(password) "password", "uyzjdhds", code, diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java index 46c43b1cd..4d3cf9e2d 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/manager/AvRoomDataManager.java @@ -114,6 +114,11 @@ public final class AvRoomDataManager { * 龙珠状态 */ public boolean haveStartDragon; + + /** + * 房间收藏状态 + */ + public boolean isRoomFans; /** * 龙珠数组 */ @@ -421,6 +426,7 @@ public final class AvRoomDataManager { return mCurrentRoomInfo != null && mCurrentRoomInfo.getUid() == AuthModel.get().getCurrentUid(); } + void removeManagerMember(String account) { if (ListUtils.isListEmpty(mRoomManagerList) || TextUtils.isEmpty(account)) return; ListIterator iterator = mRoomManagerList.listIterator(); diff --git a/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java index b176dd925..22897f3ec 100644 --- a/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java +++ b/core/src/main/java/com/yizhuan/xchat_android_core/room/bean/RoomInfo.java @@ -76,6 +76,8 @@ public class RoomInfo implements Parcelable,Serializable { */ private byte isRecom; + private boolean isRoomFans; + private BackgroundBean background; //是否有ktv权限的意思 public boolean hasKTVPriv; @@ -175,6 +177,7 @@ public class RoomInfo implements Parcelable,Serializable { ", tagPict='" + tagPict + '\'' + ", onlineNum=" + onlineNum + ", isRecom=" + isRecom + + ", isRoomFans=" + isRoomFans + ", background=" + background + ", hasKTVPriv=" + hasKTVPriv + ", isOpenKTV=" + isOpenKTV + @@ -209,6 +212,7 @@ public class RoomInfo implements Parcelable,Serializable { onlineNum = in.readInt(); limitType = in.readString(); isRecom = in.readByte(); + isRoomFans = in.readBoolean(); avatar = in.readString(); isOpenGame = in.readByte()!=0; isOpenKTV = in.readByte() != 0; @@ -243,6 +247,7 @@ public class RoomInfo implements Parcelable,Serializable { dest.writeString(tagPict); dest.writeInt(onlineNum); dest.writeByte(isRecom); + dest.writeBoolean(isRoomFans); dest.writeString(limitType); dest.writeString(avatar); dest.writeByte((byte) (isOpenGame ? 1 : 0)); diff --git a/nim_uikit/res/layout/nim_message_item.xml b/nim_uikit/res/layout/nim_message_item.xml index 513fb9f17..f4b9994a8 100644 --- a/nim_uikit/res/layout/nim_message_item.xml +++ b/nim_uikit/res/layout/nim_message_item.xml @@ -81,8 +81,8 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/message_item_name_layout" - android:layout_toLeftOf="@id/message_item_portrait_right" - android:layout_toRightOf="@id/message_item_portrait_left"> + android:layout_toStartOf="@id/message_item_portrait_right" + android:layout_toEndOf="@id/message_item_portrait_left">