添加log and crash 保存本地,分享。
This commit is contained in:
@@ -51,7 +51,6 @@ public class MyConverterFactory extends Converter.Factory {
|
||||
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
|
||||
TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
|
||||
return new ResponseBodyConverter<>(gson, adapter);
|
||||
// return new ResponseBodyConverter<>(gson, TypeToken.get(type));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -109,7 +109,6 @@ public class RetrofitClient {
|
||||
sslContext.init(null, new TrustManager[]{trustAllCert}, new SecureRandom());
|
||||
|
||||
final OkHttpClient client = new OkHttpClient.Builder()
|
||||
// .addInterceptor(new LogInterceptor())
|
||||
.addInterceptor(new DataLoggingInterceptor(new DataLogger()))
|
||||
.addInterceptor(new AccessTokenInterceptor(headers))
|
||||
.proxy(Proxy.NO_PROXY)
|
||||
@@ -129,31 +128,15 @@ public class RetrofitClient {
|
||||
|
||||
private Retrofit provideRetrofit(OkHttpClient client) {
|
||||
return new Retrofit.Builder()
|
||||
.addConverterFactory(MyConverterFactory.create())/**/
|
||||
.addConverterFactory(MyConverterFactory.create())
|
||||
// .addConverterFactory(GsonConverterFactory.create())
|
||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
// .baseUrl("http://chat.qxmier.com/")
|
||||
.baseUrl(CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl())
|
||||
.client(client)
|
||||
|
||||
.build();
|
||||
}
|
||||
|
||||
// private static Retrofit mRainRetrofit;
|
||||
//
|
||||
// public static Retrofit getRainRetrofit() {
|
||||
// if (mRainRetrofit == null) {
|
||||
// synchronized (RetrofitClient.class) {
|
||||
// mRainRetrofit = new Retrofit.Builder()
|
||||
// .addConverterFactory(RainConverterFactory.create())
|
||||
// .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||
// .baseUrl(BuildConfig.RAIN_GAME_BASE_URL)
|
||||
// .client(client)
|
||||
// .build();
|
||||
// }
|
||||
// }
|
||||
// return mRainRetrofit;
|
||||
// }
|
||||
|
||||
private RetrofitClient() {
|
||||
mRetrofit = provideRetrofit(provideOkHttpClient());
|
||||
@@ -201,11 +184,6 @@ public class RetrofitClient {
|
||||
return mRetrofit.create(apiClientClass);
|
||||
}
|
||||
|
||||
public void login() {
|
||||
// login("18473492252", "123456");
|
||||
// login("18229732986", "123456");
|
||||
}
|
||||
|
||||
public void appUpdate(BaseObserver<AppUpdateModel> observer) {
|
||||
sApiServer.appUpdate().compose(new DefaultTransformer<>()).subscribe(observer);
|
||||
}
|
||||
@@ -2808,7 +2786,6 @@ public class RetrofitClient {
|
||||
}
|
||||
|
||||
public void firstChargeGift(BaseObserver<FirstChargeGiftBean> observer) {
|
||||
// sApiServer.firstChargeGift().compose(new DefaultTransformer<>()).subscribe(observer);
|
||||
sApiServer.firstChargeGift().enqueue(new Callback<BaseModel<FirstChargeGiftBean>>() {
|
||||
@Override
|
||||
public void onResponse(Call<BaseModel<FirstChargeGiftBean>> call, Response<BaseModel<FirstChargeGiftBean>> response) {
|
||||
|
||||
@@ -28,7 +28,7 @@ public enum EnvironmentEnum {
|
||||
1600096890,
|
||||
"02f7339ec98947deaeab173599891932",
|
||||
"tcp://1.13.181.248",
|
||||
"https://test.vespa.xscmmidi.site/h5",
|
||||
"https://test.vespa.qxyushen.top/h5",
|
||||
1);
|
||||
|
||||
private final String serverUrl;//服务器地址
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.xscm.moduleutil.utils.logger;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
|
||||
/**
|
||||
* SCore
|
||||
* Created by ShangChuanliang
|
||||
@@ -61,7 +63,9 @@ public final class DataLogger implements DataLoggingInterceptor.Logger {
|
||||
}
|
||||
// 响应结束,打印整条日志
|
||||
if (message.startsWith(DataLoggingInterceptor.sLogEndFlag)) {
|
||||
LogUtil.d(mMessage.toString());
|
||||
if (mMessage.toString().contains("https://test.vespa.xscmmidi.site/api/Xintiao/keep_xintiao"))
|
||||
return;
|
||||
LogUtils.d(mMessage.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -195,6 +195,16 @@
|
||||
android:exported="true" />
|
||||
|
||||
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -1,14 +1,10 @@
|
||||
package com.xscm.modulemain
|
||||
|
||||
import android.content.Context
|
||||
import com.blankj.utilcode.util.CrashUtils
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.opensource.svgaplayer.utils.log.SVGALogger
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||
import com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator
|
||||
import com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator
|
||||
import com.scwang.smartrefresh.layout.api.RefreshFooter
|
||||
import com.scwang.smartrefresh.layout.api.RefreshHeader
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.footer.ClassicsFooter
|
||||
import com.scwang.smartrefresh.layout.header.ClassicsHeader
|
||||
import com.xscm.modulemain.widget.WheatLayoutSingManager
|
||||
@@ -17,17 +13,67 @@ import com.xscm.moduleutil.base.CommonAppContext
|
||||
|
||||
open class Application : CommonAppContext() {
|
||||
|
||||
var APP_CONENT = ""
|
||||
|
||||
var LOGUTILS_SAVE_PATH = ""
|
||||
var CRASHUTILS_SAVE_PATH = ""
|
||||
|
||||
// 单例实例
|
||||
companion object {
|
||||
@Volatile
|
||||
private lateinit var instance: Application
|
||||
|
||||
// 全局获取 Application 实例
|
||||
fun getInstance(): Application {
|
||||
return instance
|
||||
}
|
||||
|
||||
// 获取 Application Context(避免内存泄漏)
|
||||
fun getContext(): Context {
|
||||
return instance.applicationContext
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
LOGUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_LOG")?.absolutePath.toString()
|
||||
CRASHUTILS_SAVE_PATH = getExternalFilesDir("APP_CONTENT/APP_CRASH")?.absolutePath.toString()
|
||||
getExternalFilesDir("")
|
||||
APP_CONENT = getExternalFilesDir("APP_CONTENT")?.absolutePath.toString()
|
||||
// 初始化单例实例
|
||||
instance = this
|
||||
|
||||
// 初始化并预绘制视图 二卡八列
|
||||
WheatLayoutSingManager.init(this)
|
||||
WheatLayoutSingManager.getInstance().setWheatData( null)
|
||||
WheatLayoutSingManager.getInstance().setWheatData(null)
|
||||
|
||||
// 默认情况下,SVGA 内部不会输出任何 log,所以需要手动设置为 true
|
||||
SVGALogger.setLogEnabled(false)
|
||||
LogUtils.getConfig().isLogSwitch = true
|
||||
|
||||
initLogUtils()
|
||||
initCrashUtils()
|
||||
initSmartRefreshLayout()
|
||||
}
|
||||
|
||||
private fun initLogUtils() {
|
||||
LogUtils.getConfig()
|
||||
.setLogSwitch(true) // 全局开关
|
||||
.setLog2FileSwitch(true) // 必须设为 true!
|
||||
.setDir(LOGUTILS_SAVE_PATH) // 设置有效路径
|
||||
.setFileFilter(LogUtils.V); // 允许所有级别
|
||||
}
|
||||
|
||||
|
||||
private fun initCrashUtils() {
|
||||
CrashUtils.init(CRASHUTILS_SAVE_PATH, object : CrashUtils.OnCrashListener {
|
||||
override fun onCrash(crashInfo: CrashUtils.CrashInfo?) {
|
||||
LogUtils.e("crash", crashInfo.toString())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private fun initSmartRefreshLayout() {
|
||||
//设置全局的Header构建器
|
||||
SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, _ ->
|
||||
val header = ClassicsHeader(context)
|
||||
@@ -49,4 +95,9 @@ open class Application : CommonAppContext() {
|
||||
}
|
||||
}
|
||||
|
||||
fun getAppContent(): String {
|
||||
return APP_CONENT
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1366,7 +1366,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeRoomIsHostvalue) {
|
||||
roomFragment!!.handleMsgType1028(messageEvent)
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypezailx) {
|
||||
var userId = messageEvent!!.text!!.user_id!!
|
||||
val userId = messageEvent.text?.user_id
|
||||
LogUtils.e("messageEvent!!.text.type" + messageEvent.text.type)
|
||||
CommonAppContext.getInstance().onlineMap[userId ?: ""] = messageEvent.text.type
|
||||
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
||||
@@ -1388,19 +1388,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
||||
CommonAppContext.getInstance().getOnlineMap()
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeQingGRMl) { // 1059清除个人魅力 1058在离线
|
||||
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
||||
if (mRoomInfoResp!!.room_info.type_id == "1" || mRoomInfoResp!!.room_info.type_id == "3" ||
|
||||
mRoomInfoResp!!.room_info.type_id == "4" || mRoomInfoResp!!.room_info.type_id == "8"
|
||||
) {
|
||||
if (mRoomInfoResp!!.room_info.label_id == "1") {
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
} else {
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
}
|
||||
} else if (mRoomInfoResp!!.room_info.type_id == "2") {
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
} else if (mRoomInfoResp!!.room_info.type_id == "7") {
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
}
|
||||
roomFragment!!.handleRoomMessage(messageEvent)
|
||||
}
|
||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeMangH) { // 1056 抽奖结果
|
||||
val dialog = supportFragmentManager
|
||||
|
||||
@@ -11,16 +11,10 @@ import android.util.DisplayMetrics;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.PopupWindow;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
||||
@@ -49,7 +43,6 @@ import com.xscm.moduleutil.utils.ClickUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.utils.StringUtil;
|
||||
import com.xscm.moduleutil.widget.RoomFriendshipWheatView;
|
||||
import com.xscm.moduleutil.widget.SharedViewModel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -174,11 +167,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
return new FriendshipRoomPresenter(this, getActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initArgs(Bundle arguments) {
|
||||
super.initArgs(arguments);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
@@ -366,7 +354,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
// 2. 邀请用户上麦
|
||||
// 3. 锁定/解锁麦位等
|
||||
pitNumber = pitBean.getPit_number();
|
||||
if (cheackWether(pitBean.getPit_number())) {
|
||||
if (checkWeather(pitBean.getPit_number())) {
|
||||
showPopupMenu(wheatView); // v 是点击的按钮视图
|
||||
} else if (pitBean.getPit_number().equals("10")) {
|
||||
RoomOnlineDialogFragment.show(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
||||
@@ -653,7 +641,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
if (pitBean7.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||
pitBean7.setIs_online(type == 1 ? 1 : 2);
|
||||
mBinding.wheatView6.setData(pitBean7);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -707,7 +694,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
});
|
||||
}
|
||||
|
||||
private boolean cheackWether(String pitNumber) {
|
||||
private boolean checkWeather(String pitNumber) {
|
||||
if (roomInfoResp.getRoom_info().getRoom_up_pit_type().equals("1")) {//排麦模式
|
||||
if (roomInfoResp.getUser_info().getIs_management() == 1 || roomInfoResp.getUser_info().getIs_host() == 1 || roomInfoResp.getUser_info().getIs_room_owner() == 1) {
|
||||
if (pitNumber.equals("9")) {
|
||||
@@ -1118,7 +1105,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
||||
mBinding.wheatView6.setLockZl(false);
|
||||
}
|
||||
|
||||
// assert md3 != null;
|
||||
if (md3 != null && md3.getHeartNum() > 0) {
|
||||
if (mBinding.wheatView3.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
mBinding.wheatView3.setLockZl(false);
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
package com.xscm.modulemain.activity.room.fragment;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.Animation;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.view.animation.LinearInterpolator;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
@@ -19,13 +14,13 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
||||
import com.xscm.modulemain.activity.room.contacts.RoomContacts;
|
||||
import com.xscm.modulemain.activity.room.presenter.RoomPresenter;
|
||||
import com.xscm.modulemain.databinding.FragmentRoomKtvBinding;
|
||||
import com.xscm.modulemain.dialog.RoomCharmDialog;
|
||||
import com.xscm.modulemain.dialog.RoomGiftDialogFragment;
|
||||
import com.xscm.modulemain.dialog.RoomOnlineDialogFragment;
|
||||
import com.xscm.modulemain.dialog.RoomUserInfoFragment;
|
||||
import com.xscm.modulemain.activity.room.contacts.RoomContacts;
|
||||
import com.xscm.modulemain.activity.room.presenter.RoomPresenter;
|
||||
import com.xscm.modulemain.dialog.TunerDialogFragment;
|
||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||
import com.xscm.moduleutil.bean.MusicSongBean;
|
||||
@@ -46,9 +41,7 @@ import com.xscm.moduleutil.utils.ClickUtils;
|
||||
import com.xscm.moduleutil.utils.ImageUtils;
|
||||
import com.xscm.moduleutil.utils.SpUtil;
|
||||
import com.xscm.moduleutil.widget.RoomKtvWheatView;
|
||||
import com.xscm.moduleutil.widget.SharedViewModel;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
@@ -88,14 +81,10 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
}
|
||||
|
||||
|
||||
public View getNegativeMarginView() {
|
||||
return mBinding.muZc;
|
||||
}
|
||||
|
||||
|
||||
public void roomInfoUpdate(RoomInfoResp resp) {
|
||||
roomInfoResp = resp;
|
||||
// upData();
|
||||
}
|
||||
|
||||
private void upData() {
|
||||
@@ -166,7 +155,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
mBinding.muXName.setText(roomInfoResp.getNextInfo().getSong_name());
|
||||
}
|
||||
|
||||
if (roomInfoResp.getRoom_info().getPit_list() != null && roomInfoResp.getRoom_info().getPit_list().size() > 0) {
|
||||
if (roomInfoResp.getRoom_info().getPit_list() != null && !roomInfoResp.getRoom_info().getPit_list().isEmpty()) {
|
||||
for (RoomPitBean roomPitBean : roomInfoResp.getRoom_info().getPit_list()) {
|
||||
if (roomPitBean.getPit_number().equals("9")) {
|
||||
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
|
||||
@@ -192,7 +181,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
||||
}
|
||||
}
|
||||
|
||||
if (roomInfoResp.getSong_pit_list() != null && roomInfoResp.getSong_pit_list().size() > 0) {
|
||||
if (roomInfoResp.getSong_pit_list() != null && !roomInfoResp.getSong_pit_list().isEmpty()) {
|
||||
adapter.setNewData(roomInfoResp.getSong_pit_list());
|
||||
for (RoomPitBean roomPitBean : roomInfoResp.getSong_pit_list()) {
|
||||
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||
|
||||
@@ -18,16 +18,12 @@ import com.xscm.moduleutil.widget.dialog.BaseDialog;
|
||||
*@description: 房间公告展示
|
||||
*/
|
||||
public class RoomNoticeDialogFragment extends BaseDialog {
|
||||
private Context mContext;
|
||||
private TextView tvTile;
|
||||
private TextView tvContent;
|
||||
private ImageView ivClose;
|
||||
String title, content;
|
||||
|
||||
public RoomNoticeDialogFragment(@NonNull Context context) {
|
||||
super(context);
|
||||
this.mContext = context;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -170,11 +170,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
||||
return; // 快速重复点击,直接返回
|
||||
}
|
||||
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
||||
// 点击的麦位是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
} else {
|
||||
// 点击的麦位不是当前麦位
|
||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
||||
if (cheackWether(pitBean.getPit_number())) {
|
||||
pitNumber = pitBean.getPit_number();
|
||||
roomPitBean = pitBean;
|
||||
|
||||
@@ -67,11 +67,11 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
|
||||
private VoiceFragment voiceFragment;
|
||||
|
||||
public VoiceCategoryFragment () {
|
||||
public VoiceCategoryFragment() {
|
||||
}
|
||||
|
||||
|
||||
public VoiceCategoryFragment (VoiceFragment voiceFragment){
|
||||
public VoiceCategoryFragment(VoiceFragment voiceFragment) {
|
||||
this.voiceFragment = voiceFragment;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
return new VoiceCategoryFragment(voiceFragment);
|
||||
}
|
||||
|
||||
public void showLoading(){
|
||||
public void showLoading() {
|
||||
voiceFragment.isShowLoading(true);
|
||||
}
|
||||
|
||||
@@ -126,7 +126,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
* type=1时,该值表示房间id;type=2时,表示文章id
|
||||
*/
|
||||
BannerModel bannerModel = (BannerModel) model;
|
||||
Intent intent=new Intent(getActivity(), WebViewActivity.class);
|
||||
Intent intent = new Intent(getActivity(), WebViewActivity.class);
|
||||
intent.putExtra("url", bannerModel.getUrl());
|
||||
intent.putExtra("title", "首页横幅");
|
||||
startActivity(intent);
|
||||
@@ -148,7 +148,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
// 示例:跳转到房间 详情页
|
||||
if (data != null) {
|
||||
showLoading();
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), data.getRoom_id() ,"",null);
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), data.getRoom_id(), "", null);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -171,7 +171,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
String roomId = item.getRoom_id(); // 或者 item.getRoomId(); 确保方法名正确
|
||||
if (roomId != null && !roomId.isEmpty()) { // 检查 roomId 是否有效
|
||||
showLoading();
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), roomId,"",null);
|
||||
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), roomId, "", null);
|
||||
} else {
|
||||
// Log.d(TAG, "Room ID is null or empty for item at position: " + position);
|
||||
}
|
||||
@@ -191,13 +191,13 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
});
|
||||
|
||||
mBinding.homeGg.setOnClickListener(v -> {
|
||||
Intent intent=new Intent(getActivity(), OfficialNoticeActivity.class);
|
||||
Intent intent = new Intent(getActivity(), OfficialNoticeActivity.class);
|
||||
intent.putExtra("type", "2");
|
||||
startActivity(intent);
|
||||
});
|
||||
|
||||
mBinding.imX.setOnClickListener(v -> {
|
||||
Intent intent=new Intent(getActivity(), PopularRoomActivity.class);
|
||||
Intent intent = new Intent(getActivity(), PopularRoomActivity.class);
|
||||
startActivity(intent);
|
||||
});
|
||||
}
|
||||
@@ -225,10 +225,10 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
//// info.add(mqttBean.getList().getFromUserName() + "送给" + mqttBean.getList().getToUserName() + "\n" + mqttBean.getList().getGiftName());
|
||||
// }
|
||||
|
||||
for (int i=0;i<cachedMqttBeans.size();i++){
|
||||
for (int i = 0; i < cachedMqttBeans.size(); i++) {
|
||||
mqttList.addAll(cachedMqttBeans.get(i).getList());
|
||||
}
|
||||
for (int i=0;i<mqttList.size();i++){
|
||||
for (int i = 0; i < mqttList.size(); i++) {
|
||||
info.add(mqttList.get(i).getFromUserName() + "送给" + mqttList.get(i).getToUserName() + "\n" + mqttList.get(i).getGiftName());
|
||||
}
|
||||
|
||||
@@ -268,7 +268,8 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
// 创建适配器
|
||||
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getActivity(), list);
|
||||
mBinding.viewPager.setAdapter(adapter);
|
||||
|
||||
if (!list.isEmpty())
|
||||
mBinding.viewPager.setOffscreenPageLimit(list.size() - 1);
|
||||
// 设置 TabLayout 与 ViewPager2 的关联
|
||||
new TabLayoutMediator(mBinding.slidingTabLayout, mBinding.viewPager,
|
||||
(tab, position) -> {
|
||||
@@ -284,11 +285,9 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
if (position == 0) {
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||
textView.setTextColor(getResources().getColor(android.R.color.white));
|
||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_indicator);
|
||||
} else {
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
|
||||
textView.setTextColor(Color.parseColor("#F1ECFF"));
|
||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_unselected_background);
|
||||
}
|
||||
|
||||
tab.setCustomView(customView);
|
||||
@@ -309,12 +308,11 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||
textView.setTextColor(getResources().getColor(android.R.color.white));
|
||||
}
|
||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_indicator);
|
||||
}
|
||||
|
||||
RoomTypeModel roomTypeModel = list.get(position);
|
||||
String categoryId = roomTypeModel.getId();
|
||||
HotListFragment.newInstance(VoiceCategoryFragment.this,categoryId, TYPE_INDEX);
|
||||
HotListFragment.newInstance(VoiceCategoryFragment.this, categoryId, TYPE_INDEX);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -356,12 +354,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
|
||||
@Override
|
||||
public void setTopRoom(List<TopRoom> topRooms, int type) {
|
||||
// if (topRooms == null || topRooms.isEmpty() || topRooms.size() < 1) {
|
||||
// mBinding.constraintLayout.setVisibility(View.GONE);
|
||||
// return;
|
||||
// }else {
|
||||
mBinding.constraintLayout.setVisibility(View.VISIBLE);
|
||||
// }
|
||||
roomList = topRooms;
|
||||
mBinding.bannerViewPager.create(topRooms); // 刷新数据并启动自动播放
|
||||
}
|
||||
@@ -390,7 +383,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
||||
public Fragment createFragment(int position) {
|
||||
RoomTypeModel roomTypeModel = list.get(position);
|
||||
String categoryId = roomTypeModel.getId();
|
||||
return HotListFragment.newInstance(VoiceCategoryFragment.this,categoryId, TYPE_INDEX);
|
||||
return HotListFragment.newInstance(VoiceCategoryFragment.this, categoryId, TYPE_INDEX);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -35,12 +35,6 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
|
||||
@Override
|
||||
public void getRoomIn(String roomId, String password) {
|
||||
|
||||
// Type listType = new TypeToken<RoomInfoResp>() {}.getType();
|
||||
// RoomInfoResp restoredRoomModels = GsonUtils.getGSON().fromJson(SpUtil.getRoomInfoResp(), listType);
|
||||
// if (restoredRoomModels!= null ) {
|
||||
// MvpRef.get().roomInfo(restoredRoomModels);
|
||||
// }
|
||||
|
||||
api.roomGetIn(roomId, password, new BaseObserver<RoomInfoResp>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -70,15 +64,6 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
|
||||
AgoraManager.getInstance(mContext.getApplicationContext())
|
||||
.joinRoom(token, roomId, uid, enableMic,enableJs);
|
||||
}
|
||||
|
||||
// 初始化 Agora 并加入房间
|
||||
|
||||
|
||||
// RtcCore rtcCore = RtcCore.getInstance(getView().getSelfActivity());
|
||||
// rtcCore.initAgora(appId);
|
||||
|
||||
// 2. 加入房间
|
||||
// rtcCore.joinRoom(token, roomId, uid, enableMic);
|
||||
if (MvpRef==null){
|
||||
MvpRef=new WeakReference<>(mView);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.xscm.modulemain.activity.user.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.view.View;
|
||||
|
||||
@@ -9,7 +11,11 @@ import androidx.appcompat.app.AlertDialog;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.blankj.utilcode.util.FileUtils;
|
||||
import com.blankj.utilcode.util.LogUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.blankj.utilcode.util.ZipUtils;
|
||||
import com.tencent.qcloud.tuikit.timcommon.util.FileProvider;
|
||||
import com.xscm.modulemain.Application;
|
||||
import com.xscm.modulemain.R;
|
||||
import com.xscm.modulemain.databinding.ActivitySettingBinding;
|
||||
import com.xscm.modulemain.activity.user.conacts.SettingConacts;
|
||||
@@ -24,6 +30,17 @@ import com.xscm.moduleutil.utils.config.ConfigManager;
|
||||
import com.xscm.moduleutil.utils.config.EnvironmentEnum;
|
||||
import com.xscm.moduleutil.utils.config.EnvironmentPrefs;
|
||||
import com.xscm.moduleutil.widget.CommonAppConfig;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.reactivex.Observable;
|
||||
import io.reactivex.ObservableEmitter;
|
||||
import io.reactivex.ObservableOnSubscribe;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/8/14
|
||||
@@ -67,8 +84,10 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
||||
mBinding.llZhxiao.setOnClickListener(this::onClick);
|
||||
mBinding.llGywm.setOnClickListener(this::onClick);
|
||||
mBinding.llBbh.setOnClickListener(this::onClick);
|
||||
mBinding.tvShare.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void onClick(View view) {
|
||||
if (view.getId() == R.id.ll_youth) {
|
||||
// startActivity(new Intent(this, UnderageActivity.class));
|
||||
@@ -184,6 +203,47 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
||||
handler.postDelayed(resetRunnable, RESET_DELAY);
|
||||
}
|
||||
}
|
||||
} else if (view.getId() == R.id.tv_share) {
|
||||
|
||||
Observable.create(new ObservableOnSubscribe<Boolean>() {
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
public void subscribe(ObservableEmitter<Boolean> emitter) throws Exception {
|
||||
try {
|
||||
File file = new File(Application.Companion.getInstance().getAppContent());
|
||||
|
||||
if (FileUtils.isFileExists(file.getParent() +"/DataInfo.zip")){
|
||||
FileUtils.delete(file.getParent() +"/DataInfo.zip");
|
||||
}
|
||||
boolean isZip = ZipUtils.zipFile(Application.Companion.getInstance().getAppContent(),
|
||||
file.getParent() +"/DataInfo.zip");
|
||||
emitter.onNext(isZip);
|
||||
}catch (Exception e){
|
||||
LogUtils.e("压缩失败",e.toString());
|
||||
emitter.onNext(false);
|
||||
}
|
||||
}
|
||||
}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Consumer<Boolean>() {
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
public void accept(Boolean aBoolean) {
|
||||
if (aBoolean){
|
||||
File file = new File(Application.Companion.getInstance().getAppContent()+"/DataInfo.zip");
|
||||
Uri uri = FileProvider.getUriForFile(SettingActivity.this, getPackageName()+".fileprovider", file);
|
||||
Intent intent = new Intent(Intent.ACTION_SEND);
|
||||
intent.setType("*/*");
|
||||
intent.putExtra(Intent.EXTRA_STREAM, uri);
|
||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
|
||||
startActivity(Intent.createChooser(intent,"分享到"));
|
||||
}else {
|
||||
LogUtils.e("压缩失败");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
private void showYouthModelDialog() {
|
||||
|
||||
@@ -128,7 +128,8 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
|
||||
// ToastUtils.showShort("密码验证成功");
|
||||
|
||||
ARouter.getInstance().build(ARouteConstants.ME).navigation();
|
||||
ActivityUtils.finishAllActivities();
|
||||
ActivityUtils.finishActivity(WebViewActivity.class);
|
||||
finish();
|
||||
} else {
|
||||
// 密码错误,提示并清空输入框
|
||||
ToastUtils.showShort("密码错误,请重新输入");
|
||||
@@ -191,10 +192,6 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
|
||||
* 跳转到下一个页面
|
||||
*/
|
||||
private void navigateToNextPage() {
|
||||
// ToastUtils.showShort("密码设置成功");
|
||||
|
||||
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken())
|
||||
// .withString("type", "1").navigation();
|
||||
Intent intent = new Intent(UnderageActivity.this, WebViewActivity.class);
|
||||
intent.putExtra("type", "1");
|
||||
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken());
|
||||
@@ -203,8 +200,6 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
|
||||
|
||||
mBinding.verificationcodeview.setText("");
|
||||
finish();
|
||||
// 这里可以添加页面跳转逻辑
|
||||
ActivityUtils.finishAllActivities();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -383,5 +383,14 @@
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_share"
|
||||
android:layout_gravity="start"
|
||||
android:padding="@dimen/dp_40"
|
||||
android:layout_marginTop="-50dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
</layout>
|
||||
23
MainModule/src/main/res/xml/file_paths.xml
Normal file
23
MainModule/src/main/res/xml/file_paths.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths>
|
||||
<!-- Environment.getExternalStorageDirectory()-->
|
||||
<external-path
|
||||
name="external-path"
|
||||
path="."/>
|
||||
<!-- Context.getExternalCacheDir() -->
|
||||
<external-cache-path
|
||||
name="external-cache-path"
|
||||
path="."/>
|
||||
<!-- Context.getExternalFilesDir(null) -->
|
||||
<external-files-path
|
||||
name="external-files-path"
|
||||
path="."/>
|
||||
<!-- Context.getFilesDir() -->
|
||||
<files-path
|
||||
name="files_path"
|
||||
path="."/>
|
||||
|
||||
<root-path
|
||||
name="name"
|
||||
path="."/>
|
||||
</paths>
|
||||
@@ -201,6 +201,17 @@
|
||||
android:name=".PasswordLoginActivity"
|
||||
android:exported="true"
|
||||
/>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
<!-- <queries>-->
|
||||
<!-- <!– 支付宝 scheme –>-->
|
||||
|
||||
3
app/src/main/java/com/qxcm/qxlive/FileProvider.java
Normal file
3
app/src/main/java/com/qxcm/qxlive/FileProvider.java
Normal file
@@ -0,0 +1,3 @@
|
||||
package com.qxcm.qxlive;
|
||||
|
||||
public class FileProvider extends androidx.core.content.FileProvider {}
|
||||
26
app/src/main/res/xml/file_paths.xml
Normal file
26
app/src/main/res/xml/file_paths.xml
Normal file
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths>
|
||||
<!-- Environment.getExternalStorageDirectory()-->
|
||||
<external-path
|
||||
name="external-path"
|
||||
path="."/>
|
||||
<!-- Context.getExternalCacheDir() -->
|
||||
<external-cache-path
|
||||
name="external-cache-path"
|
||||
path="."/>
|
||||
<!-- Context.getExternalFilesDir(null) -->
|
||||
<external-files-path
|
||||
name="external-files-path"
|
||||
path="."/>
|
||||
<!-- Context.getFilesDir() -->
|
||||
<files-path
|
||||
name="files_path"
|
||||
path="."/>
|
||||
<!-- Context.getCacheDir() -->
|
||||
<cache-path
|
||||
name="cache-path"
|
||||
path="."/>
|
||||
<root-path
|
||||
name="name"
|
||||
path="."/>
|
||||
</paths>
|
||||
Reference in New Issue
Block a user