Files
yusheng-android/MainModule/src/main/java/com/xscm/modulemain/Application.kt
梁小江 ed0eccd0ee 1:修改注冊的时候,年龄必选,并且更改默认年龄是18年前
2:修改创建房间,本地进行判断改为服务端进行判断
3:修改歌手认证bug
4:修改和用户相关的出现为空的错误
5:修改挚友在用户主页的位置,不丝滑的滑动问题
6:修改搜索页面展示全部房间,用户展示性别
2025-12-11 21:04:25 +08:00

150 lines
4.9 KiB
Kotlin
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.xscm.modulemain
import android.app.Activity
import android.content.Context
import com.blankj.utilcode.util.AppUtils
import com.blankj.utilcode.util.CrashUtils
import com.blankj.utilcode.util.LogUtils
import com.blankj.utilcode.util.Utils
import com.opensource.svgaplayer.utils.log.SVGALogger
import com.scwang.smartrefresh.layout.SmartRefreshLayout
import com.scwang.smartrefresh.layout.footer.ClassicsFooter
import com.scwang.smartrefresh.layout.header.ClassicsHeader
import com.xscm.modulemain.activity.main.activity.MainActivity
import com.xscm.modulemain.dialog.InviteDialog
import com.xscm.modulemain.widget.WheatLayoutSingManager
import com.xscm.moduleutil.base.CommonAppContext
import com.xscm.moduleutil.bean.IndexRecommendRoom
import com.xscm.moduleutil.http.BaseObserver
import com.xscm.moduleutil.http.RetrofitClient
import io.reactivex.disposables.Disposable
open class Application : CommonAppContext() {
var APP_CONENT = ""
var LOGUTILS_SAVE_PATH = ""
var CRASHUTILS_SAVE_PATH = ""
var isAgoraStop = false
var inviteDialog: InviteDialog? = null
// 单例实例
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)
// 默认情况下SVGA 内部不会输出任何 log所以需要手动设置为 true
SVGALogger.setLogEnabled(false)
initLogUtils()
initCrashUtils()
initSmartRefreshLayout()
}
fun bgToForeground() {
AppUtils.registerAppStatusChangedListener(object : Utils.OnAppStatusChangedListener {
override fun onForeground(activity: Activity?) {//应用切换到前台
if (!CommonAppContext.getInstance().isPlaying) {
RetrofitClient.getInstance()
.index_recommend_room(object : BaseObserver<IndexRecommendRoom>() {
override fun onSubscribe(d: Disposable) {
}
override fun onNext(t: IndexRecommendRoom) {
LogUtils.e(t)
if (!t.room_id.isNullOrEmpty()) {
showInviteDialog(activity, t)
}
}
})
}
}
override fun onBackground(activity: Activity?) {//应用切换到后台
}
})
}
fun showInviteDialog(activity: Activity?,t: IndexRecommendRoom) {
if (inviteDialog == null) {
inviteDialog = activity?.let { InviteDialog(it, t) }
}
inviteDialog?.setData(t)
}
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)
header.setDrawableSize(20f)
// header.setFinishDuration(0)
header.setTextSizeTitle(12f)
header.setTextSizeTime(10f)
header
}
//设置全局的Footer构建器
SmartRefreshLayout.setDefaultRefreshFooterCreator { context, _ ->
val classicsFooter = ClassicsFooter(context)
classicsFooter.setDrawableSize(20f)
// classicsFooter.setFinishDuration(0)
classicsFooter.setTextSizeTitle(12f)
//指定为经典Footer默认是 BallPulseFooter
classicsFooter
}
}
fun getAppContent(): String {
return APP_CONENT
}
}