50 lines
1.6 KiB
Kotlin
50 lines
1.6 KiB
Kotlin
package com.pushdeer.os
|
|
|
|
import android.app.Application
|
|
import com.pushdeer.os.data.api.PushDeerApi
|
|
import com.pushdeer.os.data.database.AppDatabase
|
|
import com.pushdeer.os.factory.ViewModelFactory
|
|
import com.pushdeer.os.keeper.RepositoryKeeper
|
|
import com.pushdeer.os.keeper.StoreKeeper
|
|
import com.pushdeer.os.util.MiPushUtils
|
|
import com.pushdeer.os.values.AppKeys
|
|
import com.tencent.mm.opensdk.openapi.IWXAPI
|
|
import com.tencent.mm.opensdk.openapi.WXAPIFactory
|
|
import retrofit2.Retrofit
|
|
import retrofit2.converter.gson.GsonConverterFactory
|
|
import retrofit2.converter.scalars.ScalarsConverterFactory
|
|
|
|
class App : Application() {
|
|
|
|
val storeKeeper by lazy { StoreKeeper(this) }
|
|
val database by lazy { AppDatabase.getDatabase(this) }
|
|
val repositoryKeeper by lazy { RepositoryKeeper(database, storeKeeper.settingStore) }
|
|
private val pushDeerService: PushDeerApi by lazy {
|
|
Retrofit.Builder()
|
|
.baseUrl(PushDeerApi.baseUrl)
|
|
.addConverterFactory(ScalarsConverterFactory.create())
|
|
.addConverterFactory(GsonConverterFactory.create())
|
|
.build()
|
|
.create(PushDeerApi::class.java)
|
|
}
|
|
val viewModelFactory by lazy {
|
|
ViewModelFactory(
|
|
repositoryKeeper,
|
|
storeKeeper,
|
|
pushDeerService
|
|
)
|
|
}
|
|
|
|
val iwxapi: IWXAPI by lazy { WXAPIFactory.createWXAPI(this, AppKeys.WX_Id, true) }
|
|
|
|
override fun onCreate() {
|
|
super.onCreate()
|
|
//初始化push推送服务
|
|
MiPushUtils.autoInit(this,repositoryKeeper)
|
|
}
|
|
|
|
|
|
companion object {
|
|
const val TAG = "TAG"
|
|
}
|
|
} |