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