From 93a6357d66483adef834c78aaf2ead611b410117 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Wed, 31 Jul 2024 13:06:01 +0200 Subject: [PATCH] Refactor Android tutorial to ask the user for setting URLs in case they are not set in code Previously there was a settings button that opened a dialog to modify the URLs. Now that button has been removed and when the app starts, it checks if the variables are not set and if so, it starts a new activity to configure them --- .../app/src/main/AndroidManifest.xml | 3 + .../openvidu/android/ConfigureUrlsActivity.kt | 33 ++++ .../java/io/openvidu/android/MainActivity.kt | 46 +---- .../io/openvidu/android/RoomLayoutActivity.kt | 10 +- .../src/main/java/io/openvidu/android/Urls.kt | 8 + .../app/src/main/res/drawable/ic_settings.xml | 12 -- .../res/layout/activity_configure_urls.xml | 89 ++++++++++ .../app/src/main/res/layout/activity_main.xml | 167 ++++++++---------- .../src/main/res/layout/dialog_settings.xml | 26 --- .../app/src/main/res/values/strings.xml | 3 +- 10 files changed, 218 insertions(+), 179 deletions(-) create mode 100644 application-client/openvidu-android/app/src/main/java/io/openvidu/android/ConfigureUrlsActivity.kt create mode 100644 application-client/openvidu-android/app/src/main/java/io/openvidu/android/Urls.kt delete mode 100644 application-client/openvidu-android/app/src/main/res/drawable/ic_settings.xml create mode 100644 application-client/openvidu-android/app/src/main/res/layout/activity_configure_urls.xml delete mode 100644 application-client/openvidu-android/app/src/main/res/layout/dialog_settings.xml diff --git a/application-client/openvidu-android/app/src/main/AndroidManifest.xml b/application-client/openvidu-android/app/src/main/AndroidManifest.xml index 5eab0157..01ffe91b 100644 --- a/application-client/openvidu-android/app/src/main/AndroidManifest.xml +++ b/application-client/openvidu-android/app/src/main/AndroidManifest.xml @@ -21,6 +21,9 @@ android:supportsRtl="true" android:theme="@style/Theme.BasicAndroid" tools:targetApi="31"> + - applicationServerUrl = dialogBinding.serverUrl.text.toString() - livekitUrl = dialogBinding.livekitUrl.text.toString() - dialog.dismiss() - } - .setNegativeButton("Cancel") { dialog, _ -> - dialog.dismiss() - } - - val dialog = builder.create() - dialog.show() - } } \ No newline at end of file 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 f66dd9c0..ea4dc6c5 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 @@ -39,9 +39,6 @@ class RoomLayoutActivity : AppCompatActivity() { private lateinit var binding: ActivityRoomLayoutBinding private lateinit var participantAdapter: ParticipantAdapter - private lateinit var APPLICATION_SERVER_URL: String - private lateinit var LIVEKIT_URL: String - private lateinit var room: Room private val participantTracks: MutableList = mutableListOf() @@ -62,9 +59,6 @@ class RoomLayoutActivity : AppCompatActivity() { leaveRoom() } - APPLICATION_SERVER_URL = intent.getStringExtra("serverUrl") ?: "" - LIVEKIT_URL = intent.getStringExtra("livekitUrl") ?: "" - // Create Room object room = LiveKit.create(applicationContext) @@ -106,7 +100,7 @@ class RoomLayoutActivity : AppCompatActivity() { val token = getToken(roomName, participantName) // Connect to the room with the LiveKit URL and the token - room.connect(LIVEKIT_URL, token) + room.connect(Urls.livekitUrl, token) // Publish your camera and microphone val localParticipant = room.localParticipant @@ -227,7 +221,7 @@ class RoomLayoutActivity : AppCompatActivity() { * access to the endpoints. */ private suspend fun getToken(roomName: String, participantName: String): String { - val response = client.post(APPLICATION_SERVER_URL + "token") { + val response = client.post(Urls.applicationServerUrl + "token") { contentType(ContentType.Application.Json) setBody(TokenRequest(participantName, roomName)) } diff --git a/application-client/openvidu-android/app/src/main/java/io/openvidu/android/Urls.kt b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/Urls.kt new file mode 100644 index 00000000..7f897d9e --- /dev/null +++ b/application-client/openvidu-android/app/src/main/java/io/openvidu/android/Urls.kt @@ -0,0 +1,8 @@ +package io.openvidu.android + +object Urls { + // Configure these variables with correct URLs depending on your deployment + // If you leave them empty, the user will be prompted to enter the URLs + var applicationServerUrl = "" + var livekitUrl = "" +} \ No newline at end of file diff --git a/application-client/openvidu-android/app/src/main/res/drawable/ic_settings.xml b/application-client/openvidu-android/app/src/main/res/drawable/ic_settings.xml deleted file mode 100644 index 6abc6b78..00000000 --- a/application-client/openvidu-android/app/src/main/res/drawable/ic_settings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/application-client/openvidu-android/app/src/main/res/layout/activity_configure_urls.xml b/application-client/openvidu-android/app/src/main/res/layout/activity_configure_urls.xml new file mode 100644 index 00000000..30333bc2 --- /dev/null +++ b/application-client/openvidu-android/app/src/main/res/layout/activity_configure_urls.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + +