界面优化,数据整理

This commit is contained in:
18401019693 2022-08-08 09:51:47 +08:00
parent 43133e503d
commit 90bc939a61
6 changed files with 88 additions and 18 deletions

View File

@ -123,6 +123,6 @@ public interface PDLiveApi {
*/ */
@GET("/api/public/?service=User.setAttents") @GET("/api/public/?service=User.setAttents")
Observable<ResponseModel<List<SetAttentsModel>>> setAttents( Observable<ResponseModel<List<SetAttentsModel>>> setAttents(
@Query("liveuid") String liveuid @Query("touid") String liveuid
); );
} }

View File

@ -5,6 +5,7 @@ import android.content.Context;
import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LiveInfoModel; import com.yunbao.common.bean.LiveInfoModel;
import com.yunbao.common.bean.NobleTrumpetModel; import com.yunbao.common.bean.NobleTrumpetModel;
import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.http.API; import com.yunbao.common.http.API;
import com.yunbao.common.http.ResponseModel; import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
@ -91,9 +92,7 @@ public class LiveNetManager {
API.get().pdLiveApi(mContext).getLiveInfo(liveuid) API.get().pdLiveApi(mContext).getLiveInfo(liveuid)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<List<LiveInfoModel>>>() { .subscribe(listResponseModel -> {
@Override
public void accept(ResponseModel<List<LiveInfoModel>> listResponseModel) throws Exception {
List<LiveInfoModel> liveInfoModels = listResponseModel.getData().getInfo(); List<LiveInfoModel> liveInfoModels = listResponseModel.getData().getInfo();
if (liveInfoModels.size() > 0) { if (liveInfoModels.size() > 0) {
LiveInfoModel liveInfoModel = liveInfoModels.get(0); LiveInfoModel liveInfoModel = liveInfoModels.get(0);
@ -104,10 +103,37 @@ public class LiveNetManager {
callback.onError("直播已结束"); callback.onError("直播已结束");
} }
}
}, throwable -> { }, throwable -> {
if (callback != null) if (callback != null)
callback.onError(throwable.getMessage()); callback.onError(throwable.getMessage());
}); }).isDisposed();
}
/**
* 关注主播
*
* @param liveuid
* @return
*/
public void setAttents(String liveuid, HttpCallback<SetAttentsModel> callback) {
API.get().pdLiveApi(mContext).setAttents(liveuid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
List<SetAttentsModel> setAttentsModels = listResponseModel.getData().getInfo();
if (setAttentsModels.size() > 0) {
if (callback != null)
callback.onSuccess(setAttentsModels.get(0));
} else {
if (callback != null)
callback.onError("操作失效");
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null)
callback.onError(throwable.getMessage());
}
}).isDisposed();
} }
} }

View File

@ -1,5 +1,6 @@
package com.yunbao.main.adapter; package com.yunbao.main.adapter;
import android.content.Context;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -8,6 +9,9 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.bean.SearchModel; import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.views.SearchResultsViewHolder; import com.yunbao.main.views.SearchResultsViewHolder;
@ -17,6 +21,11 @@ import java.util.List;
public class SearchResultsAdapter extends RecyclerView.Adapter { public class SearchResultsAdapter extends RecyclerView.Adapter {
private List<SearchModel> searchModels = new ArrayList<>(); private List<SearchModel> searchModels = new ArrayList<>();
private int type = -1; private int type = -1;
private Context context;
public SearchResultsAdapter(Context context) {
this.context = context;
}
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
@ -29,6 +38,23 @@ public class SearchResultsAdapter extends RecyclerView.Adapter {
if (holder instanceof SearchResultsViewHolder) { if (holder instanceof SearchResultsViewHolder) {
SearchResultsViewHolder resultsViewHolder = (SearchResultsViewHolder) holder; SearchResultsViewHolder resultsViewHolder = (SearchResultsViewHolder) holder;
resultsViewHolder.showData(searchModels.get(position), type); resultsViewHolder.showData(searchModels.get(position), type);
resultsViewHolder.setCallback(new SearchResultsViewHolder.SearchResultsCallback() {
@Override
public void focusOn(SearchModel model) {
LiveNetManager.get(context)
.setAttents(String.valueOf(model.getId()), new HttpCallback<SetAttentsModel>() {
@Override
public void onSuccess(SetAttentsModel data) {
}
@Override
public void onError(String error) {
}
});
}
});
} }
} }

View File

@ -24,6 +24,7 @@ public class AnchorSearchResultsItemViewHolder extends RecyclerView.ViewHolder {
private TextView anchorMore; private TextView anchorMore;
private SearchResultsAdapter resultsAdapter; private SearchResultsAdapter resultsAdapter;
private FrameLayout typeTitle; private FrameLayout typeTitle;
private List<SearchModel> searchModels;
public AnchorSearchResultsItemViewHolder(@NonNull View itemView) { public AnchorSearchResultsItemViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
@ -39,7 +40,8 @@ public class AnchorSearchResultsItemViewHolder extends RecyclerView.ViewHolder {
} }
public void showAnchors(List<SearchModel> searchModels, int type) { public void showAnchors(List<SearchModel> searchModels, int type) {
resultsAdapter = new SearchResultsAdapter(); this.searchModels = searchModels;
resultsAdapter = new SearchResultsAdapter(itemView.getContext());
anchorList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false)); anchorList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false));
anchorList.setAdapter(resultsAdapter); anchorList.setAdapter(resultsAdapter);
resultsAdapter.putData(searchModels, type); resultsAdapter.putData(searchModels, type);

View File

@ -24,6 +24,12 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
private LinearLayout nickLayout; private LinearLayout nickLayout;
private RelativeLayout avatarLayout; private RelativeLayout avatarLayout;
private SearchModel model; private SearchModel model;
private SearchResultsCallback callback;
public SearchResultsViewHolder setCallback(SearchResultsCallback callback) {
this.callback = callback;
return this;
}
public SearchResultsViewHolder(@NonNull View itemView) { public SearchResultsViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
@ -37,6 +43,12 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
avatarLayout = itemView.findViewById(R.id.avatar_layout); avatarLayout = itemView.findViewById(R.id.avatar_layout);
nickLayout.setOnClickListener(jumpUserHome); nickLayout.setOnClickListener(jumpUserHome);
avatarLayout.setOnClickListener(jumpUserHome); avatarLayout.setOnClickListener(jumpUserHome);
//关注主播或者用户
itemView.findViewById(R.id.focus_on).setOnClickListener(v -> {
if (callback != null) {
callback.focusOn(model);
}
});
} }
public void showData(SearchModel model, int type) { public void showData(SearchModel model, int type) {
@ -75,4 +87,8 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
Bus.get().post(new JumpUserHomeEvent(model)); Bus.get().post(new JumpUserHomeEvent(model));
} }
}; };
public interface SearchResultsCallback {
void focusOn(SearchModel model);
}
} }

View File

@ -39,7 +39,7 @@ public class UserSearchResultsItemViewHolder extends RecyclerView.ViewHolder {
} }
public void showAnchors(List<SearchModel> searchModels, int type) { public void showAnchors(List<SearchModel> searchModels, int type) {
resultsAdapter = new SearchResultsAdapter(); resultsAdapter = new SearchResultsAdapter(itemView.getContext());
anchorList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false)); anchorList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.VERTICAL, false));
anchorList.setAdapter(resultsAdapter); anchorList.setAdapter(resultsAdapter);
resultsAdapter.putData(searchModels, type); resultsAdapter.putData(searchModels, type);