package com.casic.br.base import android.app.Application import android.util.Log import com.casic.br.greendao.DaoMaster import com.casic.br.greendao.DaoSession import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.SaveKeyValues import com.tuya.smart.android.user.api.ILoginCallback import com.tuya.smart.android.user.bean.User import com.tuya.smart.home.sdk.TuyaHomeSdk import com.tuya.smart.home.sdk.bean.HomeBean import com.tuya.smart.home.sdk.callback.ITuyaHomeResultCallback import kotlin.properties.Delegates class BaseApplication : Application() { private val kTag = "BaseApplication" companion object { private var instance: BaseApplication by Delegates.notNull() fun obtainInstance() = instance private lateinit var daoSession: DaoSession } override fun onCreate() { super.onCreate() instance = this SaveKeyValues.initSharedPreferences(this) initTuya() val devOpenHelper = DaoMaster.DevOpenHelper(this, "SmartKitchen.db", null) val daoMaster = DaoMaster(devOpenHelper.writableDatabase) daoSession = daoMaster.newSession() } private fun initTuya() { TuyaHomeSdk.init(this) TuyaHomeSdk.setDebugMode(true) /** * 家庭是智能生活 App SDK 开发下实际场景的最大单位。 * IoT 设备的添加、编辑、移除、状态变化的监听基于家庭下。 * 用户账号下创建任意多个家庭。 * */ //TODO 必须登录 TuyaHomeSdk.getUserInstance() .loginWithPhonePassword("86", "18310581916", "123456", object : ILoginCallback { override fun onSuccess(user: User?) { Log.d(kTag, "Login success:" + user!!.username) } override fun onError(code: String, error: String) { Log.e(kTag, "code: " + code + "error:" + error) } }) TuyaHomeSdk.getHomeManagerInstance() .createHome("北燃生活体验馆", 116.486394, 39.885734, "北燃生活体验馆", arrayListOf(), object : ITuyaHomeResultCallback { override fun onSuccess(bean: HomeBean?) { Log.d(kTag, bean!!.toJson()) } override fun onError(errorCode: String?, errorMsg: String?) { Log.e(kTag, "errorCode: $errorCode ---- $errorMsg") } }) } fun obtainDaoSession(): DaoSession { return daoSession } }