From f8dd82f592d5370e834a04561ef9d36e6c141198 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 13:21:11 +0100 Subject: [PATCH 1/6] added a first toast for start of image download --- .../ui/components/ZoomableContentDialog.kt | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 6413a3876..2f0816c0d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -24,6 +24,7 @@ import android.Manifest import android.content.Context import android.os.Build import android.view.WindowManager +import android.widget.Toast import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut @@ -54,6 +55,7 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.MutableState import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale @@ -235,10 +237,22 @@ private fun DialogContent( if (myContent !is MediaUrlContent || !myContent.url.endsWith(".m3u8")) { val localContext = LocalContext.current + val scope = rememberCoroutineScope() + val context = LocalContext.current + val writeStoragePermissionState = rememberPermissionState(Manifest.permission.WRITE_EXTERNAL_STORAGE) { isGranted -> if (isGranted) { saveMediaToGallery(myContent, localContext, accountViewModel) + scope.launch { + Toast + .makeText( + context, + // stringRes(context, R.string.secret_key_copied_to_clipboard), + "Media download has started...", + Toast.LENGTH_SHORT, + ).show() + } } } @@ -249,6 +263,15 @@ private fun DialogContent( writeStoragePermissionState.status.isGranted ) { saveMediaToGallery(myContent, localContext, accountViewModel) + scope.launch { + Toast + .makeText( + context, + // stringRes(context, R.string.secret_key_copied_to_clipboard), + "Media download has started...", + Toast.LENGTH_SHORT, + ).show() + } } else { writeStoragePermissionState.launchPermissionRequest() } From 1231a1483fb27f706f861e0ddb17b65db5d1940c Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 13:45:02 +0100 Subject: [PATCH 2/6] Corrected "added to profile gallery" toast text --- .../amethyst/ui/components/ZoomableContentView.kt | 4 ++-- amethyst/src/main/res/values/strings.xml | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 4383e9b60..380028fd6 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -676,10 +676,10 @@ fun ShareImageAction( text = { Text(stringRes(R.string.add_media_to_gallery)) }, onClick = { if (videoUri != null) { - var n19 = Nip19Bech32.uriToRoute(postNostrUri)?.entity as? Nip19Bech32.NEvent + val n19 = Nip19Bech32.uriToRoute(postNostrUri)?.entity as? Nip19Bech32.NEvent if (n19 != null) { accountViewModel.addMediaToGallery(n19.hex, videoUri, n19.relay[0], blurhash, dim, hash, mimeType) // TODO Whole list or first? - accountViewModel.toast(R.string.image_saved_to_the_gallery, R.string.image_saved_to_the_gallery) + accountViewModel.toast(R.string.media_saved, R.string.media_saved_to_profile_gallery) } } diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index cd766d436..967624d41 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -709,6 +709,8 @@ Copy URL to clipboard Copy Note ID to clipboard Add Media to Gallery + Media added + Media added to your Profile Gallery Created at Rules From ee20508e4b3097e51fc6d9b17a40facd9727cdce Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 13:56:39 +0100 Subject: [PATCH 3/6] added video download started toast --- .../amethyst/ui/components/VideoView.kt | 12 +++++++++++- .../amethyst/ui/components/ZoomableContentDialog.kt | 5 ++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt index 99da3c2fd..100893841 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt @@ -28,6 +28,7 @@ import android.net.Uri import android.os.Build import android.util.Log import android.view.View +import android.widget.Toast import androidx.annotation.OptIn import androidx.compose.animation.AnimatedVisibility import androidx.compose.animation.core.LinearEasing @@ -1189,9 +1190,18 @@ fun SaveButton(onSaveClick: (localContext: Context) -> Unit) { onSaveClick(localContext) } } - + val scope = rememberCoroutineScope() IconButton( onClick = { + scope.launch { + Toast + .makeText( + localContext, + // stringRes(context, R.string.secret_key_copied_to_clipboard), + "Video download has started...", + Toast.LENGTH_SHORT, + ).show() + } if ( Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q || writeStoragePermissionState.status.isGranted diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 2f0816c0d..302d12308 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -238,7 +238,6 @@ private fun DialogContent( val localContext = LocalContext.current val scope = rememberCoroutineScope() - val context = LocalContext.current val writeStoragePermissionState = rememberPermissionState(Manifest.permission.WRITE_EXTERNAL_STORAGE) { isGranted -> @@ -247,7 +246,7 @@ private fun DialogContent( scope.launch { Toast .makeText( - context, + localContext, // stringRes(context, R.string.secret_key_copied_to_clipboard), "Media download has started...", Toast.LENGTH_SHORT, @@ -266,7 +265,7 @@ private fun DialogContent( scope.launch { Toast .makeText( - context, + localContext, // stringRes(context, R.string.secret_key_copied_to_clipboard), "Media download has started...", Toast.LENGTH_SHORT, From 7999608f2857770983be771a1f29e3eedab6d89c Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 14:03:28 +0100 Subject: [PATCH 4/6] added translatable strings --- .../com/vitorpamplona/amethyst/ui/components/VideoView.kt | 3 +-- .../amethyst/ui/components/ZoomableContentDialog.kt | 6 ++---- amethyst/src/main/res/values/strings.xml | 2 ++ 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt index 100893841..77a52c90a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/VideoView.kt @@ -1197,8 +1197,7 @@ fun SaveButton(onSaveClick: (localContext: Context) -> Unit) { Toast .makeText( localContext, - // stringRes(context, R.string.secret_key_copied_to_clipboard), - "Video download has started...", + stringRes(localContext, R.string.video_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt index 302d12308..17d98c244 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentDialog.kt @@ -247,8 +247,7 @@ private fun DialogContent( Toast .makeText( localContext, - // stringRes(context, R.string.secret_key_copied_to_clipboard), - "Media download has started...", + stringRes(localContext, R.string.media_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } @@ -266,8 +265,7 @@ private fun DialogContent( Toast .makeText( localContext, - // stringRes(context, R.string.secret_key_copied_to_clipboard), - "Media download has started...", + stringRes(localContext, R.string.media_download_has_started_toast), Toast.LENGTH_SHORT, ).show() } diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 967624d41..2bd09a131 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -126,6 +126,8 @@ LN URL (outdated) Save to Gallery Image saved to the phone\'s photo gallery + Video download has started… + Media download has started… Failed to save the image Video saved to the phone\'s video gallery Failed to save the video From 21d80518c9030354c7a1614e037afb6b420cd855 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 14:07:06 +0100 Subject: [PATCH 5/6] strings refactor --- .../amethyst/ui/components/ZoomableContentView.kt | 2 +- amethyst/src/main/res/values/strings.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt index 380028fd6..020953990 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/components/ZoomableContentView.kt @@ -679,7 +679,7 @@ fun ShareImageAction( val n19 = Nip19Bech32.uriToRoute(postNostrUri)?.entity as? Nip19Bech32.NEvent if (n19 != null) { accountViewModel.addMediaToGallery(n19.hex, videoUri, n19.relay[0], blurhash, dim, hash, mimeType) // TODO Whole list or first? - accountViewModel.toast(R.string.media_saved, R.string.media_saved_to_profile_gallery) + accountViewModel.toast(R.string.media_added, R.string.media_added_to_profile_gallery) } } diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 2bd09a131..2b20ea93e 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -711,8 +711,8 @@ Copy URL to clipboard Copy Note ID to clipboard Add Media to Gallery - Media added - Media added to your Profile Gallery + Media added + Media added to your Profile Gallery Created at Rules From e88a36187d09577150cd8b317822181f6fc11636 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Mon, 30 Dec 2024 14:16:30 +0100 Subject: [PATCH 6/6] added translations --- amethyst/src/main/res/values-cs/strings.xml | 6 ++++++ amethyst/src/main/res/values-de/strings.xml | 6 ++++++ amethyst/src/main/res/values-pt-rBR/strings.xml | 6 ++++++ amethyst/src/main/res/values-sv-rSE/strings.xml | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/amethyst/src/main/res/values-cs/strings.xml b/amethyst/src/main/res/values-cs/strings.xml index 51cdbf94f..cd1ba2510 100644 --- a/amethyst/src/main/res/values-cs/strings.xml +++ b/amethyst/src/main/res/values-cs/strings.xml @@ -905,4 +905,10 @@ Pro otevření a stažení souboru nejsou nainstalovány žádné torrent aplikace. Vyberte seznam pro filtrování kanálu Odhlásit se na zámek zařízení + + Stahování videa bylo zahájeno… + Stahování médií bylo zahájeno… + Média přidána + Média přidána do vaší profilové galerie + diff --git a/amethyst/src/main/res/values-de/strings.xml b/amethyst/src/main/res/values-de/strings.xml index 7d32f82d5..0d90d8d27 100644 --- a/amethyst/src/main/res/values-de/strings.xml +++ b/amethyst/src/main/res/values-de/strings.xml @@ -910,4 +910,10 @@ anz der Bedingungen ist erforderlich Keine Torrent-Apps installiert, um die Datei zu öffnen und herunterzuladen. Liste zum Filtern des Feeds auswählen Beim Sperren des Geräts abmelden + + Der Videodownload wurde gestartet… + Der Mediendownload wurde gestartet… + Medien hinzugefügt + Medien wurden zu Ihrer Profilgalerie hinzugefügt + diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index eb1acea8a..34900eda0 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -905,4 +905,10 @@ Nenhum aplicativo torrent instalado para abrir e baixar o arquivo. Selecione uma lista para filtrar o feed Terminar sessão no bloqueio do dispositivo + + O download do vídeo foi iniciado… + O download da mídia foi iniciado… + Mídia adicionada + Mídia adicionada à sua Galeria de Perfil + diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index 98bcc4302..45f2a19e0 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -904,4 +904,10 @@ Inga torrent-appar installerade för att öppna och ladda ner filen. Välj en lista för att filtrera flödet Logga ut när enheten låses + + Nedladdning av video har startat… + Nedladdning av media har startat… + Media tillagd + Media har lagts till i ditt profilgalleri +