From 345e8a067987a89629510918a44cc4fda5abbd0e Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 10 Nov 2020 15:06:51 +0100 Subject: [PATCH] i18n --- .../features/media/BaseAttachmentProvider.kt | 4 ++- .../media/DataAttachmentRoomProvider.kt | 11 +++++-- .../media/RoomEventsAttachmentProvider.kt | 30 +++++++++++++++---- vector/src/main/res/values/strings.xml | 2 ++ 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt b/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt index f99ed2e324..f8ffe99b77 100644 --- a/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt +++ b/vector/src/main/java/im/vector/app/features/media/BaseAttachmentProvider.kt @@ -22,6 +22,7 @@ import android.view.View import android.widget.ImageView import com.bumptech.glide.request.target.CustomViewTarget import com.bumptech.glide.request.transition.Transition +import im.vector.app.core.resources.StringProvider import im.vector.lib.attachmentviewer.AttachmentInfo import im.vector.lib.attachmentviewer.AttachmentSourceProvider import im.vector.lib.attachmentviewer.ImageLoaderTarget @@ -32,7 +33,8 @@ import java.io.File abstract class BaseAttachmentProvider( private val imageContentRenderer: ImageContentRenderer, - protected val fileService: FileService + protected val fileService: FileService, + protected val stringProvider: StringProvider ) : AttachmentSourceProvider { interface InteractionListener { diff --git a/vector/src/main/java/im/vector/app/features/media/DataAttachmentRoomProvider.kt b/vector/src/main/java/im/vector/app/features/media/DataAttachmentRoomProvider.kt index 70305f2fd8..289e9912dc 100644 --- a/vector/src/main/java/im/vector/app/features/media/DataAttachmentRoomProvider.kt +++ b/vector/src/main/java/im/vector/app/features/media/DataAttachmentRoomProvider.kt @@ -19,8 +19,10 @@ package im.vector.app.features.media import android.content.Context import android.view.View import androidx.core.view.isVisible +import im.vector.app.R import im.vector.app.core.date.DateFormatKind import im.vector.app.core.date.VectorDateFormatter +import im.vector.app.core.resources.StringProvider import im.vector.lib.attachmentviewer.AttachmentInfo import org.matrix.android.sdk.api.MatrixCallback import org.matrix.android.sdk.api.session.events.model.isVideoMessage @@ -33,7 +35,9 @@ class DataAttachmentRoomProvider( private val room: Room?, imageContentRenderer: ImageContentRenderer, private val dateFormatter: VectorDateFormatter, - fileService: FileService) : BaseAttachmentProvider(imageContentRenderer, fileService) { + fileService: FileService, + stringProvider: StringProvider +) : BaseAttachmentProvider(imageContentRenderer, fileService, stringProvider) { override fun getItemCount(): Int = attachments.size @@ -78,7 +82,10 @@ class DataAttachmentRoomProvider( val timeLineEvent = room?.getTimeLineEvent(item.eventId) if (timeLineEvent != null) { val dateString = dateFormatter.format(timeLineEvent.root.originServerTs, DateFormatKind.DEFAULT_DATE_AND_TIME) - overlayView?.updateWith("${position + 1} of ${attachments.size}", "${timeLineEvent.senderInfo.displayName} $dateString") + overlayView?.updateWith( + counter = stringProvider.getString(R.string.attachment_viewer_item_x_of_y, position + 1, attachments.size), + senderInfo = "${timeLineEvent.senderInfo.displayName} $dateString" + ) overlayView?.videoControlsGroup?.isVisible = timeLineEvent.root.isVideoMessage() } else { overlayView?.updateWith("", "") diff --git a/vector/src/main/java/im/vector/app/features/media/RoomEventsAttachmentProvider.kt b/vector/src/main/java/im/vector/app/features/media/RoomEventsAttachmentProvider.kt index 574751ec36..caaaabb4b3 100644 --- a/vector/src/main/java/im/vector/app/features/media/RoomEventsAttachmentProvider.kt +++ b/vector/src/main/java/im/vector/app/features/media/RoomEventsAttachmentProvider.kt @@ -19,8 +19,10 @@ package im.vector.app.features.media import android.content.Context import android.view.View import androidx.core.view.isVisible +import im.vector.app.R import im.vector.app.core.date.DateFormatKind import im.vector.app.core.date.VectorDateFormatter +import im.vector.app.core.resources.StringProvider import im.vector.lib.attachmentviewer.AttachmentInfo import org.matrix.android.sdk.api.MatrixCallback import org.matrix.android.sdk.api.session.Session @@ -42,8 +44,9 @@ class RoomEventsAttachmentProvider( private val attachments: List, imageContentRenderer: ImageContentRenderer, private val dateFormatter: VectorDateFormatter, - fileService: FileService -) : BaseAttachmentProvider(imageContentRenderer, fileService) { + fileService: FileService, + stringProvider: StringProvider +) : BaseAttachmentProvider(imageContentRenderer, fileService, stringProvider) { override fun getItemCount(): Int { return attachments.size @@ -128,7 +131,10 @@ class RoomEventsAttachmentProvider( super.overlayViewAtPosition(context, position) val item = attachments[position] val dateString = dateFormatter.format(item.root.originServerTs, DateFormatKind.DEFAULT_DATE_AND_TIME) - overlayView?.updateWith("${position + 1} of ${attachments.size}", "${item.senderInfo.displayName} $dateString") + overlayView?.updateWith( + counter = stringProvider.getString(R.string.attachment_viewer_item_x_of_y, position + 1, attachments.size), + senderInfo = "${item.senderInfo.displayName} $dateString" + ) overlayView?.videoControlsGroup?.isVisible = item.root.isVideoMessage() return overlayView } @@ -163,14 +169,28 @@ class RoomEventsAttachmentProvider( class AttachmentProviderFactory @Inject constructor( private val imageContentRenderer: ImageContentRenderer, private val vectorDateFormatter: VectorDateFormatter, + private val stringProvider: StringProvider, private val session: Session ) { fun createProvider(attachments: List): RoomEventsAttachmentProvider { - return RoomEventsAttachmentProvider(attachments, imageContentRenderer, vectorDateFormatter, session.fileService()) + return RoomEventsAttachmentProvider( + attachments, + imageContentRenderer, + vectorDateFormatter, + session.fileService(), + stringProvider + ) } fun createProvider(attachments: List, room: Room?): DataAttachmentRoomProvider { - return DataAttachmentRoomProvider(attachments, room, imageContentRenderer, vectorDateFormatter, session.fileService()) + return DataAttachmentRoomProvider( + attachments, + room, + imageContentRenderer, + vectorDateFormatter, + session.fileService(), + stringProvider + ) } } diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index 45d9d40ba6..8ac2b6410d 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -1852,6 +1852,8 @@ Rotate and crop Couldn\'t handle share data + %1$d of %2$d + MEDIA There are no media in this room FILES