1:添加练歌房,已点歌曲搜索(只能搜索用户id)、删除功能

This commit is contained in:
2026-01-12 15:40:51 +08:00
parent 5a1edb6c4a
commit c67b07e3b9
8 changed files with 119 additions and 34 deletions

View File

@@ -453,6 +453,10 @@ public interface ApiServer {
@POST(Constants.POST_DEL_SONG)
Call<BaseModel<String>> delSong(@Field("room_id") String room_id, @Field("did") String did);
@FormUrlEncoded
@POST(Constants.POST_SEARCH_USER)
Call<BaseModel<List<MusicSongBean>>> searchSong(@Field("room_id") String room_id, @Field("search_user") String search_user);
@FormUrlEncoded
@POST(Constants.ED_USER_INFO)
Call<BaseModel<String>> editUserInfo(@Field("nickname") String nickname, @Field("birthday") String birthday, @Field("sex") String sex, @Field("avatar") String avatar, @Field("images") String images, @Field("profile") String profile, @Field("tag_id") String tag_id);

View File

@@ -2704,6 +2704,33 @@ public class RetrofitClient {
});
}
public void searchSong(String roomId,String search_user,BaseObserver<List<MusicSongBean>> observer) {
sApiServer.searchSong(roomId,search_user).enqueue(new Callback<BaseModel<List<MusicSongBean>>>() {
@Override
public void onResponse(Call<BaseModel<List<MusicSongBean>>> call, Response<BaseModel<List<MusicSongBean>>> response) {
if (response.code() == 200) {
BaseModel<List<MusicSongBean>> musicSongBaseModel = response.body();
if (musicSongBaseModel.getCode() == 1) {
observer.onNext(musicSongBaseModel.getData());
} else if (musicSongBaseModel.getCode() == 301) {
setCode301(musicSongBaseModel.getMsg());
} else if (musicSongBaseModel.getCode() == 0) {
ToastUtils.showShort(musicSongBaseModel.getMsg());
}
} else {
ToastUtils.showShort("获取歌曲列表异常", response.code());
LogUtils.e("songList", response.code());
}
}
@Override
public void onFailure(Call<BaseModel<List<MusicSongBean>>> call, Throwable t) {
LogUtils.e("searchSong", t.getMessage());
}
});
}
public void getMyInfo(BaseObserver<UserInfo> observer) {//点击我的获取数据
sApiServer.getMyInfo().enqueue(new Callback<BaseModel<UserInfo>>() {
@Override

View File

@@ -89,7 +89,7 @@ public class ImageUtils {
* 默认加载
*/
public static void loadImageView(String path, ImageView mImageView) {
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.5f).into(mImageView);
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).thumbnail(0.3f).into(mImageView);
}
/**
@@ -117,7 +117,7 @@ public class ImageUtils {
*/
public static void loadSample(String path, ImageView mImageView, int width, int height) {
RequestOptions options = new RequestOptions().override(width, height).diskCacheStrategy(DiskCacheStrategy.RESOURCE);
Glide.with(mImageView).load(path).apply(options).thumbnail(0.5f).into(mImageView);
Glide.with(mImageView).load(path).apply(options).thumbnail(0.3f).into(mImageView);
}
/**
@@ -210,7 +210,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path)).error(errorRes).
placeholder(errorRes).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.5f).into(mImageView);
placeholder(errorRes).centerCrop().diskCacheStrategy(DiskCacheStrategy.ALL).thumbnail(0.3f).into(mImageView);
}
@@ -227,7 +227,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path))
.placeholder(R.mipmap.default_avatar).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.5f).into(mImageView);
.placeholder(R.mipmap.default_avatar).diskCacheStrategy(DiskCacheStrategy.RESOURCE).thumbnail(0.3f).into(mImageView);
}
public static void loadHeadCC(String path, ImageView mImageView) {
@@ -243,7 +243,7 @@ public class ImageUtils {
}
Glide.with(mImageView).asBitmap().load(path)
.apply(createUrlOnlyOptions(path))
.error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).centerCrop().thumbnail(0.5f).into(mImageView);
.error(R.mipmap.default_avatar).placeholder(R.mipmap.default_avatar).centerCrop().thumbnail(0.3f).into(mImageView);
}
public static void loadHead(String path, ImageView mImageView) {
@@ -258,7 +258,7 @@ public class ImageUtils {
}
}
Glide.with(mImageView).load(path).apply(createUrlOnlyOptions(path))
.thumbnail(0.5f).into(mImageView);
.thumbnail(0.3f).into(mImageView);
}
public static void loadHeadCC(String path, ImageView mImageView, LinearLayout.LayoutParams params) {

View File

@@ -246,6 +246,7 @@ public class Constants {
public static final String GET_MY_INFO = "/api/User/get_user_info";//点击我的获取个人数据
public static final String GET_USER_HOME = "/api/User/get_user_home";//点击获取个人数据
public static final String POST_DEL_SONG = "/api/RoomSong/del_song";//删除已点歌曲
public static final String POST_SEARCH_USER = "/api/RoomSong/search_song";//已点列表搜索
public static final String ED_USER_INFO = "/api/User/edit_user_info";//编辑信息
public static final String ED_USER_BG = "/api/User/edit_user_bg";//编辑背景图片

View File

@@ -28,5 +28,7 @@ public class RequestContacts {
void song(String roomId,String user_id,String song_code,String song_name,String singer,String poster,String duration);
void delSong(String roomId,String did);
void searchSong(String roomId,String search_user);
}
}

View File

@@ -1,5 +1,8 @@
package com.xscm.modulemain.activity.room.fragment;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
@@ -60,9 +63,9 @@ public class MusicSongListFragment extends BaseMvpFragment<RequestPresenter, Fra
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
if (roomInfoResp.getUser_info().getUser_id() == SpUtil.getUserId() && roomInfoResp.getUser_info().getPit_number() == 9) {
status = 1;
}
// if (roomInfoResp.getUser_info().getUser_id() == SpUtil.getUserId() && roomInfoResp.getUser_info().getPit_number() == 9) {
// status = 1;
// }
if (musicSongBeans != null) {
for (MusicSongBean musicSongBean : musicSongBeans) {
musicSongBean.setIs_hot(status);
@@ -162,6 +165,27 @@ public class MusicSongListFragment extends BaseMvpFragment<RequestPresenter, Fra
} else {
MvpPre.songList(roomId, page + "");
}
if (roomInfoResp.getUser_info().getUser_id() == SpUtil.getUserId() && roomInfoResp.getUser_info().getPit_number() == 9) {
mBinding.l.setVisibility(VISIBLE);
status = 1;
}else {
mBinding.l.setVisibility(GONE);
}
mBinding.tvCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
page=1;
if (TextUtils.isEmpty(mBinding.editQuery.getText().toString().trim())){
MvpPre.songList(roomId, page + "");
}else {
MvpPre.searchSong(roomId, mBinding.editQuery.getText().toString().trim());
mBinding.editQuery.setText("");
}
}
});
}
@Override
@@ -238,17 +262,17 @@ public class MusicSongListFragment extends BaseMvpFragment<RequestPresenter, Fra
if (item.getIs_hot() == 1) {
helper.setVisible(R.id.muis_sy, true);
// helper.setVisible(R.id.muis_price, true);
if (position == 0) {
muisSy.setVisibility(View.INVISIBLE);
muisPrice.setVisibility(View.INVISIBLE);
// if (position == 0) {
// muisSy.setVisibility(View.INVISIBLE);
// muisPrice.setVisibility(View.INVISIBLE);
// helper.setText(R.id.muis_price, "结束");
//
// muisSy.setVisibility(View.INVISIBLE);
} else {
muisPrice.setVisibility(View.VISIBLE);
// } else {
muisPrice.setVisibility(VISIBLE);
helper.setText(R.id.muis_price, "置顶");
muisSy.setVisibility(View.VISIBLE);
}
muisSy.setVisibility(VISIBLE);
// }
} else {
muisSy.setVisibility(View.INVISIBLE);
muisPrice.setVisibility(View.INVISIBLE);
@@ -263,14 +287,14 @@ public class MusicSongListFragment extends BaseMvpFragment<RequestPresenter, Fra
@Override
public boolean onItemLongClick(BaseQuickAdapter adapter, View view, int position) {
// if (position<0 || position >= adapter.getData().size()){
// return false;
// }
// MusicSongBean musicSongBean= (MusicSongBean) adapter.getData().get(position);
// if (musicSongBean.getIs_hot() == 1) {
// showOptionsDialog(position);
// return true;
// }
if (position<0 || position >= adapter.getData().size()){
return false;
}
MusicSongBean musicSongBean= (MusicSongBean) adapter.getData().get(position);
if (musicSongBean.getIs_hot() == 1) {
showOptionsDialog(position);
return true;
}
return false;
}
});

View File

@@ -97,4 +97,23 @@ public class RequestPresenter extends BasePresenter<RequestContacts.View> implem
}
});
}
@Override
public void searchSong(String roomId, String search_user) {
api.searchSong(roomId, search_user, new BaseObserver<List<MusicSongBean>>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(List<MusicSongBean> musicSongBeans) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().songList(musicSongBeans);
}
});
}
}

View File

@@ -23,7 +23,6 @@
android:background="@drawable/bg_r99_eff2f8"
android:gravity="center_vertical"
android:orientation="horizontal"
android:visibility="gone"
app:layout_constraintTop_toTopOf="parent">
<ImageView
@@ -40,26 +39,35 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/transparent"
android:hint="输入相关的主播名、房间名"
android:hint="输入用户id"
android:maxLength="10"
android:singleLine="true"
android:textColor="#333333"
android:textColorHint="@color/color_FF999999"
android:textSize="@dimen/sp_12" />
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingHorizontal="@dimen/dp_20"
android:gravity="center"
android:text="搜索"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14" />
</LinearLayout>
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent">-->
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent">-->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/l"
app:layout_constraintBottom_toBottomOf="parent"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="false">
@@ -67,10 +75,10 @@
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/dp_40"
android:clipToPadding="false" />
android:clipToPadding="false"
android:paddingBottom="@dimen/dp_140" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<!-- </androidx.core.widget.NestedScrollView>-->
<!-- </androidx.core.widget.NestedScrollView>-->
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>