Updated disabled buttons when in pause

This commit is contained in:
Sylvain Berfini 2023-11-27 11:32:31 +01:00
parent 9094a167eb
commit 0bbab221a2
14 changed files with 68 additions and 33 deletions

View file

@ -30,7 +30,6 @@ project.tasks['preBuild'].dependsOn 'linphoneSdkSource'
android {
namespace 'org.linphone'
compileSdk 34
compileSdkPreview 'UpsideDownCake'
defaultConfig {
applicationId packageName
@ -38,17 +37,24 @@ android {
targetSdk 34
versionCode 60000
versionName "6.0.0"
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
applicationVariants.configureEach { variant ->
variant.outputs.configureEach {
outputFileName = "linphone-android-${variant.buildType.name}-${project.version}.apk"
}
}
buildTypes {
debug {
debuggable true
jniDebuggable true
resValue "string", "file_provider", packageName + ".fileprovider"
}
release {
minifyEnabled false
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
resValue "string", "file_provider", packageName + ".fileprovider"

View file

@ -71,7 +71,6 @@ class EndedCallFragment : GenericCallFragment() {
Log.i("$TAG Showing ended call fragment")
callViewModel.callDuration.observe(viewLifecycleOwner) { duration ->
// TODO FIXME: doesn't work
binding.chronometer.base = SystemClock.elapsedRealtime() - (1000 * duration)
// Do not start it!
}

View file

@ -877,7 +877,7 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
@WorkerThread
private fun canCallBePaused(): Boolean {
return ::currentCall.isInitialized && !currentCall.mediaInProgress() && when (currentCall.state) {
Call.State.StreamsRunning, Call.State.PausedByRemote, Call.State.Paused -> true
Call.State.StreamsRunning, Call.State.Pausing, Call.State.Paused -> true
else -> false
}
}

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false"
android:drawable="@drawable/shape_round_in_call_disabled_button_background" />
<item android:state_selected="true"
android:drawable="@drawable/shape_round_in_call_selected_green_button_background" />
<item android:state_pressed="true"
android:drawable="@drawable/shape_round_in_call_pressed_button_background" />
<item
android:drawable="@drawable/shape_round_in_call_button_background" />
</selector>

View file

@ -3,7 +3,7 @@
<item android:state_enabled="false"
android:drawable="@drawable/shape_round_in_call_disabled_button_background" />
<item android:state_selected="true"
android:drawable="@drawable/shape_round_in_call_selected_button_background" />
android:drawable="@drawable/shape_round_in_call_selected_red_button_background" />
<item android:state_pressed="true"
android:drawable="@drawable/shape_round_in_call_pressed_button_background" />
<item

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<size android:width="55dp" android:height="55dp" />
<solid android:color="@color/green_success_500"/>
</shape>

View file

@ -46,7 +46,7 @@
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/transfer"
app:layout_constraintDimensionRatio="1:1"
@ -61,7 +61,7 @@
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/phone_plus"
app:layout_constraintDimensionRatio="1:1"
@ -76,7 +76,7 @@
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/calls_list"
app:layout_constraintDimensionRatio="1:1"
@ -106,10 +106,11 @@
<ImageView
android:id="@+id/layout"
android:onClick="@{() -> viewModel.showNumpad()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/dialer"
app:layout_constraintDimensionRatio="1:1"
@ -124,7 +125,7 @@
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/chat_teardrop_text"
app:layout_constraintDimensionRatio="1:1"
@ -141,9 +142,9 @@
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_green"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/pause_call"
android:src="@{viewModel.isPaused ? @drawable/play : @drawable/pause, default=@drawable/pause}"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="@id/pause_call_label"
app:layout_constraintStart_toStartOf="@id/pause_call_label"
@ -153,10 +154,11 @@
<ImageView
android:id="@+id/record_call"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
@ -206,6 +208,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/layout_label"
android:onClick="@{() -> viewModel.showNumpad()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
@ -229,6 +232,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/pause_call_label"
android:onClick="@{() -> viewModel.togglePause()}"
android:enabled="@{viewModel.canBePaused}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
@ -241,6 +245,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/record_call_label"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"

View file

@ -44,7 +44,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/transfer"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -59,7 +59,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/phone_plus"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -74,7 +74,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/calls_list"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -103,11 +103,12 @@
<ImageView
android:id="@+id/layout"
android:onClick="@{() -> viewModel.showNumpad()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/dialer"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -138,8 +139,8 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:src="@drawable/pause_call"
android:background="@drawable/in_call_button_background_green"
android:src="@{viewModel.isPaused ? @drawable/play : @drawable/pause, default=@drawable/pause}"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/new_call_label"
@ -149,11 +150,12 @@
<ImageView
android:id="@+id/record_call"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
app:tint="@color/in_call_button_tint_color"
@ -199,6 +201,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/layout_label"
android:onClick="@{() -> viewModel.showNumpad()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/call_action_show_dialer"
@ -221,6 +224,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/pause_call_label"
android:onClick="@{() -> viewModel.togglePause()}"
android:enabled="@{viewModel.canBePaused}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"
@ -233,6 +237,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/record_call_label"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"

View file

@ -56,7 +56,7 @@
android:padding="@dimen/call_button_icon_padding"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:src="@{viewModel.isVideoEnabled ? @drawable/video_camera : @drawable/video_camera_slash, default=@drawable/video_camera}"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintHorizontal_bias="1"
app:layout_constraintHorizontal_chainStyle="packed"
@ -72,7 +72,7 @@
android:layout_marginEnd="16dp"
android:padding="@dimen/call_button_icon_padding"
android:src="@{viewModel.isMicrophoneMuted ? @drawable/microphone_slash : @drawable/microphone, default=@drawable/microphone}"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/toggle_video"
@ -86,7 +86,7 @@
android:layout_marginEnd="16dp"
android:padding="@dimen/call_button_icon_padding"
android:src="@{viewModel.isHeadsetEnabled ? @drawable/headset : viewModel.isBluetoothEnabled ? @drawable/bluetooth : viewModel.isSpeakerEnabled ? @drawable/speaker_high : @drawable/speaker_slash, default=@drawable/speaker_slash}"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/toggle_mute_mic"

View file

@ -58,7 +58,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/users"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -73,7 +73,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/calls_list"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -106,7 +106,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
android:src="@drawable/notebook"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
@ -136,7 +136,7 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/pause_call"
android:src="@drawable/pause"
android:background="@drawable/shape_round_in_call_disabled_button_background"
app:tint="@color/gray_500"
app:layout_constraintDimensionRatio="1:1"

View file

@ -129,7 +129,7 @@
android:padding="@dimen/call_button_icon_padding"
android:enabled="@{viewModel.isVideoAvailable}"
android:src="@{viewModel.isVideoEnabled ? @drawable/video_camera : @drawable/video_camera_slash, default=@drawable/video_camera}"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintTop_toTopOf="@id/toggle_mute_mic"
@ -146,7 +146,7 @@
android:layout_marginTop="20dp"
android:padding="@dimen/call_button_icon_padding"
android:src="@{viewModel.isMicrophoneMuted ? @drawable/microphone_slash : @drawable/microphone, default=@drawable/microphone}"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintTop_toBottomOf="@id/video_preview"
app:layout_constraintBottom_toTopOf="@id/join"
@ -161,7 +161,7 @@
android:layout_marginEnd="16dp"
android:padding="@dimen/call_button_icon_padding"
android:src="@drawable/speaker_slash"
android:background="@drawable/in_call_button_background"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintTop_toTopOf="@id/toggle_mute_mic"
app:layout_constraintBottom_toBottomOf="@id/toggle_mute_mic"

View file

@ -131,7 +131,7 @@
<item name="android:textSize">32sp</item>
<item name="android:gravity">center</item>
<item name="android:elevation">3dp</item>
<item name="android:background">@drawable/in_call_button_background</item>
<item name="android:background">@drawable/in_call_button_background_red</item>
</style>
<style name="in_call_extra_action_label_style">
<item name="android:fontFamily">@font/noto_sans</item>

View file

@ -13,4 +13,8 @@ plugins {
id 'com.android.library' version '8.1.4' apply false
id 'org.jetbrains.kotlin.android' version '1.9.0-RC' apply false
id 'com.google.gms.google-services' version '4.3.15' apply false
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}