blob: a0569b540b45c4dd32bd49b260b7ce49a3a8239d [file] [log] [blame]
package com.google.chip.chiptool.provisioning
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import chip.devicecontroller.ChipDeviceController
import chip.devicecontroller.UnpairDeviceCallback
import com.google.chip.chiptool.ChipClient
import com.google.chip.chiptool.R
import com.google.chip.chiptool.clusterclient.AddressUpdateFragment
import com.google.chip.chiptool.databinding.UnpairDeviceFragmentBinding
import kotlinx.coroutines.*
class UnpairDeviceFragment : Fragment() {
private val deviceController: ChipDeviceController
get() = ChipClient.getDeviceController(requireContext())
private lateinit var scope: CoroutineScope
private lateinit var addressUpdateFragment: AddressUpdateFragment
private var _binding: UnpairDeviceFragmentBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = UnpairDeviceFragmentBinding.inflate(inflater, container, false)
scope = viewLifecycleOwner.lifecycleScope
addressUpdateFragment =
childFragmentManager.findFragmentById(R.id.addressUpdateFragment) as AddressUpdateFragment
binding.unpairDeviceBtn.setOnClickListener { scope.launch { unpairDeviceClick() } }
return binding.root
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
inner class ChipUnpairDeviceCallback : UnpairDeviceCallback {
override fun onError(status: Int, remoteDeviceId: Long) {
Log.d(TAG, "onError : $remoteDeviceId, $status")
}
override fun onSuccess(remoteDeviceId: Long) {
Log.d(TAG, "onSuccess : $remoteDeviceId")
}
}
private fun unpairDeviceClick() {
deviceController.unpairDeviceCallback(addressUpdateFragment.deviceId, ChipUnpairDeviceCallback())
}
companion object {
private const val TAG = "UnpairDeviceFragment"
fun newInstance(): UnpairDeviceFragment = UnpairDeviceFragment()
}
}