From 46ae3267812d19598d718d22b87c6180a6c0f2bf Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 6 Nov 2023 12:10:35 +0100 Subject: [PATCH] Improved chat image viewer --- app/build.gradle | 3 ++ .../ui/main/viewer/viewmodel/FileViewModel.kt | 10 ++++ .../res/layout/file_image_viewer_fragment.xml | 51 +++++++++++-------- settings.gradle | 1 + 4 files changed, 45 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 21cc6eb3f..c8a8e0642 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -106,6 +106,9 @@ dependencies { // https://github.com/tommybuonomo/dotsindicator/blob/master/LICENSE Apache v2.0 implementation("com.tbuonomo:dotsindicator:5.0") + // https://github.com/Baseflow/PhotoView/blob/master/LICENSE Apache v2.0 + implementation 'com.github.chrisbanes:PhotoView:2.3.0' + implementation platform('com.google.firebase:firebase-bom:32.3.1') implementation 'com.google.firebase:firebase-messaging' diff --git a/app/src/main/java/org/linphone/ui/main/viewer/viewmodel/FileViewModel.kt b/app/src/main/java/org/linphone/ui/main/viewer/viewmodel/FileViewModel.kt index eb5c5cb08..bd88d15f6 100644 --- a/app/src/main/java/org/linphone/ui/main/viewer/viewmodel/FileViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/viewer/viewmodel/FileViewModel.kt @@ -7,7 +7,17 @@ import androidx.lifecycle.ViewModel class FileViewModel @UiThread constructor() : ViewModel() { val path = MutableLiveData() + val fullScreenMode = MutableLiveData() + + init { + fullScreenMode.value = true + } + fun loadFile(file: String) { path.postValue(file) } + + fun toggleFullScreen() { + fullScreenMode.value = fullScreenMode.value != true + } } diff --git a/app/src/main/res/layout/file_image_viewer_fragment.xml b/app/src/main/res/layout/file_image_viewer_fragment.xml index 8052e375d..94b7ba7c7 100644 --- a/app/src/main/res/layout/file_image_viewer_fragment.xml +++ b/app/src/main/res/layout/file_image_viewer_fragment.xml @@ -22,16 +22,32 @@ + android:background="@color/black"> + + @@ -54,9 +72,11 @@ android:onClick="@{shareClickListener}" android:layout_width="wrap_content" android:layout_height="0dp" + android:background="@color/white" android:adjustViewBounds="true" android:padding="15dp" android:src="@drawable/share_network" + android:visibility="@{viewModel.fullScreenMode ? View.GONE : View.VISIBLE}" app:tint="@color/orange_main_500" app:layout_constraintBottom_toBottomOf="@id/title" app:layout_constraintEnd_toStartOf="@id/save" @@ -67,38 +87,29 @@ android:onClick="@{saveClickListener}" android:layout_width="wrap_content" android:layout_height="0dp" + android:background="@color/white" android:adjustViewBounds="true" android:padding="15dp" android:src="@drawable/download_simple" + android:visibility="@{viewModel.fullScreenMode ? View.GONE : View.VISIBLE}" app:tint="@color/orange_main_500" app:layout_constraintBottom_toBottomOf="@id/title" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="@id/title" /> - - diff --git a/settings.gradle b/settings.gradle index 6fa6629ca..d8d5dbba5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,6 +10,7 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + maven { url "https://www.jitpack.io" } // for com.github.chrisbanes:PhotoView maven { name "local linphone-sdk maven repository"