Update Android tutorial to use ViewBinding
This commit is contained in:
parent
824eca10d2
commit
495f780fa9
@ -7,6 +7,7 @@
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
/.idea/deploymentTargetSelector.xml
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
|
||||
@ -1,18 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetSelector">
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DropdownSelection timestamp="2024-07-11T11:01:29.457817100Z">
|
||||
<Target type="DEFAULT_BOOT">
|
||||
<handle>
|
||||
<DeviceId pluginId="LocalEmulator" identifier="path=C:\Users\usuario\.android\avd\Pixel_4_API_30.avd" />
|
||||
</handle>
|
||||
</Target>
|
||||
</DropdownSelection>
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
@ -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<FloatingActionButton>(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<EditText>(R.id.serverUrl)
|
||||
val liveKitUrl = dialogView.findViewById<EditText>(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, _ ->
|
||||
|
||||
@ -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<SurfaceViewRenderer>(R.id.renderer))
|
||||
room.initVideoRenderer(binding.renderer)
|
||||
|
||||
requestNeededPermissions { connectToRoom() }
|
||||
}
|
||||
@ -101,8 +104,8 @@ class RoomLayoutActivity : AppCompatActivity() {
|
||||
}
|
||||
|
||||
private fun attachVideo(videoTrack: VideoTrack) {
|
||||
videoTrack.addRenderer(findViewById<SurfaceViewRenderer>(R.id.renderer))
|
||||
findViewById<View>(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<SurfaceViewRenderer>(R.id.renderer))
|
||||
findViewById<View>(R.id.progress).visibility = View.VISIBLE
|
||||
videoTrack.removeRenderer(binding.renderer)
|
||||
binding.progress.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
private fun leaveRoom() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user