diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/bean/MusicSongBean.java b/BaseModule/src/main/java/com/xscm/moduleutil/bean/MusicSongBean.java index 4f145ed5..a3761f4d 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/bean/MusicSongBean.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/bean/MusicSongBean.java @@ -20,6 +20,7 @@ public class MusicSongBean implements Serializable { private String duration;//播放时长 private int sort;// private String user_id; + private String user_code=""; private String nickname; private String avatar; private String dress; diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java b/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java index 44315ec9..9d7e9f24 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/http/ApiServer.java @@ -424,6 +424,10 @@ public interface ApiServer { @GET(Constants.GET_MY_INFO) Call> getMyInfo(); + @FormUrlEncoded + @POST(Constants.POST_DEL_SONG) + Call> delSong(@Field("room_id") String room_id, @Field("did") String did); + @FormUrlEncoded @POST(Constants.ED_USER_INFO) Call> 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); diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java index 93dc7558..30e52667 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/http/RetrofitClient.java @@ -63,7 +63,7 @@ public class RetrofitClient { public static RetrofitClient INSTANCE; private static ApiServer sApiServer; - public static final int DEFAULT_TIME_OUT = 10; + public static final int DEFAULT_TIME_OUT = 30; private static OkHttpClient client; private final Retrofit mRetrofit; @@ -2445,6 +2445,27 @@ public class RetrofitClient { }); } + public void delSong(String roomId,String did,BaseObserver observer){ + sApiServer.delSong(roomId,did).enqueue(new Callback>() { + + @Override + public void onResponse(Call> call, Response> response) { + if (response.code() == 200) { + onNextRetu(response, observer); + }else { + ToastUtils.showLong("删除歌曲失败",response.code()); + LogUtils.e("delSong", response.message()); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + LogUtils.e("delSong", t.getMessage()); + + } + }); + } + public void getMyInfo(BaseObserver observer) {//点击我的获取数据 sApiServer.getMyInfo().enqueue(new Callback>() { @Override diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentEnum.java b/BaseModule/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentEnum.java index 1bd5905e..c2116de9 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentEnum.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/utils/config/EnvironmentEnum.java @@ -23,7 +23,7 @@ public enum EnvironmentEnum { Auxiliary(//辅助生产环境 //"https://vespa.qxyushen.top/", - "https://qixinghuishen.qxhs.xyz/", + "https://details.qxhs.xyz/", "KvNmqZc+VMzO4CfGMd5zmG6w6OFwpFO/19TwXUWfHDOBgmnl9DgIuE+kbrjNNnxqhtP3pH7bBrnSaSeFtunr72q6sgpLsfuswcUroMvz2slaTBcNzCaLi+GSnM3gB/GdO47mwLdk+iYBTvPUOCIuT608Z29z09w+vPeUDoMCHJBGXu6uh7Nj6PtV1dfGoUvByk1ZF0WYVjIqKDcb3tXY4jonFh3XAWhzMy8xKwN6F2nuK2IcdIwaSPsvuMZmhatP6f9kOE+vnfweyCHS3RxiG474WIoZGJM8omrl3/pOVqE=", "https://oss-cn-beijing.aliyuncs.com/", "LTAI5tKgrfcFQxH46ZwWYgFW", @@ -35,9 +35,9 @@ public enum EnvironmentEnum { "3e8f3add448d4692bc1d04c75ffe801b", //"tcp://1.13.101.98", // "tcp://1.13.20.30", - "tcp://qixinghuishen.qxhs.xyz", + "tcp://details.qxhs.xyz", // "https://vespa.qxyushen.top/h5", - "https://qixinghuishen.qxhs.xyz/h5", + "https://details.qxhs.xyz/h5", 0), TEST(//测试环境 diff --git a/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java b/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java index 009d3d02..e2c1baa6 100644 --- a/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java +++ b/BaseModule/src/main/java/com/xscm/moduleutil/widget/Constants.java @@ -242,6 +242,7 @@ public class Constants { public static final String POST_MODIFY_HIDE_STATUS = "/api/UserData/modify_hide_status";//设置隐身进入 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 ED_USER_INFO = "/api/User/edit_user_info";//编辑信息 public static final String ED_USER_BG = "/api/User/edit_user_bg";//编辑背景图片 diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/contacts/RequestContacts.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/contacts/RequestContacts.java index fc00fc2f..44299976 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/contacts/RequestContacts.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/contacts/RequestContacts.java @@ -17,6 +17,8 @@ public class RequestContacts { void song(List music); + void delSong(String s); + } public interface IRoomPre extends IPresenter { void songList(String roomId,String page); @@ -24,5 +26,7 @@ public class RequestContacts { void upSong(String did,String type); 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); } } diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/MusicSongListFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/MusicSongListFragment.java index 65882b86..1c60f3c3 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/MusicSongListFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/MusicSongListFragment.java @@ -1,7 +1,9 @@ package com.xscm.modulemain.activity.room.fragment; +import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; +import android.text.TextUtils; import android.view.View; import android.view.WindowManager; import android.widget.ImageView; @@ -11,6 +13,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; +import com.blankj.utilcode.util.ActivityUtils; import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.ToastUtils; import com.chad.library.adapter.base.BaseQuickAdapter; @@ -26,6 +29,7 @@ import com.xscm.moduleutil.bean.MusicSongBean; import com.xscm.moduleutil.bean.SongMusicBean; import com.xscm.moduleutil.bean.room.RoomInfoResp; import com.xscm.moduleutil.color.ThemeableDrawableUtils; +import com.xscm.moduleutil.dialog.ConfirmDialog; import com.xscm.moduleutil.rtc.AgoraManager; import com.xscm.moduleutil.utils.ColorManager; import com.xscm.moduleutil.utils.ImageUtils; @@ -87,6 +91,12 @@ public class MusicSongListFragment extends BaseMvpFragment= adapter.getData().size()){ +// return false; +// } +// MusicSongBean musicSongBean= (MusicSongBean) adapter.getData().get(position); +// if (musicSongBean.getIs_hot() == 1) { +// showOptionsDialog(position); +// return true; +// } + return false; + } + }); mBinding.recycleView.setAdapter(adapter); } + private void showOptionsDialog(int position) { + if (position < 0 || position >= adapter.getData().size()) { + return; + } + new ConfirmDialog(ActivityUtils.getTopActivity(), + "提示", + "您确定要删除当前歌曲吗?", + "确认", + "取消", + v -> { + // 点击“确认”按钮时执行删除操作 + MvpPre.delSong(roomId,adapter.getData().get(position).getDid()); + }, + v -> { + // 点击“取消”按钮时什么都不做 + }, false, 0).show(); + + } @Override protected int getLayoutId() { return R.layout.fragment_muisc_song; diff --git a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java index a7b82c61..f462f03c 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/activity/room/fragment/RequestFragment.java @@ -70,6 +70,11 @@ public class RequestFragment extends BaseMvpFragment implements RequestContacts.IRoomPre{ +public class RequestPresenter extends BasePresenter implements RequestContacts.IRoomPre { + + RequestContacts.View mView; + public RequestPresenter(RequestContacts.View view, Context context) { super(view, context); + mView = view; } @Override - public void songList(String roomId,String page) { - api.songList(roomId,page, new BaseObserver>() { + public void songList(String roomId, String page) { + api.songList(roomId, page, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { addDisposable(d); @@ -28,6 +33,9 @@ public class RequestPresenter extends BasePresenter implem @Override public void onNext(List musicSongBeans) { + if (MvpRef == null) { + MvpRef = new WeakReference<>(mView); + } MvpRef.get().songList(musicSongBeans); } }); @@ -44,6 +52,9 @@ public class RequestPresenter extends BasePresenter implem @Override public void onNext(String s) { + if (MvpRef == null) { + MvpRef = new WeakReference<>(mView); + } MvpRef.get().upSong(s); } }); @@ -54,14 +65,36 @@ public class RequestPresenter extends BasePresenter implem api.song(roomId, user_id, song_code, song_name, singer, poster, duration, new BaseObserver>() { @Override public void onSubscribe(Disposable d) { - addDisposable(d); + addDisposable(d); } @Override public void onNext(List songMusicBeans) { + if (MvpRef == null) { + MvpRef = new WeakReference<>(mView); + } MvpRef.get().song(songMusicBeans); } }); } + + @Override + public void delSong(String roomId, String did) { + api.delSong(roomId,did,new BaseObserver(){ + + @Override + public void onSubscribe(Disposable d) { + + } + + @Override + public void onNext(String s) { + if (MvpRef == null) { + MvpRef = new WeakReference<>(mView); + } + MvpRef.get().delSong(s); + } + }); + } } diff --git a/MainModule/src/main/java/com/xscm/modulemain/dialog/RequestDialogFragment.java b/MainModule/src/main/java/com/xscm/modulemain/dialog/RequestDialogFragment.java index cc6ed20c..d7b94e94 100644 --- a/MainModule/src/main/java/com/xscm/modulemain/dialog/RequestDialogFragment.java +++ b/MainModule/src/main/java/com/xscm/modulemain/dialog/RequestDialogFragment.java @@ -151,6 +151,12 @@ public class RequestDialogFragment extends BaseMvpDialogFragment music) { com.hjq.toast.ToastUtils.show("操作成功"); } + + @Override + public void delSong(String s) { + + } + private static class MyFragmentPagerAdapter extends FragmentStateAdapter { private String[] list; diff --git a/MainModule/src/main/res/layout/item_song_list.xml b/MainModule/src/main/res/layout/item_song_list.xml index 27c984f1..ca97dbcf 100644 --- a/MainModule/src/main/res/layout/item_song_list.xml +++ b/MainModule/src/main/res/layout/item_song_list.xml @@ -1,95 +1,122 @@ + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_10"> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:riv_corner_radius="@dimen/dp_4" + tools:src="@mipmap/default_avatar" /> + android:textSize="@dimen/sp_12" + android:ellipsize="end" + android:maxLines="1" + android:singleLine="true" + app:layout_constraintEnd_toStartOf="@+id/muis_nickname" + app:layout_constraintStart_toEndOf="@id/muis_avatar" + app:layout_constraintTop_toTopOf="@+id/muis_avatar" + tools:text="MuisMuisMuisMuisMuis" /> + + android:textSize="@dimen/sp_12" + app:layout_constraintStart_toStartOf="@id/muis_name" + app:layout_constraintTop_toBottomOf="@id/muis_name" + tools:text="Muis" /> + + tools:text="清唱" /> + android:layout_marginTop="@dimen/dp_7" + android:textSize="@dimen/sp_12" + app:layout_constraintEnd_toStartOf="@+id/muis_sy" + app:layout_constraintStart_toEndOf="@+id/muis_name" + app:layout_constraintTop_toTopOf="parent" + tools:text="清唱清唱清唱清唱" /> + + + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/muis_price" + app:layout_constraintTop_toTopOf="parent" /> + android:textSize="@dimen/sp_12" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file