override fun onViewCreated()

in Camera2Extensions/app/src/main/java/com/example/android/camera2/extensions/fragments/CameraFragment.kt [206:248]


  override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    binding.texture.surfaceTextureListener = this

    extensionCharacteristics = cameraManager.getCameraExtensionCharacteristics(args.cameraId)
    supportedExtensions.addAll(extensionCharacteristics.supportedExtensions)
    if (currentExtension == -1) {
      currentExtension = supportedExtensions[0]
      currentExtensionIdx = 0
      binding.switchButton.text = getExtensionLabel(currentExtension)
    }

    binding.switchButton.setOnClickListener { v ->
      if (v.id == R.id.switch_button) {
        lifecycleScope.launch(Dispatchers.IO) {
          currentExtensionIdx = (currentExtensionIdx + 1) % supportedExtensions.size
          currentExtension = supportedExtensions[currentExtensionIdx]
          requireActivity().runOnUiThread {
            binding.switchButton.text = getExtensionLabel(currentExtension)
            restartPreview = true
          }
          try {
            cameraExtensionSession.stopRepeating()
            cameraExtensionSession.close()
          } catch (e: Exception) {
            Log.e(TAG, "Camera failure when closing camera extension")
          }
        }
      }
    }
    // React to user touching the capture button
    binding.captureButton.setOnTouchListener { _, event ->
      when (event.action) {
        MotionEvent.ACTION_DOWN -> {
          lifecycleScope.launch(Dispatchers.IO) {
            takePicture()
          }
        }
      }

      true
    }
  }