From e103c3cd2a205f7140cc181308b9526f3da72960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20Kozi=C5=84ski?= Date: Tue, 29 Oct 2024 09:46:28 +0100 Subject: [PATCH] fix(settings): add open source licenses disclosure (#16) * fix(settings): add open source licenses disclosure * Smartling translations are completed for PR#16 from about-libraries (#17) * File Pocket/src/main/res/values/strings.xml was translated to de-DE locale * File Pocket/src/main/res/values/strings.xml was translated to zh-TW locale * File Pocket/src/main/res/values/strings.xml was translated to ko-KR locale * File Pocket/src/main/res/values/strings.xml was translated to pt-BR locale * File Pocket/src/main/res/values/strings.xml was translated to es-ES locale * File Pocket/src/main/res/values/strings.xml was translated to zh-CN locale * File Pocket/src/main/res/values/strings.xml was translated to fr-CA locale * File Pocket/src/main/res/values/strings.xml was translated to es-LA locale * File Pocket/src/main/res/values/strings.xml was translated to it-IT locale * File Pocket/src/main/res/values/strings.xml was translated to pl-PL locale * File Pocket/src/main/res/values/strings.xml was translated to ru-RU locale * File Pocket/src/main/res/values/strings.xml was translated to nl-NL locale * File Pocket/src/main/res/values/strings.xml was translated to pt-PT locale * File Pocket/src/main/res/values/strings.xml was translated to fr-FR locale * File Pocket/src/main/res/values/strings.xml was translated to ja-JP locale --------- Co-authored-by: smartling-github-connector[bot] <165276057+smartling-github-connector[bot]@users.noreply.github.com> --------- Co-authored-by: smartling-github-connector[bot] <165276057+smartling-github-connector[bot]@users.noreply.github.com> --- Pocket/build.gradle.kts | 3 + Pocket/src/main/AndroidManifest.xml | 7 - .../settings/OpenSourceLicensesFragment.kt | 44 ++++++ .../com/pocket/app/settings/PrefsFragment.kt | 61 ++++---- .../util/activity/BasicWebViewActivity.java | 136 ------------------ .../util/activity/FramedWebViewActivity.java | 32 ----- .../com/pocket/sdk2/braze/BrazeManager.kt | 4 - .../res/layout/activity_basic_webview.xml | 8 -- Pocket/src/main/res/layout/activity_web.xml | 22 --- Pocket/src/main/res/navigation/main_graph.xml | 11 +- Pocket/src/main/res/values-de/strings.xml | 6 +- Pocket/src/main/res/values-es-rES/strings.xml | 8 +- Pocket/src/main/res/values-es/strings.xml | 6 +- Pocket/src/main/res/values-fr-rCA/strings.xml | 6 +- Pocket/src/main/res/values-fr/strings.xml | 6 +- Pocket/src/main/res/values-it/strings.xml | 10 +- Pocket/src/main/res/values-ja/strings.xml | 4 +- Pocket/src/main/res/values-ko/strings.xml | 6 +- Pocket/src/main/res/values-nl/strings.xml | 8 +- Pocket/src/main/res/values-pl/strings.xml | 6 +- Pocket/src/main/res/values-pt-rBR/strings.xml | 14 +- Pocket/src/main/res/values-pt/strings.xml | 8 +- Pocket/src/main/res/values-ru/strings.xml | 6 +- Pocket/src/main/res/values-zh-rTW/strings.xml | 6 +- Pocket/src/main/res/values-zh/strings.xml | 6 +- Pocket/src/main/res/values/strings.xml | 4 +- buildSrc/build.gradle.kts | 1 + buildSrc/src/main/kotlin/Plugins.kt | 3 + gradle/libs.versions.toml | 3 + 29 files changed, 164 insertions(+), 281 deletions(-) create mode 100644 Pocket/src/main/java/com/pocket/app/settings/OpenSourceLicensesFragment.kt delete mode 100755 Pocket/src/main/java/com/pocket/sdk/util/activity/BasicWebViewActivity.java delete mode 100644 Pocket/src/main/java/com/pocket/sdk/util/activity/FramedWebViewActivity.java delete mode 100755 Pocket/src/main/res/layout/activity_basic_webview.xml delete mode 100644 Pocket/src/main/res/layout/activity_web.xml diff --git a/Pocket/build.gradle.kts b/Pocket/build.gradle.kts index 67e6d45..d449fab 100644 --- a/Pocket/build.gradle.kts +++ b/Pocket/build.gradle.kts @@ -11,6 +11,7 @@ plugins { kotlinSerialization() sentry() licensee() + aboutLibraries() } val versionMajor = 8 // Max value of 200 @@ -310,6 +311,8 @@ dependencies { implementation(Deps.JakeWharton.ThreeTenAbp.threeTen) + implementation(libs.aboutlibraries) + implementation(libs.adjust) implementation(libs.braze) diff --git a/Pocket/src/main/AndroidManifest.xml b/Pocket/src/main/AndroidManifest.xml index 2b89dab..6d2d976 100644 --- a/Pocket/src/main/AndroidManifest.xml +++ b/Pocket/src/main/AndroidManifest.xml @@ -133,13 +133,6 @@ android:configChanges="keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:windowSoftInputMode="adjustResize|stateAlwaysHidden" /> - - diff --git a/Pocket/src/main/java/com/pocket/app/settings/OpenSourceLicensesFragment.kt b/Pocket/src/main/java/com/pocket/app/settings/OpenSourceLicensesFragment.kt new file mode 100644 index 0000000..7e4cc3a --- /dev/null +++ b/Pocket/src/main/java/com/pocket/app/settings/OpenSourceLicensesFragment.kt @@ -0,0 +1,44 @@ +package com.pocket.app.settings + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.ViewGroup +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.Text +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.stringResource +import androidx.fragment.compose.content +import androidx.navigation.fragment.findNavController +import com.ideashower.readitlater.R +import com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer +import com.pocket.sdk.util.AbsPocketFragment +import com.pocket.ui.view.AppBar +import com.pocket.ui.view.button.PocketIconButton +import com.pocket.ui.view.button.UpIcon +import com.pocket.ui.view.themed.PocketTheme + +class OpenSourceLicensesFragment : AbsPocketFragment() { + override fun onCreateViewImpl( + inflater: LayoutInflater?, + container: ViewGroup?, + savedInstanceState: Bundle?, + ) = content { + PocketTheme { + Column { + AppBar( + navigationIcon = { + PocketIconButton(onClick = { findNavController().navigateUp() }) { + UpIcon() + } + }, + title = { Text(stringResource(R.string.setting_oss)) }, + ) + LibrariesContainer( + Modifier.fillMaxSize(), + showVersion = false, + ) + } + } + } +} diff --git a/Pocket/src/main/java/com/pocket/app/settings/PrefsFragment.kt b/Pocket/src/main/java/com/pocket/app/settings/PrefsFragment.kt index 27d8088..64f55a0 100644 --- a/Pocket/src/main/java/com/pocket/app/settings/PrefsFragment.kt +++ b/Pocket/src/main/java/com/pocket/app/settings/PrefsFragment.kt @@ -19,7 +19,6 @@ import com.pocket.app.CustomTabs import com.pocket.app.SaveExtension import com.pocket.app.UserManager import com.pocket.app.auth.AuthenticationActivity -import com.pocket.app.help.Help import com.pocket.app.reader.Reader import com.pocket.app.settings.account.AccountManagementFragment import com.pocket.app.settings.appicon.AppIcons @@ -40,7 +39,6 @@ import com.pocket.sdk.offline.cache.StorageLocationPickerDialog import com.pocket.sdk.preferences.AppPrefs import com.pocket.sdk.util.AbsPocketActivity import com.pocket.sdk.util.DeepLinks -import com.pocket.sdk.util.activity.FramedWebViewActivity import com.pocket.sdk.util.dialog.AlertMessaging import com.pocket.sdk.util.dialog.ProgressDialogFragment import com.pocket.sdk.util.file.AndroidStorageUtil @@ -533,49 +531,56 @@ class PrefsFragment : AbsPrefsFragment() { newOpenUrlPref( R.string.setting_help, "https://help.getpocket.com/", - false ) ) + + // Legal & Privacy prefs.add( newOpenUrlPref( - R.string.setting_twitter_label, - "https://twitter.com/intent/user?screen_name=Pocket", - false + R.string.setting_tos, + "https://getpocket.com/en/tos/", ) ) prefs.add( newOpenUrlPref( - R.string.setting_facebook_label, - "https://facebook.com/readitlater", - false + R.string.setting_privacy, + "https://getpocket.com/en/privacy/", ) ) + prefs.add(PreferenceViews.newActionBuilder(this, R.string.setting_oss) + .setOnClickListener { + findNavController().navigateSafely(PrefsFragmentDirections.goToOpenSourceLicenses()) + } + .build()) + + // Contact Us prefs.add( newOpenUrlPref( - R.string.setting_legal_label, - "https://getpocket.com/legal?src=android", - true + R.string.setting_contact_us, + "https://getpocket.com/contact-info/" ) ) - - // Contact Us prefs.add( newOpenUrlPref( - R.string.setting_contact_us, - "https://getpocket.com/contact-info/", - false + R.string.setting_twitter_label, + "https://twitter.com/intent/user?screen_name=Pocket", + ) + ) + prefs.add( + newOpenUrlPref( + R.string.setting_facebook_label, + "https://facebook.com/readitlater", ) ) // Version prefs.add(PreferenceViews.newHeader(this, R.string.setting_header_version)) - val versionNumber = PreferenceViews.newActionBuilder( - this, - getString(R.string.setting_version_label, BuildConfig.VERSION_NAME) + prefs.add( + PreferenceViews.newActionBuilder(this, getString(R.string.setting_version_label, BuildConfig.VERSION_NAME)) + .setSummaryDefaultUnchecked(R.string.setting_thank_you) + .build() ) - .setSummaryDefaultUnchecked(R.string.setting_thank_you) - prefs.add(versionNumber.build()) if (mode.isForInternalCompanyOnly) { prefs.add( @@ -597,17 +602,9 @@ class PrefsFragment : AbsPrefsFragment() { .build()) } - private fun newOpenUrlPref(label: Int, url: String, inPocket: Boolean): Preference { + private fun newOpenUrlPref(label: Int, url: String): Preference { return PreferenceViews.newActionBuilder(this, label) - .setOnClickListener { - if (inPocket) { - val intent = Intent(activity, FramedWebViewActivity::class.java) - intent.putExtra(FramedWebViewActivity.PATH, url) - requireActivity().startActivity(intent) - } else { - App.viewUrl(activity, url) - } - } + .setOnClickListener { App.viewUrl(activity, url) } .build() } diff --git a/Pocket/src/main/java/com/pocket/sdk/util/activity/BasicWebViewActivity.java b/Pocket/src/main/java/com/pocket/sdk/util/activity/BasicWebViewActivity.java deleted file mode 100755 index 7c1cc0a..0000000 --- a/Pocket/src/main/java/com/pocket/sdk/util/activity/BasicWebViewActivity.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.pocket.sdk.util.activity; - -import android.content.Intent; -import android.graphics.Color; -import android.net.Uri; -import android.os.Bundle; -import android.view.View; -import android.webkit.WebSettings; -import android.webkit.WebView; -import android.webkit.WebViewClient; - -import com.ideashower.readitlater.R; -import com.pocket.app.help.Help; -import com.pocket.sdk.api.generated.enums.CxtView; -import com.pocket.sdk.util.AbsPocketActivity; -import com.pocket.util.android.IntentUtils; - -import org.apache.commons.lang3.StringUtils; - -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -public class BasicWebViewActivity extends AbsPocketActivity { - - public static final String PATH = "pathToLoad"; - public static final String EXTRA_POST_ACCOUNT = "postAccount"; - - // Views - private WebView mWebView = null; - - @Override - public CxtView getActionViewName() { - return CxtView.BASICWEBVIEWACTIVITY; // REVIEW this is kinda weird... - } - - @SuppressWarnings("deprecation") - @Override - public void onCreate(Bundle savedInstanceState) { - mIsHelpActivity = true; - - super.onCreate(savedInstanceState); - - setContentView(getLayoutId()); - - Intent intent = getIntent(); - String path = intent.getStringExtra(PATH); - boolean postAccount = intent.getBooleanExtra(EXTRA_POST_ACCOUNT, false); - - if (path == null){ - startDefaultActivity(); // OPT throw - return; - } - - mWebView = (WebView) findViewById(getWebViewResId()); - - mWebView.setWebViewClient(new HookClient()); - - WebSettings settings = mWebView.getSettings(); - settings.setJavaScriptEnabled(true); - settings.setBuiltInZoomControls(true); - settings.setLoadWithOverviewMode(true); - settings.setSaveFormData(false); - settings.setSavePassword(false); - settings.setUseWideViewPort(path.startsWith("file") ? false : true); // If it is a local file, the viewport will be setup in html - - mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); - mWebView.setBackgroundColor(Color.TRANSPARENT); - - if (postAccount) { - /* REVIEW Do we still need this? If so, switch to use the oauth token - String postData = "username="+User.getUsername()+"&password="+User.getPassword(); - mWebView.postUrl(path, EncodingUtils.getBytes(postData, "BASE64")); - */ - - } else { - Map headers = new HashMap(); - String lang = Locale.getDefault().getLanguage(); - String country = Locale.getDefault().getCountry(); - headers.put("Accept-Language", lang + "-" + country); - - mWebView.loadUrl(path,headers); - } - - } - - protected int getLayoutId() { - return R.layout.activity_basic_webview; - } - - - protected int getWebViewResId(){ - return R.id.basic_webview; - } - - private class HookClient extends WebViewClient { - - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - - // Search for hooks - - if (url.startsWith("browser::")){ - startActivity(new Intent("android.intent.action.VIEW", Uri.parse(StringUtils.replaceOnce(url, "browser::", "")))); - return true; - - } else if(url.startsWith("webview::")){ - Intent intent = new Intent(BasicWebViewActivity.this, BasicWebViewActivity.class); - intent.putExtra(BasicWebViewActivity.PATH, StringUtils.replaceOnce(url, "webview::", "")); - startActivity(intent); - return true; - - } else if (url.startsWith("mailto:")){ - Intent intent = new Intent(Intent.ACTION_SEND); - intent.setType("plain/text"); - intent.putExtra(Intent.EXTRA_EMAIL, new String[]{ StringUtils.replaceOnce(url, "mailto:", "")}); - - if(IntentUtils.isActivityIntentAvailable(BasicWebViewActivity.this, intent)){ - startActivity(intent); - } - return true; - - } else { - return false; - - } - - } - } - - @Override - protected ActivityAccessRestriction getAccessType() { - return ActivityAccessRestriction.ANY; - } - -} diff --git a/Pocket/src/main/java/com/pocket/sdk/util/activity/FramedWebViewActivity.java b/Pocket/src/main/java/com/pocket/sdk/util/activity/FramedWebViewActivity.java deleted file mode 100644 index e62a3f9..0000000 --- a/Pocket/src/main/java/com/pocket/sdk/util/activity/FramedWebViewActivity.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.pocket.sdk.util.activity; - -import android.os.Bundle; - -import com.ideashower.readitlater.R; -import com.pocket.ui.view.AppBar; - -public class FramedWebViewActivity extends BasicWebViewActivity { - - public static final String EXTRA_TITLE = "com.ideashower.readitlater.extra.title"; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - AppBar appBar = findViewById(R.id.appbar); - appBar.bind() - .withUpArrow() - .onLeftIconClick(v -> finish()) - .title(getIntent().getStringExtra(EXTRA_TITLE)); - } - - @Override - protected int getLayoutId() { - return R.layout.activity_web; - } - - @Override - protected int getWebViewResId(){ - return R.id.webview; - } -} \ No newline at end of file diff --git a/Pocket/src/main/java/com/pocket/sdk2/braze/BrazeManager.kt b/Pocket/src/main/java/com/pocket/sdk2/braze/BrazeManager.kt index 09a0444..501a5eb 100644 --- a/Pocket/src/main/java/com/pocket/sdk2/braze/BrazeManager.kt +++ b/Pocket/src/main/java/com/pocket/sdk2/braze/BrazeManager.kt @@ -13,8 +13,6 @@ import com.pocket.app.add.AddActivity import com.pocket.app.auth.AuthenticationActivity import com.pocket.app.settings.Theme import com.pocket.sdk.tts.ListenDeepLinkActivity -import com.pocket.sdk.util.activity.BasicWebViewActivity -import com.pocket.sdk.util.activity.FramedWebViewActivity import com.pocket.sdk2.api.legacy.PocketCache import com.pocket.util.android.PPActivity import dagger.hilt.android.qualifiers.ApplicationContext @@ -41,8 +39,6 @@ class BrazeManager @Inject constructor( AppCacheCheckActivity::class.java, ListenDeepLinkActivity::class.java, PPActivity::class.java, - BasicWebViewActivity::class.java, - FramedWebViewActivity::class.java, ) ) ) diff --git a/Pocket/src/main/res/layout/activity_basic_webview.xml b/Pocket/src/main/res/layout/activity_basic_webview.xml deleted file mode 100755 index a4d1357..0000000 --- a/Pocket/src/main/res/layout/activity_basic_webview.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/Pocket/src/main/res/layout/activity_web.xml b/Pocket/src/main/res/layout/activity_web.xml deleted file mode 100644 index f898994..0000000 --- a/Pocket/src/main/res/layout/activity_web.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/Pocket/src/main/res/navigation/main_graph.xml b/Pocket/src/main/res/navigation/main_graph.xml index 033dc91..4dc2fa9 100644 --- a/Pocket/src/main/res/navigation/main_graph.xml +++ b/Pocket/src/main/res/navigation/main_graph.xml @@ -77,6 +77,10 @@ android:id="@+id/goToAppIconSettings" app:destination="@id/appIconSettings" /> + - \ No newline at end of file + + + diff --git a/Pocket/src/main/res/values-de/strings.xml b/Pocket/src/main/res/values-de/strings.xml index 99023be..990d5a5 100644 --- a/Pocket/src/main/res/values-de/strings.xml +++ b/Pocket/src/main/res/values-de/strings.xml @@ -218,7 +218,7 @@ Wenn du die Speicherorte änderst, werden deine heruntergeladenen Dateien gelöscht. Kein Speicherplatz - Der Offline-Speicherort hat keinen Speicherplatz mehr. Um einwandfrei zu funktionieren, benötigt Pocket zusätzlichen Speicherplatz. Bitte gib Speicherplatz frei, um fortzufahren. Um Speicherplatz freizugeben, kannst du zum Beispiel den Offline-Zwischenspeicher von Pocket leeren. + Der Offline-Speicherort hat keinen Speicherplatz mehr. Um einwandfrei zu funktionieren, benötigt Pocket zusätzlichen Speicherplatz. Bitte gib Speicherplatz frei, um fortzufahren. Um Platz zu machen, kannst du zum Beispiel Pockets Offline-Zwischenspeicher leeren. "Wenn die Speicherkapazität deines Geräts begrenzt ist, kannst du in den {name_of_storage_setting}-Einstellungen von Pocket festlegen, wie viel Platz der Zwischenspeicher maximal einnehmen darf." @@ -436,7 +436,9 @@ Hilfe und Support erhalten Folge @Pocket auf Twitter Folge uns auf Facebook - Rechtliches & Datenschutz + AGB + Datenschutzrichtlinie + Open-Source-Lizenzen Kontaktiere uns Danke fürs Herunterladen. Viel Spaß! Version diff --git a/Pocket/src/main/res/values-es-rES/strings.xml b/Pocket/src/main/res/values-es-rES/strings.xml index 069659c..f98e142 100644 --- a/Pocket/src/main/res/values-es-rES/strings.xml +++ b/Pocket/src/main/res/values-es-rES/strings.xml @@ -227,7 +227,7 @@ Esto borrará tu caché de datos sin conexión y se empezará a usar el almacenamiento interno del dispositivo. Por favor, inicia sesión - Tu sesión se ha cerrado desde otra ubicación. Vuelve a iniciar sesión. + Tu sesión se ha cerrado desde otra ubicación. Vuelve a intentarlo. Las etiquetas no pueden tener más de 25 caracteres. @@ -436,7 +436,9 @@ Obtener ayuda y soporte Sigue a @Pocket en Twitter Síguenos en Facebook - Condiciones y privacidad + Condiciones de servicio + Política de privacidad + Licencias de código abierto Contacto Gracias por descargarla. ¡Disfrútala! Versión @@ -477,7 +479,7 @@ Error de activación La compra se ha realizado correctamente, pero ha habido un problema al activar tu cuenta. Pulsa «Aceptar» para ver instrucciones sobre cómo completar la activación. La compra no se ha podido realizar - Ha ocurrido un problema al realizar tu compra. Vuelve a intentarlo. + Ha ocurrido un problema al realizar tu compra. Vuelve a intentarlo. Completando la compra… Ya tenías una suscripción Ya tenías una suscripción a Pocket Premium. diff --git a/Pocket/src/main/res/values-es/strings.xml b/Pocket/src/main/res/values-es/strings.xml index bb2eb5c..4b7d1d8 100644 --- a/Pocket/src/main/res/values-es/strings.xml +++ b/Pocket/src/main/res/values-es/strings.xml @@ -218,7 +218,7 @@ Cambiar la ubicación de almacenamiento eliminará tus archivos descargados. Sin espacio de almacenamiento - La ubicación de almacenamiento de datos sin conexión a Internet de Pocket se ha quedado sin espacio libre. Pocket precisa más espacio libre para seguir funcionando. Habilita un poco de espacio para continuar. Para obtener más espacio, puedes borrar la caché de datos sin conexión de Pocket. + La ubicación de almacenamiento de datos sin conexión a Internet de Pocket se ha quedado sin espacio libre. Pocket precisa más espacio libre para seguir funcionando. Habilita un poco de espacio para continuar. Para obtener más espacio, puedes borrar la caché sin conexión de Pocket. "Si tu dispositivo tiene memoria limitada, usa la opción {name_of_storage_setting} de Pocket para limitar cuánto espacio puede usar el caché de Pocket." @@ -436,7 +436,9 @@ Obtener ayuda y soporte técnico Síguenos en Twitter @Pocket Síguenos en Facebook - Aviso legal y confidencialidad + Términos del Servicio + Política de privacidad + Licencias de código abierto Contáctanos Gracias por descargar. ¡Disfrútalo! Versión diff --git a/Pocket/src/main/res/values-fr-rCA/strings.xml b/Pocket/src/main/res/values-fr-rCA/strings.xml index 772bd31..5537c0e 100644 --- a/Pocket/src/main/res/values-fr-rCA/strings.xml +++ b/Pocket/src/main/res/values-fr-rCA/strings.xml @@ -235,7 +235,7 @@ Les modifications à vos balises n\'ont pas encore été sauvegardées. Voulez-vous annuler les modifications ou continuer l\'édition? Amazon Appstore introuvable - Pour une raison inattendue, l\'application Amazon Appstore n\'a pu être ouverte. Nous sommes désolés! + Pour une raison inattendue, l\'application Amazon Appstore n\'a pu être ouverte. Nous sommes désolés! Navigateur introuvable Votre appareil ne contient pas d\'application de navigation pour ouvrir cette page Web. @@ -436,7 +436,9 @@ Obtenir de l\'aide et du soutien Suivez @Pocket sur Twitter Suivez-nous sur Facebook - Avis juridique et Confidentialité + Conditions générales d\'utilisation + Politique de confidentialité + Licences Open Source Contactez-nous Merci d\'avoir téléchargé. Amusez-vous bien! Version diff --git a/Pocket/src/main/res/values-fr/strings.xml b/Pocket/src/main/res/values-fr/strings.xml index 6f6af8a..6080415 100644 --- a/Pocket/src/main/res/values-fr/strings.xml +++ b/Pocket/src/main/res/values-fr/strings.xml @@ -374,7 +374,7 @@ Aucun élément ne correspond à votre recherche. S\'organiser avec les labels - Grâce aux labels, vous retrouvez plus facilement vos éléments de Sauvegardes à l\'aide de la recherche ou des filtres.\n\nPour créer un label, saisissez son intitulé ci-dessus. + Grâce aux labels, vous retrouvez plus facilement vos éléments de Sauvegardes à l\'aide de la recherche ou des filtres.\n\nPour créer un label, saisissez-en un ci-dessus. Compte @@ -436,7 +436,9 @@ Obtenir de l\'aide et une assistance technique Suivez @Pocket sur Twitter. Suivez-nous sur Facebook. - Mentions légales et vie privée + Conditions générales d\'utilisation + Politique de confidentialité + Licences open source Nous contacter Merci pour votre téléchargement. Bonne utilisation ! Version diff --git a/Pocket/src/main/res/values-it/strings.xml b/Pocket/src/main/res/values-it/strings.xml index e81844b..92ac6ce 100644 --- a/Pocket/src/main/res/values-it/strings.xml +++ b/Pocket/src/main/res/values-it/strings.xml @@ -211,7 +211,7 @@ La cache offline non è stata trovata. Assicurati che il percorso di archiviazione offline sia adeguatamente collegato. Se hai riorganizzato o modificato i file di cache, ripristinali e riprova di nuovo. Contenuto offline non accessibile - "Pocket non ha più l'autorizzazione Spazio di archiviazione e non può accedere alla cache offline. Per continuare ad utilizzare un archivio esterno, riattivare l'autorizzazione Spazio di archiviazione per Pocket oppure passare all'archivio interno." + "Pocket non ha più l'autorizzazione all'archiviazione e non può accedere alla cache offline. Per continuare ad utilizzare un archivio esterno, riattivare l'autorizzazione Spazio di archiviazione per Pocket oppure passare all'archivio interno." Siamo spiacenti ma Pocket ha problemi ad accedere alla scheda SD. Abbiamo inviato una segnalazione in modo che il nostro team Android possa analizzare il problema. Nel frattempo, continua a utilizzare lo spazio di archiviazione interno per Pocket. @@ -235,7 +235,7 @@ Le modifiche ai tag non sono ancora state salvate. Eliminare le modifiche o continuare a modificare? Amazon Appstore non trovato - Errore imprevisto, impossibile aprire l\'app dell\'Amazon Appstore. Ci scusiamo per l\'inconveniente. + Errore imprevisto, impossibile aprire l\'app dell\'Amazon Appstore. Ci scusiamo per l\'inconveniente! Browser non trovato Il dispositivo non ha un\'applicazione browser per aprire questa pagina web. @@ -264,7 +264,7 @@ Autoplay articoli Archiviazione automatica dopo l\'ascolto - Il nostro server sta impiegando troppo tempo per rispondere. Riprova più tardi. + Il nostro server sta impiegando troppo tempo per rispondere. Riprova più tardi Si è verificato un errore di riproduzione inatteso Si è verificato un problema di riproduzione dell\'articolo. Prova a passare a un\'altra voce. @@ -436,7 +436,9 @@ Ottieni assistenza e supporto Segui @Pocket su Twitter Seguici su Facebook - Informazioni legali e privacy + Condizioni d\'uso + Tutela della privacy + Licenze open source Contatti Grazie per il download. Divertiti! Versione diff --git a/Pocket/src/main/res/values-ja/strings.xml b/Pocket/src/main/res/values-ja/strings.xml index ae26597..a609951 100644 --- a/Pocket/src/main/res/values-ja/strings.xml +++ b/Pocket/src/main/res/values-ja/strings.xml @@ -426,7 +426,9 @@ サポートに問い合わせる Twitter で @Pocket をフォロー Facebook でフォロー - 法関連&プライバシー + サービス利用規約 + プライバシーポリシー + オープンソースライセンス お問い合わせ ダウンロードしていただき、ありがとうございます。お楽しみください! バージョン diff --git a/Pocket/src/main/res/values-ko/strings.xml b/Pocket/src/main/res/values-ko/strings.xml index 3ff8194..4d21637 100644 --- a/Pocket/src/main/res/values-ko/strings.xml +++ b/Pocket/src/main/res/values-ko/strings.xml @@ -214,7 +214,7 @@ 저장소 위치를 변경하면 다운로드한 파일이 삭제됩니다. 저장 공간 부족 - Pocket의 오프라인 저장소 위치에 공간이 부족합니다. Pocket 작동을 위해 추가 여유 공간이 필요합니다. 계속하려면 일부 공간을 비우십시오. 공간을 비우기 위해 Pocket의 오프라인 캐시를 지워야할 수 있습니다. + Pocket의 오프라인 저장소 위치에 공간이 부족합니다. Pocket 작동을 위해 추가 여유 공간이 필요합니다. 계속하려면 일부 공간을 비우십시오. 공간을 비우기 위해 Pocket의 오프라인 캐시를 지울 수도 있습니다. "장치의 메모리가 제한적인 경우, Pocket {name_of_storage_setting} 설정을 이용하여 캐시에 사용될 수 있는 공간을 제한하십시오." @@ -426,7 +426,9 @@ 도움말 및 지원 받기 Twitter에서 @Pocket 팔로우 Facebook에서 팔로우 - 법률 및 정책 + 서비스 약관 + 개인정보 보호정책 + 오픈 소스 라이선스 연락처 다운로드해 주셔서 감사합니다. 유익하게 활용하시기 바랍니다! 버전 diff --git a/Pocket/src/main/res/values-nl/strings.xml b/Pocket/src/main/res/values-nl/strings.xml index 00d104d..0d41dc9 100644 --- a/Pocket/src/main/res/values-nl/strings.xml +++ b/Pocket/src/main/res/values-nl/strings.xml @@ -218,7 +218,7 @@ Als je de opslaglocatie wijzigt, worden de gedownloade bestanden gewist. Geen opslagruimte meer beschikbaar - Er is geen ruimte meer in de offline opslaglocatie van Pocket. Om te werken, heeft Pocket meer vrije ruimte nodig. Maat wat ruimte vrij om verder te gaan. Om ruimte vrij te maken, kun je Pocket\'s offline cache wissen. + Er is geen ruimte meer in de offline opslaglocatie van Pocket. Om te werken, heeft Pocket meer vrije ruimte nodig. Maat wat ruimte vrij om verder te gaan. Om ruimte vrij te maken, kan je Pocket\'s offline cache wissen. "Als het apparaat over beperkte ruimte beschikt, kun je gebruikmaken van de instelling {name_of_storage_setting} van Pocket om te beperken hoeveel ruimte de cache mag gebruiken." @@ -235,7 +235,7 @@ De wijzigingen aan jouw tags zijn nog niet opgeslagen Wil je de wijzigingen negeren of doorgaan met bewerken? Amazon Appstore niet gevonden - De Amazon Appstore-app kon om een onverwachte reden niet worden geopend. Onze excuses! + De Amazon Appstore-app kon om een onverwachte reden niet worden geopend. Het spijt ons! Browser niet gevonden Jouw apparaat heeft geen browser app beschikbaar om deze webpagina te openen. @@ -436,7 +436,9 @@ Hulp en ondersteuning Volg @Pocket op Twitter Volg ons op Facebook - Juridische informatie en privacy + Gebruiksvoorwaarden + Privacybeleid + Open source-licenties Neem contact met ons op Bedankt voor het downloaden. Veel plezier! Versie diff --git a/Pocket/src/main/res/values-pl/strings.xml b/Pocket/src/main/res/values-pl/strings.xml index f7441a1..bfbd49b 100644 --- a/Pocket/src/main/res/values-pl/strings.xml +++ b/Pocket/src/main/res/values-pl/strings.xml @@ -226,7 +226,7 @@ Zmiana lokalizacji przechowywania spowoduje usunięcie pobranych plików. Brak przestrzeni dyskowej - Brak miejsca w lokalizacji przechowywania w trybie offline aplikacji Pocket. Aplikacja Pocket musi mieć więcej wolnego miejsca, aby poprawnie działać. Zwolnij miejsce, aby kontynuować. Zwolnienie miejsca może wymagać wyczyszczenia pamięci podręcznej trybu offline aplikacji Pocket. + Brak miejsca w lokalizacji przechowywania w trybie offline aplikacji Pocket. Aplikacja Pocket musi mieć więcej wolnego miejsca, aby poprawnie działać. Zwolnij trochę pamięci, aby kontynuować. Zwolnienie miejsca może wymagać wyczyszczenia pamięci podręcznej trybu offline aplikacji Pocket. "Jeśli Twoje urządzenie ma ograniczoną pamięć, użyj Ustawień {name_of_storage_setting} aplikacji Pocket, aby określić limit miejsca do wykorzystania przez pamięć podręczną." @@ -456,7 +456,9 @@ Uzyskaj pomoc i wsparcie Obserwuj @Pocket na Twitterze Śledź nas w serwisie Facebook - Oświadczenia prawne i prywatność + Warunki użytkowania usługi + Zasady ochrony prywatności + Licencje open source Kontakt Dziękujemy za pobranie. Baw się dobrze! Wersja diff --git a/Pocket/src/main/res/values-pt-rBR/strings.xml b/Pocket/src/main/res/values-pt-rBR/strings.xml index 492a6b6..5bbf648 100644 --- a/Pocket/src/main/res/values-pt-rBR/strings.xml +++ b/Pocket/src/main/res/values-pt-rBR/strings.xml @@ -211,14 +211,14 @@ Não foi possível localizar o cache off-line. Verifique se seu local de armazenamento off-line está conectado corretamente. Se você reorganizou ou modificou os arquivos de caches, restaure-os e tente novamente. Conteúdo off-line inacessível - "O Pocket não tem mais permissão de armazenamento e não pode acessar o cache off-line. Para continuar usando um local de armazenamento externo, reative a permissão de armazenamento do Pocket ou alterne para o armazenamento interno." + "O Pocket deixou de ter permissão de armazenamento e não pode acessar o cache off-line. Para continuar usando um local de armazenamento externo, reative a permissão de armazenamento do Pocket ou alterne para o armazenamento interno." Desculpe, o Pocket está tendo dificuldades para acessar seu cartão SD. Registramos este problema para que nossa equipe Android possa investigar. Enquanto isso, continue usando o armazenamento interno do Pocket. Modificar os locais de armazenamento limpará seus arquivos baixados. Sem espaço para armazenamento - O local de armazenamento off-line do Pocket está sem espaço. O Pocket requer espaço livre adicional para funcionar. Para continuar, limpe um pouco de espaço. Para liberar espaço, você pode escolher limpar o cache off-line do Pocket. + O local de armazenamento off-line do Pocket está sem espaço. O Pocket requer espaço livre adicional para funcionar. Para continuar, limpe algum espaço. Para limpar espaço, pode-se limpar o cachê off-line do Pocket. "Se seu dispositivo tem pouca memória, use a configuração de {name_of_storage_setting} do Pocket para limitar a quantidade de espaço que o cache pode usar." @@ -235,7 +235,7 @@ As alterações em suas tags ainda não foram salvas. Deseja descartar as alterações ou continuar editando? A Amazon Appstore não foi encontrada - Por algum motivo inesperado, não foi possível abrir o aplicativo Amazon Appstore. Desculpe! + Por algum motivo inesperado, não foi possível abrir o aplicativo Amazon Appstore. Desculpe! Navegador não encontrado Seu aparelho não possui um aplicativo de navegador disponível para abrir esta página da web. @@ -264,7 +264,7 @@ Reproduzir artigos automaticamente Arquivar automaticamente após ser ouvido - Nosso servidor está demorando muito para responder. Tente novamente mais tarde. + Nosso servidor está demorando muito para responder. Tente novamente depois. Ocorreu um erro inesperado durante a reprodução Ocorreu um problema ao reproduzir este artigo. Tente usar outra voz. @@ -374,7 +374,7 @@ Não houve nenhum item que correspondesse à sua pesquisa. Use tags para se organizar - Para encontrar seus itens, use tags na busca ou nos filtros em Salvos.\n\nPara criar uma tag, digite acima. + Para encontrar seus itens, use tags na busca ou nos filtros em Salvos.\n\nPara criar uma tag, digite uma acima. Conta @@ -436,7 +436,9 @@ Obter ajuda e suporte Siga o @Pocket no Twitter Siga-nos no Facebook - Termos legais e privacidade + Termos de Serviço + Política de Privacidade + Licenças de código-fonte aberto Fale conosco Obrigado pelo download. Divirta-se! Versão diff --git a/Pocket/src/main/res/values-pt/strings.xml b/Pocket/src/main/res/values-pt/strings.xml index 9d0917f..24c3df8 100644 --- a/Pocket/src/main/res/values-pt/strings.xml +++ b/Pocket/src/main/res/values-pt/strings.xml @@ -235,7 +235,7 @@ As alterações nas suas etiquetas ainda não foram guardadas. Quer rejeitar as alterações ou continuar a editar? Amazon Appstore não encontrada - Não foi possível abrir a aplicação Google Play por motivos inesperados. Lamentamos o sucedido! + Não foi possível abrir a aplicação Google Play por motivos inesperados. Lamentamos o sucedido! Navegador não localizado O seu dispositivo não possui uma aplicação de navegador disponível para abrir esta página Web. @@ -436,7 +436,9 @@ Obter ajuda e assistência Seguir o @Pocket no Twitter Seguir-nos no Facebook - Legal e Privacidade + Condições do Serviço + Política de privacidade + Licenças de código aberto Contactar Obrigado por transferir. Divirta-se! Versão @@ -477,7 +479,7 @@ Erro de Activação A compra foi realizada correctamente, mas tivemos dificuldades com a activação da sua conta. Toque em OK para obter instruções sobre como concluir a activação. Compra Sem Êxito - Ocorreu um problema ao completar a sua compra. Tente de novo. + Ocorreu um problema ao completar a sua compra. Tente de novo. A concluir a sua compra... A Subscrição Já Existe Já possui uma subscrição do Pocket Premium. diff --git a/Pocket/src/main/res/values-ru/strings.xml b/Pocket/src/main/res/values-ru/strings.xml index 10ec54d..941b4ee 100644 --- a/Pocket/src/main/res/values-ru/strings.xml +++ b/Pocket/src/main/res/values-ru/strings.xml @@ -219,7 +219,7 @@ Офлайн-кэш не обнаружен. Убедитесь, что хранилище для офлайн-кэша подключено должным образом. Если вы переместили или изменили файлы кэша, восстановите их и попробуйте снова. Офлайн материалы недоступны - "У Pocket больше нет разрешения на доступ к хранилищу, и он не может получить доступ к офлайн-кешу. Чтобы снова использовать внешнее хранилище, предоставьте Pocket разрешение на доступ к хранилищу или переключитесь на внутреннее хранилище." + "У Pocket больше нет разрешения на доступ к хранилищу, и он не может получить доступ к офлайн-кэшу. Чтобы снова использовать внешнее хранилище, предоставьте Pocket разрешение на доступ к хранилищу или переключитесь на внутреннее хранилище." К сожалению, у Pocket возникли проблемы с доступом к SD-карте Мы зафиксировали эту проблему, и наша команда Android будет ее изучать. В течение этого времени продолжайте использовать Pocket с внутренним хранилищем. @@ -456,7 +456,9 @@ Получить помощь и поддержку Подпишитесь на @Pocket в Twitter Подпишитесь на нашу страницу в Facebook - Юридическая информация и конфиденциальность + Условия использования + Политика конфиденциальности + Лицензии с открытым кодом Связаться с нами Спасибо за скачивание. Наслаждайтесь! Версия diff --git a/Pocket/src/main/res/values-zh-rTW/strings.xml b/Pocket/src/main/res/values-zh-rTW/strings.xml index 106a041..a0ea5fe 100644 --- a/Pocket/src/main/res/values-zh-rTW/strings.xml +++ b/Pocket/src/main/res/values-zh-rTW/strings.xml @@ -364,7 +364,7 @@ 沒有與您的搜尋相符的項目。 利用標籤進行整理 - 標籤可以讓您在使用「儲存項目」的搜尋或篩選條件功能時,更輕鬆地重新查找您的項目。\n\n若要建立標籤,請在上方輸入一個標籤。 + 標籤可以讓您在使用「儲存項目」的搜尋或篩選條件功能時,更輕鬆地重新查找您的項目。\n\n若要建立標籤,請在上面輸入一個。 帳號 @@ -426,7 +426,9 @@ 獲取協助與支援 在 Twitter 上追隨 @Pocket 在 Facebook 上追隨我們 - 法務及隱私權 + 服務條款 + 隱私政策 + 開放原始碼授權 聯絡我們 謝謝下載。盡情享受吧! 版本 diff --git a/Pocket/src/main/res/values-zh/strings.xml b/Pocket/src/main/res/values-zh/strings.xml index 0d61ab1..8e0ed43 100644 --- a/Pocket/src/main/res/values-zh/strings.xml +++ b/Pocket/src/main/res/values-zh/strings.xml @@ -364,7 +364,7 @@ 没有与您的搜索匹配的项目。 使用标记进行整理 - 标记便于您在“保存内容”中使用搜索或筛选条件再次找到项目。\n\n要创建标记,请在上面输入一个标记。 + 标记便于您在“保存内容”中使用搜索或筛选条件再次找到项目。\n\n要创建标签,请在上面输入一个。 帐号 @@ -426,7 +426,9 @@ 获取帮助和支持 在 Twitter 上关注 @Pocket 在 Facebook 上关注我们 - 法律和隐私 + 服务条款 + 隐私政策 + 开源许可证 联系我们 谢谢下载。尽情享受吧! 版本 diff --git a/Pocket/src/main/res/values/strings.xml b/Pocket/src/main/res/values/strings.xml index b15c3c9..b637714 100755 --- a/Pocket/src/main/res/values/strings.xml +++ b/Pocket/src/main/res/values/strings.xml @@ -432,7 +432,9 @@ Get help and support Follow @Pocket on Twitter Follow us on Facebook - Legal & Privacy + Terms of Service + Privacy Policy + Open source licenses Contact Us Thank you for downloading. Enjoy! Version diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 8d6db3d..29d4f5e 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { implementation(libs.plugin.kotlin.compose) implementation(libs.plugin.kotlin.serialization) implementation(libs.plugin.licensee) + implementation(libs.plugin.aboutlibraries) implementation(libs.plugin.versions) implementation(libs.plugin.dagger) implementation(libs.plugin.androidx.navigation.safeargs) diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt index 0adb201..98083f4 100644 --- a/buildSrc/src/main/kotlin/Plugins.kt +++ b/buildSrc/src/main/kotlin/Plugins.kt @@ -36,5 +36,8 @@ fun PluginDependenciesSpec.kotlinCompose(): PluginDependencySpec = fun PluginDependenciesSpec.licensee(): PluginDependencySpec = id("app.cash.licensee") +fun PluginDependenciesSpec.aboutLibraries(): PluginDependencySpec = + id("com.mikepenz.aboutlibraries.plugin") + fun PluginDependenciesSpec.sentry(): PluginDependencySpec = id("io.sentry.android.gradle") \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4ad66d9..6bc2b0d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,4 +1,5 @@ [versions] +aboutlibraries = "11.2.3" androidx-activity = "1.9.3" androidx-fragment = "1.8.4" androidx-navigation = "2.8.3" @@ -9,6 +10,7 @@ okhttp = "4.12.0" okio = "3.9.1" [libraries] +aboutlibraries = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutlibraries" } accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version = "0.36.0" } adjust = { module = "com.adjust.sdk:adjust-android", version = "4.38.5" } androidx-activity = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity" } @@ -51,6 +53,7 @@ okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version. okhttp-urlconnection = { module = "com.squareup.okhttp3:okhttp-urlconnection", version.ref = "okhttp" } okio = { module = "com.squareup.okio:okio", version.ref = "okio" } okio-fakefilesystem = { module = "com.squareup.okio:okio-fakefilesystem", version.ref = "okio" } +plugin-aboutlibraries = { module = "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin", version.ref = "aboutlibraries" } plugin-android = { module = "com.android.tools.build:gradle", version = "8.7.1" } plugin-androidx-navigation-safeargs = { module = "androidx.navigation:navigation-safe-args-gradle-plugin", version.ref = "androidx-navigation" } plugin-dagger = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "dagger" }