diff --git a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicSharePasswordFragment.kt b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicSharePasswordFragment.kt index 3695da8bcc..5d417f7cfa 100644 --- a/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicSharePasswordFragment.kt +++ b/app/src/main/java/com/infomaniak/drive/ui/publicShare/PublicSharePasswordFragment.kt @@ -17,6 +17,10 @@ */ package com.infomaniak.drive.ui.publicShare +import android.content.ActivityNotFoundException +import android.content.Context +import android.content.Intent +import android.net.Uri import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -24,6 +28,7 @@ import android.view.ViewGroup import androidx.core.widget.addTextChangedListener import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import com.infomaniak.drive.BuildConfig import com.infomaniak.drive.R import com.infomaniak.drive.databinding.FragmentPublicSharePasswordBinding import com.infomaniak.drive.ui.publicShare.PublicShareActivity.Companion.PUBLIC_SHARE_TAG @@ -31,6 +36,7 @@ import com.infomaniak.lib.core.api.ApiController import com.infomaniak.lib.core.models.ApiError import com.infomaniak.lib.core.utils.* import com.infomaniak.lib.core.utils.SnackbarUtils.showSnackbar +import com.infomaniak.lib.core.R as RCore class PublicSharePasswordFragment : Fragment() { @@ -44,11 +50,35 @@ class PublicSharePasswordFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?): Unit = with(binding) { super.onViewCreated(view, savedInstanceState) - setupValidationButton() + // TODO: Remove this and call setupValidationButton instead + // Also change the layout (description, button's title, input visibility) + passwordValidateButton.setOnClickListener { requireContext().openDeepLinkInBrowser(getPublicShareUrl()) } publicSharePasswordEditText.addTextChangedListener { publicSharePasswordLayout.error = null } } + //region Hack TODO: Remove this when the back will support bearer token + private fun getPublicShareUrl(): String { + return "${BuildConfig.SHARE_URL_V1}share/${publicShareViewModel.driveId}/${publicShareViewModel.publicShareUuid}" + } + + private fun Context.openDeepLinkInBrowser(url: String) = runCatching { + Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER).apply { + setData(Uri.parse(url)) + flags = Intent.FLAG_ACTIVITY_NO_HISTORY + }.also(::startActivity) + requireActivity().finishAndRemoveTask() + }.onFailure { exception -> + val errorMessage = if (exception is ActivityNotFoundException) { + RCore.string.browserNotFound + } else { + RCore.string.anErrorHasOccurred + } + + showToast(errorMessage) + } + //endregion + private fun setupValidationButton() = with(binding.passwordValidateButton) { initProgress(viewLifecycleOwner) setOnClickListener { diff --git a/app/src/main/res/layout/fragment_public_share_password.xml b/app/src/main/res/layout/fragment_public_share_password.xml index d3818c4156..0329350db3 100644 --- a/app/src/main/res/layout/fragment_public_share_password.xml +++ b/app/src/main/res/layout/fragment_public_share_password.xml @@ -45,7 +45,7 @@ app:layout_constraintEnd_toStartOf="@id/end" app:layout_constraintStart_toEndOf="@id/start" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="0.33"> + app:layout_constraintVertical_bias="0.4"> + app:passwordToggleTint="@color/iconColor" + tools:visibility="visible"> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 486bdd6d83..36c0bf9c88 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -142,6 +142,7 @@ Ein anderes Infomaniak-Profil verwenden Kostenlos testen Dokument öffnen + Im Browser öffnen Im Lese-Modus öffnen Einige Sekunden vorspulen Weiter @@ -554,6 +555,7 @@ Videodatei wird vom Videoplayer nicht unterstützt Bitte geben Sie das Passwort ein, das Sie erhalten haben, um auf den Inhalt zuzugreifen. Sicherer Inhalt + Passwortgeschützte Links sind in der mobilen Anwendung noch nicht verfügbar. Öffentlicher Freigabelink Durch mich Durch mein Team diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index ab19a52567..54bd24142f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -142,6 +142,7 @@ Utilizar otro perfil Infomaniak Probar gratuitamente Abrir el documento + Abrir en el navegador Abrir en modo de solo lectura Avanzar unos segundos Siguiente @@ -554,6 +555,7 @@ El archivo de vídeo no es compatible con el lector de vídeo Introduzca la contraseña que se le ha facilitado para acceder al contenido. Contenido seguro + Los enlaces protegidos por contraseña aún no están disponibles en la aplicación móvil. Enlace de uso compartido público Por mí Por mi equipo diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index a7a5c8cac4..b3a61d8d67 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -142,6 +142,7 @@ Utiliser un autre profil Infomaniak Tester gratuitement Ouvrir le document + Ouvrir dans le navigateur Ouvrir en lecture seule Avancer de quelques secondes Suivant @@ -554,6 +555,7 @@ Fichier vidéo non pris en charge par le lecteur vidéo Veuillez saisir le mot de passe qui vous a été fourni pour accéder au contenu. Contenu sécurisé + Les liens protégés par mot de passe ne sont pas encore disponibles sur l’application mobile. Lien de partage public Par moi Par mon équipe diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 82158fc15a..3f9e62774d 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -142,6 +142,7 @@ Utilizza un altro profilo Infomaniak Prova gratuitamente Aprire documento + Aprire nel browser Aprire in modalità di sola lettura Vai avanti di alcuni secondi Avanti @@ -554,6 +555,7 @@ File video non supportato dal lettore Inserite la password che vi è stata fornita per accedere al contenuto. Contenuto sicuro + I link protetti da password non sono ancora disponibili nell’applicazione mobile. Link di condivisione pubblica Da parte mia Da parte del mio team diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 62a9fb083b..7ca9e937c1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -153,6 +153,7 @@ Use a different Infomaniak profile Free trial Open document + Open in browser Open in read-only mode Forward a few seconds Next @@ -565,6 +566,7 @@ Video file not supported by the video player Please enter the password provided to access the content. Protected content + Password-protected links are not yet available on the mobile application. Public sharing link By me By my team