loading 添加点击拦截。
This commit is contained in:
@@ -249,13 +249,6 @@ public class MessageListenerSingleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 等待一段时间确保退出完成
|
|
||||||
try {
|
|
||||||
Thread.sleep(200);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
Thread.currentThread().interrupt();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 加入新群组
|
// 加入新群组
|
||||||
LogUtils.d("MessageListener", "开始加入群组: " + roomId);
|
LogUtils.d("MessageListener", "开始加入群组: " + roomId);
|
||||||
CountDownLatch joinLatch = new CountDownLatch(1);
|
CountDownLatch joinLatch = new CountDownLatch(1);
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ public class TimeUtils {
|
|||||||
//获取当前日期
|
//获取当前日期
|
||||||
public static String getCurrentDate2() {
|
public static String getCurrentDate2() {
|
||||||
Date d = new Date();
|
Date d = new Date();
|
||||||
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS");
|
||||||
return sf.format(d);
|
return sf.format(d);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.xscm.moduleutil.utils.config;
|
|||||||
public enum EnvironmentEnum {
|
public enum EnvironmentEnum {
|
||||||
// "https://vespa.qxyushen.top/",
|
// "https://vespa.qxyushen.top/",
|
||||||
PRODUCTION(//生产环境
|
PRODUCTION(//生产环境
|
||||||
"https://vespa.qxyushen.top/",
|
"http://1.13.101.98/",
|
||||||
"KvNmqZc+VMzO4CfGMd5zmG6w6OFwpFO/19TwXUWfHDOBgmnl9DgIuE+kbrjNNnxqhtP3pH7bBrnSaSeFtunr72q6sgpLsfuswcUroMvz2slaTBcNzCaLi+GSnM3gB/GdO47mwLdk+iYBTvPUOCIuT608Z29z09w+vPeUDoMCHJBGXu6uh7Nj6PtV1dfGoUvByk1ZF0WYVjIqKDcb3tXY4jonFh3XAWhzMy8xKwN6F2nuK2IcdIwaSPsvuMZmhatP6f9kOE+vnfweyCHS3RxiG474WIoZGJM8omrl3/pOVqE=",
|
"KvNmqZc+VMzO4CfGMd5zmG6w6OFwpFO/19TwXUWfHDOBgmnl9DgIuE+kbrjNNnxqhtP3pH7bBrnSaSeFtunr72q6sgpLsfuswcUroMvz2slaTBcNzCaLi+GSnM3gB/GdO47mwLdk+iYBTvPUOCIuT608Z29z09w+vPeUDoMCHJBGXu6uh7Nj6PtV1dfGoUvByk1ZF0WYVjIqKDcb3tXY4jonFh3XAWhzMy8xKwN6F2nuK2IcdIwaSPsvuMZmhatP6f9kOE+vnfweyCHS3RxiG474WIoZGJM8omrl3/pOVqE=",
|
||||||
"https://oss-cn-beijing.aliyuncs.com/",
|
"https://oss-cn-beijing.aliyuncs.com/",
|
||||||
"LTAI5tKgrfcFQxH46ZwWYgFW",
|
"LTAI5tKgrfcFQxH46ZwWYgFW",
|
||||||
@@ -14,10 +14,10 @@ public enum EnvironmentEnum {
|
|||||||
1600096860,
|
1600096860,
|
||||||
"3e8f3add448d4692bc1d04c75ffe801b",
|
"3e8f3add448d4692bc1d04c75ffe801b",
|
||||||
"tcp://81.70.45.221",
|
"tcp://81.70.45.221",
|
||||||
"https://vespa.qxyushen.top/h5",
|
"http://1.13.101.98/h5",
|
||||||
0),
|
0),
|
||||||
TEST(//测试环境
|
TEST(//测试环境
|
||||||
"https://test.vespa.qxyushen.top/",
|
"https://test.vespa.xscmmidi.site/",
|
||||||
"6rdWuz058oq5OahdbFiGEybUcdahd12J83L34Uc7MrPIrxtFG+rXiwDvRcqNvjwbClbbmvMrmxKVkIysFByBsl0Qe9kqd2w8T/nhK5G6eXXlk2V9AjYCieIU+jRnjZBB+Cfechr6rCGJ2aeBARIsXcRPW7wm9WFK9euh5T+v6Pyte68yNaNdcYCll3+U4/uCEog7HygCnMIbAU+kqoPdmn2H+51YOHW+VsnsHd4w1+I3f8Tt0xLIXGM4GWnQueZ5GR46GTWiSYMy8dCIh9SPIMRyC91GosVcfGPMJSdcXqc=",
|
"6rdWuz058oq5OahdbFiGEybUcdahd12J83L34Uc7MrPIrxtFG+rXiwDvRcqNvjwbClbbmvMrmxKVkIysFByBsl0Qe9kqd2w8T/nhK5G6eXXlk2V9AjYCieIU+jRnjZBB+Cfechr6rCGJ2aeBARIsXcRPW7wm9WFK9euh5T+v6Pyte68yNaNdcYCll3+U4/uCEog7HygCnMIbAU+kqoPdmn2H+51YOHW+VsnsHd4w1+I3f8Tt0xLIXGM4GWnQueZ5GR46GTWiSYMy8dCIh9SPIMRyC91GosVcfGPMJSdcXqc=",
|
||||||
"https://oss-cn-beijing.aliyuncs.com/",
|
"https://oss-cn-beijing.aliyuncs.com/",
|
||||||
"LTAI5tKgrfcFQxH46ZwWYgFW",
|
"LTAI5tKgrfcFQxH46ZwWYgFW",
|
||||||
@@ -28,7 +28,7 @@ public enum EnvironmentEnum {
|
|||||||
1600096890,
|
1600096890,
|
||||||
"02f7339ec98947deaeab173599891932",
|
"02f7339ec98947deaeab173599891932",
|
||||||
"tcp://1.13.181.248",
|
"tcp://1.13.181.248",
|
||||||
"https://test.vespa.qxyushen.top/h5",
|
"https://test.vespa.xscmmidi.site/h5",
|
||||||
1);
|
1);
|
||||||
|
|
||||||
private final String serverUrl;//服务器地址
|
private final String serverUrl;//服务器地址
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class RoomDefaultWheatView extends BaseWheatView {
|
|||||||
"-1".equals(pitNumber) ? "" :
|
"-1".equals(pitNumber) ? "" :
|
||||||
"9".equals(pitNumber) ? "主持位" :
|
"9".equals(pitNumber) ? "主持位" :
|
||||||
"10".equals(pitNumber) ? "嘉宾位" :
|
"10".equals(pitNumber) ? "嘉宾位" :
|
||||||
pitNumber + "号麦位"
|
pitNumber + "号位"
|
||||||
);
|
);
|
||||||
//麦位上锁
|
//麦位上锁
|
||||||
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
|
if (showBoss && WHEAT_BOSS.equals(pitNumber)) {
|
||||||
@@ -120,20 +120,11 @@ public class RoomDefaultWheatView extends BaseWheatView {
|
|||||||
} else {
|
} else {
|
||||||
tv_time_pk.setVisibility(GONE);
|
tv_time_pk.setVisibility(GONE);
|
||||||
}
|
}
|
||||||
// ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mCharmView.getLayoutParams();
|
|
||||||
// params.width = 35;
|
|
||||||
// mCharmView.setLayoutParams(params);
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tv_time_pk.setVisibility(GONE);
|
tv_time_pk.setVisibility(GONE);
|
||||||
mCharmView.setVisibility(VISIBLE);
|
mCharmView.setVisibility(VISIBLE);
|
||||||
// ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) mCharmView.getLayoutParams();
|
|
||||||
// params.width = 52;
|
|
||||||
// mCharmView.setLayoutParams(params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// setCardiac(pitBean.getPit_number(), 0.0f);
|
|
||||||
|
|
||||||
updatePkState(bean);
|
updatePkState(bean);
|
||||||
}
|
}
|
||||||
private void updatePkState(RoomPitBean bean) {
|
private void updatePkState(RoomPitBean bean) {
|
||||||
@@ -163,7 +154,6 @@ public class RoomDefaultWheatView extends BaseWheatView {
|
|||||||
long xd = Long.parseLong(value);
|
long xd = Long.parseLong(value);
|
||||||
if (xd > 9999 || xd < -9999) {
|
if (xd > 9999 || xd < -9999) {
|
||||||
tv_time_pk.setText(String.format("%.2fw", xd / 10000.0f));
|
tv_time_pk.setText(String.format("%.2fw", xd / 10000.0f));
|
||||||
// mBinding.tvValue.setText(String.valueOf(xd));
|
|
||||||
} else {
|
} else {
|
||||||
tv_time_pk.setText(value);
|
tv_time_pk.setText(value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,8 +143,8 @@ public class WheatLayoutManager {
|
|||||||
int firstPitNumber = layoutType == 1 ? 10 : 9;
|
int firstPitNumber = layoutType == 1 ? 10 : 9;
|
||||||
int secondPitNumber = layoutType == 1 ? 9 : 10;
|
int secondPitNumber = layoutType == 1 ? 9 : 10;
|
||||||
|
|
||||||
addWheatViewItem(row, firstPitNumber, itemWidth * 2, layoutType);
|
addWheatViewItem(row, firstPitNumber, (int)(itemWidth * 1.7), layoutType);
|
||||||
addWheatViewItem(row, secondPitNumber, itemWidth * 2, layoutType);
|
addWheatViewItem(row, secondPitNumber,(int)(itemWidth * 1.7), layoutType);
|
||||||
|
|
||||||
container.addView(row);
|
container.addView(row);
|
||||||
row = new LinearLayout(context);
|
row = new LinearLayout(context);
|
||||||
@@ -179,20 +179,20 @@ public class WheatLayoutManager {
|
|||||||
if (pitNumber == 9 || pitNumber == 10) {
|
if (pitNumber == 9 || pitNumber == 10) {
|
||||||
int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_90);
|
int fixedHeightInPx = context.getResources().getDimensionPixelSize(R.dimen.dp_90);
|
||||||
if (pitNumber == 9) {
|
if (pitNumber == 9) {
|
||||||
params = new LinearLayout.LayoutParams(itemWidth - 40, fixedHeightInPx);
|
params = new LinearLayout.LayoutParams(itemWidth , fixedHeightInPx);
|
||||||
if (layoutType == 1) {
|
if (layoutType == 1) {
|
||||||
params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
|
params.rightMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
|
||||||
params.setMargins(20, -30, -20, 0);
|
params.setMargins(20, -20, -20, 0);
|
||||||
} else {
|
} else {
|
||||||
params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
|
params.leftMargin = context.getResources().getDimensionPixelSize(R.dimen.dp_1);
|
||||||
params.setMargins(-30, -20, 0, 0);
|
params.setMargins(-30, -20, 0, 0);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
params = new LinearLayout.LayoutParams(itemWidth - 80, fixedHeightInPx);
|
params = new LinearLayout.LayoutParams(itemWidth , fixedHeightInPx);
|
||||||
if (layoutType == 1) {
|
if (layoutType == 1) {
|
||||||
params.setMargins(-30, 10, 0, 0);
|
params.setMargins(-10, 10, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
params.setMargins(0, 10, -30, 0);
|
params.setMargins(0, 10, -10, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -288,7 +288,7 @@ public class WheatLayoutManager {
|
|||||||
}else if (layoutType==1){
|
}else if (layoutType==1){
|
||||||
wheatView.setTv_time_pk(true);
|
wheatView.setTv_time_pk(true);
|
||||||
}
|
}
|
||||||
wheatView.setSex(bean.getCharm(),true);
|
wheatView.setSex(bean.getCharm(),false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
android:id="@+id/riv"
|
android:id="@+id/riv"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
android:layout_marginStart="@dimen/dp_12"
|
android:layout_marginStart="@dimen/dp_12"
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
android:layout_marginEnd="@dimen/dp_12"
|
android:layout_marginEnd="@dimen/dp_12"
|
||||||
@@ -24,7 +25,6 @@
|
|||||||
android:scaleType="fitCenter"
|
android:scaleType="fitCenter"
|
||||||
android:src="@mipmap/room_ic_wheat_default"
|
android:src="@mipmap/room_ic_wheat_default"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintDimensionRatio="1:1"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|||||||
@@ -9,9 +9,11 @@
|
|||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:clipChildren="false"
|
||||||
|
android:clipToPadding="false">
|
||||||
<!--说话动态图-->
|
<!--说话动态图-->
|
||||||
<com.xscm.moduleutil.widget.GifAvatarOvalView
|
<com.xscm.moduleutil.widget.CircularImage
|
||||||
android:id="@+id/riv"
|
android:id="@+id/riv"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
@@ -20,6 +22,7 @@
|
|||||||
android:layout_marginEnd="@dimen/dp_12"
|
android:layout_marginEnd="@dimen/dp_12"
|
||||||
android:adjustViewBounds="true"
|
android:adjustViewBounds="true"
|
||||||
android:scaleType="fitCenter"
|
android:scaleType="fitCenter"
|
||||||
|
app:layout_constraintDimensionRatio="1:1"
|
||||||
android:src="@mipmap/room_ic_wheat_default"
|
android:src="@mipmap/room_ic_wheat_default"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.xscm.modulemain.activity.main.activity;
|
package com.xscm.modulemain.activity.main.activity;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.ActivityManager;
|
import android.app.ActivityManager;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -29,6 +30,7 @@ import androidx.core.app.ActivityCompat;
|
|||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
|
import com.blankj.utilcode.util.ActivityUtils;
|
||||||
import com.blankj.utilcode.util.FragmentUtils;
|
import com.blankj.utilcode.util.FragmentUtils;
|
||||||
import com.blankj.utilcode.util.LogUtils;
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.blankj.utilcode.util.ToastUtils;
|
import com.blankj.utilcode.util.ToastUtils;
|
||||||
@@ -83,6 +85,10 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBinding>
|
public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBinding>
|
||||||
implements HomeContacts.View, View.OnClickListener, LocationProvider.LocationCallback {
|
implements HomeContacts.View, View.OnClickListener, LocationProvider.LocationCallback {
|
||||||
@@ -234,10 +240,6 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
// 检查是否有正在播放的房间
|
// 检查是否有正在播放的房间
|
||||||
if (CommonAppContext.getInstance().isPlaying) {
|
if (CommonAppContext.getInstance().isPlaying) {
|
||||||
// 如果有正在播放的房间,直接退出应用
|
// 如果有正在播放的房间,直接退出应用
|
||||||
// finish();
|
|
||||||
// android.os.Process.killProcess(android.os.Process.myPid());
|
|
||||||
// System.exit(0);
|
|
||||||
// exitApp();
|
|
||||||
clearAllOtherTasksAndRestart();
|
clearAllOtherTasksAndRestart();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -260,16 +262,6 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
|
|
||||||
// 最推荐的方法
|
// 最推荐的方法
|
||||||
private void clearAllOtherTasksAndRestart() {
|
private void clearAllOtherTasksAndRestart() {
|
||||||
// Intent intent = new Intent(this, MainActivity.class);
|
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
|
|
||||||
// intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
|
|
||||||
// startActivity(intent);
|
|
||||||
|
|
||||||
// 可选:finish当前Activity
|
|
||||||
// if (!isFinishing()) {
|
|
||||||
// finish();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 可选:如果上面的方法不够彻底,可以配合使用
|
// 可选:如果上面的方法不够彻底,可以配合使用
|
||||||
Runtime.getRuntime().gc(); // 建议垃圾回收
|
Runtime.getRuntime().gc(); // 建议垃圾回收
|
||||||
@@ -372,7 +364,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
||||||
String roomId = CommonAppContext.getInstance().playId;
|
String roomId = CommonAppContext.getInstance().playId;
|
||||||
if (!TextUtils.isEmpty(roomId)) {
|
if (!TextUtils.isEmpty(roomId)) {
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "",null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "", null);
|
||||||
singleTaskToActivity(RoomActivity.class);
|
singleTaskToActivity(RoomActivity.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -538,8 +530,7 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
)) {
|
)) {
|
||||||
// 展示自定义的解释对话框
|
// 展示自定义的解释对话框
|
||||||
showPermissionExplanationDialog();
|
showPermissionExplanationDialog();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// 首次请求,或用户选择了"不再询问",直接请求权限
|
// 首次请求,或用户选择了"不再询问",直接请求权限
|
||||||
directlyRequestPermissions();
|
directlyRequestPermissions();
|
||||||
}
|
}
|
||||||
@@ -565,14 +556,14 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
// 根据Android版本决定请求的权限
|
// 根据Android版本决定请求的权限
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||||
// Android 10 (API 29) 及以上,可以同时请求前台和后台定位权限(注意:在Android 11及以后,策略有变)
|
// Android 10 (API 29) 及以上,可以同时请求前台和后台定位权限(注意:在Android 11及以后,策略有变)
|
||||||
permissionsToRequest = new String[] {
|
permissionsToRequest = new String[]{
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||||
Manifest.permission.ACCESS_COARSE_LOCATION
|
Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
// 在Android 11上,不建议在此同时申请后台权限
|
// 在Android 11上,不建议在此同时申请后台权限
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
// Android 9及以下
|
// Android 9及以下
|
||||||
permissionsToRequest = new String[] {
|
permissionsToRequest = new String[]{
|
||||||
Manifest.permission.ACCESS_FINE_LOCATION,
|
Manifest.permission.ACCESS_FINE_LOCATION,
|
||||||
Manifest.permission.ACCESS_COARSE_LOCATION
|
Manifest.permission.ACCESS_COARSE_LOCATION
|
||||||
};
|
};
|
||||||
@@ -803,12 +794,12 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!isPlaying) {
|
if (!isPlaying) {
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "",null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "", null);
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
|
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
|
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "",null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(this, CommonAppContext.getInstance().playId, "", null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1077,18 +1068,25 @@ public class MainActivity extends BaseMvpActivity<HomePresenter, ActivityMainBin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void isShowLoading(boolean isShow){
|
@SuppressLint("CheckResult")
|
||||||
|
public void isShowLoading(boolean isShow) {
|
||||||
if (isShow) {
|
if (isShow) {
|
||||||
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
mBinding.coolWaitView.setVisibility(View.GONE);
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
mBinding.coolWaitView.setVisibility(View.GONE);
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SystemLocationProvider locationProvider;
|
private SystemLocationProvider locationProvider;
|
||||||
|
|||||||
@@ -23,6 +23,10 @@ import com.xscm.moduleutil.utils.ClickUtils;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 热门房间
|
* @Description: 热门房间
|
||||||
@@ -96,7 +100,9 @@ public class PopularRoomActivity extends BaseMvpActivity<VoiceCategoryPresenter,
|
|||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
mBinding.coolWaitView.setVisibility(View.GONE);
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -244,6 +244,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
|
|
||||||
|
|
||||||
override fun doDone() {
|
override fun doDone() {
|
||||||
|
Log.e("AAAAAAAAAAA", "C " + com.xscm.moduleutil.utils.TimeUtils.getCurrentDate2())
|
||||||
isOnline = intent.getBooleanExtra("isOnline", false)
|
isOnline = intent.getBooleanExtra("isOnline", false)
|
||||||
password = intent.getStringExtra("password")
|
password = intent.getStringExtra("password")
|
||||||
roomId = intent.getStringExtra("roomId")
|
roomId = intent.getStringExtra("roomId")
|
||||||
@@ -276,9 +277,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
// 在super.onCreate之前设置主题以避免闪白屏
|
// 在super.onCreate之前设置主题以避免闪白屏
|
||||||
setTheme(com.xscm.moduleutil.R.style.BaseAppTheme) // 设置你的主主题
|
// setTheme(com.xscm.moduleutil.R.style.BaseAppTheme) // 设置你的主主题
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
// // 进入房间10s后检查是否显示提示上麦对话框
|
// // 进入房间10s后检查是否显示提示上麦对话框
|
||||||
|
|
||||||
LogUtils.e("RoomActivity", "onCreate")
|
LogUtils.e("RoomActivity", "onCreate")
|
||||||
isSave = false
|
isSave = false
|
||||||
sDestroied = false
|
sDestroied = false
|
||||||
@@ -304,7 +306,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
appStateListener?.onRoomActivityCreated(this)
|
appStateListener?.onRoomActivityCreated(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageListenerSingleton.getInstance().joinGroup(roomId)
|
|
||||||
// 处理房间数据
|
// 处理房间数据
|
||||||
SpUtil.saveMyRoomId(roomId)
|
SpUtil.saveMyRoomId(roomId)
|
||||||
// 检查是否从最小化状态恢复
|
// 检查是否从最小化状态恢复
|
||||||
@@ -322,7 +323,6 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
|
|
||||||
// 初始化礼物管理器
|
// 初始化礼物管理器
|
||||||
GiftDisplayManager.getInstance().setupDisplayView(mBinding!!.giftContainer)
|
GiftDisplayManager.getInstance().setupDisplayView(mBinding!!.giftContainer)
|
||||||
|
|
||||||
initPublicScreenFragment()
|
initPublicScreenFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -878,7 +878,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
this.mRoomOwnerBean = resp.room_owner
|
this.mRoomOwnerBean = resp.room_owner
|
||||||
this.mPitList = mRoomBean?.pit_list ?: ArrayList()
|
this.mPitList = mRoomBean?.pit_list ?: ArrayList()
|
||||||
this.roomId = roomBean.room_id
|
this.roomId = roomBean.room_id
|
||||||
MessageListenerSingleton.getInstance().joinGroup(roomId) //加入房间im
|
|
||||||
ImageUtils.loadHeadCC(resp.room_info.room_cover, mBinding!!.roomTop.avatar)
|
ImageUtils.loadHeadCC(resp.room_info.room_cover, mBinding!!.roomTop.avatar)
|
||||||
mBinding!!.roomTop.name.text = roomBean.room_name
|
mBinding!!.roomTop.name.text = roomBean.room_name
|
||||||
mBinding!!.roomTop.idVal.text = "ID:" + roomBean.room_number
|
mBinding!!.roomTop.idVal.text = "ID:" + roomBean.room_number
|
||||||
@@ -2922,8 +2922,10 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: 2025/8/26 加入房间
|
// TODO:不进入 2025/8/26 加入房间
|
||||||
override fun roomInfo(resp: RoomInfoResp) {
|
override fun roomInfo(resp: RoomInfoResp) {
|
||||||
|
if (true)
|
||||||
|
return
|
||||||
AppStateManager.getInstance().roomInfo = resp
|
AppStateManager.getInstance().roomInfo = resp
|
||||||
val roomBean = resp.room_info
|
val roomBean = resp.room_info
|
||||||
this.mRoomBean = roomBean
|
this.mRoomBean = roomBean
|
||||||
@@ -3879,6 +3881,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
|
|
||||||
override fun finish() {
|
override fun finish() {
|
||||||
LogUtils.e("RoomActivity", "finish")
|
LogUtils.e("RoomActivity", "finish")
|
||||||
|
CommonAppContext.getInstance().playId = null
|
||||||
// 只有在真正退出房间时才清理最小化状态
|
// 只有在真正退出房间时才清理最小化状态
|
||||||
if (!isMinimized) {
|
if (!isMinimized) {
|
||||||
clearMinimizeState()
|
clearMinimizeState()
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.xscm.modulemain.activity.room.fragment;
|
package com.xscm.modulemain.activity.room.fragment;
|
||||||
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -23,6 +24,7 @@ import com.xscm.moduleutil.bean.room.RoomInfoResp;
|
|||||||
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.ClickUtils;
|
import com.xscm.moduleutil.utils.ClickUtils;
|
||||||
|
import com.xscm.moduleutil.utils.TimeUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -123,7 +125,6 @@ public class HotListFragment extends BaseMvpFragment<HotListPresenter, FragmentH
|
|||||||
}
|
}
|
||||||
TopRoom item = mAdapter.getItem(position);
|
TopRoom item = mAdapter.getItem(position);
|
||||||
if (item != null ) {
|
if (item != null ) {
|
||||||
MessageListenerSingleton.getInstance().joinGroup(item.getRoom_id());
|
|
||||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(), "",null);
|
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id(), "",null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -380,11 +380,6 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
|
|
||||||
private List<RoomTypeModel> list;
|
private List<RoomTypeModel> list;
|
||||||
|
|
||||||
|
|
||||||
// public MyFragmentPagerAdapter(FragmentManager fm, List<RoomTypeModel> list) {
|
|
||||||
// super(fm);
|
|
||||||
// this.list = list;
|
|
||||||
// }
|
|
||||||
public MyFragmentPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<RoomTypeModel> list) {
|
public MyFragmentPagerAdapter(@NonNull FragmentActivity fragmentActivity, List<RoomTypeModel> list) {
|
||||||
super(fragmentActivity);
|
super(fragmentActivity);
|
||||||
this.list = list;
|
this.list = list;
|
||||||
@@ -402,23 +397,5 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return list.size();
|
return list.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public Fragment getItem(int position) {
|
|
||||||
// RoomTypeModel model = list.get(position);
|
|
||||||
// return HotListFragment.newInstance(model.getId(), TYPE_INDEX);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public int getCount() {
|
|
||||||
// return list.size();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Nullable
|
|
||||||
// @Override
|
|
||||||
// public CharSequence getPageTitle(int position) {
|
|
||||||
// RoomTypeModel model = list.get(position);
|
|
||||||
// return model.getLabel_name();
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.xscm.modulemain.activity.room.fragment;
|
package com.xscm.modulemain.activity.room.fragment;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@@ -26,6 +27,10 @@ import com.xscm.moduleutil.utils.SpUtil;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
|
|
||||||
public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoiceBinding> implements VoiceContacts.View {
|
public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoiceBinding> implements VoiceContacts.View {
|
||||||
@@ -53,8 +58,15 @@ public class VoiceFragment extends BaseMvpFragment<VoicePresenter, FragmentVoice
|
|||||||
isShowLoading(false);
|
isShowLoading(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
public void isShowLoading(boolean isShowLoading){
|
public void isShowLoading(boolean isShowLoading){
|
||||||
mBinding.coolWaitView.setVisibility(isShowLoading? View.VISIBLE:View.GONE);
|
if (isShowLoading) {
|
||||||
|
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ import com.xscm.moduleutil.utils.ColorManager;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author qx
|
* @author qx
|
||||||
@@ -165,7 +169,9 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
|
|||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
mBinding.coolWaitView.setVisibility(View.GONE);
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -46,6 +46,10 @@ import com.xscm.moduleutil.widget.CustomTopBar;
|
|||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author
|
* @author
|
||||||
@@ -224,7 +228,9 @@ public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivit
|
|||||||
if (b) {
|
if (b) {
|
||||||
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
mBinding.coolWaitView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
|
Observable.timer(5, TimeUnit.MILLISECONDS).observeOn(AndroidSchedulers.mainThread()).subscribe(aLong -> {
|
||||||
mBinding.coolWaitView.setVisibility(View.GONE);
|
mBinding.coolWaitView.setVisibility(View.GONE);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.android.arouter.launcher.ARouter;
|
||||||
import com.blankj.utilcode.util.ActivityUtils;
|
import com.blankj.utilcode.util.ActivityUtils;
|
||||||
@@ -22,6 +23,7 @@ import com.xscm.moduleutil.listener.MessageListenerSingleton;
|
|||||||
import com.xscm.moduleutil.rtc.AgoraManager;
|
import com.xscm.moduleutil.rtc.AgoraManager;
|
||||||
import com.xscm.moduleutil.utils.ARouteConstants;
|
import com.xscm.moduleutil.utils.ARouteConstants;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
|
import com.xscm.moduleutil.utils.TimeUtils;
|
||||||
import com.xscm.moduleutil.utils.logger.Logger;
|
import com.xscm.moduleutil.utils.logger.Logger;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
@@ -58,53 +60,6 @@ public class RoomManager {
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 进入房间 - 自动获取房间数据
|
|
||||||
*
|
|
||||||
* @param context 上下文
|
|
||||||
* @param roomId 房间ID
|
|
||||||
*/
|
|
||||||
public void enterRoom(Context context, String roomId) {
|
|
||||||
enterRoom(context, roomId, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 进入房间 - 使用密码
|
|
||||||
*
|
|
||||||
* @param context 上下文
|
|
||||||
* @param roomId 房间ID
|
|
||||||
* @param password 房间密码
|
|
||||||
*/
|
|
||||||
public void enterRoom(Context context, String roomId, String password) {
|
|
||||||
enterRoom(context, roomId, password, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 进入房间 - 使用缓存数据
|
|
||||||
*
|
|
||||||
* @param context 上下文
|
|
||||||
* @param roomId 房间ID
|
|
||||||
* @param password 房间密码
|
|
||||||
* @param cachedData 缓存的房间数据
|
|
||||||
*/
|
|
||||||
public void enterRoom(Context context, String roomId, String password, RoomInfoResp cachedData) {
|
|
||||||
if (TextUtils.isEmpty(roomId)) {
|
|
||||||
ToastUtils.showShort("房间ID不能为空");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 检查是否有有效的缓存数据
|
|
||||||
RoomInfoResp roomInfo = cachedData != null ? cachedData : getCachedRoomData(roomId);
|
|
||||||
|
|
||||||
if (roomInfo != null) {
|
|
||||||
// 使用缓存数据直接进入房间
|
|
||||||
navigateToRoom(context, roomId, password, roomInfo, false, null);
|
|
||||||
} else {
|
|
||||||
// 获取房间数据后进入房间
|
|
||||||
fetchRoomDataAndEnter(context, roomId, password, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取房间数据并进入房间
|
* 获取房间数据并进入房间
|
||||||
*
|
*
|
||||||
@@ -121,8 +76,8 @@ public class RoomManager {
|
|||||||
CommonAppContext.getInstance().isRoomJoininj = true;
|
CommonAppContext.getInstance().isRoomJoininj = true;
|
||||||
// 检查是否有有效的缓存数据
|
// 检查是否有有效的缓存数据
|
||||||
RoomInfoResp roomInfo = getCachedRoomData(roomId);
|
RoomInfoResp roomInfo = getCachedRoomData(roomId);
|
||||||
// 检查是否是当前房间且用户在线
|
//加入房间
|
||||||
// boolean isCurrentRoom = isCurrentRoom(roomId);
|
MessageListenerSingleton.getInstance().joinGroup(roomId);
|
||||||
if (CommonAppContext.getInstance().playId == null) {
|
if (CommonAppContext.getInstance().playId == null) {
|
||||||
fetchAndJoinRoom(context, roomId, password, taskId);
|
fetchAndJoinRoom(context, roomId, password, taskId);
|
||||||
} else {
|
} else {
|
||||||
@@ -155,7 +110,6 @@ public class RoomManager {
|
|||||||
navigateToRoom(context, roomId, password, roomInfoResp, false, taskId);
|
navigateToRoom(context, roomId, password, roomInfoResp, false, taskId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// navigateToRoom(context, roomId, password, null, true, taskId);
|
|
||||||
} else {
|
} else {
|
||||||
fetchAndJoinRoom(context, roomId, password, taskId);
|
fetchAndJoinRoom(context, roomId, password, taskId);
|
||||||
}
|
}
|
||||||
@@ -207,28 +161,6 @@ public class RoomManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 检查是否是当前房间
|
|
||||||
*
|
|
||||||
* @param roomId 房间ID
|
|
||||||
* @return true表示是当前房间,false表示不是
|
|
||||||
*/
|
|
||||||
private boolean isCurrentRoom(String roomId) {
|
|
||||||
// 这里应该实现检查是否是当前房间的逻辑
|
|
||||||
// 可以通过检查当前Activity或者通过全局变量等方式实现
|
|
||||||
// 目前返回false,需要根据实际需求实现具体逻辑
|
|
||||||
|
|
||||||
RoomInfoResp roomInfo = getCachedRoomData(roomId);
|
|
||||||
if (roomInfo != null) {
|
|
||||||
if (roomInfo.getRoom_info().getRoom_id().equals(roomId)) {
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 跳转到房间页面
|
* 跳转到房间页面
|
||||||
@@ -239,7 +171,6 @@ public class RoomManager {
|
|||||||
* @param roomInfo 房间信息
|
* @param roomInfo 房间信息
|
||||||
*/
|
*/
|
||||||
private void navigateToRoom(Context context, String roomId, String password, RoomInfoResp roomInfo, boolean isOnline, String taskId) {
|
private void navigateToRoom(Context context, String roomId, String password, RoomInfoResp roomInfo, boolean isOnline, String taskId) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 构建跳转参数
|
// 构建跳转参数
|
||||||
Intent intent = new Intent(ActivityUtils.getTopActivity(), RoomActivity.class);
|
Intent intent = new Intent(ActivityUtils.getTopActivity(), RoomActivity.class);
|
||||||
@@ -376,14 +307,6 @@ public class RoomManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 清除所有房间缓存数据
|
|
||||||
*/
|
|
||||||
public void clearAllRoomCache() {
|
|
||||||
roomDataCache.clear();
|
|
||||||
cacheTimestamps.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退出房间
|
* 退出房间
|
||||||
*
|
*
|
||||||
@@ -410,46 +333,4 @@ public class RoomManager {
|
|||||||
|
|
||||||
Logger.d(TAG, "退出房间: " + roomId);
|
Logger.d(TAG, "退出房间: " + roomId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量退出房间
|
|
||||||
*
|
|
||||||
* @param roomIds 房间ID列表
|
|
||||||
*/
|
|
||||||
public void exitRooms(String... roomIds) {
|
|
||||||
if (roomIds != null) {
|
|
||||||
for (String roomId : roomIds) {
|
|
||||||
exitRoom(roomId);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取房间缓存状态
|
|
||||||
*
|
|
||||||
* @param roomId 房间ID
|
|
||||||
* @return 缓存状态信息
|
|
||||||
*/
|
|
||||||
public String getRoomCacheStatus(String roomId) {
|
|
||||||
if (TextUtils.isEmpty(roomId)) {
|
|
||||||
return "无效的房间ID";
|
|
||||||
}
|
|
||||||
|
|
||||||
Long timestamp = cacheTimestamps.get(roomId);
|
|
||||||
if (timestamp == null) {
|
|
||||||
return "未缓存";
|
|
||||||
}
|
|
||||||
|
|
||||||
long elapsed = System.currentTimeMillis() - timestamp;
|
|
||||||
if (elapsed > CACHE_DURATION) {
|
|
||||||
return "缓存已过期";
|
|
||||||
}
|
|
||||||
|
|
||||||
RoomInfoResp data = roomDataCache.get(roomId);
|
|
||||||
if (data == null) {
|
|
||||||
return "缓存数据为空";
|
|
||||||
}
|
|
||||||
|
|
||||||
return String.format("已缓存 (%d秒前)", elapsed / 1000);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import com.opensource.svgaplayer.SVGAVideoEntity
|
|||||||
import com.xscm.moduleutil.R
|
import com.xscm.moduleutil.R
|
||||||
import com.xscm.moduleutil.bean.RoomMessageEvent
|
import com.xscm.moduleutil.bean.RoomMessageEvent
|
||||||
import com.xscm.moduleutil.bean.room.RoomPitBean
|
import com.xscm.moduleutil.bean.room.RoomPitBean
|
||||||
|
import com.xscm.moduleutil.widget.CircularImage
|
||||||
import com.xscm.moduleutil.widget.GifAvatarOvalView
|
import com.xscm.moduleutil.widget.GifAvatarOvalView
|
||||||
import com.xscm.moduleutil.widget.RoomMakeWheatView
|
import com.xscm.moduleutil.widget.RoomMakeWheatView
|
||||||
import com.xscm.moduleutil.widget.RoomSingSongWheatView
|
import com.xscm.moduleutil.widget.RoomSingSongWheatView
|
||||||
@@ -110,7 +111,7 @@ class WheatLayoutSingManager private constructor(
|
|||||||
*/
|
*/
|
||||||
private fun setupViewListeners(wheatView: RoomSingSongWheatView, pitNumber: Int) {
|
private fun setupViewListeners(wheatView: RoomSingSongWheatView, pitNumber: Int) {
|
||||||
// 头像点击事件
|
// 头像点击事件
|
||||||
val avatarView = wheatView.mRiv as GifAvatarOvalView
|
val avatarView = wheatView.mRiv as CircularImage
|
||||||
avatarView.setOnClickListener {
|
avatarView.setOnClickListener {
|
||||||
// 直接使用当前的 wheatClickListener(可能已被外部设置)
|
// 直接使用当前的 wheatClickListener(可能已被外部设置)
|
||||||
wheatClickListener?.onWheatClick(wheatView, pitNumber)
|
wheatClickListener?.onWheatClick(wheatView, pitNumber)
|
||||||
|
|||||||
@@ -95,18 +95,24 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
<RelativeLayout
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
android:layout_width="@dimen/dp_100"
|
|
||||||
android:layout_height="@dimen/dp_100"
|
|
||||||
android:layout_centerInParent="true"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
|
android:layout_width="@dimen/dp_100"
|
||||||
|
android:layout_height="@dimen/dp_100"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer"/>
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -250,14 +250,22 @@
|
|||||||
app:pointsPosition="CENTER"
|
app:pointsPosition="CENTER"
|
||||||
app:pointsVisibility="true" />
|
app:pointsVisibility="true" />
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
<RelativeLayout
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
android:layout_width="@dimen/dp_100"
|
android:layout_width="@dimen/dp_100"
|
||||||
android:layout_height="@dimen/dp_100"
|
android:layout_height="@dimen/dp_100"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
android:visibility="gone"
|
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer" />
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
||||||
@@ -43,17 +43,24 @@
|
|||||||
tools:listitem="@layout/item_popular_room"/>
|
tools:listitem="@layout/item_popular_room"/>
|
||||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
|
||||||
|
<RelativeLayout
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
android:layout_width="@dimen/dp_100"
|
|
||||||
android:layout_height="@dimen/dp_100"
|
|
||||||
android:layout_centerInParent="true"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
|
android:layout_width="@dimen/dp_100"
|
||||||
|
android:layout_height="@dimen/dp_100"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer"/>
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
|
</RelativeLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -5,13 +5,13 @@
|
|||||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||||
android:id="@+id/smart_refresh_layout"
|
android:id="@+id/smart_refresh_layout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
app:srlEnableLoadMore="true"
|
app:srlEnableLoadMore="true"
|
||||||
app:srlEnableRefresh="true">
|
app:srlEnableRefresh="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_hot"
|
android:id="@+id/tv_hot"
|
||||||
@@ -28,9 +28,10 @@
|
|||||||
android:id="@+id/recycle_view"
|
android:id="@+id/recycle_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:clipToPadding="false"
|
||||||
android:paddingLeft="@dimen/dp_6"
|
android:paddingLeft="@dimen/dp_6"
|
||||||
android:paddingRight="@dimen/dp_6"
|
android:paddingRight="@dimen/dp_6"
|
||||||
android:paddingBottom="@dimen/dp_80" />
|
android:paddingBottom="@dimen/dp_40" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_320"
|
android:layout_height="@dimen/dp_320"
|
||||||
android:layout_marginTop="@dimen/dp_8"
|
android:layout_marginTop="@dimen/dp_8"
|
||||||
android:layout_marginEnd="@dimen/dp_6"
|
android:layout_marginEnd="@dimen/dp_3"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/bt_sta">
|
app:layout_constraintTop_toBottomOf="@+id/bt_sta">
|
||||||
@@ -67,7 +67,6 @@
|
|||||||
android:id="@+id/cl_left"
|
android:id="@+id/cl_left"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginEnd="@dimen/dp_4"
|
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:background="@mipmap/pk_left"
|
android:background="@mipmap/pk_left"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -107,6 +106,7 @@
|
|||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
|
android:layout_marginStart="@dimen/dp_3"
|
||||||
android:background="@mipmap/pk_right"
|
android:background="@mipmap/pk_right"
|
||||||
app:layout_constraintStart_toEndOf="@+id/cl_left"
|
app:layout_constraintStart_toEndOf="@+id/cl_left"
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|||||||
@@ -113,13 +113,19 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
<RelativeLayout
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
android:layout_width="@dimen/dp_100"
|
android:layout_width="@dimen/dp_100"
|
||||||
android:layout_height="@dimen/dp_100"
|
android:layout_height="@dimen/dp_100"
|
||||||
android:layout_centerInParent="true"
|
android:layout_centerInParent="true"
|
||||||
android:visibility="gone"
|
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer"/>
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
|
</RelativeLayout>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</layout>
|
</layout>
|
||||||
@@ -276,18 +276,6 @@
|
|||||||
app:tabIndicatorColor="@android:color/transparent"
|
app:tabIndicatorColor="@android:color/transparent"
|
||||||
app:tabTextAppearance="@style/CustomTabTextAppearance"
|
app:tabTextAppearance="@style/CustomTabTextAppearance"
|
||||||
app:tabTextColor="#F1ECFF" />
|
app:tabTextColor="#F1ECFF" />
|
||||||
<!-- app:tl_indicator_corner_radius="@dimen/dp_3"-->
|
|
||||||
<!-- app:tl_indicator_drawable="@mipmap/tab_dy"-->
|
|
||||||
<!-- app:tl_indicator_height="@dimen/dp_6"-->
|
|
||||||
<!-- app:tl_indicator_margin_bottom="@dimen/dp_3"-->
|
|
||||||
<!-- app:tl_indicator_width="@dimen/dp_28"-->
|
|
||||||
<!-- app:tl_showCateIndicator="true"-->
|
|
||||||
<!-- app:tl_tab_width="@dimen/dp_50"-->
|
|
||||||
<!-- app:tl_textBold="SELECT"-->
|
|
||||||
<!-- app:tl_textSelectColor="@color/white"-->
|
|
||||||
<!-- app:tl_textSelectedSize="@dimen/sp_14"-->
|
|
||||||
<!-- app:tl_textUnselectColor="#F1ECFF"-->
|
|
||||||
<!-- app:tl_textsize="@dimen/sp_12" />-->
|
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -237,17 +237,25 @@
|
|||||||
android:src="@mipmap/icon_guanbi" />
|
android:src="@mipmap/icon_guanbi" />
|
||||||
</com.xscm.moduleutil.widget.DropView>
|
</com.xscm.moduleutil.widget.DropView>
|
||||||
|
|
||||||
<app.dinus.com.loadingdrawable.LoadingView
|
|
||||||
|
<RelativeLayout
|
||||||
android:id="@+id/cool_wait_view"
|
android:id="@+id/cool_wait_view"
|
||||||
android:layout_width="@dimen/dp_100"
|
|
||||||
android:layout_height="@dimen/dp_100"
|
|
||||||
android:layout_centerInParent="true"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<app.dinus.com.loadingdrawable.LoadingView
|
||||||
|
android:layout_width="@dimen/dp_100"
|
||||||
|
android:layout_height="@dimen/dp_100"
|
||||||
|
android:layout_centerInParent="true"
|
||||||
android:background="@drawable/ps_ic_shadow_bg"
|
android:background="@drawable/ps_ic_shadow_bg"
|
||||||
app:loading_renderer="CoolWaitLoadingRenderer"/>
|
app:loading_renderer="CoolWaitLoadingRenderer" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</layout>
|
</layout>
|
||||||
Reference in New Issue
Block a user