Newer
Older
SmartKitchen / app / src / main / java / com / casic / br / base / BaseApplication.kt
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
    }
}