diff --git a/app/src/main/java/org/linphone/activities/call/viewmodels/IncomingCallViewModel.kt b/app/src/main/java/org/linphone/activities/call/viewmodels/IncomingCallViewModel.kt
index ed1079b99..32d36495a 100644
--- a/app/src/main/java/org/linphone/activities/call/viewmodels/IncomingCallViewModel.kt
+++ b/app/src/main/java/org/linphone/activities/call/viewmodels/IncomingCallViewModel.kt
@@ -23,6 +23,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import org.linphone.LinphoneApplication.Companion.coreContext
+import org.linphone.LinphoneApplication.Companion.corePreferences
import org.linphone.core.*
class IncomingCallViewModelFactory(private val call: Call) :
@@ -43,8 +44,10 @@ class IncomingCallViewModel(call: Call) : CallViewModel(call) {
init {
screenLocked.value = false
- inviteWithVideo.value = call.currentParams.videoEnabled()
- earlyMediaVideoEnabled.value = call.state == Call.State.IncomingEarlyMedia && call.currentParams.videoEnabled()
+ inviteWithVideo.value = call.remoteParams?.videoEnabled()
+ earlyMediaVideoEnabled.value = corePreferences.acceptEarlyMedia &&
+ call.state == Call.State.IncomingEarlyMedia &&
+ call.currentParams.videoEnabled()
}
fun answer(doAction: Boolean) {
diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt
index c2163287f..d1c4d4c46 100644
--- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt
+++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt
@@ -125,6 +125,13 @@ class CallSettingsViewModel : GenericSettingsViewModel() {
}
val voiceMailUri = MutableLiveData()
+ val acceptEarlyMediaListener = object : SettingListenerStub() {
+ override fun onBoolValueChanged(newValue: Boolean) {
+ prefs.acceptEarlyMedia = newValue
+ }
+ }
+ val acceptEarlyMedia = MutableLiveData()
+
val goToAndroidNotificationSettingsListener = object : SettingListenerStub() {
override fun onClicked() {
goToAndroidNotificationSettingsEvent.value = Event(true)
@@ -147,6 +154,7 @@ class CallSettingsViewModel : GenericSettingsViewModel() {
autoAnswerDelay.value = prefs.autoAnswerDelay
incomingTimeout.value = core.incTimeout
voiceMailUri.value = prefs.voiceMailUri
+ acceptEarlyMedia.value = prefs.acceptEarlyMedia
}
private fun initEncryptionList() {
diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt
index 96023bfcd..9cce212a1 100644
--- a/app/src/main/java/org/linphone/core/CorePreferences.kt
+++ b/app/src/main/java/org/linphone/core/CorePreferences.kt
@@ -157,6 +157,12 @@ class CorePreferences constructor(private val context: Context) {
config.setBool("app", "incoming_call_vibration", value)
}
+ var acceptEarlyMedia: Boolean
+ get() = config.getBool("sip", "incoming_calls_early_media", false)
+ set(value) {
+ config.setBool("sip", "incoming_calls_early_media", value)
+ }
+
var autoAnswerEnabled: Boolean
get() = config.getBool("app", "auto_answer", false)
set(value) {
diff --git a/app/src/main/res/layout-land/call_controls_fragment.xml b/app/src/main/res/layout-land/call_controls_fragment.xml
index 669457170..577a94474 100644
--- a/app/src/main/res/layout-land/call_controls_fragment.xml
+++ b/app/src/main/res/layout-land/call_controls_fragment.xml
@@ -42,14 +42,15 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:paddingTop="5dp" />
+ android:paddingTop="10dp" />
+ android:layout_gravity="center"
+ android:paddingBottom="10dp" />
diff --git a/app/src/main/res/layout/call_controls_fragment.xml b/app/src/main/res/layout/call_controls_fragment.xml
index 031e3c158..a60eaa472 100644
--- a/app/src/main/res/layout/call_controls_fragment.xml
+++ b/app/src/main/res/layout/call_controls_fragment.xml
@@ -42,14 +42,15 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:paddingTop="5dp" />
+ android:paddingTop="10dp" />
+ android:layout_gravity="center"
+ android:paddingBottom="10dp" />
diff --git a/app/src/main/res/layout/call_incoming_activity.xml b/app/src/main/res/layout/call_incoming_activity.xml
index 04f7c4e24..f66e02c58 100644
--- a/app/src/main/res/layout/call_incoming_activity.xml
+++ b/app/src/main/res/layout/call_incoming_activity.xml
@@ -39,50 +39,85 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ android:layout_centerInParent="true">
-
+
-
+
+
+
+
+
+
+
Incoming call timeout
in seconds
Voice mail URI
+ Accept early media
+
Android notification settings