添加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) {
|
public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
|
||||||
TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
|
TypeAdapter<?> adapter = gson.getAdapter(TypeToken.get(type));
|
||||||
return new ResponseBodyConverter<>(gson, adapter);
|
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());
|
sslContext.init(null, new TrustManager[]{trustAllCert}, new SecureRandom());
|
||||||
|
|
||||||
final OkHttpClient client = new OkHttpClient.Builder()
|
final OkHttpClient client = new OkHttpClient.Builder()
|
||||||
// .addInterceptor(new LogInterceptor())
|
|
||||||
.addInterceptor(new DataLoggingInterceptor(new DataLogger()))
|
.addInterceptor(new DataLoggingInterceptor(new DataLogger()))
|
||||||
.addInterceptor(new AccessTokenInterceptor(headers))
|
.addInterceptor(new AccessTokenInterceptor(headers))
|
||||||
.proxy(Proxy.NO_PROXY)
|
.proxy(Proxy.NO_PROXY)
|
||||||
@@ -129,31 +128,15 @@ public class RetrofitClient {
|
|||||||
|
|
||||||
private Retrofit provideRetrofit(OkHttpClient client) {
|
private Retrofit provideRetrofit(OkHttpClient client) {
|
||||||
return new Retrofit.Builder()
|
return new Retrofit.Builder()
|
||||||
.addConverterFactory(MyConverterFactory.create())/**/
|
.addConverterFactory(MyConverterFactory.create())
|
||||||
// .addConverterFactory(GsonConverterFactory.create())
|
// .addConverterFactory(GsonConverterFactory.create())
|
||||||
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
|
||||||
// .baseUrl("http://chat.qxmier.com/")
|
// .baseUrl("http://chat.qxmier.com/")
|
||||||
.baseUrl(CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl())
|
.baseUrl(CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl())
|
||||||
.client(client)
|
.client(client)
|
||||||
|
|
||||||
.build();
|
.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() {
|
private RetrofitClient() {
|
||||||
mRetrofit = provideRetrofit(provideOkHttpClient());
|
mRetrofit = provideRetrofit(provideOkHttpClient());
|
||||||
@@ -201,11 +184,6 @@ public class RetrofitClient {
|
|||||||
return mRetrofit.create(apiClientClass);
|
return mRetrofit.create(apiClientClass);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void login() {
|
|
||||||
// login("18473492252", "123456");
|
|
||||||
// login("18229732986", "123456");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void appUpdate(BaseObserver<AppUpdateModel> observer) {
|
public void appUpdate(BaseObserver<AppUpdateModel> observer) {
|
||||||
sApiServer.appUpdate().compose(new DefaultTransformer<>()).subscribe(observer);
|
sApiServer.appUpdate().compose(new DefaultTransformer<>()).subscribe(observer);
|
||||||
}
|
}
|
||||||
@@ -2808,7 +2786,6 @@ public class RetrofitClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void firstChargeGift(BaseObserver<FirstChargeGiftBean> observer) {
|
public void firstChargeGift(BaseObserver<FirstChargeGiftBean> observer) {
|
||||||
// sApiServer.firstChargeGift().compose(new DefaultTransformer<>()).subscribe(observer);
|
|
||||||
sApiServer.firstChargeGift().enqueue(new Callback<BaseModel<FirstChargeGiftBean>>() {
|
sApiServer.firstChargeGift().enqueue(new Callback<BaseModel<FirstChargeGiftBean>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onResponse(Call<BaseModel<FirstChargeGiftBean>> call, Response<BaseModel<FirstChargeGiftBean>> response) {
|
public void onResponse(Call<BaseModel<FirstChargeGiftBean>> call, Response<BaseModel<FirstChargeGiftBean>> response) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ public enum EnvironmentEnum {
|
|||||||
1600096890,
|
1600096890,
|
||||||
"02f7339ec98947deaeab173599891932",
|
"02f7339ec98947deaeab173599891932",
|
||||||
"tcp://1.13.181.248",
|
"tcp://1.13.181.248",
|
||||||
"https://test.vespa.xscmmidi.site/h5",
|
"https://test.vespa.qxyushen.top/h5",
|
||||||
1);
|
1);
|
||||||
|
|
||||||
private final String serverUrl;//服务器地址
|
private final String serverUrl;//服务器地址
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.xscm.moduleutil.utils.logger;
|
|||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SCore
|
* SCore
|
||||||
* Created by ShangChuanliang
|
* Created by ShangChuanliang
|
||||||
@@ -61,7 +63,9 @@ public final class DataLogger implements DataLoggingInterceptor.Logger {
|
|||||||
}
|
}
|
||||||
// 响应结束,打印整条日志
|
// 响应结束,打印整条日志
|
||||||
if (message.startsWith(DataLoggingInterceptor.sLogEndFlag)) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -195,6 +195,16 @@
|
|||||||
android:exported="true" />
|
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>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
package com.xscm.modulemain
|
package com.xscm.modulemain
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import com.blankj.utilcode.util.CrashUtils
|
||||||
import com.blankj.utilcode.util.LogUtils
|
import com.blankj.utilcode.util.LogUtils
|
||||||
import com.opensource.svgaplayer.utils.log.SVGALogger
|
import com.opensource.svgaplayer.utils.log.SVGALogger
|
||||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout
|
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.footer.ClassicsFooter
|
||||||
import com.scwang.smartrefresh.layout.header.ClassicsHeader
|
import com.scwang.smartrefresh.layout.header.ClassicsHeader
|
||||||
import com.xscm.modulemain.widget.WheatLayoutSingManager
|
import com.xscm.modulemain.widget.WheatLayoutSingManager
|
||||||
@@ -17,17 +13,67 @@ import com.xscm.moduleutil.base.CommonAppContext
|
|||||||
|
|
||||||
open class Application : 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() {
|
override fun onCreate() {
|
||||||
super.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.init(this)
|
||||||
WheatLayoutSingManager.getInstance().setWheatData(null)
|
WheatLayoutSingManager.getInstance().setWheatData(null)
|
||||||
|
|
||||||
// 默认情况下,SVGA 内部不会输出任何 log,所以需要手动设置为 true
|
// 默认情况下,SVGA 内部不会输出任何 log,所以需要手动设置为 true
|
||||||
SVGALogger.setLogEnabled(false)
|
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构建器
|
//设置全局的Header构建器
|
||||||
SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, _ ->
|
SmartRefreshLayout.setDefaultRefreshHeaderCreator { context, _ ->
|
||||||
val header = ClassicsHeader(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) {
|
} else if (msgType == EMMessageInfo.QXRoomMessageTypeRoomIsHostvalue) {
|
||||||
roomFragment!!.handleMsgType1028(messageEvent)
|
roomFragment!!.handleMsgType1028(messageEvent)
|
||||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypezailx) {
|
} 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)
|
LogUtils.e("messageEvent!!.text.type" + messageEvent.text.type)
|
||||||
CommonAppContext.getInstance().onlineMap[userId ?: ""] = messageEvent.text.type
|
CommonAppContext.getInstance().onlineMap[userId ?: ""] = messageEvent.text.type
|
||||||
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
||||||
@@ -1388,19 +1388,7 @@ class RoomActivity : BaseMvpActivity<RoomPresenter?, ActivityRoomBinding?>(),
|
|||||||
CommonAppContext.getInstance().getOnlineMap()
|
CommonAppContext.getInstance().getOnlineMap()
|
||||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeQingGRMl) { // 1059清除个人魅力 1058在离线
|
} else if (msgType == EMMessageInfo.QXRoomMessageTypeQingGRMl) { // 1059清除个人魅力 1058在离线
|
||||||
if (mRoomInfoResp != null && mRoomInfoResp!!.room_info != null) {
|
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)
|
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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else if (msgType == EMMessageInfo.QXRoomMessageTypeMangH) { // 1056 抽奖结果
|
} else if (msgType == EMMessageInfo.QXRoomMessageTypeMangH) { // 1056 抽奖结果
|
||||||
val dialog = supportFragmentManager
|
val dialog = supportFragmentManager
|
||||||
|
|||||||
@@ -11,16 +11,10 @@ import android.util.DisplayMetrics;
|
|||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.PopupWindow;
|
import android.widget.PopupWindow;
|
||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
import android.widget.TextView;
|
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.orhanobut.logger.Logger;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
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.SpUtil;
|
||||||
import com.xscm.moduleutil.utils.StringUtil;
|
import com.xscm.moduleutil.utils.StringUtil;
|
||||||
import com.xscm.moduleutil.widget.RoomFriendshipWheatView;
|
import com.xscm.moduleutil.widget.RoomFriendshipWheatView;
|
||||||
import com.xscm.moduleutil.widget.SharedViewModel;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -174,11 +167,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
|||||||
return new FriendshipRoomPresenter(this, getActivity());
|
return new FriendshipRoomPresenter(this, getActivity());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initArgs(Bundle arguments) {
|
|
||||||
super.initArgs(arguments);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void initData() {
|
protected void initData() {
|
||||||
@@ -366,7 +354,7 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
|||||||
// 2. 邀请用户上麦
|
// 2. 邀请用户上麦
|
||||||
// 3. 锁定/解锁麦位等
|
// 3. 锁定/解锁麦位等
|
||||||
pitNumber = pitBean.getPit_number();
|
pitNumber = pitBean.getPit_number();
|
||||||
if (cheackWether(pitBean.getPit_number())) {
|
if (checkWeather(pitBean.getPit_number())) {
|
||||||
showPopupMenu(wheatView); // v 是点击的按钮视图
|
showPopupMenu(wheatView); // v 是点击的按钮视图
|
||||||
} else if (pitBean.getPit_number().equals("10")) {
|
} else if (pitBean.getPit_number().equals("10")) {
|
||||||
RoomOnlineDialogFragment.show(roomId, "10", roomInfoResp.getUser_info(), roomInfoResp, getChildFragmentManager());
|
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())) {
|
if (pitBean7.getUser_id().equals(messageEvent.getText().getUser_id())) {
|
||||||
pitBean7.setIs_online(type == 1 ? 1 : 2);
|
pitBean7.setIs_online(type == 1 ? 1 : 2);
|
||||||
mBinding.wheatView6.setData(pitBean7);
|
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.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 (roomInfoResp.getUser_info().getIs_management() == 1 || roomInfoResp.getUser_info().getIs_host() == 1 || roomInfoResp.getUser_info().getIs_room_owner() == 1) {
|
||||||
if (pitNumber.equals("9")) {
|
if (pitNumber.equals("9")) {
|
||||||
@@ -1118,7 +1105,6 @@ public class FriendshipRoomFragment extends BaseRoomFragment<FriendshipRoomPrese
|
|||||||
mBinding.wheatView6.setLockZl(false);
|
mBinding.wheatView6.setLockZl(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// assert md3 != null;
|
|
||||||
if (md3 != null && md3.getHeartNum() > 0) {
|
if (md3 != null && md3.getHeartNum() > 0) {
|
||||||
if (mBinding.wheatView3.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
if (mBinding.wheatView3.pitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||||
mBinding.wheatView3.setLockZl(false);
|
mBinding.wheatView3.setLockZl(false);
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
package com.xscm.modulemain.activity.room.fragment;
|
package com.xscm.modulemain.activity.room.fragment;
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
import android.view.animation.AnimationUtils;
|
import android.view.animation.AnimationUtils;
|
||||||
import android.view.animation.LinearInterpolator;
|
import android.view.animation.LinearInterpolator;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import com.blankj.utilcode.util.LogUtils;
|
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.chad.library.adapter.base.BaseViewHolder;
|
||||||
import com.xscm.modulemain.R;
|
import com.xscm.modulemain.R;
|
||||||
import com.xscm.modulemain.activity.room.activity.RoomActivity;
|
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.databinding.FragmentRoomKtvBinding;
|
||||||
import com.xscm.modulemain.dialog.RoomCharmDialog;
|
import com.xscm.modulemain.dialog.RoomCharmDialog;
|
||||||
import com.xscm.modulemain.dialog.RoomGiftDialogFragment;
|
import com.xscm.modulemain.dialog.RoomGiftDialogFragment;
|
||||||
import com.xscm.modulemain.dialog.RoomOnlineDialogFragment;
|
import com.xscm.modulemain.dialog.RoomOnlineDialogFragment;
|
||||||
import com.xscm.modulemain.dialog.RoomUserInfoFragment;
|
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.modulemain.dialog.TunerDialogFragment;
|
||||||
import com.xscm.moduleutil.base.BaseMvpFragment;
|
import com.xscm.moduleutil.base.BaseMvpFragment;
|
||||||
import com.xscm.moduleutil.bean.MusicSongBean;
|
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.ImageUtils;
|
||||||
import com.xscm.moduleutil.utils.SpUtil;
|
import com.xscm.moduleutil.utils.SpUtil;
|
||||||
import com.xscm.moduleutil.widget.RoomKtvWheatView;
|
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.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
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) {
|
public void roomInfoUpdate(RoomInfoResp resp) {
|
||||||
roomInfoResp = resp;
|
roomInfoResp = resp;
|
||||||
// upData();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void upData() {
|
private void upData() {
|
||||||
@@ -166,7 +155,7 @@ public class RoomKtvFragment extends BaseMvpFragment<RoomPresenter, FragmentRoom
|
|||||||
mBinding.muXName.setText(roomInfoResp.getNextInfo().getSong_name());
|
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()) {
|
for (RoomPitBean roomPitBean : roomInfoResp.getRoom_info().getPit_list()) {
|
||||||
if (roomPitBean.getPit_number().equals("9")) {
|
if (roomPitBean.getPit_number().equals("9")) {
|
||||||
RoomKtvWheatView roomDefaultWheatView = mBinding.muZc;
|
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());
|
adapter.setNewData(roomInfoResp.getSong_pit_list());
|
||||||
for (RoomPitBean roomPitBean : roomInfoResp.getSong_pit_list()) {
|
for (RoomPitBean roomPitBean : roomInfoResp.getSong_pit_list()) {
|
||||||
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
if (roomPitBean.getUser_id().equals(SpUtil.getUserId() + "")) {
|
||||||
|
|||||||
@@ -18,16 +18,12 @@ import com.xscm.moduleutil.widget.dialog.BaseDialog;
|
|||||||
*@description: 房间公告展示
|
*@description: 房间公告展示
|
||||||
*/
|
*/
|
||||||
public class RoomNoticeDialogFragment extends BaseDialog {
|
public class RoomNoticeDialogFragment extends BaseDialog {
|
||||||
private Context mContext;
|
|
||||||
private TextView tvTile;
|
private TextView tvTile;
|
||||||
private TextView tvContent;
|
private TextView tvContent;
|
||||||
private ImageView ivClose;
|
private ImageView ivClose;
|
||||||
String title, content;
|
|
||||||
|
|
||||||
public RoomNoticeDialogFragment(@NonNull Context context) {
|
public RoomNoticeDialogFragment(@NonNull Context context) {
|
||||||
super(context);
|
super(context);
|
||||||
this.mContext = context;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -170,11 +170,7 @@ public class SingSongFragment extends BaseRoomFragment<SingSongPresenter, Fragme
|
|||||||
return; // 快速重复点击,直接返回
|
return; // 快速重复点击,直接返回
|
||||||
}
|
}
|
||||||
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
RoomUserInfoFragment.show(roomId, pitBean.getUser_id(), pitBean.getPit_number(), getHostUser(), false, 3, isNumberWhether(), getChildFragmentManager());
|
||||||
// 点击的麦位是当前麦位
|
|
||||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
|
||||||
} else {
|
} else {
|
||||||
// 点击的麦位不是当前麦位
|
|
||||||
// 可以执行相应的操作,如显示提示信息或执行其他逻辑
|
|
||||||
if (cheackWether(pitBean.getPit_number())) {
|
if (cheackWether(pitBean.getPit_number())) {
|
||||||
pitNumber = pitBean.getPit_number();
|
pitNumber = pitBean.getPit_number();
|
||||||
roomPitBean = pitBean;
|
roomPitBean = pitBean;
|
||||||
|
|||||||
@@ -268,7 +268,8 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
// 创建适配器
|
// 创建适配器
|
||||||
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getActivity(), list);
|
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(getActivity(), list);
|
||||||
mBinding.viewPager.setAdapter(adapter);
|
mBinding.viewPager.setAdapter(adapter);
|
||||||
|
if (!list.isEmpty())
|
||||||
|
mBinding.viewPager.setOffscreenPageLimit(list.size() - 1);
|
||||||
// 设置 TabLayout 与 ViewPager2 的关联
|
// 设置 TabLayout 与 ViewPager2 的关联
|
||||||
new TabLayoutMediator(mBinding.slidingTabLayout, mBinding.viewPager,
|
new TabLayoutMediator(mBinding.slidingTabLayout, mBinding.viewPager,
|
||||||
(tab, position) -> {
|
(tab, position) -> {
|
||||||
@@ -284,11 +285,9 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
if (position == 0) {
|
if (position == 0) {
|
||||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||||
textView.setTextColor(getResources().getColor(android.R.color.white));
|
textView.setTextColor(getResources().getColor(android.R.color.white));
|
||||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_indicator);
|
|
||||||
} else {
|
} else {
|
||||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
|
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
|
||||||
textView.setTextColor(Color.parseColor("#F1ECFF"));
|
textView.setTextColor(Color.parseColor("#F1ECFF"));
|
||||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_unselected_background);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tab.setCustomView(customView);
|
tab.setCustomView(customView);
|
||||||
@@ -309,7 +308,6 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||||
textView.setTextColor(getResources().getColor(android.R.color.white));
|
textView.setTextColor(getResources().getColor(android.R.color.white));
|
||||||
}
|
}
|
||||||
// customView.setBackgroundResource(com.xscm.moduleutil.R.drawable.tab_indicator);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RoomTypeModel roomTypeModel = list.get(position);
|
RoomTypeModel roomTypeModel = list.get(position);
|
||||||
@@ -356,12 +354,7 @@ public class VoiceCategoryFragment extends BaseMvpFragment<VoiceCategoryPresente
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setTopRoom(List<TopRoom> topRooms, int type) {
|
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);
|
mBinding.constraintLayout.setVisibility(View.VISIBLE);
|
||||||
// }
|
|
||||||
roomList = topRooms;
|
roomList = topRooms;
|
||||||
mBinding.bannerViewPager.create(topRooms); // 刷新数据并启动自动播放
|
mBinding.bannerViewPager.create(topRooms); // 刷新数据并启动自动播放
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,12 +35,6 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
|
|||||||
@Override
|
@Override
|
||||||
public void getRoomIn(String roomId, String password) {
|
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>() {
|
api.roomGetIn(roomId, password, new BaseObserver<RoomInfoResp>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSubscribe(Disposable d) {
|
public void onSubscribe(Disposable d) {
|
||||||
@@ -70,15 +64,6 @@ public class RoomPresenter extends BasePresenter<RoomContacts.View> implements R
|
|||||||
AgoraManager.getInstance(mContext.getApplicationContext())
|
AgoraManager.getInstance(mContext.getApplicationContext())
|
||||||
.joinRoom(token, roomId, uid, enableMic,enableJs);
|
.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){
|
if (MvpRef==null){
|
||||||
MvpRef=new WeakReference<>(mView);
|
MvpRef=new WeakReference<>(mView);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.xscm.modulemain.activity.user.activity;
|
package com.xscm.modulemain.activity.user.activity;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
@@ -9,7 +11,11 @@ import androidx.appcompat.app.AlertDialog;
|
|||||||
|
|
||||||
import com.alibaba.android.arouter.launcher.ARouter;
|
import com.alibaba.android.arouter.launcher.ARouter;
|
||||||
import com.blankj.utilcode.util.FileUtils;
|
import com.blankj.utilcode.util.FileUtils;
|
||||||
|
import com.blankj.utilcode.util.LogUtils;
|
||||||
import com.blankj.utilcode.util.ToastUtils;
|
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.R;
|
||||||
import com.xscm.modulemain.databinding.ActivitySettingBinding;
|
import com.xscm.modulemain.databinding.ActivitySettingBinding;
|
||||||
import com.xscm.modulemain.activity.user.conacts.SettingConacts;
|
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.EnvironmentEnum;
|
||||||
import com.xscm.moduleutil.utils.config.EnvironmentPrefs;
|
import com.xscm.moduleutil.utils.config.EnvironmentPrefs;
|
||||||
import com.xscm.moduleutil.widget.CommonAppConfig;
|
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
|
*@author qx
|
||||||
*@data 2025/8/14
|
*@data 2025/8/14
|
||||||
@@ -67,8 +84,10 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
|||||||
mBinding.llZhxiao.setOnClickListener(this::onClick);
|
mBinding.llZhxiao.setOnClickListener(this::onClick);
|
||||||
mBinding.llGywm.setOnClickListener(this::onClick);
|
mBinding.llGywm.setOnClickListener(this::onClick);
|
||||||
mBinding.llBbh.setOnClickListener(this::onClick);
|
mBinding.llBbh.setOnClickListener(this::onClick);
|
||||||
|
mBinding.tvShare.setOnClickListener(this::onClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
private void onClick(View view) {
|
private void onClick(View view) {
|
||||||
if (view.getId() == R.id.ll_youth) {
|
if (view.getId() == R.id.ll_youth) {
|
||||||
// startActivity(new Intent(this, UnderageActivity.class));
|
// startActivity(new Intent(this, UnderageActivity.class));
|
||||||
@@ -184,6 +203,47 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
|
|||||||
handler.postDelayed(resetRunnable, RESET_DELAY);
|
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() {
|
private void showYouthModelDialog() {
|
||||||
|
|||||||
@@ -128,7 +128,8 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
|
|||||||
// ToastUtils.showShort("密码验证成功");
|
// ToastUtils.showShort("密码验证成功");
|
||||||
|
|
||||||
ARouter.getInstance().build(ARouteConstants.ME).navigation();
|
ARouter.getInstance().build(ARouteConstants.ME).navigation();
|
||||||
ActivityUtils.finishAllActivities();
|
ActivityUtils.finishActivity(WebViewActivity.class);
|
||||||
|
finish();
|
||||||
} else {
|
} else {
|
||||||
// 密码错误,提示并清空输入框
|
// 密码错误,提示并清空输入框
|
||||||
ToastUtils.showShort("密码错误,请重新输入");
|
ToastUtils.showShort("密码错误,请重新输入");
|
||||||
@@ -191,10 +192,6 @@ public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, Activit
|
|||||||
* 跳转到下一个页面
|
* 跳转到下一个页面
|
||||||
*/
|
*/
|
||||||
private void navigateToNextPage() {
|
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 intent = new Intent(UnderageActivity.this, WebViewActivity.class);
|
||||||
intent.putExtra("type", "1");
|
intent.putExtra("type", "1");
|
||||||
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken());
|
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("");
|
mBinding.verificationcodeview.setText("");
|
||||||
finish();
|
finish();
|
||||||
// 这里可以添加页面跳转逻辑
|
|
||||||
ActivityUtils.finishAllActivities();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -383,5 +383,14 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</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>
|
</LinearLayout>
|
||||||
</layout>
|
</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:name=".PasswordLoginActivity"
|
||||||
android:exported="true"
|
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>
|
</application>
|
||||||
<!-- <queries>-->
|
<!-- <queries>-->
|
||||||
<!-- <!– 支付宝 scheme –>-->
|
<!-- <!– 支付宝 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