Newer
Older
SmartKitchenTablet / app / src / main / java / com / casic / br / view / SelectWiFiActivity.kt
package com.casic.br.view

import android.content.Context
import android.content.Intent
import android.graphics.Color
import android.net.wifi.WifiManager
import android.provider.Settings
import android.view.View
import com.casic.br.R
import com.casic.br.extensions.initLayoutImmersionBar
import com.casic.br.utils.LocaleConstant
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.extensions.show
import com.pengxh.kt.lite.utils.SaveKeyValues
import com.pengxh.kt.lite.widget.dialog.BottomActionSheet
import kotlinx.android.synthetic.main.activity_select_wifi.*
import kotlinx.android.synthetic.main.include_base_title.*


class SelectWiFiActivity : KotlinBaseActivity() {

    private val wifi by lazy { applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager }

    override fun initLayoutView(): Int = R.layout.activity_select_wifi

    override fun observeRequestState() {

    }

    override fun setupTopBarLayout() {
        ImmersionBar.with(this).statusBarDarkFont(true).init()
        initLayoutImmersionBar(rootView)
        leftBackView.setOnClickListener { finish() }
        titleView.visibility = View.GONE
    }

    override fun initData() {

    }

    override fun initEvent() {
        changeWifiView.setOnClickListener {
            startActivity(Intent(Settings.ACTION_WIFI_SETTINGS))
        }

        nextStepButton.setOnClickListener {
            val wifiName = wifiNameView.text.toString()
            if (wifiName.isBlank()) {
                "请确认WiFi已连接".show(this)
                return@setOnClickListener
            }
            val wifiKey = wifiKeyView.text.toString()
            if (wifiKey.isBlank()) {
                "请输入WiFi密码".show(this)
                return@setOnClickListener
            }
            //保存Wi-Fi密码
            SaveKeyValues.putValue(LocaleConstant.WIFI_PASSWORD, wifiKey)
            val wifiConfig = arrayListOf(wifiName, wifiKey)
            BottomActionSheet.Builder()
                .setContext(this)
                .setActionItemTitle(arrayListOf("Wi-Fi连接模式", "蓝牙连接模式"))
                .setItemTextColor(Color.BLUE)
                .setOnActionSheetListener(object : BottomActionSheet.OnActionSheetListener {
                    override fun onActionItemClick(position: Int) {
                        when (position) {
                            0 -> navigatePageTo<ConnectDeviceActivity>(wifiConfig)
                            1 -> navigatePageTo<ScanBluetoothActivity>(wifiConfig)
                        }
                    }
                })
                .build().show()
        }
    }

    override fun onResume() {
        super.onResume()
        //获取已连接WiFi配置
        wifiNameView.setText(wifi.connectionInfo.ssid.replace("\"", ""))
        wifiKeyView.setText(SaveKeyValues.getValue(LocaleConstant.WIFI_PASSWORD, "") as String)
    }
}