2:修改创建房间,本地进行判断改为服务端进行判断 3:修改歌手认证bug 4:修改和用户相关的出现为空的错误 5:修改挚友在用户主页的位置,不丝滑的滑动问题 6:修改搜索页面展示全部房间,用户展示性别
150 lines
4.9 KiB
Kotlin
150 lines
4.9 KiB
Kotlin
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
|
||
}
|
||
|
||
|
||
} |