diff --git a/agora-ktv-kit-release/.gitignore b/agora-ktv-kit-release/.gitignore deleted file mode 100644 index 36af4938d..000000000 --- a/agora-ktv-kit-release/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/build -*.iml -*.DS_Store \ No newline at end of file diff --git a/agora-ktv-kit-release/agora-ktv-kit-release.aar b/agora-ktv-kit-release/agora-ktv-kit-release.aar deleted file mode 100644 index a3a1b801c..000000000 Binary files a/agora-ktv-kit-release/agora-ktv-kit-release.aar and /dev/null differ diff --git a/agora-ktv-kit-release/build.gradle b/agora-ktv-kit-release/build.gradle deleted file mode 100644 index 5e82351ab..000000000 --- a/agora-ktv-kit-release/build.gradle +++ /dev/null @@ -1,2 +0,0 @@ -configurations.maybeCreate("default") -artifacts.add("default", file('agora-ktv-kit-release.aar')) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index af5b64781..3278d2195 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -852,23 +852,6 @@ - - - - @Override public void exitRoom(RoomInfo roomInfo) { closeOpenRoomAnimation(); - //ktv退出的时候需要用到 - if (AudioEngineManager.get().isOpenKtv() && roomInfo != null) { - KtvMusicManager.INSTANCE.deleteUserAllChooseMusic(roomInfo.getUid()).subscribe(); - AudioEngineManager.get().closeKtvModel(); - } DaemonService.stop(MainActivity.this); } diff --git a/app/src/main/java/com/mango/moshen/avroom/adapter/KtvMicroViewAdapter.java b/app/src/main/java/com/mango/moshen/avroom/adapter/KtvMicroViewAdapter.java deleted file mode 100644 index 5bad536d4..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/adapter/KtvMicroViewAdapter.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.mango.moshen.avroom.adapter; - -import android.content.Context; - -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.netease.nim.uikit.common.util.sys.ScreenUtil; -import com.mango.moshen.R; -import com.mango.moshen.avroom.ktv.KtvMusicManager; -import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil; -import com.mango.core.bean.RoomQueueInfo; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.room.ktv.event.MusicCountEvent; -import com.mango.core.room.pk.bean.PKTeamInfo; -import com.mango.core.room.queue.bean.MicMemberInfo; -import com.mango.core.utils.StringUtils; -import com.mango.xchat_android_library.rxbus.RxBus; - -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; - -/** - * @author xiaoyu - * @date 2017/12/18 - */ - -public class KtvMicroViewAdapter extends BaseMicroViewAdapter { - - private int[] realPositions = {1, 5, 2, 6, 0, 3, 7, 4, 8}; - - private ViewGroup.LayoutParams microParams; - private ViewGroup.LayoutParams bossParams; - - public KtvMicroViewAdapter(Context context) { - super(context); - int itemWidth = (int) (ScreenUtil.screenWidth * 0.1875); - microParams = new ViewGroup.LayoutParams(itemWidth, UIUtil.dip2px(context, 80)); - bossParams = new ViewGroup.LayoutParams(ScreenUtil.screenWidth / 4, UIUtil.dip2px(context, 160)); - disposables.add(RxBus.get().toFlowable(MusicCountEvent.class) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(musicCountEvent -> notifyDataSetChanged())); - } - - /** - * Set LayoutManager and bind this to {@link RecyclerView} - */ - @Override - public void bindToRecyclerView(RecyclerView recyclerView) { - GridLayoutManager layoutManager = new GridLayoutManager(context, 2); - layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); - layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() { - @Override - public int getSpanSize(int position) { - return position == 4 ? 2 : 1; - } - }); - recyclerView.setLayoutManager(layoutManager); - recyclerView.setAdapter(this); - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View item = LayoutInflater.from(parent.getContext()) - .inflate(viewType == TYPE_BOSS ? R.layout.item_ktv_boss_micro : R.layout.list_item_ktv_micro, parent, false); - return new KtvMicroViewHolder(item, viewType == TYPE_BOSS); - - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { - int realPosition = realPositions[position]; - RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(realPosition - 1); - viewHolder.itemView.setLayoutParams(position == 4 ? bossParams : microParams); - if (roomQueueInfo == null) return; - NormalMicroViewHolder holder = (NormalMicroViewHolder) viewHolder; - holder.bind(roomQueueInfo, realPosition - 1); - } - - @Override - public String microType() { - return BaseMicroViewAdapter.MICRO_TYPE_KTV; - } - - @Override - public int getItemViewType(int position) { - return (position == 4) ? TYPE_BOSS : TYPE_NORMAL; - } - - class KtvMicroViewHolder extends NormalMicroViewHolder { - - ImageView ivSinger; - TextView tvPkMark; - boolean mIsBoss; - - KtvMicroViewHolder(View itemView, boolean isBoss) { - super(itemView); - ivSinger = itemView.findViewById(R.id.iv_singer); - tvPkMark = (TextView) itemView.findViewById(R.id.tv_pk_mark); - mIsBoss = isBoss; - - } - - @Override - public void clear() { - super.clear(); - ivSinger.setVisibility(View.GONE); - tvPkMark.setVisibility(View.GONE); - disposables.dispose(); - } - - @Override - protected void setDefalutText(int index) { - tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - if (mIsBoss) { - tvNick.setTextColor(context.getResources().getColor(R.color.white_transparent_30)); - tvNick.setText("未上座"); - } else - super.setDefalutText(index); - } - - @Override - protected void setSelectText(int index, String nick, int gender) { - super.setSelectText(index, nick, gender); - - if (mIsBoss) { - setBossViewGender(tvNick, gender == 1); - } else - tvNick.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - } - - @Override - void bind(RoomQueueInfo info, int position) { - super.bind(info, position); - MicMemberInfo micMemberInfo = info.mChatRoomMember; - if (micMemberInfo != null && micMemberInfo.getGroupType() == PKTeamInfo.TEAM_RED) { - tvPkMark.setVisibility(View.VISIBLE); - tvPkMark.setBackgroundResource(R.drawable.shape_pk_mic_queue_mark_red); - tvPkMark.setText("红队"); - ivSinger.setVisibility(View.GONE); - if (isSinging(info.mChatRoomMember)) { - tvPkMark.setCompoundDrawablesWithIntrinsicBounds(tvPkMark.getResources().getDrawable(R.drawable.ktv_pk_singing_mark), null, null, null); - } else { - tvPkMark.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); - } - } else if (micMemberInfo != null && micMemberInfo.getGroupType() == PKTeamInfo.TEAM_BLUE) { - tvPkMark.setVisibility(View.VISIBLE); - tvPkMark.setBackgroundResource(R.drawable.shape_pk_mic_queue_mark_blue); - tvPkMark.setText("蓝队"); - ivSinger.setVisibility(View.GONE); - if (isSinging(info.mChatRoomMember)) { - tvPkMark.setCompoundDrawablesWithIntrinsicBounds(tvPkMark.getResources().getDrawable(R.drawable.ktv_pk_singing_mark), null, null, null); - } else { - tvPkMark.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null); - } - } else { - tvPkMark.setVisibility(View.GONE); - if (isSinging(info.mChatRoomMember)) { - ivSinger.setVisibility(View.VISIBLE); - } else { - ivSinger.setVisibility(View.GONE); - } - } - - } - - private boolean isSinging(MicMemberInfo chatRoomMember) { - return chatRoomMember != null && KtvMusicManager.INSTANCE.getCurrMusic().getUid() == StringUtils.toLong(chatRoomMember.getAccount()); - } - } - - - private CompositeDisposable disposables = new CompositeDisposable(); - - @Override - public void onDetachedFromRecyclerView(RecyclerView recyclerView) { - super.onDetachedFromRecyclerView(recyclerView); - disposables.dispose(); - } - -} diff --git a/app/src/main/java/com/mango/moshen/avroom/fragment/HomePartyRoomFragment.java b/app/src/main/java/com/mango/moshen/avroom/fragment/HomePartyRoomFragment.java index db25e62c1..0c71e5a56 100644 --- a/app/src/main/java/com/mango/moshen/avroom/fragment/HomePartyRoomFragment.java +++ b/app/src/main/java/com/mango/moshen/avroom/fragment/HomePartyRoomFragment.java @@ -7,38 +7,6 @@ import android.view.View; import androidx.databinding.DataBindingUtil; -import com.mango.core.statistic.StatisticManager; -import com.mango.core.statistic.protocol.StatisticsProtocol; -import com.netease.nim.uikit.common.util.log.LogUtil; -import com.netease.nim.uikit.support.glide.GlideApp; -import com.trello.rxlifecycle3.android.FragmentEvent; -import com.mango.moshen.R; -import com.mango.moshen.avroom.activity.AVRoomActivity; -import com.mango.moshen.avroom.adapter.BaseMicroViewAdapter; -import com.mango.moshen.avroom.adapter.CpMicroViewAdapter; -import com.mango.moshen.avroom.adapter.DatingMicroViewAdapter; -import com.mango.moshen.avroom.adapter.KtvMicroViewAdapter; -import com.mango.moshen.avroom.adapter.MicroViewAdapter; -import com.mango.moshen.avroom.anotherroompk.RoomPkFinishDialog; -import com.mango.moshen.avroom.anotherroompk.RoomPkForceFinishDialog; -import com.mango.moshen.avroom.anotherroompk.RoomPkReceivedDialog; -import com.mango.moshen.avroom.dialog.MicQueueDialog; -import com.mango.moshen.avroom.dialog.PKMicQueueDialog; -import com.mango.moshen.avroom.dialog.PKResultDialog; -import com.mango.moshen.avroom.dialog.PKScoreBoardDialog; -import com.mango.moshen.avroom.firstcharge.FirstChargePrizeDialog; -import com.mango.moshen.avroom.giftvalue.GiftValueDialogUiHelper; -import com.mango.moshen.avroom.ktv.KtvSongListActivity; -import com.mango.moshen.avroom.presenter.HomePartyPresenter; -import com.mango.moshen.avroom.view.IHomePartyView; -import com.mango.moshen.avroom.widget.PKBoardView; -import com.mango.moshen.base.BaseMvpActivity; -import com.mango.moshen.common.widget.dialog.DialogManager; -import com.mango.moshen.databinding.FragmentAvRoomGameBinding; -import com.mango.moshen.treasure_box.widget.GoldBoxHelper; -import com.mango.moshen.ui.webview.DatingRuleWebViewActivity; -import com.mango.moshen.ui.webview.DialogWebViewActivity; -import com.mango.moshen.utils.UserUtils; import com.mango.core.Constants; import com.mango.core.UriProvider; import com.mango.core.auth.AuthModel; @@ -63,14 +31,41 @@ import com.mango.core.room.pk.model.PkModel; import com.mango.core.room.queuing_mic.bean.RespQueuingMicListInfo; import com.mango.core.room.queuing_mic.event.QueuingMicEmptyEvent; import com.mango.core.room.queuing_mic.event.QueuingMicNotEmptyEvent; +import com.mango.core.statistic.StatisticManager; +import com.mango.core.statistic.protocol.StatisticsProtocol; import com.mango.core.super_admin.util.SuperAdminUtil; import com.mango.core.user.UserModel; import com.mango.core.utils.CurrentTimeUtils; +import com.mango.moshen.R; +import com.mango.moshen.avroom.activity.AVRoomActivity; +import com.mango.moshen.avroom.adapter.BaseMicroViewAdapter; +import com.mango.moshen.avroom.adapter.CpMicroViewAdapter; +import com.mango.moshen.avroom.adapter.DatingMicroViewAdapter; +import com.mango.moshen.avroom.adapter.MicroViewAdapter; +import com.mango.moshen.avroom.anotherroompk.RoomPkFinishDialog; +import com.mango.moshen.avroom.anotherroompk.RoomPkForceFinishDialog; +import com.mango.moshen.avroom.anotherroompk.RoomPkReceivedDialog; +import com.mango.moshen.avroom.dialog.MicQueueDialog; +import com.mango.moshen.avroom.dialog.PKMicQueueDialog; +import com.mango.moshen.avroom.dialog.PKResultDialog; +import com.mango.moshen.avroom.dialog.PKScoreBoardDialog; +import com.mango.moshen.avroom.firstcharge.FirstChargePrizeDialog; +import com.mango.moshen.avroom.giftvalue.GiftValueDialogUiHelper; +import com.mango.moshen.avroom.presenter.HomePartyPresenter; +import com.mango.moshen.avroom.view.IHomePartyView; +import com.mango.moshen.avroom.widget.PKBoardView; +import com.mango.moshen.base.BaseMvpActivity; +import com.mango.moshen.common.widget.dialog.DialogManager; +import com.mango.moshen.databinding.FragmentAvRoomGameBinding; +import com.mango.moshen.ui.webview.DatingRuleWebViewActivity; +import com.mango.moshen.ui.webview.DialogWebViewActivity; +import com.mango.moshen.utils.UserUtils; import com.mango.xchat_android_library.base.factory.CreatePresenter; import com.mango.xchat_android_library.utils.SingleToastUtil; import com.mango.xchat_android_library.utils.TimeUtils; import com.mango.xchat_android_library.utils.UIUtils; -import com.mango.xchat_android_library.utils.config.BasicConfig; +import com.netease.nim.uikit.common.util.log.LogUtil; +import com.trello.rxlifecycle3.android.FragmentEvent; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; @@ -459,10 +454,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment implements View.OnClickListener { - - private String[] errs = new String[]{ - "歌词有误", - "歌词与伴奏有错位", - "原唱与伴奏不匹配", - "伴奏有误", - "伴奏音质差", - "MV质量差", - "无法播放", - "其他"}; - private int musicId; - - public KtvCommitErrorDialog(Context context, int musicId) { - super(context, R.style.TranslucentNoTitle); - this.musicId = musicId; - } - - public static KtvCommitErrorDialog newInstance(Context context, int musicId) { - return new KtvCommitErrorDialog(context, musicId); - } - - @Override - protected void init() { - binding.setClick(this); - TextView checkBox; - for (String err : errs) { - checkBox = (TextView) getLayoutInflater().inflate(R.layout.item_ktv_err, null); - checkBox.setText(err); - binding.llErrs.addView(checkBox, createLayoutParams()); - checkBox.setOnClickListener(v -> { - v.setSelected(!v.isSelected()); - updateCommitStatus(); - }); - } - } - - private void updateCommitStatus() { - boolean clickable = false; - for (int i = 0; i < binding.llErrs.getChildCount(); i++) { - if (binding.llErrs.getChildAt(i).isSelected()) { - clickable = true; - break; - } - } - binding.tvSure.setClickable(clickable); - binding.tvSure.setSolid(clickable ? context.getResources().getColor(R.color.appColor) : - context.getResources().getColor(R.color.color_FFC4A7)); - } - - private LinearLayout.LayoutParams createLayoutParams() { - LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, UIUtil.dip2px(context, 38)); - layoutParams.setMarginStart(UIUtil.dip2px(context, 15)); - layoutParams.setMarginEnd(UIUtil.dip2px(context, 15)); - return layoutParams; - } - - public void onClick(View view) { - TextView checkBox; - switch (view.getId()) { - case R.id.tv_sure: - StringBuilder errMsg = new StringBuilder(); - for (int i = 0; i < binding.llErrs.getChildCount(); i++) { - checkBox = (TextView) binding.llErrs.getChildAt(i); - if (checkBox.isSelected()) { - if (i != 0) errMsg.append(","); - errMsg.append(checkBox.getText().toString()); - } - } - if (TextUtils.isEmpty(errMsg.toString())) { - SingleToastUtil.showToast("请至少选择一种错误!"); - return; - } - KtvMusicManager.INSTANCE.musicError(musicId, errMsg.toString()) - .subscribe(s -> { - closeDialog(); - SingleToastUtil.showToast("提交成功!"); - }); - break; - default: - break; - } - } - - - - -} \ No newline at end of file diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvHelper.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvHelper.java deleted file mode 100644 index 92d7e4f40..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvHelper.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; -import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; - -import com.mango.moshen.R; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.im.custom.bean.MusicInfoAttachment; -import com.mango.core.manager.IMNetEaseManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.xchat_android_library.utils.NetworkUtils; - -import io.reactivex.Single; - -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_KTV; - - -public class KtvHelper { - - public static final int NO_NET = 1; - public static final int NO_SONG = 2; - public static final int NO_ROOM = 3; - public static final int NO_DATA = 4; - public static View createKtvEmptyView(Context context,int type ) { - if (!NetworkUtils.isNetworkAvailable(context)) type = NO_NET; - String hint =""; - int resId = 0; - switch (type) { - case NO_NET: - hint = "网络异常,加载失败"; - resId = R.drawable.icon_common_failure; - break; - case NO_DATA: - hint = "搜索无歌曲"; - resId = R.drawable.icon_common_failure; - break; - case NO_ROOM: - hint = "无房间开唱"; - resId = R.drawable.icon_common_failure; - break; - case NO_SONG: - hint = "无点唱歌曲"; - resId = R.drawable.icon_common_failure; - break; - } - View view = LayoutInflater.from(context).inflate(R.layout.fragment_no_data_large_iv, null); - view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); - ((TextView)view.findViewById(R.id.no_data_text)).setText(hint); - ((ImageView)view.findViewById(R.id.no_data_icon)).setImageResource(resId); - return view; - } - - public static Single sendChatRoomMusicMessage(int sub, MusicInfo musicInfo) { - MusicInfoAttachment musicInfoAttachment = new MusicInfoAttachment(CUSTOM_MSG_KTV, sub); - if (musicInfo != null) { - musicInfo.setOperationNick(UserUtils.getUserInfo().getNick()); - musicInfo.setOperationUid(UserUtils.getUserUid()); - musicInfoAttachment.setMusicInfo(musicInfo); - } - final ChatRoomMessage message = ChatRoomMessageBuilder.createChatRoomCustomMessage( - UserUtils.getCurrentRoomId() + "", musicInfoAttachment); - return IMNetEaseManager.get().sendChatRoomMessage(message, false); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvMusicManager.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvMusicManager.java deleted file mode 100644 index 79ec578b5..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvMusicManager.java +++ /dev/null @@ -1,207 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import com.coorchice.library.utils.LogUtils; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.manager.AvRoomDataManager; - -import com.mango.core.manager.IMNetEaseManager; -import com.mango.core.manager.AudioEngineManager; -import com.mango.core.room.ktv.KtvModel; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.bean.RoomMusicInfo; -import com.mango.core.room.ktv.event.KtvEvent; -import com.mango.core.room.ktv.event.MusicCountEvent; -import com.mango.core.utils.net.RxHelper; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.ListUtils; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.Single; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; - -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_DELETE_USER_ALL; -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_FINISH; -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_SWITCH; - -public enum KtvMusicManager { - INSTANCE; - private final ArrayList mData = new ArrayList<>(); - private MusicInfo currMusic; - private double currPlayPos; - private Disposable ktvDisposable; - private Disposable startDisposable; - private Disposable dataDisposable; - private Disposable switchDisposable; - - public void reset() { - dispose(ktvDisposable); - ktvDisposable = RxBus.get().toFlowable(KtvEvent.class) - .subscribe(this::handleKtvEvent); - initData(); - } - - private void initData() { - dispose(dataDisposable); - dataDisposable = KtvModel.get().getRoomMusic(UserUtils.getCurrentRoomUid()) - .compose(RxHelper.handleBeanData()) - .doOnSuccess(this::setData) - .filter(roomMusicInfo -> !AvRoomDataManager.get().isOwnerOnMic() && !ListUtils.isListEmpty(roomMusicInfo.getUserChooseMusicVos())) - .toObservable() - .flatMap(roomMusicInfo -> Observable.fromIterable(roomMusicInfo.getUserChooseMusicVos())) - .filter(musicInfo -> musicInfo.getUid() == UserUtils.getUserUid()) - .firstElement() - .toSingle() - .flatMap(musicInfo -> deleteUserAllChooseMusic()) - .subscribe(s -> { }, e -> { }); - } - - public void setData(RoomMusicInfo roomMusicInfo) { - mData.clear(); - currMusic = roomMusicInfo.getSingingMusicVo(); - if (!ListUtils.isListEmpty(roomMusicInfo.getUserChooseMusicVos())) { - mData.addAll(roomMusicInfo.getUserChooseMusicVos()); - } - RxBus.get().post(KtvEvent.newInstance(KtvEvent.MUSIC_UPDATE, null)); - RxBus.get().post(new MusicCountEvent(mData.size())); - } - - //处理KTV相关的各种事件 - private void handleKtvEvent(KtvEvent ktvEvent) { - LogUtils.d(ktvEvent.toString()); - MusicInfo musicInfo = ktvEvent.getMusicInfo(); - switch (ktvEvent.getType()) { - case KtvEvent.SWITCH_MUSIC: - if (currMusic != null) mData.remove(currMusic); - currMusic = musicInfo; - AudioEngineManager.get().stopPush(); - startMv(musicInfo); - break; - case KtvEvent.ADD_MUSIC: - if (musicInfo != null) { - mData.add(musicInfo); - } - break; - case KtvEvent.POP_MUSIC: - if (musicInfo != null) { - mData.remove(musicInfo); - } - break; - case KtvEvent.NO_MUSIC: - case KtvEvent.CLOSE_KTV_MODEL: - AudioEngineManager.get().stopPush(); - AudioEngineManager.get().setLive(false); - mData.clear(); - currMusic = null; - break; - case KtvEvent.DELETE_USER_CHOOSE_MUSIC: - if (musicInfo != null) { - mData.remove(musicInfo); - } - case KtvEvent.DELETE_USER_ALL_MUSIC: - if (musicInfo != null) { - Iterator iterator = mData.iterator(); - while (iterator.hasNext()) { - if (iterator.next().getUid() == musicInfo.getUid()) { - iterator.remove(); - } - } - } - break; - case KtvEvent.MUSIC_COMPLETE: - LogUtils.d("MUSIC_COMPLETE"); - // if (AudioEngineManager.get().isPush()) switchSong(false); - break; - default: - break; - } - RxBus.get().post(new MusicCountEvent(mData.size())); - } - - private void startMv(MusicInfo musicInfo) { - if (musicInfo == null ||UserUtils.getUserUid() != musicInfo.getUid()) return; - dispose(startDisposable); - currPlayPos = -1; - startDisposable = Observable.just(0) - .subscribeOn(Schedulers.io()) - .delay(2, TimeUnit.SECONDS) - .takeUntil(integer -> !KtvView.isShowPrepare || UserUtils.getUserUid() != getCurrMusic().getUid())//准备中下麦处理 - .doOnNext(integer -> AudioEngineManager.get().startMv(musicInfo.getMusicUrl())) - .flatMap(integer -> Observable.interval(0, 1, TimeUnit.SECONDS)) - .observeOn(AndroidSchedulers.mainThread()) - .takeUntil(aLong -> !AudioEngineManager.get().isPush()) - .filter(aLong -> (AudioEngineManager.get().getPlayPos() > 0.99d || - (AudioEngineManager.get().getPlayPos() > 0.94d && AudioEngineManager.get().isPlaying() && - currPlayPos == (currPlayPos = AudioEngineManager.get().getPlayPos())))) - .take(1) - .subscribe(aLong -> switchSong(false)); - - } - - public Single addMusic(MusicInfo musicInfo) { - return KtvModel.get().chooseMusic(musicInfo.getMusicId(), UserUtils.getUserUid(), UserUtils.getCurrentRoomUid()); - } - - public Single popMusic(MusicInfo musicInfo) { - return KtvModel.get().popMusic(musicInfo.getMusicId(), musicInfo.getUid(), UserUtils.getCurrentRoomUid()); - } - - public Single switchMusic() { - return KtvModel.get().switchMusic(UserUtils.getCurrentRoomUid()); - } - - public Single deleteUserChooseMusic(MusicInfo musicInfo) { - return KtvModel.get().deleteUserChooseMusic(musicInfo.getMusicId(), musicInfo.getUid(), UserUtils.getCurrentRoomUid()); - } - - public Single deleteRoomAllChooseMusic() { - return KtvModel.get().deleteRoomAllChooseMusic(UserUtils.getCurrentRoomUid()); - } - - public Single deleteUserAllChooseMusic() { - return deleteUserAllChooseMusic(UserUtils.getCurrentRoomUid()); - } - - public Single deleteUserAllChooseMusic(long roomUid) { - return KtvModel.get() - .deleteUserAllChooseMusic(UserUtils.getUserUid(), roomUid) - .doOnSuccess(s -> KtvHelper.sendChatRoomMusicMessage(CUSTOM_MSG_SUB_KTV_DELETE_USER_ALL, null) - .subscribe(chatRoomMessage -> RxBus.get().post(KtvEvent.newInstance(KtvEvent.DELETE_USER_ALL_MUSIC, null)))); - } - - public void switchSong(boolean isSwitch) { - MusicInfo musicInfo = getCurrMusic(); - dispose(switchDisposable); - switchDisposable = KtvMusicManager.INSTANCE.switchMusic() - .flatMap(s -> KtvHelper.sendChatRoomMusicMessage(isSwitch ? CUSTOM_MSG_SUB_KTV_SWITCH : CUSTOM_MSG_SUB_KTV_FINISH, musicInfo)) - .subscribe(chatRoomMessage -> IMNetEaseManager.get().addMessages(chatRoomMessage)); - } - - public Single musicError(int musicId,String errorMsg) { - return KtvModel.get().musicError(musicId, UserUtils.getUserUid(),errorMsg); - } - - - private void dispose(@Nullable Disposable disposable) { - if (disposable != null) disposable.dispose(); - } - - @NonNull - public List getMusicList() { - return mData; - } - - @NonNull - public MusicInfo getCurrMusic() { - return currMusic == null ? new MusicInfo() : currMusic; - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListActivity.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListActivity.java deleted file mode 100644 index e6a06e13c..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListActivity.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.content.Context; -import android.content.Intent; -import androidx.fragment.app.Fragment; - -import com.mango.moshen.R; -import com.mango.moshen.base.BaseBindingActivity; -import com.mango.moshen.common.ViewPagerAdapter; -import com.mango.moshen.databinding.ActivityKtvRoomListBinding; -import com.mango.moshen.decoration.view.widgets.CarMagicIndicator; -import com.mango.moshen.ui.widget.magicindicator.ViewPagerHelper; -import com.mango.moshen.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator; -import com.mango.core.home.bean.TabInfo; -import com.mango.xchat_android_library.annatation.ActLayoutRes; -import com.mango.xchat_android_library.utils.CommonUtils; - -import java.util.ArrayList; -import java.util.List; - -/** - *

KTV房间列表

- * - */ -@ActLayoutRes(R.layout.activity_ktv_room_list) -public class KtvRoomListActivity extends BaseBindingActivity implements CarMagicIndicator.OnItemSelectListener { - - public static void start(Context context) { - if (CommonUtils.isFastDoubleClick(500)) return; - Intent starter = new Intent(context, KtvRoomListActivity.class); - //starter.putExtra(); - context.startActivity(starter); - } - @Override - protected void init() { - List list = new ArrayList<>(); - list.add(KtvRoomListFragment.newInstance(KtvRoomListFragment.NEW)); - list.add(KtvRoomListFragment.newInstance(KtvRoomListFragment.HOT)); - List tabInfoList = new ArrayList<>(2); - tabInfoList.add(new TabInfo(1, "最新")); - tabInfoList.add(new TabInfo(2, "最热")); - CommonNavigator commonNavigator = new CommonNavigator(this); - commonNavigator.setAdjustMode(true); - CarMagicIndicator indicator = new CarMagicIndicator(this, tabInfoList, 0); - indicator.setOnItemSelectListener(this); - commonNavigator.setAdapter(indicator); - mBinding.viewIndicator.setNavigator(commonNavigator); - ViewPagerHelper.bind(mBinding.viewIndicator, mBinding.viewPager); - String[] titles = {"最新", "最热"}; - mBinding.setClick(this); - initTitleBar("KTV房"); - // mBinding.tabLayout.setupWithViewPager(mBinding.viewPager); - // mBinding.tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER); - mBinding.viewPager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), list, titles)); - } - - @Override - public void onItemSelect(int position) { - mBinding.viewPager.setCurrentItem(position); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListFragment.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListFragment.java deleted file mode 100644 index 4cc8dbb4d..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListFragment.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.os.Bundle; - -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.mango.moshen.BR; -import com.mango.moshen.R; -import com.mango.moshen.avroom.activity.AVRoomActivity; -import com.mango.moshen.base.BaseBindingFragment; -import com.mango.moshen.bindadapter.BaseAdapter; -import com.mango.moshen.databinding.FragmentRecyclerViewBindNoBgBinding; -import com.mango.core.room.ktv.bean.KtvRoomInfo; -import com.mango.xchat_android_library.annatation.ActLayoutRes; - -@ActLayoutRes(R.layout.fragment_recycler_view_bind_no_bg) -public class KtvRoomListFragment extends BaseBindingFragment implements SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener { - private BaseAdapter adapter; - private KtvRoomListVm ktvRoomListVm; - public static final int NEW = 1; - public static final int HOT = 2; - - @Override - public void initiate() { - int type = getArguments().getInt("type", HOT); - ktvRoomListVm = new KtvRoomListVm(mBinding, type); - adapter = new BaseAdapter<>(R.layout.list_item_ktv_room, BR.ktvRoomInfo); - adapter.setEmptyView(KtvHelper.createKtvEmptyView(getContext(),KtvHelper.NO_ROOM )); - mBinding.setViewmodel(ktvRoomListVm); - mBinding.recyclerView.setLayoutManager(new GridLayoutManager(mContext,2)); - mBinding.recyclerView.setAdapter(adapter); - mBinding.swipeRefresh.setOnRefreshListener(this); - loadData(false); - adapter.setOnLoadMoreListener(this, mBinding.recyclerView); - adapter.setOnItemClickListener((adapter, view, position) ->{ - AVRoomActivity.start(getActivity(), ((KtvRoomInfo)adapter.getData().get(position)).getRoomUid()); -// getActivity().finish(); - } - ); - - } - - private void loadData(boolean isLoad) { - ktvRoomListVm.loadData(isLoad) - .compose(bindToLifecycle()) - .doAfterTerminate(() -> { - if (adapter.getItemCount() == 0) showNoData(); - else hideStatus(); - }).subscribe(); - } - - public static KtvRoomListFragment newInstance(int type) { - Bundle args = new Bundle(); - args.putInt("type", type); - KtvRoomListFragment fragment = new KtvRoomListFragment(); - fragment.setArguments(args); - return fragment; - } - - @Override - public void onReloadData() { - loadData(false); - showLoading(); - } - - @Override - public void onRefresh() { - loadData(false); - } - - @Override - public void onLoadMoreRequested() { - loadData(true); - } - -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListVm.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListVm.java deleted file mode 100644 index 28a945c4d..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvRoomListVm.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.mango.moshen.avroom.ktv; - - -import com.mango.moshen.base.BaseMsListViewModel; -import com.mango.moshen.databinding.FragmentRecyclerViewBindNoBgBinding; -import com.mango.core.bean.response.ServiceResult; -import com.mango.core.room.ktv.KtvModel; -import com.mango.core.room.ktv.bean.KtvRoomInfo; - -import java.util.List; - -import io.reactivex.Single; - -/** - * Created by huangmeng1 on 2018/5/9. - */ - -public class KtvRoomListVm extends BaseMsListViewModel { - - private int sortType; - - public KtvRoomListVm(FragmentRecyclerViewBindNoBgBinding mBinding, int sortType) { - super(mBinding); - this.sortType = sortType; - pageSize = 20; - } - - @Override - public Single>> getSingle() { - return KtvModel.get().getKtvRooms(sortType, page, pageSize); - } - -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongActivity.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongActivity.java deleted file mode 100644 index 195fb1acb..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongActivity.java +++ /dev/null @@ -1,191 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.view.inputmethod.EditorInfo; -import android.widget.TextView; - -import androidx.recyclerview.widget.LinearLayoutManager; - -import com.chad.library.adapter.base.BaseQuickAdapter; -import com.coorchice.library.SuperTextView; -import com.google.android.flexbox.FlexboxLayout; -import com.mango.moshen.BR; -import com.mango.moshen.R; -import com.mango.moshen.base.BaseBindingActivity; -import com.mango.moshen.bindadapter.BaseAdapter; -import com.mango.moshen.databinding.ActivityKtvSearchSongBinding; -import com.mango.moshen.ui.widget.magicindicator.buildins.UIUtil; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.event.KtvEvent; -import com.mango.core.room.ktv.event.MusicCountEvent; -import com.mango.core.utils.SharedPreferenceUtils; -import com.mango.xchat_android_library.annatation.ActLayoutRes; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.CommonUtils; - -import io.reactivex.android.schedulers.AndroidSchedulers; - -/** - *

KTV搜索歌曲

- * - */ - -@ActLayoutRes(R.layout.activity_ktv_search_song) -public class KtvSearchSongActivity extends BaseBindingActivity implements TextWatcher, BaseQuickAdapter.RequestLoadMoreListener, BaseQuickAdapter.OnItemClickListener, TextView.OnEditorActionListener { - private KtvSearchSongVm vm; - private BaseAdapter adapter; - - - public static void start(Context context) { - if (CommonUtils.isFastDoubleClick(500)) return; - Intent starter = new Intent(context, KtvSearchSongActivity.class); - //starter.putExtra(); - context.startActivity(starter); - } - - @SuppressLint("CheckResult") - @Override - protected void init() { - initTitleBar("点歌台"); - vm = new KtvSearchSongVm(mBinding); - mBinding.setViewModel(vm); - mBinding.setClick(this); - mBinding.swipeRefresh.setEnabled(false); - mBinding.edtSearch.addTextChangedListener(this); - adapter = new BaseAdapter<>(R.layout.list_item_ktv_search, BR.musicInfo); - adapter.setOnLoadMoreListener(this, mBinding.recyclerView); - mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(context)); - mBinding.recyclerView.setAdapter(adapter); - adapter.setOnItemClickListener(this); - adapter.setEmptyView(KtvHelper.createKtvEmptyView(context, KtvHelper.NO_DATA)); - mBinding.edtSearch.setOnEditorActionListener(this); - if (vm.getHistoryList().size() == 0) { - mBinding.ivClearHistory.setVisibility(View.INVISIBLE); - } else { - for (String item : vm.getHistoryList()) { - mBinding.fblHistory.addView(createSearchItem(item), createLayoutParams()); - } - } - mBinding.tvSongCount.setText("已点" + KtvMusicManager.INSTANCE.getMusicList().size()); - RxBus.get().toFlowable(KtvEvent.class) - .compose(bindToLifecycle()) - .filter(ktvEvent -> ktvEvent.getType() == KtvEvent.ADD_MUSIC_BY_USER) - .subscribe(ktvEvent -> finish()); - RxBus.get().toFlowable(MusicCountEvent.class) - .compose(bindToLifecycle()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(musicCountEvent -> mBinding.tvSongCount.setText("已点" + musicCountEvent.getCount())); - } - - private SuperTextView createSearchItem(String text) { - SuperTextView textView = (SuperTextView) LayoutInflater.from(context).inflate(R.layout.item_ktv_search_history, null); - textView.setText(text); - textView.setMaxLines(1); - textView.setOnClickListener(v -> { - mBinding.edtSearch.setText(text); - mBinding.edtSearch.setSelection(mBinding.edtSearch.getText().toString().length()); - loadData(text); - }); - return textView; - } - - private FlexboxLayout.LayoutParams createLayoutParams() { - FlexboxLayout.LayoutParams layoutParams = new FlexboxLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, UIUtil.dip2px(this, 28)); - layoutParams.setMargins(0, 0, UIUtil.dip2px(this, 8), UIUtil.dip2px(this, 10)); - return layoutParams; - } - - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.tv_search: - loadData(mBinding.edtSearch.getText().toString()); - break; - case R.id.iv_clear_history: - mBinding.fblHistory.removeAllViews(); - mBinding.ivClearHistory.setVisibility(View.INVISIBLE); - SharedPreferenceUtils.remove("ktv_history"); - break; - - case R.id.ib_clear_edt: - mBinding.edtSearch.setText(""); - break; - } - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - - } - - @Override - public void afterTextChanged(Editable s) { - if (TextUtils.isEmpty(s.toString())) { - mBinding.recyclerView.setVisibility(View.GONE); - mBinding.llHistory.setVisibility(View.VISIBLE); - } - - } - - private void loadData(String searchKey) { - if (TextUtils.isEmpty(searchKey)) { - toast("请输入搜索关键字~"); - return; - } - hideIME(); - mBinding.recyclerView.setVisibility(View.VISIBLE); - mBinding.llHistory.setVisibility(View.GONE); - if (vm.addHistory(searchKey)) { - if (mBinding.ivClearHistory.getVisibility() == View.INVISIBLE) { - mBinding.ivClearHistory.setVisibility(View.VISIBLE); - } - if (mBinding.fblHistory.getChildCount() == 12) mBinding.fblHistory.removeViewAt(11); - mBinding.fblHistory.addView(createSearchItem(searchKey), 0, createLayoutParams()); - } - vm.setSearchKey(searchKey); - vm.loadData(this, false); - } - - @Override - public void onLoadMoreRequested() { - vm.loadData(this, true); - } - - @Override - public void onItemClick(BaseQuickAdapter adapter, View view, int position) { - if (CommonUtils.isFastDoubleClick(500)) return; - if (AvRoomDataManager.get().isOnMic(UserUtils.getUserUid())) { - KtvSelectSongDialog.newInstance(context, this.adapter.getData().get(position)) - .openDialog(); - } else { - getDialogManager().showOkDialog("只有麦上用户才可以点歌哦~"); - } - } - - @Override - public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { - if (actionId == EditorInfo.IME_ACTION_SEND || actionId == EditorInfo.IME_ACTION_DONE || actionId == EditorInfo.IME_ACTION_SEARCH - || (event != null && KeyEvent.KEYCODE_ENTER == event.getKeyCode() && KeyEvent.ACTION_DOWN == event.getAction())) { - loadData(mBinding.edtSearch.getText().toString()); - return true; - } - return false; - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongVm.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongVm.java deleted file mode 100644 index ee1af9af6..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSearchSongVm.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.text.TextUtils; - -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; - -import com.mango.moshen.base.BaseMsListViewModel; -import com.mango.moshen.databinding.ActivityKtvSearchSongBinding; -import com.mango.core.bean.response.ServiceResult; -import com.mango.core.room.ktv.KtvModel; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.utils.SharedPreferenceUtils; - -import java.util.ArrayList; -import java.util.List; - -import io.reactivex.Single; - -public class KtvSearchSongVm extends BaseMsListViewModel { - - private String searchKey; - - public KtvSearchSongVm(ActivityKtvSearchSongBinding mBinding) { - super(mBinding); - } - - public void setSearchKey(String searchKey) { - this.searchKey = searchKey; - } - - @Override - public Single>> getSingle() { - return KtvModel.get().searchMusic(searchKey, page, pageSize); - } - - - public boolean addHistory(String searchKey) { - if (TextUtils.isEmpty(searchKey)) return false; - List historyList = getHistoryList(); - if (!historyList.contains(searchKey)) { - if (historyList.size() > 11) historyList.remove(11); - historyList.add(0, searchKey); - SharedPreferenceUtils.put("ktv_history", new Gson().toJson(historyList)); - return true; - } - return false; - } - - public List getHistoryList() { - String historys = (String) SharedPreferenceUtils.get("ktv_history", ""); - List historyList = new ArrayList<>(); - if (!TextUtils.isEmpty(historys)) { - historyList.addAll(new Gson().fromJson(historys, new TypeToken>() { - }.getType())); - } - return historyList; - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongActivity.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongActivity.java deleted file mode 100644 index 7a49b92c4..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongActivity.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import androidx.recyclerview.widget.LinearLayoutManager; -import android.view.View; - -import com.chad.library.adapter.base.BaseQuickAdapter; - -import com.mango.moshen.BR; -import com.mango.moshen.R; -import com.mango.moshen.base.BaseBindingActivity; -import com.mango.moshen.bindadapter.BaseAdapter; -import com.mango.moshen.common.widget.dialog.DialogManager; -import com.mango.moshen.databinding.ActivityKtvSelectSongBinding; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.event.MusicCountEvent; -import com.mango.core.super_admin.SaConstant; -import com.mango.core.super_admin.util.SuperAdminUtil; -import com.mango.xchat_android_library.annatation.ActLayoutRes; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.CommonUtils; -import com.mango.xchat_android_library.utils.SingleToastUtil; - -import io.reactivex.android.schedulers.AndroidSchedulers; - -/** - *

KTV点歌台

- * - */ - -@ActLayoutRes(R.layout.activity_ktv_select_song) -public class KtvSelectSongActivity extends BaseBindingActivity implements BaseQuickAdapter.RequestLoadMoreListener, BaseQuickAdapter.OnItemClickListener { - private KtvSelectSongVm vm; - private BaseAdapter adapter; - - public static void start(Context context, boolean isHint) { - if (SuperAdminUtil.isSuperAdmin()) { - SingleToastUtil.showToast(SaConstant.TOAST_ERROR_TIPS); - return; - } - if (CommonUtils.isFastDoubleClick(500)) return; - if (!AvRoomDataManager.get().isOnMic(UserUtils.getUserUid()) && isHint) { - new DialogManager(context).showOkDialog("只有麦上用户才可以点歌哦~"); - return; - } - Intent starter = new Intent(context, KtvSelectSongActivity.class); - // starter.putExtra(); - context.startActivity(starter); - } - - - @SuppressLint("CheckResult") - @Override - protected void init() { - initTitleBar("点歌台"); - vm = new KtvSelectSongVm(mBinding); - mBinding.setViewModel(vm); - mBinding.setClick(this); - adapter = new BaseAdapter<>(R.layout.list_item_ktv_select, BR.musicInfo); - adapter.setOnLoadMoreListener(this, mBinding.recyclerView); - mBinding.swipeRefresh.setEnabled(false); - mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(this)); - mBinding.recyclerView.setAdapter(adapter); - vm.loadData(this, false); - adapter.setOnItemClickListener(this); - mBinding.stvKtvSong.setText("已点" + KtvMusicManager.INSTANCE.getMusicList().size()); - RxBus.get().toFlowable(MusicCountEvent.class) - .compose(bindToLifecycle()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(musicCountEvent -> mBinding.stvKtvSong.setText("已点" + musicCountEvent.getCount())); - } - - @Override - public void onClick(View v) { - switch (v.getId()) { - case R.id.container_search: - KtvSearchSongActivity.start(context); - break; - case R.id.stv_ktv_song: - KtvSongListActivity.start(context, true); - break; - } - } - - @Override - public void onLoadMoreRequested() { - vm.loadData(this, true); - } - - @Override - public void onItemClick(BaseQuickAdapter adapter, View view, int position) { - if (CommonUtils.isFastDoubleClick(500)) return; - if (!AvRoomDataManager.get().isOnMic(UserUtils.getUserUid())) { - getDialogManager() - .showOkDialog("只有麦上用户才可以点歌喔~"); - return; - } - KtvSelectSongDialog.newInstance(context, (MusicInfo) adapter.getData().get(position)) - - .openDialog(); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongDialog.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongDialog.java deleted file mode 100644 index 0bd0c0b1e..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongDialog.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.content.Context; -import android.text.style.ForegroundColorSpan; -import android.view.View; - - -import com.mango.moshen.R; -import com.mango.moshen.treasure_box.widget.dialog.BaseBindingDialog; -import com.mango.moshen.avroom.widget.MessageView; -import com.mango.moshen.common.widget.dialog.DialogManager; -import com.mango.moshen.databinding.DialogKtvSelectSongBinding; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.manager.IMNetEaseManager; -import com.mango.core.manager.AudioEngineManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.event.KtvEvent; -import com.mango.core.utils.net.BeanObserver; -import com.mango.xchat_android_library.annatation.ActLayoutRes; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.SingleToastUtil; - -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_ADD; - - -@ActLayoutRes(R.layout.dialog_ktv_select_song) -public class KtvSelectSongDialog extends BaseBindingDialog implements View.OnClickListener { - private MusicInfo musicInfo; - - public KtvSelectSongDialog(Context context, MusicInfo musicInfo) { - super(context, R.style.MyAlertDialogStyle); - this.musicInfo = musicInfo; - } - - public static KtvSelectSongDialog newInstance(Context context, MusicInfo musicInfo) { - return new KtvSelectSongDialog(context, musicInfo); - } - - @Override - protected void init() { - binding.setMusicInfo(musicInfo); - binding.setClick(this); - - MessageView.SpannableBuilder builder = new MessageView.SpannableBuilder(binding.tvUploader) - .append("感谢 ") - .append(musicInfo.getUploader(), new ForegroundColorSpan(context.getResources().getColor(R.color.appColor))) - .append(" 上传"); - binding.tvUploader.setText(builder.build()); - } - - public void onClick(View view) { - switch (view.getId()) { - case R.id.tv_cancel: - closeDialog(); - break; - case R.id.tv_sure: - if (!AudioEngineManager.get().isOpenKtv()){ - SingleToastUtil.showToast("管理已经已经关闭KTV模式哦~~"); - return; - } - if (!AvRoomDataManager.get().isOnMic(UserUtils.getUserUid())) { - new DialogManager(context).showOkDialog("只有麦上用户才可以点歌哦~"); - return; - } - KtvMusicManager.INSTANCE.addMusic(musicInfo) - .subscribe(new BeanObserver() { - @Override - public void onErrorMsg(String error) { - SingleToastUtil.showToast(error); - } - - @Override - public void onSuccess(String s) { - closeDialog(); - SingleToastUtil.showToast("点歌成功~~"); - RxBus.get().post(KtvEvent.newInstance(KtvEvent.ADD_MUSIC_BY_USER, musicInfo)); - RxBus.get().post(KtvEvent.newInstance(KtvEvent.ADD_MUSIC, musicInfo)); - KtvHelper.sendChatRoomMusicMessage(CUSTOM_MSG_SUB_KTV_ADD, musicInfo) - .subscribe(chatRoomMessage -> { - IMNetEaseManager.get().addMessages(chatRoomMessage); - }); - } - }); - break; - default: - break; - } - } - -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongVm.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongVm.java deleted file mode 100644 index 64d62c067..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSelectSongVm.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mango.moshen.avroom.ktv; - - -import com.mango.moshen.base.BaseMsListViewModel; -import com.mango.moshen.databinding.ActivityKtvSelectSongBinding; -import com.mango.core.bean.response.ServiceResult; -import com.mango.core.room.ktv.KtvModel; -import com.mango.core.room.ktv.bean.MusicInfo; - -import java.util.List; - -import io.reactivex.Single; - -public class KtvSelectSongVm extends BaseMsListViewModel { - - public KtvSelectSongVm(ActivityKtvSelectSongBinding mBinding) { - super(mBinding); - } - - @Override - public Single>> getSingle() { - return KtvModel.get().hotMusic(page, pageSize); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListActivity.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListActivity.java deleted file mode 100644 index b35c16e73..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListActivity.java +++ /dev/null @@ -1,152 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_DELETE; -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_TOP; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; - -import com.trello.rxlifecycle3.android.ActivityEvent; -import com.mango.moshen.BR; -import com.mango.moshen.R; -import com.mango.moshen.base.BaseBindingActivity; -import com.mango.moshen.base.TitleBar; -import com.mango.moshen.bindadapter.BaseAdapter; -import com.mango.moshen.databinding.ActivityKtvSongListBinding; -import com.mango.core.manager.IMNetEaseManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.event.KtvEvent; -import com.mango.core.super_admin.SaConstant; -import com.mango.core.super_admin.util.SuperAdminUtil; -import com.mango.xchat_android_library.annatation.ActLayoutRes; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.CommonUtils; -import com.mango.xchat_android_library.utils.SingleToastUtil; - -import java.util.Collections; - -/** - *

KTV房间已点列表

- * - */ - -@ActLayoutRes(R.layout.activity_ktv_song_list) -public class KtvSongListActivity extends BaseBindingActivity implements SwipeRefreshLayout.OnRefreshListener { - - private KtvSongListVm vm; - private BaseAdapter adapter; - private boolean hasSelectSong; - - public static void start(Context context, boolean hasSelectSong) { - if (SuperAdminUtil.isSuperAdmin()) { - SingleToastUtil.showToast(SaConstant.TOAST_ERROR_TIPS); - return; - } - if (CommonUtils.isFastDoubleClick(500)) return; - Intent starter = new Intent(context, KtvSongListActivity.class); - //starter.putExtra(); - context.startActivity(starter); - } - - @Override - protected void init() { - initTitleBar("已点(0)"); - vm = new KtvSongListVm(mBinding); - mBinding.setViewModel(vm); - mBinding.setClick(this); - vm.count.observe(this, count -> { - if (count == null) { - return; - } - setTitleBarText("已点(" + count + ")"); - }); - adapter = new KtvSongListAdapter(R.layout.list_item_ktv_song, BR.musicInfo, new int[]{R.id.stv_delete, R.id.stv_top}); - adapter.setEmptyView(KtvHelper.createKtvEmptyView(context,KtvHelper.NO_SONG )); - mBinding.swipeRefresh.setOnRefreshListener(this); - mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(context)); - mBinding.recyclerView.setAdapter(adapter); - vm.loadData(this, false); - adapter.setOnItemChildClickListener((adapter, view, position) -> { - MusicInfo musicInfo = (MusicInfo) adapter.getItem(position); - if (musicInfo == null) return; - switch (view.getId()) { - case R.id.stv_top: - KtvMusicManager.INSTANCE.popMusic(musicInfo) - .compose(bindUntilEvent(ActivityEvent.DESTROY)) - .subscribe(s -> { - for (int i = position; i > 1; i--) { - Collections.swap(adapter.getData(), i, i - 1); - } - KtvHelper.sendChatRoomMusicMessage(CUSTOM_MSG_SUB_KTV_TOP,musicInfo) - .subscribe(chatRoomMessage -> IMNetEaseManager.get().addMessages(chatRoomMessage)); - }); - break; - case R.id.stv_delete: - KtvMusicManager.INSTANCE.deleteUserChooseMusic(musicInfo) - .compose(bindUntilEvent(ActivityEvent.DESTROY)) - .subscribe(s -> { - adapter.remove(position); - vm.count.setValue(adapter.getItemCount()); - KtvHelper.sendChatRoomMusicMessage(CUSTOM_MSG_SUB_KTV_DELETE,musicInfo) - .subscribe(chatRoomMessage -> IMNetEaseManager.get().addMessages(chatRoomMessage)); - }); - break; - } - }); - RxBus.get().toFlowable(KtvEvent.class) - .compose(bindToLifecycle()) - .filter(ktvEvent -> ktvEvent.getType() == KtvEvent.ADD_MUSIC_BY_USER) - .subscribe(ktvEvent -> vm.loadData(KtvSongListActivity.this, false)); - } - - public void initTitleBar(String title) { - mTitleBar = (TitleBar) findViewById(R.id.title_bar); - if (mTitleBar != null) { - mTitleBar.setTitle(title); - mTitleBar.setImmersive(false); - mTitleBar.setTitleColor(getResources().getColor(R.color.back_font)); - mTitleBar.setLeftImageResource(R.mipmap.common_ic_back); - mTitleBar.setLeftClickListener(v -> onLeftClickListener()); - mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.icon_ktv_select_song_right) { - @Override - public void performAction(View view) { - KtvSelectSongActivity.start(context, true); - } - }); - } - } - - public void setTitleBarText(String title) { - mTitleBar = (TitleBar) findViewById(R.id.title_bar); - if (mTitleBar != null) { - mTitleBar.setTitle(title); - } - } - - @Override - public void onClick(View v) { - - } - - @Override - public void onRefresh() { - vm.loadData(this, false); - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - } - -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListAdapter.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListAdapter.java deleted file mode 100644 index a10b64e9e..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListAdapter.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import androidx.annotation.Nullable; - -import com.mango.moshen.R; -import com.mango.moshen.bindadapter.BaseAdapter; -import com.mango.moshen.bindadapter.BindingViewHolder; -import com.mango.moshen.ui.widget.LivingIconView; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.room.ktv.bean.MusicInfo; - -public class KtvSongListAdapter extends BaseAdapter { - - public KtvSongListAdapter(int layoutResId, int brid, @Nullable int[] clickIds) { - super(layoutResId, brid, clickIds); - } - - @Override - protected void convert(BindingViewHolder helper, MusicInfo item) { - super.convert(helper, item); - int position = helper.getLayoutPosition(); - boolean isManager = AvRoomDataManager.get().isRoomOwner() || AvRoomDataManager.get().isRoomAdmin(); - helper.setVisible(R.id.stv_top, position != 0 && position != 1 && isManager); - helper.setVisible(R.id.stv_delete, position != 0 && (isManager || UserUtils.getUserUid() == item.getUid())); - helper.setTextColor(R.id.tv_song_name, position == 0 ? 0xffff4362 : 0xff333333); - helper.setVisible(R.id.tv_singing, position == 0); - ((LivingIconView) helper.getView(R.id.tv_singing)).stop(); - if (position == 0) { - ((LivingIconView) helper.getView(R.id.tv_singing)).start(); - } - helper.addOnClickListener(R.id.stv_top) - .addOnClickListener(R.id.stv_delete); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListVm.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListVm.java deleted file mode 100644 index e3c0de459..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvSongListVm.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import androidx.lifecycle.MutableLiveData; - - -import com.mango.moshen.base.BaseMsListViewModel; -import com.mango.moshen.databinding.ActivityKtvSongListBinding; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.bean.response.ServiceResult; -import com.mango.core.room.ktv.KtvModel; -import com.mango.core.room.ktv.bean.MusicInfo; - -import java.util.List; - -import io.reactivex.Single; - -public class KtvSongListVm extends BaseMsListViewModel { - - public MutableLiveData count = new MutableLiveData<>(); - - public KtvSongListVm(ActivityKtvSongListBinding mBinding) { - super(mBinding); - pageSize = 50; - count.setValue(0); - } - - @Override - public Single>> getSingle() { - return KtvModel.get().getRoomMusic(UserUtils.getCurrentRoomUid()) - .flatMap(result -> { - KtvMusicManager.INSTANCE.setData(result.getData()); - List musicInfoList = result.getData().getUserChooseMusicVos(); - count.setValue(musicInfoList.size()); - return Single.just(new ServiceResult>() - .setCode(result.getCode()) - .setMessage(result.getMessage()) - .setData(musicInfoList)); - } - ); - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvView.java b/app/src/main/java/com/mango/moshen/avroom/ktv/KtvView.java deleted file mode 100644 index 2643aaf67..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/KtvView.java +++ /dev/null @@ -1,541 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.annotation.SuppressLint; -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.constraintlayout.widget.Group; -import androidx.cardview.widget.CardView; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.SurfaceView; -import android.view.View; -import android.widget.FrameLayout; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.SeekBar; -import android.widget.TextView; - -import com.coorchice.library.SuperTextView; -import com.netease.nim.uikit.common.util.sys.ScreenUtil; - -import com.orhanobut.logger.Logger; -import com.mango.moshen.R; -import com.mango.moshen.common.widget.dialog.DialogManager; -import com.mango.moshen.ui.utils.ImageLoadUtils; -import com.mango.moshen.utils.UserUtils; -import com.mango.core.bean.RoomQueueInfo; -import com.mango.core.manager.AvRoomDataManager; -import com.mango.core.manager.IMNetEaseManager; -import com.mango.core.manager.AudioEngineManager; -import com.mango.core.room.ktv.bean.MusicInfo; -import com.mango.core.room.ktv.event.KtvEvent; -import com.mango.core.room.ktv.event.RemoteVideoEvent; -import com.mango.core.statistic.StatisticManager; -import com.mango.core.statistic.protocol.StatisticsProtocol; -import com.mango.core.super_admin.SaConstant; -import com.mango.core.super_admin.util.SuperAdminUtil; -import com.mango.xchat_android_library.rxbus.RxBus; -import com.mango.xchat_android_library.utils.SingleToastUtil; - -import java.util.concurrent.TimeUnit; - - -import butterknife.BindView; -import butterknife.ButterKnife; -import io.agora.ktvkit.VideoPlayerView; -import io.agora.rtc.RtcEngine; -import io.agora.rtc.video.VideoCanvas; -import io.reactivex.Observable; -import io.reactivex.Observer; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.CompositeDisposable; -import io.reactivex.disposables.Disposable; - -import static com.mango.core.im.custom.bean.CustomAttachment.CUSTOM_MSG_SUB_KTV_CLOSE; - -public class KtvView extends CardView { - - private Context context; - public static final int KTV_ROOM_OWNER = 1;//房主 - public static final int KTV_ROOM_MANAGER = 2;//管理员 - public static final int KTV_ROOM_MV_BROADCASTER = 3;//mv主播 - public static final int KTV_ROOM_AUDIENCE = 4;//观众 - - @Nullable - private View statusView; - private CompositeDisposable disposables; - private FrameLayout playContainer; - private FrameLayout statusContainer; - private VideoPlayerView xPlay; - private boolean isShowNoSong; - public static boolean isShowPrepare; - private Disposable tipDisposable; - private Disposable prepareDisposable; - - public KtvView(@NonNull Context context) { - this(context, null); - } - - public KtvView(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - this.context = context; - init(); - } - - private void init() { - inflate(context, R.layout.layout_ktv_view, this); - setRadius(ScreenUtil.dip2px(10)); - disposables = new CompositeDisposable(); - playContainer = findViewById(R.id.play_container); - statusContainer = findViewById(R.id.status_container); - this.setOnClickListener(listener); - playContainer.setOnClickListener(listener); - statusContainer.setOnClickListener(listener); - showXPlay(AudioEngineManager.get().isPush()); - if (!AudioEngineManager.get().isLive() || KtvMusicManager.INSTANCE.getMusicList().size() == 0) { - statusView = showNoSong(); - } else if (!AudioEngineManager.get().isPush()) { - setupRemoteVideo(AudioEngineManager.get().getRemoteUid()); - } - subscribeEvent(); - } - - private Runnable runnable = this::resetStatusView; - private OnClickListener listener = new OnClickListener() { - @Override - public void onClick(View v) { - if (statusView != null) { - resetStatusView(); - return; - } - statusView = getUserType() == KTV_ROOM_AUDIENCE ? showChooseSong() : showCommand(); - } - }; - - private void subscribeEvent() { - Disposable disposable1 = RxBus.get().toFlowable(RemoteVideoEvent.class) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(remoteVideoEvent -> setupRemoteVideo(remoteVideoEvent.getUid())); - Disposable disposable2 = RxBus.get().toFlowable(KtvEvent.class) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(this::handleKtvEvent); - disposables.addAll(disposable1, disposable2); - } - - - //处理KTV相关的各种事件 - private void handleKtvEvent(KtvEvent ktvEvent) { - MusicInfo musicInfo = ktvEvent.getMusicInfo(); - switch (ktvEvent.getType()) { - case KtvEvent.SWITCH_MUSIC: - if (musicInfo != null) { - statusView = showPrepare(musicInfo); - } - break; - case KtvEvent.STOP: - if (AudioEngineManager.get().isPush() && AudioEngineManager.get().isPlaying()) { - AudioEngineManager.get().playOrPause(); - } - break; - case KtvEvent.CONTINUE: - if (AudioEngineManager.get().isPush() && !AudioEngineManager.get().isPlaying()) { - AudioEngineManager.get().playOrPause(); - } - break; - case KtvEvent.NO_MUSIC: - statusView = showNoSong(); - break; - case KtvEvent.MUSIC_UPDATE: - if (KtvMusicManager.INSTANCE.getMusicList().size() > 0 && isShowNoSong) { - resetStatusView(); - } - if (KtvMusicManager.INSTANCE.getMusicList().size() == 0 && !isShowNoSong) { - statusView = showNoSong(); - } - break; - case KtvEvent.ROOM_USER_MANAGER_STATUS: - if (btnCloseNoSong != null) { - initCloseBtn(btnCloseNoSong); - } - break; - default: - break; - } - } - - - public synchronized void setupRemoteVideo(int uid) { - if (UserUtils.getUserUid() == uid || AudioEngineManager.get().isPush()) return; - if (!isShowPrepare) resetStatusView(); - playContainer.removeAllViews(); - SurfaceView surfaceView = RtcEngine.CreateRendererView(context.getApplicationContext()); - playContainer.addView(surfaceView); - AudioEngineManager.get().setupRemoteVideo(new VideoCanvas(surfaceView, VideoCanvas.RENDER_MODE_ADAPTIVE, uid), uid); - } - - - static class NoSongViewHolder { - @BindView(R.id.tv_no_user) - TextView tvNoUser; - @BindView(R.id.tv_tips) - TextView tvTips; - @BindView(R.id.tv_choose_song) - SuperTextView tvChooseSong; - @BindView(R.id.ib_close) - ImageButton ibClose; - - NoSongViewHolder(View view) { - ButterKnife.bind(this, view); - } - } - - private String[] tips = new String[]{ - "点击“我要点歌”按钮可进行点歌哦~", - "建议唱歌的用户上麦点歌,以免有声音延迟", - "演唱时,佩戴耳机效果更佳哦~", - "耳机离嘴唇一定距离可防止喷麦", - "演唱时试试由腹部发声,会有意外收获"}; - - /** - * 无人唱歌界面的关闭按钮 - */ - private ImageButton btnCloseNoSong; - - private View showNoSong() { - isShowNoSong = true; - isShowPrepare = false; - playContainer.removeCallbacks(runnable); - View view = inflate(context, R.layout.layout_ktv_no_song, null); - NoSongViewHolder holder = new NoSongViewHolder(view); - view.setOnClickListener(v -> { - //吃掉父view点击事件 - }); - Logger.i("显示无人唱歌的ui"); - btnCloseNoSong = holder.ibClose; - initCloseBtn(holder.ibClose); - if (tipDisposable != null) tipDisposable.dispose(); - tipDisposable = Observable.interval(0, 5, TimeUnit.SECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> holder.tvTips.setText(tips[(int) (aLong % tips.length)])); - holder.tvChooseSong.setOnClickListener(v -> KtvSelectSongActivity.start(context, true)); - showStatusView(view); - return view; - } - - - static class CommandViewHolder { - @BindView(R.id.ib_close) - ImageButton ibClose; - @BindView(R.id.tv_change_audio) - SuperTextView tvChangeAudio; - @BindView(R.id.tv_song_name) - TextView tvSongName; - @BindView(R.id.tv_commit_err) - TextView tvCommitErr; - @BindView(R.id.iv_play_or_pause) - ImageView ivPlayOrPause; - - @BindView(R.id.iv_switch_song) - ImageView ivSwitchSong; - @BindView(R.id.sb_person_voice) - SeekBar sbPersonVoice; - @BindView(R.id.sb_accompany_voice) - SeekBar sbAccompanyVoice; - @BindView(R.id.sb_song_current_position) - SeekBar sbSongCurrentPosition; - @BindView(R.id.group_seek_bar) - Group group; - @BindView(R.id.tv_surplus_time) - TextView tvSurplusTime; - CommandViewHolder(View view) { - ButterKnife.bind(this, view); - } - } - - private View commandView; - - private Disposable commandDisposable; - - private View showCommand() { - playContainer.postDelayed(runnable, 3000); - if (commandView == null) { - commandView = inflate(context, R.layout.layout_ktv_command, null); - } - CommandViewHolder holder = new CommandViewHolder(commandView); - if (getUserType() != KTV_ROOM_MV_BROADCASTER) { - holder.group.setVisibility(GONE); - } else { - holder.group.setVisibility(VISIBLE); - } - holder.tvSongName.setText(KtvMusicManager.INSTANCE.getCurrMusic().getMusicName()); - initPlayBtn(holder); - initCloseBtn(holder.ibClose); - initChangeAudioBtn(holder.tvChangeAudio); - holder.tvChangeAudio.setOnClickListener(v -> { - AudioEngineManager.get().changeAudioStream(); - initChangeAudioBtn(holder.tvChangeAudio); - resetStatusView(); - }); - holder.tvCommitErr.setOnClickListener(v -> - KtvCommitErrorDialog.newInstance(context, KtvMusicManager.INSTANCE.getCurrMusic().getMusicId()).show()); - holder.ivPlayOrPause.setOnClickListener(v -> { - if (AudioEngineManager.get().isPush()) { - AudioEngineManager.get().playOrPause(); - } - /* else { //暂时不需要 - KtvHelper.sendChatRoomMusicMessage( - AudioEngineManager.get().isPlaying() ? CUSTOM_MSG_SUB_KTV_STOP : CUSTOM_MSG_SUB_KTV_CONTINUE, - null) - .subscribe(); - }*/ - initPlayBtn(holder); - resetStatusView(); - }); - holder.ivSwitchSong.setOnClickListener(v -> { - KtvMusicManager.INSTANCE.switchSong(true); - resetStatusView(); - }); - holder.sbAccompanyVoice.setProgress((int) (AudioEngineManager.get().getAccompanyVoice()*100)); - holder.sbAccompanyVoice.setOnSeekBarChangeListener( - (LambdaOnSeekBarChangeListener) (seekBar, progress, fromUser) -> - AudioEngineManager.get().setAccompanyVoice(progress/100d)); - holder.sbPersonVoice.setProgress((int) (AudioEngineManager.get().getPersonVoice()*100)); - holder.sbPersonVoice.setOnSeekBarChangeListener( - (LambdaOnSeekBarChangeListener) (seekBar, progress, fromUser) -> - AudioEngineManager.get().setPersonVoice(progress/100d)); - releaseCommandDisposable(); - commandDisposable = Observable.interval(0, 1, TimeUnit.SECONDS, AndroidSchedulers.mainThread()) - .subscribe(aLong -> setSeekDuration(holder)); - showStatusView(commandView); - return commandView; - } - - private void releaseCommandDisposable() { - if (commandDisposable != null && !commandDisposable.isDisposed()) { - commandDisposable.dispose(); - commandDisposable = null; - } - } - - @SuppressLint("ClickableViewAccessibility") - private void setSeekDuration(CommandViewHolder holder) { - double pos = AudioEngineManager.get().getPlayPos(); - holder.sbSongCurrentPosition.setProgress((int) (100 * pos)); - //禁止点击 - holder.sbSongCurrentPosition.setClickable(false); - holder.sbSongCurrentPosition.setOnTouchListener(new OnTouchListener() { - @Override - public boolean onTouch(View v, MotionEvent event) { - return true; - } - }); - int duration = AudioEngineManager.get().getPlayDuration() / 1000;//单位秒 - duration = (int) (duration - duration * pos);//剩余的时间 - if (duration < 0) { - duration = 0; - } - int min = duration / 60; - int sec = duration % 60; - String secStr = String.valueOf(sec); - if (sec < 10) { - secStr = "0" + secStr; - } - holder.tvSurplusTime.setText("-" + min + ":" + secStr); - } - - private void initPlayBtn(CommandViewHolder holder) { - if (AudioEngineManager.get().isPlaying()) { - holder.ivPlayOrPause.setImageResource(R.drawable.icon_ktv_pause); - } else { - holder.ivPlayOrPause.setImageResource(R.drawable.icon_ktv_play); - } - } - - private void initChangeAudioBtn(SuperTextView textView) { - if (!AudioEngineManager.get().isAccompany()) { - textView.setTextColor(getResources().getColor(R.color.color_CCFF5B69)); - textView.setText("原唱"); - } else { - textView.setTextColor(getResources().getColor(R.color.white_transparent_60)); - textView.setText("伴奏"); - } - } - - static class PrepareViewHolder { - @BindView(R.id.ib_close) - ImageButton ibClose; - @BindView(R.id.iv_avatar) - ImageView ivAvatar; - @BindView(R.id.tv_no_user) - TextView tvNoUser; - @BindView(R.id.tv_song_name) - TextView tvSongName; - @BindView(R.id.tv_tips) - SuperTextView tvTips; - @BindView(R.id.iv_singer_avatar_bg) - ImageView ivSingerAvatarBg; - - PrepareViewHolder(View view) { - ButterKnife.bind(this, view); - } - } - - private View showPrepare(MusicInfo musicInfo) { - isShowPrepare = true; - isShowNoSong = false; - View view = inflate(context, R.layout.layout_ktv_prepare, null); - view.setOnClickListener(v -> { - //吃掉父view点击事件 - }); - PrepareViewHolder holder = new PrepareViewHolder(view); - RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByAccount(String.valueOf(musicInfo.getUid())); - if (roomQueueInfo != null && roomQueueInfo.mChatRoomMember != null) { - ImageLoadUtils.loadAvatar(context, roomQueueInfo.mChatRoomMember.getAvatar(), holder.ivAvatar); - ImageLoadUtils.loadImageWithBlur(context, - roomQueueInfo.mChatRoomMember.getAvatar(), holder.ivSingerAvatarBg, 24, 10); - } - holder.tvNoUser.setText(musicInfo.getUserNick() + " 请准备"); - initCloseBtn(holder.ibClose); - if (prepareDisposable != null) prepareDisposable.dispose(); - - boolean isPushUser = UserUtils.getUserUid() == musicInfo.getUid(); - showXPlay(isPushUser); - Observable.intervalRange(0, 4, 0, 1, TimeUnit.SECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Observer() { - @Override - public void onNext(Long aLong) { - holder.tvSongName.setText((3 - aLong) + "秒后开始演唱: " + musicInfo.getMusicName()); - } - - @Override - public void onComplete() { - //准备中下麦处理 - if (isShowPrepare) { - resetStatusView(); - } - - } - - @Override - public void onSubscribe(Disposable d) { - prepareDisposable = d; - } - - @Override - public void onError(Throwable e) { - e.printStackTrace(); - } - }); - showStatusView(view); - return view; - } - - static class ChooseSongViewHolder { - @BindView(R.id.tv_tips) - TextView tvTips; - @BindView(R.id.tv_choose_song) - SuperTextView tvChooseSong; - - ChooseSongViewHolder(View view) { - ButterKnife.bind(this, view); - } - } - - private View showChooseSong() { - playContainer.postDelayed(runnable, 3000); - View view = inflate(context, R.layout.layout_ktv_choose_song, null); - ChooseSongViewHolder holder = new ChooseSongViewHolder(view); - holder.tvTips.setText(KtvMusicManager.INSTANCE.getCurrMusic().getMusicName()); - holder.tvChooseSong.setOnClickListener(v -> KtvSelectSongActivity.start(context, true)); - showStatusView(view); - return view; - } - - private void showStatusView(View view) { - statusContainer.setVisibility(VISIBLE); - statusContainer.removeAllViews(); - statusContainer.addView(view); - } - - private void resetStatusView() { - if (statusView != null) { - isShowNoSong = false; - isShowPrepare = false; - playContainer.removeCallbacks(runnable); - statusContainer.setVisibility(GONE); - statusView = null; - } - btnCloseNoSong = null; - releaseCommandDisposable(); - } - - private int getUserType() { - MusicInfo currMusic = KtvMusicManager.INSTANCE.getCurrMusic(); - if (currMusic.getUid() == UserUtils.getUserUid()) { - return KTV_ROOM_MV_BROADCASTER; - } - if (AvRoomDataManager.get().isRoomOwner()) { - return KTV_ROOM_OWNER; - } - if (AvRoomDataManager.get().isRoomAdmin()) { - return KTV_ROOM_MANAGER; - } - return KTV_ROOM_AUDIENCE; - } - - /** - * 如果是房主或管理员,显示关闭ktv的按钮 - * - * @param button 关闭ktv的按钮 - */ - - private void initCloseBtn(ImageButton button) { - if (AvRoomDataManager.get().isManager()) { - button.setVisibility(VISIBLE); - button.setOnClickListener(v -> { - if (SuperAdminUtil.isSuperAdmin()) { - SingleToastUtil.showToast(SaConstant.TOAST_ERROR_TIPS); - return; - } - if (AvRoomDataManager.get().isCpRoom()) { - StatisticManager.Instance().onEvent(StatisticsProtocol.roomcp_ktv_close_click, "关闭KTV"); - } - new DialogManager(context).showOkCancelWithTitleDialog("关闭KTV后,所有歌曲将被删除!", - () -> { - RxBus.get().post(new KtvEvent(KtvEvent.CLOSE_KTV_MODEL)); - KtvHelper.sendChatRoomMusicMessage(CUSTOM_MSG_SUB_KTV_CLOSE, new MusicInfo()) - .subscribe(chatRoomMessage -> IMNetEaseManager.get().addMessages(chatRoomMessage)); - }); - }); - - } else { - button.setVisibility(INVISIBLE); - } - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - if (disposables != null) disposables.dispose(); - if (tipDisposable != null) tipDisposable.dispose(); - if (prepareDisposable != null) prepareDisposable.dispose(); - } - - private void showXPlay(boolean isShow) { - /*if (isShow && AudioEngineManager.get().getKtvKit()!=null) { - playContainer.removeAllViews(); - xPlay = new VideoPlayerView(context, AudioEngineManager.get().getKtvKit()); - xPlay.setZOrderMediaOverlay(true); - playContainer.addView(xPlay); - }*/ - - } - - public void updateCloseBtnNoSong() { - if (btnCloseNoSong != null) { - initCloseBtn(btnCloseNoSong); - } - } -} diff --git a/app/src/main/java/com/mango/moshen/avroom/ktv/LambdaOnSeekBarChangeListener.java b/app/src/main/java/com/mango/moshen/avroom/ktv/LambdaOnSeekBarChangeListener.java deleted file mode 100644 index c77233b37..000000000 --- a/app/src/main/java/com/mango/moshen/avroom/ktv/LambdaOnSeekBarChangeListener.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.mango.moshen.avroom.ktv; - -import android.widget.SeekBar; - -public interface LambdaOnSeekBarChangeListener extends SeekBar.OnSeekBarChangeListener { - @Override - default void onStartTrackingTouch(SeekBar seekBar) { - } - - @Override - default void onStopTrackingTouch(SeekBar seekBar) { - } -} diff --git a/app/src/main/java/com/mango/moshen/ui/widget/UserInfoDialog.java b/app/src/main/java/com/mango/moshen/ui/widget/UserInfoDialog.java index 95db33a8d..c4d9737d6 100644 --- a/app/src/main/java/com/mango/moshen/ui/widget/UserInfoDialog.java +++ b/app/src/main/java/com/mango/moshen/ui/widget/UserInfoDialog.java @@ -70,7 +70,6 @@ import com.mango.moshen.avroom.ButtonItemFactory; import com.mango.moshen.avroom.activity.AVRoomActivity; import com.mango.moshen.avroom.adapter.UpMicAdapter; import com.mango.moshen.avroom.giftvalue.GiftValueDialogUiHelper; -import com.mango.moshen.avroom.ktv.KtvMusicManager; import com.mango.moshen.avroom.widget.ViewItem; import com.mango.moshen.common.widget.dialog.DialogManager; import com.mango.moshen.ui.user.UserInfoActivity; @@ -1108,14 +1107,7 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe return; } - if (AvRoomDataManager.get().mCurrentRoomInfo.isOpenKTV()) { - new DialogManager(context).showOkCancelDialog("KTV模式下下麦会移除您已点的所有歌曲,确定进行此操作?", false, - () -> { - handleDownMicro(); - KtvMusicManager.INSTANCE.deleteUserAllChooseMusic().subscribe(); - } - ); - } else if (AvRoomDataManager.get().haveStartDragon) { + if (AvRoomDataManager.get().haveStartDragon) { new DialogManager(context).showOkCancelDialog("你正在交友匹配中,此操作代表你放弃本局匹配展示,确定进行此操作?", false, new DialogManager.OkCancelDialogListener() { @Override public void onCancel() { diff --git a/app/src/main/res/layout/activity_ktv_room_list.xml b/app/src/main/res/layout/activity_ktv_room_list.xml deleted file mode 100644 index e8ac23e5f..000000000 --- a/app/src/main/res/layout/activity_ktv_room_list.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_ktv_search_song.xml b/app/src/main/res/layout/activity_ktv_search_song.xml deleted file mode 100644 index 75f0d2848..000000000 --- a/app/src/main/res/layout/activity_ktv_search_song.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/activity_ktv_select_song.xml b/app/src/main/res/layout/activity_ktv_select_song.xml deleted file mode 100644 index 35f8ffecb..000000000 --- a/app/src/main/res/layout/activity_ktv_select_song.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_ktv_song_list.xml b/app/src/main/res/layout/activity_ktv_song_list.xml deleted file mode 100644 index 83b018986..000000000 --- a/app/src/main/res/layout/activity_ktv_song_list.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ktv_commit_error.xml b/app/src/main/res/layout/dialog_ktv_commit_error.xml deleted file mode 100644 index bcd0e68c2..000000000 --- a/app/src/main/res/layout/dialog_ktv_commit_error.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ktv_select_song.xml b/app/src/main/res/layout/dialog_ktv_select_song.xml deleted file mode 100644 index 083f6e4fc..000000000 --- a/app/src/main/res/layout/dialog_ktv_select_song.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_ktv_boss_micro.xml b/app/src/main/res/layout/item_ktv_boss_micro.xml deleted file mode 100644 index 3d8bfc058..000000000 --- a/app/src/main/res/layout/item_ktv_boss_micro.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_ktv_err.xml b/app/src/main/res/layout/item_ktv_err.xml deleted file mode 100644 index 5301e1f42..000000000 --- a/app/src/main/res/layout/item_ktv_err.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/layout/item_ktv_search_history.xml b/app/src/main/res/layout/item_ktv_search_history.xml deleted file mode 100644 index 14b0aaa6d..000000000 --- a/app/src/main/res/layout/item_ktv_search_history.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/app/src/main/res/layout/item_ktv_type_room.xml b/app/src/main/res/layout/item_ktv_type_room.xml deleted file mode 100644 index fbbd8be33..000000000 --- a/app/src/main/res/layout/item_ktv_type_room.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_ktv_choose_song.xml b/app/src/main/res/layout/layout_ktv_choose_song.xml deleted file mode 100644 index bd8ed3d14..000000000 --- a/app/src/main/res/layout/layout_ktv_choose_song.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/layout/layout_ktv_command.xml b/app/src/main/res/layout/layout_ktv_command.xml deleted file mode 100644 index 06ff3cf32..000000000 --- a/app/src/main/res/layout/layout_ktv_command.xml +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_ktv_no_song.xml b/app/src/main/res/layout/layout_ktv_no_song.xml deleted file mode 100644 index de0a2cbc3..000000000 --- a/app/src/main/res/layout/layout_ktv_no_song.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_ktv_prepare.xml b/app/src/main/res/layout/layout_ktv_prepare.xml deleted file mode 100644 index 87061a8e6..000000000 --- a/app/src/main/res/layout/layout_ktv_prepare.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/layout_ktv_view.xml b/app/src/main/res/layout/layout_ktv_view.xml deleted file mode 100644 index 6085137fe..000000000 --- a/app/src/main/res/layout/layout_ktv_view.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_ktv_micro.xml b/app/src/main/res/layout/list_item_ktv_micro.xml deleted file mode 100644 index 874bcac83..000000000 --- a/app/src/main/res/layout/list_item_ktv_micro.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_ktv_room.xml b/app/src/main/res/layout/list_item_ktv_room.xml deleted file mode 100644 index 3c5dd669a..000000000 --- a/app/src/main/res/layout/list_item_ktv_room.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_ktv_search.xml b/app/src/main/res/layout/list_item_ktv_search.xml deleted file mode 100644 index 62a2a9a0c..000000000 --- a/app/src/main/res/layout/list_item_ktv_search.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_ktv_select.xml b/app/src/main/res/layout/list_item_ktv_select.xml deleted file mode 100644 index dea3cad2b..000000000 --- a/app/src/main/res/layout/list_item_ktv_select.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/list_item_ktv_song.xml b/app/src/main/res/layout/list_item_ktv_song.xml deleted file mode 100644 index fbed81ba2..000000000 --- a/app/src/main/res/layout/list_item_ktv_song.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/build.gradle b/core/build.gradle index fc3eb8347..b20ca0da8 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -98,7 +98,6 @@ dependencies { api project(':nim_uikit') api project(':library') - api project(':agora-ktv-kit-release') api project(':trtc_release') } diff --git a/core/src/diff_src_erban/java/com/mango/core/manager/AudioEngineManager.java b/core/src/diff_src_erban/java/com/mango/core/manager/AudioEngineManager.java index 113977a04..1ff4f3eb4 100644 --- a/core/src/diff_src_erban/java/com/mango/core/manager/AudioEngineManager.java +++ b/core/src/diff_src_erban/java/com/mango/core/manager/AudioEngineManager.java @@ -136,13 +136,6 @@ public class AudioEngineManager { return this.iAudioEngine.isMute(); } - public void delayStartPlay(long pushUid) { - // 针对使用 无界聊天室 SDK + zego SDK 的情况下, - // zego 进房比无界聊天室快的时候,会导致无法播放麦上用户的流 - // 所以,在 zego 引擎那边已经预先缓存了流的 ID,这里重新播放已经缓存的流 - // 就是为了解决两个 SDK 不一致导致的进房后听不到声音的问题 - this.iAudioEngine.delayStartPlay(pushUid); - } /** * 切换耳返 @@ -173,6 +166,12 @@ public class AudioEngineManager { } } + public void setRemoteMute(long uid, boolean mute) { + if (this.iAudioEngine == null) return; + this.iAudioEngine.setRemoteMute(uid, mute); + } + + //音乐播放相关---------------begin-------------------------- public void adjustAudioMixingVolume(int volume) { if (this.iAudioEngine == null) return; @@ -228,123 +227,5 @@ public class AudioEngineManager { //音乐播放相关---------------end-------------------------- - public void setRemoteMute(long uid, boolean mute) { - if (this.iAudioEngine == null) return; - this.iAudioEngine.setRemoteMute(uid, mute); - } - - public void setChatRoomOnlineStatus(boolean status) { - if (this.iAudioEngine == null) return; - this.iAudioEngine.setChatRoomOnlineStatus(status); - } - - //--------------------------asmr-------------------------- - - public void setASMRMode(boolean enable) { - if (this.iAudioEngine == null) return; - - this.iAudioEngine.setASMRMode(enable); - } - - //ktv相关---------------begin-------------------------- - private boolean isPlaying; - private boolean isAccompany = true; - private boolean isPush; - private boolean isOpenKtv; - private boolean isLive; - private int remoteUid; - private double accompanyVoice = 0.5; - private double personVoice = 0.5; - - public synchronized void openKtvModel() { - - } - - public synchronized void closeKtvModel() { - - } - - public void stopPush() { - - } - - public synchronized void startMv(String url) { - - } - - public synchronized void setupRemoteVideo(VideoCanvas canvas, int remoteUid) { - - } - - - public void playOrPause() { - isPlaying = !isPlaying; - } - - public void changeAudioStream() { - isAccompany = !isAccompany; - } - - public void setAccompanyVoice(double progress) { - if (progress < 0 || progress > 1) { - return; - } - accompanyVoice = progress; - } - - public void setPersonVoice(double progress) { - if (progress < 0 || progress > 1) { - return; - } - personVoice = progress; - } - - public boolean isPlaying() { - return isPlaying; - } - - public boolean isPush() { - return isPush; - } - - public boolean isAccompany() { - return isAccompany; - } - - public boolean isOpenKtv() { - return isOpenKtv; - } - - public boolean isLive() { - return isLive; - } - - public void setLive(boolean live) { - isLive = live; - } - - public int getRemoteUid() { - return remoteUid; - } - - public double getAccompanyVoice() { - return accompanyVoice; - } - - public double getPersonVoice() { - return personVoice; - } - - - public double getPlayPos() { - return 0; - } - - public int getPlayDuration() { - return 0; - } - - //ktv相关---------------end-------------------------- - } diff --git a/core/src/diff_src_erban/java/com/mango/core/manager/IAudioEngine.java b/core/src/diff_src_erban/java/com/mango/core/manager/IAudioEngine.java index f39c989ca..f8549e898 100644 --- a/core/src/diff_src_erban/java/com/mango/core/manager/IAudioEngine.java +++ b/core/src/diff_src_erban/java/com/mango/core/manager/IAudioEngine.java @@ -71,6 +71,4 @@ public interface IAudioEngine { void setASMRMode(boolean enable); - default void delayStartPlay(long pushUid) { - } } diff --git a/gradle.properties b/gradle.properties index 9b23118b6..b43b2ca29 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,7 +21,7 @@ MobSDK.spEdition=FP with_flutter_aar=true with_jenkins=false -only_arm64=true +only_arm64=false channel_file=channel.txt diff --git a/settings.gradle b/settings.gradle index f3f53c728..e3e1ab2ef 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,5 @@ -include ':app', ':agora-ktv-kit-release', ':android_crop_lib' +include ':app' +include ':android_crop_lib' include ':trtc_release' include ':core' include ':library'