From 495f780fa9145dc5468c4ded3c0145c06f220041 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Mon, 22 Jul 2024 12:58:26 +0200 Subject: [PATCH] Update Android tutorial to use ViewBinding --- .../openvidu-android/.gitignore | 1 + .../.idea/deploymentTargetSelector.xml | 18 ------- .../java/io/openvidu/android/MainActivity.kt | 49 ++++++++----------- .../io/openvidu/android/RoomLayoutActivity.kt | 17 ++++--- 4 files changed, 31 insertions(+), 54 deletions(-) delete mode 100644 application-client/openvidu-android/.idea/deploymentTargetSelector.xml diff --git a/application-client/openvidu-android/.gitignore b/application-client/openvidu-android/.gitignore index aa724b77..226d61ce 100644 --- a/application-client/openvidu-android/.gitignore +++ b/application-client/openvidu-android/.gitignore @@ -7,6 +7,7 @@ /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml +/.idea/deploymentTargetSelector.xml .DS_Store /build /captures diff --git a/application-client/openvidu-android/.idea/deploymentTargetSelector.xml b/application-client/openvidu-android/.idea/deploymentTargetSelector.xml deleted file mode 100644 index bae10838..00000000 --- a/application-client/openvidu-android/.idea/deploymentTargetSelector.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/application-client/openvidu-android/app/src/main/java/io/openvidu/android/MainActivity.kt b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/MainActivity.kt index 51fa1a97..6e2af8fd 100644 --- a/application-client/openvidu-android/app/src/main/java/io/openvidu/android/MainActivity.kt +++ b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/MainActivity.kt @@ -3,45 +3,38 @@ package io.openvidu.android import android.content.Intent import android.os.Bundle import android.view.LayoutInflater -import android.widget.Button -import android.widget.EditText import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity -import com.google.android.material.floatingactionbutton.FloatingActionButton +import io.openvidu.android.databinding.ActivityMainBinding +import io.openvidu.android.databinding.DialogSettingsBinding class MainActivity : AppCompatActivity() { - private lateinit var participantField: EditText - private lateinit var roomField: EditText - private lateinit var joinButton: Button + private lateinit var binding: ActivityMainBinding - private var applicationServerUrl = "https://192-168-1-136.openvidu-local.dev:6443/" - private var livekitUrl = "wss://192-168-1-136.openvidu-local.dev:7443/" + private var applicationServerUrl = "https://{YOUR-LAN-IP}.openvidu-local.dev:6443/" + private var livekitUrl = "wss://{YOUR-LAN-IP}.openvidu-local.dev:7443/" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) - participantField = findViewById(R.id.participantName) - roomField = findViewById(R.id.roomName) - joinButton = findViewById(R.id.joinButton) - val settingsButton = findViewById(R.id.settingsButton) + binding.participantName.setText("Participant %d".format((1..100).random())) - participantField.setText("Participant %d".format((1..100).random())) - - joinButton.setOnClickListener { + binding.joinButton.setOnClickListener { navigateToRoomLayoutActivity() } - settingsButton.setOnClickListener { + binding.settingsButton.setOnClickListener { showSettingsDialog() } } private fun navigateToRoomLayoutActivity() { - joinButton.isEnabled = false + binding.joinButton.isEnabled = false - val participantName = participantField.text.toString() - val roomName = roomField.text.toString() + val participantName = binding.participantName.text.toString() + val roomName = binding.roomName.text.toString() if (participantName.isNotEmpty() && roomName.isNotEmpty()) { val intent = Intent(this, RoomLayoutActivity::class.java) @@ -52,23 +45,21 @@ class MainActivity : AppCompatActivity() { startActivity(intent) } - joinButton.isEnabled = true + binding.joinButton.isEnabled = true } private fun showSettingsDialog() { - val dialogView = LayoutInflater.from(this).inflate(R.layout.dialog_settings, null) - val serverUrl = dialogView.findViewById(R.id.serverUrl) - val liveKitUrl = dialogView.findViewById(R.id.livekitUrl) + val dialogBinding = DialogSettingsBinding.inflate(LayoutInflater.from(this)) - serverUrl.setText(applicationServerUrl) - liveKitUrl.setText(livekitUrl) + dialogBinding.serverUrl.setText(applicationServerUrl) + dialogBinding.livekitUrl.setText(livekitUrl) val builder = AlertDialog.Builder(this) builder.setTitle("Configure URLs") - .setView(dialogView) + .setView(dialogBinding.root) .setPositiveButton("Save") { dialog, _ -> - applicationServerUrl = serverUrl.text.toString() - livekitUrl = liveKitUrl.text.toString() + applicationServerUrl = dialogBinding.serverUrl.text.toString() + livekitUrl = dialogBinding.livekitUrl.text.toString() dialog.dismiss() } .setNegativeButton("Cancel") { dialog, _ -> diff --git a/application-client/openvidu-android/app/src/main/java/io/openvidu/android/RoomLayoutActivity.kt b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/RoomLayoutActivity.kt index ab08c0f2..da5ea107 100644 --- a/application-client/openvidu-android/app/src/main/java/io/openvidu/android/RoomLayoutActivity.kt +++ b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/RoomLayoutActivity.kt @@ -22,12 +22,14 @@ import io.livekit.android.LiveKit import io.livekit.android.events.RoomEvent import io.livekit.android.events.collect import io.livekit.android.room.Room -import io.livekit.android.renderer.SurfaceViewRenderer import io.livekit.android.room.track.VideoTrack +import io.openvidu.android.databinding.ActivityRoomLayoutBinding import kotlinx.coroutines.launch import kotlinx.serialization.Serializable class RoomLayoutActivity : AppCompatActivity() { + private lateinit var binding: ActivityRoomLayoutBinding + private lateinit var APPLICATION_SERVER_URL: String private lateinit var LIVEKIT_URL: String @@ -42,7 +44,8 @@ class RoomLayoutActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_room_layout) + binding = ActivityRoomLayoutBinding.inflate(layoutInflater) + setContentView(binding.root) APPLICATION_SERVER_URL = intent.getStringExtra("serverUrl") ?: "" LIVEKIT_URL = intent.getStringExtra("livekitUrl") ?: "" @@ -51,7 +54,7 @@ class RoomLayoutActivity : AppCompatActivity() { room = LiveKit.create(applicationContext) // Setup the video renderer - room.initVideoRenderer(findViewById(R.id.renderer)) + room.initVideoRenderer(binding.renderer) requestNeededPermissions { connectToRoom() } } @@ -101,8 +104,8 @@ class RoomLayoutActivity : AppCompatActivity() { } private fun attachVideo(videoTrack: VideoTrack) { - videoTrack.addRenderer(findViewById(R.id.renderer)) - findViewById(R.id.progress).visibility = View.GONE + videoTrack.addRenderer(binding.renderer) + binding.progress.visibility = View.GONE } private fun onTrackUnsubscribed(event: RoomEvent.TrackUnsubscribed) { @@ -114,8 +117,8 @@ class RoomLayoutActivity : AppCompatActivity() { } private fun detachVideo(videoTrack: VideoTrack) { - videoTrack.removeRenderer(findViewById(R.id.renderer)) - findViewById(R.id.progress).visibility = View.VISIBLE + videoTrack.removeRenderer(binding.renderer) + binding.progress.visibility = View.VISIBLE } private fun leaveRoom() {