diff --git a/androidApp/src/main/java/com/telnyx/janusmessagesdk/android/MainActivity.kt b/androidApp/src/main/java/com/telnyx/janusmessagesdk/android/MainActivity.kt
index 0ca0510..3bb637a 100644
--- a/androidApp/src/main/java/com/telnyx/janusmessagesdk/android/MainActivity.kt
+++ b/androidApp/src/main/java/com/telnyx/janusmessagesdk/android/MainActivity.kt
@@ -1,36 +1,11 @@
package com.telnyx.janusmessagesdk.android
-import com.telnyx.janusmessagesdk.janus.JanusEvent
-import com.telnyx.janusmessagesdk.janus.RegisterSuccess
-import com.telnyx.janusmessagesdk.janus.decodeJanusMessage
+import androidx.appcompat.app.AppCompatActivity
+import android.os.Bundle
-
-fun main() {
-
- decodeJanusMessage("{\n" +
- " \"janus\": \"event\",\n" +
- " \"plugindata\": {\n" +
- " \"data\": {\n" +
- " \"result\": {\n" +
- " \"event\": \"registered\",\n" +
- " \"headers\": {},\n" +
- " \"master_id\": 2656454203,\n" +
- " \"register_sent\": true,\n" +
- " \"username\": \"isaac28055\"\n" +
- " },\n" +
- " \"sip\": \"event\"\n" +
- " },\n" +
- " \"plugin\": \"janus.plugin.sip\"\n" +
- " },\n" +
- " \"sender\": 485245946375374,\n" +
- " \"session_id\": 2496119861992003\n" +
- "}"){ event,data ->
- if (event == JanusEvent.REGISTERED){
- val suc = (data as RegisterSuccess)
- println(suc.plugindata?.data)
- }
+class MainActivity : AppCompatActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
}
-}
-
-
-
+}
\ No newline at end of file
diff --git a/androidApp/src/main/res/layout/activity_main.xml b/androidApp/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..0b15a20
--- /dev/null
+++ b/androidApp/src/main/res/layout/activity_main.xml
@@ -0,0 +1,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/androidApp/src/main/res/values/strings.xml b/androidApp/src/main/res/values/strings.xml
new file mode 100644
index 0000000..73862c4
--- /dev/null
+++ b/androidApp/src/main/res/values/strings.xml
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Call.kt b/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Call.kt
new file mode 100644
index 0000000..58b30b7
--- /dev/null
+++ b/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Call.kt
@@ -0,0 +1,35 @@
+package com.telnyx.janusmessagesdk.janus
+
+
+import com.google.gson.annotations.SerializedName
+
+data class Call(
+ @SerializedName("body")
+ val body: Body,
+ @SerializedName("handle_id")
+ val handleId: Long,
+ @SerializedName("janus")
+ val janus: String,
+ @SerializedName("jsep")
+ val jsep: Jsep,
+ @SerializedName("session_id")
+ val sessionId: Long,
+ @SerializedName("transaction")
+ val transaction: String
+) {
+ data class Body(
+ @SerializedName("autoaccept_reinvites")
+ val autoacceptReinvites: Boolean,
+ @SerializedName("request")
+ val request: String,
+ @SerializedName("uri")
+ val uri: String
+ )
+
+ data class Jsep(
+ @SerializedName("sdp")
+ val sdp: String,
+ @SerializedName("type")
+ val type: String
+ )
+}
\ No newline at end of file
diff --git a/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Trickle.kt b/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Trickle.kt
new file mode 100644
index 0000000..e083770
--- /dev/null
+++ b/shared/src/commonMain/kotlin/com/telnyx/janusmessagesdk/janus/Trickle.kt
@@ -0,0 +1,26 @@
+package com.telnyx.janusmessagesdk.janus
+
+
+import com.google.gson.annotations.SerializedName
+
+data class TrickleIce(
+ @SerializedName("candidate")
+ val candidate: Candidate,
+ @SerializedName("handle_id")
+ val handleId: Long,
+ @SerializedName("janus")
+ val janus: String,
+ @SerializedName("session_id")
+ val sessionId: Long,
+ @SerializedName("transaction")
+ val transaction: String
+) {
+ data class Candidate(
+ @SerializedName("candidate")
+ val candidate: String,
+ @SerializedName("sdpMLineIndex")
+ val sdpMLineIndex: Int,
+ @SerializedName("sdpMid")
+ val sdpMid: String
+ )
+}
\ No newline at end of file
diff --git a/versions.gradle b/versions.gradle
new file mode 100644
index 0000000..393f6bf
--- /dev/null
+++ b/versions.gradle
@@ -0,0 +1,159 @@
+ext.deps = [:]
+
+def versions = [:]
+versions.android_gradle_plugin = '7.1.3'
+versions.archComponents_version = '2.1.0'
+versions.google_play_services = "4.3.5"
+versions.kotlin = "1.5.10"
+versions.androidx_core = "1.3.2"
+versions.androidx_appcompat = "1.2.0"
+versions.androidx_fragment = "1.3.2"
+versions.material = "1.2.1"
+versions.androidx_constraint_layout = "2.0.4"
+versions.webrtc = "1.0.32006"
+versions.retrofit = "2.9.0"
+versions.gson = "2.8.9"
+versions.coroutines = "1.4.2"
+versions.websocket = "1.5.1"
+versions.okhttp = "4.9.0"
+versions.timber = "4.7.1"
+versions.dexter = "6.2.2"
+versions.googleservices = "4.3.4"
+versions.volley = "1.1.1"
+versions.firebasebom = "26.3.0"
+versions.hilt = "2.38.1"
+versions.dagger = "2.16"
+versions.legacySupportV4 = "1.0.0"
+versions.navigation = "2.2.0"
+versions.navigationSafeArgs = "2.3.5"
+versions.swipeToRefresh = "1.1.0"
+versions.moshiKotlin = "1.12.0"
+versions.moshiAdapters = "1.8.0"
+versions.cameraX = "1.0.1"
+versions.cameraxView = "1.0.0-alpha27"
+
+
+//Unit Testing
+versions.junit = '4.13.2'
+versions.mockito = '4.1.0'
+versions.mockito_kotlin = '3.2.0'
+versions.junit_platform = '1.0.2'
+versions.common_codec_version = '1.12'
+versions.core_testing = '2.1.0'
+versions.coroutines_test = '1.5.0'
+versions.mockk = "1.12.1"
+versions.ktor = "1.6.0"
+
+//Acceptance Testing
+versions.androidXTest = '1.3.0'
+versions.espresso = '3.4.0'
+versions.testExt = '1.1.1'
+versions.fragmentTesting = '1.1.1'
+versions.espressoContrib = '3.0.2'
+versions.espressoContribRecycler = '3.1.0'
+versions.webMockServer = '4.2.1'
+versions.mockk = '1.10.4'
+versions.jupiter = "5.8.2"
+versions.roboelectric = "4.5.1"
+versions.bugsnag = "5.+"
+
+ext.versions = versions
+
+def deps = [:]
+deps.google_play_services = "com.google.gms:google-services:$versions.google_play_services"
+deps.android_gradle_plugin = "com.android.tools.build:gradle:$versions.android_gradle_plugin"
+deps.androidx_core = "androidx.core:core-ktx:$versions.androidx_core"
+deps.androidx_fragment = "androidx.fragment:fragment-ktx:$versions.androidx_fragment"
+deps.appcompat = "androidx.appcompat:appcompat:$versions.androidx_appcompat"
+deps.material = "com.google.android.material:material:$versions.material"
+deps.constraint_layout = "androidx.constraintlayout:constraintlayout:$versions.androidx_constraint_layout"
+deps.volley = "com.android.volley:volley:$versions.volley"
+deps.webrtc = "org.webrtc:google-webrtc:$versions.webrtc"
+deps.gson = "com.google.code.gson:gson:$versions.gson"
+deps.websocket = "org.java-websocket:Java-WebSocket:$versions.websocket"
+deps.okhttp = "com.squareup.okhttp3:okhttp:$versions.okhttp"
+deps.interceptor = "com.squareup.okhttp3:logging-interceptor:$versions.okhttp"
+deps.timber = "com.jakewharton.timber:timber:$versions.timber"
+deps.dexter = "com.karumi:dexter:$versions.dexter"
+deps.firebasebom = "com.google.firebase:firebase-bom:$versions.firebasebom"
+deps.firebase_analytics = "com.google.firebase:firebase-analytics-ktx"
+deps.firebase_messaging = "com.google.firebase:firebase-messaging-ktx"
+deps.lifecycle_Compiler = "androidx.lifecycle:lifecycle-compiler:$versions.archComponents_version"
+deps.legacySupportV4 = "androidx.legacy:legacy-support-v4:$versions.legacySupportV4"
+deps.navigationFragment = "androidx.navigation:navigation-fragment-ktx:$versions.navigation"
+deps.navigationUi = "androidx.navigation:navigation-ui-ktx:$versions.navigation"
+deps.navigationSafeArgs = "androidx.navigation:navigation-safe-args-gradle-plugin:$versions.navigationSafeArgs"
+deps.swipeToRefresh= "androidx.swiperefreshlayout:swiperefreshlayout:$versions.swipeToRefresh"
+deps.moshiKotlin = "com.squareup.moshi:moshi-kotlin:$versions.moshiKotlin"
+deps.moshiAdapters = "com.squareup.moshi:moshi-adapters:$versions.moshiAdapters"
+deps.bugsnag = "com.bugsnag:bugsnag-android:$versions.bugsnag"
+deps.camera2 = "androidx.camera:camera-camera2:$versions.cameraX"
+deps.cameraLifecycle = "androidx.camera:camera-lifecycle:$versions.cameraX"
+deps.cameraxView = "androidx.camera:camera-view:$versions.cameraxView"
+
+def kotlin = [:]
+kotlin.plugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"
+kotlin.stdlib = "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"
+deps.kotlin = kotlin
+
+def retrofit = [:]
+retrofit.runtime = "com.squareup.retrofit2:retrofit:$versions.retrofit"
+retrofit.gson = "com.squareup.retrofit2:converter-gson:$versions.retrofit"
+deps.retrofit = retrofit
+
+def coroutines = [:]
+coroutines.core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$versions.coroutines"
+coroutines.android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:$versions.coroutines"
+deps.coroutines = coroutines
+
+def hilt = [:]
+hilt.plugin = "com.google.dagger:hilt-android-gradle-plugin:$versions.hilt"
+hilt.android = "com.google.dagger:hilt-android:$versions.hilt"
+hilt.compiler = "com.google.dagger:hilt-android-compiler:$versions.hilt"
+deps.hilt = hilt
+
+def ktor = [:]
+ktor.core = "io.ktor:ktor-server-core:$versions.ktor"
+ktor.client = "io.ktor:ktor-client-cio:$versions.ktor"
+deps.ktor = ktor
+
+def testing = [:]
+testing.junit = "junit:junit:$versions.junit"
+testing.mockitoCore = "org.mockito:mockito-core:$versions.mockito"
+testing.mockitoInline = "org.mockito:mockito-inline:$versions.mockito"
+testing.mockitoKotlin = "org.mockito.kotlin:mockito-kotlin:$versions.mockito_kotlin"
+testing.junitPlatformRunner = "org.junit.platform:junit-platform-runner:$versions.junit_platform"
+testing.commonsCodec = "commons-codec:commons-codec:$versions.common_codec_version"
+testing.coreTesting = "androidx.arch.core:core-testing:$versions.core_testing"
+testing.coroutinesTest = "org.jetbrains.kotlinx:kotlinx-coroutines-test:$versions.coroutines_test"
+testing.roboelectric = "org.robolectric:robolectric:$versions.roboelectric"
+testing.mockk = "io.mockk:mockk:$versions.mockk"
+testing.mockk_agent = "io.mockk:mockk-agent-jvm:$versions.mockk"
+deps.testing = testing
+
+def testingAcceptance = [:]
+testingAcceptance.testEspressoContrib = "com.android.support.test.espresso:espresso-contrib:$versions.espressoContrib"
+testingAcceptance.testEspressoContribRecycler = "androidx.test.espresso:espresso-contrib:$versions.espressoContribRecycler"
+testingAcceptance.testRunner = "androidx.test:runner:$versions.androidXTest"
+testingAcceptance.testRules = "androidx.test:rules:$versions.androidXTest"
+testingAcceptance.testExt = "androidx.test.ext:junit:$versions.testExt"
+testingAcceptance.webMockServer = "com.squareup.okhttp3:mockwebserver:$versions.webMockServer"
+testingAcceptance.testCore = "androidx.test:core:$versions.androidXTest"
+testingAcceptance.coreKtx = "androidx.test:core-ktx:$versions.androidXTest"
+testingAcceptance.espresso_core = "androidx.test.espresso:espresso-core:$versions.espresso"
+testingAcceptance.espresso_intent = "androidx.test.espresso:espresso-intents:$versions.espresso"
+testingAcceptance.mockk = "io.mockk:mockk-android:$versions.mockk"
+testingAcceptance.jupiter = "org.junit.jupiter:junit-jupiter-api:$versions.jupiter"
+testingAcceptance.jupiterEngine = "org.junit.jupiter:junit-jupiter-engine:$versions.jupiter"
+testingAcceptance.jupiterParams = "org.junit.jupiter:junit-jupiter-params:$versions.jupiter"
+
+deps.testingAcceptance = testingAcceptance
+
+def dagger = [:]
+dagger.android = "com.google.dagger:dagger-android:$versions.dagger"
+dagger.androidSupport = "com.google.dagger:dagger-android-support:$versions.dagger"
+dagger.compiler = "com.google.dagger:dagger-compiler:$versions.dagger"
+dagger.androidProcessor = "com.google.dagger:dagger-android-processor:$versions.dagger"
+deps.dagger = dagger
+
+ext.deps = deps
\ No newline at end of file