From f693418d64b4ef3a8775cb118e39eb986c286e2e Mon Sep 17 00:00:00 2001 From: massimilianoLe <44651815+massimilianoLe@users.noreply.github.com> Date: Sat, 1 Dec 2018 17:12:04 +0100 Subject: [PATCH 1/7] Make youtube links open external, by @massimilianoLe (#220) --- .../com/github/dfa/diaspora_android/util/AppSettings.java | 4 ++++ .../github/dfa/diaspora_android/web/BrowserFragment.java | 6 +++--- .../dfa/diaspora_android/web/CustomWebViewClient.java | 8 ++++++++ .../main/res/drawable/ic_open_yt_external_black_24px.xml | 5 +++++ app/src/main/res/values/strings-not_translatable.xml | 3 ++- app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/preferences__master.xml | 7 +++++++ 7 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 app/src/main/res/drawable/ic_open_yt_external_black_24px.xml diff --git a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java index 8d3bb655..8ae76fea 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/util/AppSettings.java @@ -359,6 +359,10 @@ public class AppSettings extends SharedPreferencesPropertyBackend { return getBool(R.string.pref_key__topbar_stream_shortcut, false); } + public boolean isOpenYoutubeExternalEnabled() { + return getBool(R.string.pref_key__open_youtube_external_enabled, true); + } + public String getScreenRotation() { return getString(R.string.pref_key__screen_rotation, R.string.rotation_val_system); } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java index 32a1e83a..d28716d4 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/BrowserFragment.java @@ -94,9 +94,9 @@ public class BrowserFragment extends ThemedFragment { this.setRetainInstance(true); //pull to refresh - swipe = view.findViewById(R.id.swipe); - swipe.setOnRefreshListener(() -> reloadUrl()); - swipe.setDistanceToTriggerSync(20000); + swipe = view.findViewById(R.id.swipe); + swipe.setOnRefreshListener(() -> reloadUrl()); + swipe.setDistanceToTriggerSync(2000); } @Override diff --git a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java index c6af6f85..848e1b65 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/web/CustomWebViewClient.java @@ -19,7 +19,9 @@ package com.github.dfa.diaspora_android.web; import android.annotation.TargetApi; +import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Build; import android.support.v4.content.LocalBroadcastManager; import android.webkit.CookieManager; @@ -38,6 +40,7 @@ public class CustomWebViewClient extends WebViewClient { private final App app; private String lastLoadUrl = ""; private boolean isAdBlockEnabled = false; + AppSettings appSettings = AppSettings.get(); public CustomWebViewClient(App app, WebView webView) { this.app = app; @@ -56,6 +59,11 @@ public class CustomWebViewClient extends WebViewClient { || (host != null && (url.startsWith("https://" + host) || url.startsWith("http://" + host)))) { return false; + }//make youtube links open external-->never customtab + else if (appSettings.isOpenYoutubeExternalEnabled()&&(url.startsWith("https://youtube.com/") || url.startsWith("https://www.youtube.com/") || url.startsWith("https://m.youtube.com/") || url.startsWith("https://youtu.be/"))){ + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + view.getContext().startActivity(intent); + return true; } else { Intent i = new Intent(MainActivity.ACTION_OPEN_EXTERNAL_URL); i.putExtra(MainActivity.EXTRA_URL, url); diff --git a/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml b/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml new file mode 100644 index 00000000..14e620e1 --- /dev/null +++ b/app/src/main/res/drawable/ic_open_yt_external_black_24px.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/values/strings-not_translatable.xml b/app/src/main/res/values/strings-not_translatable.xml index aaa5137a..c66a18d4 100644 --- a/app/src/main/res/values/strings-not_translatable.xml +++ b/app/src/main/res/values/strings-not_translatable.xml @@ -148,4 +148,5 @@ pref_key__show_title PDF gsantner - + pref_key__open_youtube_external_enabled + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d61d659c..6c542f21 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -253,5 +253,7 @@ The following libraries are used: We took some inspiration and code from LeafPic. Go check it out, it\'s free software as well! Tell me more + Enable to open Youtube links on external app + Youtube links diff --git a/app/src/main/res/xml/preferences__master.xml b/app/src/main/res/xml/preferences__master.xml index 7bb330f9..c1ab7939 100644 --- a/app/src/main/res/xml/preferences__master.xml +++ b/app/src/main/res/xml/preferences__master.xml @@ -73,6 +73,13 @@ android:summary="@string/open_external_links_with_chrome_custom_tabs_description" android:title="@string/pref_title__chrome_custom_tabs_enabled"/> + + Date: Thu, 10 Jan 2019 23:31:30 +0000 Subject: [PATCH 2/7] New Crowdin translations (#221) --- app/src/main/res/values-af/strings.xml | 2 ++ app/src/main/res/values-ar/strings.xml | 16 ++++++++++++++++ app/src/main/res/values-ca/strings.xml | 2 ++ app/src/main/res/values-da/strings.xml | 4 ++++ app/src/main/res/values-de/strings.xml | 4 ++-- app/src/main/res/values-es/strings.xml | 8 +++++--- app/src/main/res/values-fr/strings.xml | 4 ++-- app/src/main/res/values-gl/strings.xml | 22 ++++++++++++---------- app/src/main/res/values-hi/strings.xml | 3 +++ app/src/main/res/values-hu/strings.xml | 4 ++-- app/src/main/res/values-it/strings.xml | 8 ++++---- app/src/main/res/values-ja/strings.xml | 8 +++++--- app/src/main/res/values-kab/strings.xml | 8 ++++---- app/src/main/res/values-ko/strings.xml | 2 ++ app/src/main/res/values-ml/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 6 +++--- app/src/main/res/values-pl/strings.xml | 8 ++++---- app/src/main/res/values-pt-rBR/strings.xml | 8 ++++---- app/src/main/res/values-pt/strings.xml | 4 +++- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 10 ++++++---- app/src/main/res/values-sc/strings.xml | 2 ++ app/src/main/res/values-sr-rSP/strings.xml | 2 ++ app/src/main/res/values-sv/strings.xml | 4 ++-- app/src/main/res/values-tr/strings.xml | 6 +++--- app/src/main/res/values-uk/strings.xml | 10 +++++----- app/src/main/res/values-vi/strings.xml | 6 ++++++ app/src/main/res/values-zh-rCN/strings.xml | 3 ++- app/src/main/res/values-zh-rTW/strings.xml | 7 ++++++- 29 files changed, 115 insertions(+), 60 deletions(-) diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index 06d131e7..d6bd4363 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -93,4 +93,6 @@ Toestel diaspora * Pod + Bemagtig om Youtube links oop te maak in eksterne Toeps + Youtube links diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index dbdd3fbf..0336f316 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -3,23 +3,39 @@ + إعدادات + بحث + سِجل التغييرات + المزيد + مشاركة + اخفاء شريط الاشعارات + إظهار العنوان + المظهر + تغيير لغة التطبيق. اعد فتح التطبيق لتفعيل التغيير + اللّغة + افتراضي + مسح ذاكرة التخزين المؤقت + أخرى + عن التطبيق + ترخيص + المساهمون diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 1e73dcf0..84a39af3 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -200,4 +200,6 @@ diaspora*. Si voleu contribuir, endavant! Actualment som un equip molt petit, de S\'utilitzen les següents biblioteques: Prenem alguna inspiració i codi de LeafPic. Aneu a comprovar-ho, també és programari gratuït! Expliqueu-me més + Activeu-ho per obrir enllaços de Youtube en aplicacions externes + Enllaços de YouTube diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 97858223..6b588930 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -35,13 +35,16 @@ Kopier link-adresse til udklipsholder + Gem statusbar Øverste værktøjslinje indlæser strøm Klik på tom plads i den øverste værktøjslinje for at åbne strømme + Udseende Netværk + Generelt Primær farve Værktøjslinjers farver @@ -52,6 +55,7 @@ + Standard diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c500e34c..ec6e122b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -51,7 +51,7 @@ Suche nach Tags oder Personen… App beenden Mobil-/Desktopansicht umschalten - Teilen… + Teilen… nach Tags nach Personen Füge einen Namen ein. @@ -194,7 +194,7 @@ nachträglich erteilen. Öffne dafür: Systemeinstellungen - Apps - dandelion*. Entwickler Diese Anwendung wird momentan entwickelt und betreut von <br><br>%1$s - Mitwirkende + Beitragende %1$s<br><br>Vielen Dank! GNU GPLv3+ Lizenz Drittanbieter-Bibliotheken diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 86ef732c..2568c56e 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -51,7 +51,7 @@ Buscar por etiquetas o por personas Salir de la aplicación Alternar vista de móvil/escritorio - Compartir… + Compartir… por etiquetas por personas Por favor, añade un nombre @@ -106,7 +106,7 @@ Notificaciones extendidas Extender la campana de notificaciones con un menú desplegable que muestra categorías de notificación - Cambiar el idioma de esta aplicación. Reinicie la aplicación para que los cambios surtan efecto + Cambiar el idioma de esta aplicación. Reiniciar la aplicación para que se apliquen los cambios Idioma Idioma del sistema @@ -191,11 +191,13 @@ Mantenimiento Esta aplicación está siendo desarrollada y mantenida por < br >< br >%1$s - Colaboradores + Contribuidores ¡%1$s < br >< br > Gracias! Licencia GNU GPLv3 + Bibliotecas de terceros Se utilizan las siguientes bibliotecas: Tomamos algo de inspiración y código de LeafPic. ¡Venga, tomad prestado, es software libre también! Saber más + Habilitar para abrir enlaces de Youtube en aplicaciones externas + Enlaces de YouTube diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index ec3330b1..5215249d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -51,7 +51,7 @@ Recherche par tags ou par personnes Quitter l\'application Activer/désactiver la vue bureau/mobile - Partager… + Partager… par tags par personne Veuillez ajouter un nom @@ -106,7 +106,7 @@ Notifications étendues Étendre la cloche de notifications avec un menu déroulant qui affiche les catégories de notification - Change la langue de l\'application. Redémarrez l\'application pour que les changements prennent effet + Changer la langue de l\'interface. Vous devrez redémarrer l\'application pour que ce changement soit pris en compte Langue Langue du système diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 0278a347..ca91f3e6 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -4,7 +4,7 @@ Abrir cadro de navegación Pechar cadro de navegación - Actualizar + Refrescar Axustes Notificacións @@ -49,9 +49,9 @@ Nova mensaxe Ir arriba Buscar persoas ou etiquetas - Saír do app + Saír da app Vista móbil/escritorio - Compartir… + Compartir… Etiquetas Persoas Por favor, engada un nome @@ -65,7 +65,7 @@ Non se cargou a imaxe Debe permitir \"Permiso de acceso a almacenamento\" para gardar capturas. Pode - pechar a aplicación ou reiniciar o dispositivo. Si non permite acceder ao almacenamento pero que utilizar máis tarde a captura de pantalla, poderá permitir posteriormente o acceso na sección de permisos do dispositivo onde pode activar o \"permiso de acceso a almacenamento\" para dandelion*. + pechar a aplicación ou reiniciar o dispositivo. Se non permite acceder ao almacenamento pero que utilizar máis tarde a captura de pantalla, poderá permitir posteriormente o acceso na sección de permisos do dispositivo onde pode activar o \"permiso de acceso a almacenamento\" para dandelion*. Ten que permitir \"Permiso de acceso a almacenamento\" para gardar/subir imaxes. Despois de iso debería pechar a aplicación ou reiniciar o dispositivo. Se non permite acceder ao almacenamento, para poder gardar imaxes posteriormente, deberá abrir: preferencias do sistema - apps - dandelion* no dispositivo. Na sección de permisos pode activar o \"permiso de escritura no almacenamento\". @@ -136,7 +136,7 @@ Proxy para o tráfico de dandelion* para saltar cortalumes.\nPodería precisar reinicio. Esto podería non funcionar en algúns móbiles. Servidor Porto - Precisa reiniciar o app para deshabilitar o uso do proxy + Precisa reiniciar a app para desactivar o uso do proxy Cargadas as preferencias do proxy Orbot Abrir ligazóns externas con Chrome Custom Tabs. Chromium ou Google Chrome ten que estar instalado para utilizar esta característica.\nIMPORTANTE: Chrome Custom Tabs non utiliza os servidores proxy configurados! @@ -160,7 +160,7 @@ Restablecer completamente Eliminar todas os axustes locais do app e desconectar todas as contas Esto restablecerá todos os axustes da aplicación ao valor por omisión e desconectarao de todos os nodos. As súas imaxes descargadas permanecerán. Seguro que quere proceder? - Habilitar un AdBlocker básico. Poderían verse anuncios por exemplo en vistas incrustadas + Activar un AdBlocker básico. Poderían verse anuncios por exemplo en vistas incrustadas Bloquear publicidade Sobre Licenza @@ -170,7 +170,7 @@ Nodo diaspora* Rexistro de depuración Rexistro de depuración (polo miúdo) - Versión do App: %1$s + Versión da App: %1$s Versión Android: %1$s Nome do dispositivo: %1$s Alcume: %1$s @@ -181,8 +181,8 @@ Contribúa ao código! dandelion* é desenvolto libre, libre de Liberdade, e segue o espíritu que marca o proxecto diaspora*. Se quere contribuír, adiante! Por agora somos un equipo pequeno, así que agradecemos calquer tipo de axuda! Obteña as fontes - Traduza o app! - Non está a aplicación no seu idioma? Pode cambiar eso! Por qué non nos axuda traducíndoa? Utilizamos a plataforma github para que calquera poida traducir a app. + Traduza a app! + Non está a aplicación no seu idioma? Pode cambiar eso! Por qué non nos axuda traducíndoa? Utilizamos a plataforma Crowdin para que calquera poida traducir a app. Deixame traducir Qué lle parece! dandelion* aínda está en desenvolvemento, asi que si ten suxerencias de calquer tipo o valoración, por favor utilice o noso xestor de erros para facérnolo saber! @@ -190,7 +190,7 @@ Difunda! Dígalle aos seus amigos e familiares que utiliza diaspora* e #dandelion! Por qué no escribir sobre a experiencia? Encantaríanos saber de vostede! Comparta a aplicación - Ei!! Olla a #dandelion! %1$s + Ei!! Olla #dandelion! %1$s Mantedores Esta aplicación está a ser desenvolta e mantida por <br><br>%1$s @@ -201,4 +201,6 @@ Utilízase o seguinte código: Inspirámonos e collemos código de LeafPic. Bótalle un ollo, tamén é software libre! Cóntame máis + Activar para abrir vídeos YouTube nunha app externa + Ligazóns YouTube diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml index 9148a307..7ac5fed3 100644 --- a/app/src/main/res/values-hi/strings.xml +++ b/app/src/main/res/values-hi/strings.xml @@ -2,6 +2,8 @@ + नेविगेशन ड्रॉवर खोलें + नेविगेशन ड्रॉवर को बंद करें सेटिंग्स खोजें @@ -14,6 +16,7 @@ स्थिति पट्टी छुपाएँ + शीर्षक दिखाएं दिखावट diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index e9d67987..eab450c1 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -49,7 +49,7 @@ Címkék vagy emberek keresése Kilépés az alkalmazásból Mobil-/asztali mód - Megosztás… + Megosztás… címkékre emberekre Kérlek, adj meg egy nevet @@ -153,7 +153,7 @@ Alap hirdetésblokkoló (AdBlocker) engedélyezése. Reklámok jelenhetnek meg pl. a beépített megjelenítéseknél Hirdetések blokkolása Névjegy - Licensz + Licenc Hibakeresés Alkalmazás Eszköz diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index a0b6e2cc..12aac244 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -51,7 +51,7 @@ Cerca tag o persone Esci dall\'app Attiva visualizzazione mobile/desktop - Condividi… + Condividi… per tag per persona Inserisci un nome @@ -81,7 +81,7 @@ Valore mancante Salta all\'ultima pagina visitata nello stream? Nascondi barra di stato nella schermata principale - Nascondi barra di stato + Nascondi la barra di stato Mostra titolo nella schermata principale Mostra titolo Avvio rapido @@ -112,7 +112,7 @@ Notifiche estese Estendi il bottone delle notifiche con un menù che mostra le categorie di notifiche - Cambia la lingua di questa app. Riavvia l\'app per rendere effettive le modifiche + Cambia lingua dell\'app. Riavvia affinchè le modifiche abbiano effetto Lingua Lingua di sistema @@ -197,7 +197,7 @@ Manutentori Quest\'app è attualmente sviluppata e mantenuta da <br><br>%1$s - Contributori + Collaboratori %1$s<br><br>Grazie! Licenza GNU GPL versione 3 o superiore Librerie di terze parti diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 61dbf664..a3b6c284 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -51,7 +51,7 @@ タグまたは人で検索 アプリを終了 モバイル/デスクトップ表示の切り替え - シェア… + シェア… タグ別 人別 名前を追加してください @@ -106,7 +106,7 @@ 拡張通知 通知のカテゴリーを示すドロップダウン・メニューで通知ベルを拡張します - このアプリの言語を変更します。アプリを再起動すると変更を反映します + このアプリの言語を変更します。 変更を反映するにはアプリを再起動します 言語 システム言語 @@ -159,7 +159,7 @@ これはアプリの変更された設定をすべてデフォルトにリセットして、すべてのポッドからログアウトします。ダウンロードした画像はそのまま残ります。続行してもよろしいですか? 基本 AdBlocker を有効にします。広告は、埋め込みビューなどに含まれることがあります 広告をブロック - アプリについて + 情報 ライセンス デバッグ アプリケーション @@ -198,4 +198,6 @@ 以下のライブラリーが使用されます: LeafPic からいくつかのインスピレーションとコードを得ました。チェックしてみてください。同様のフリーソフトウェアです! さらに詳しく + 外部アプリで Youtube のリンクを開くことができます + Youtube のリンク diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml index a666376d..923b84c1 100644 --- a/app/src/main/res/values-kab/strings.xml +++ b/app/src/main/res/values-kab/strings.xml @@ -51,7 +51,7 @@ Anadi s tebqzimin neɣ s imdanen Ffeɣ seg usnas Rmed/Sens timeẓri aselkim/aziraz - Bḍu… + Bḍu… s tebzimin s imdanen Rnu isem @@ -109,7 +109,7 @@ Ilɣa n usiɣzef Siɣzef nnaqus n ilɣa s umuɣ n udrurem ara d-iseknen taggayin n ulɣu - Snifel tutlayt n usnas-agi. Ales tanekra n usnas akken ad tbeddel tutlayt + Beddel isem n tutlayt n ugrudem. Yessefk ad talseḍ tanekra n usnas akken teddu tutlaut tamaynut Tutlayt Tutlayt n unagraw @@ -162,7 +162,7 @@ Ayagi ad yales awennez n ibeddilen meṛṛa ar wazalen-nsen n tazwara sakin ad isuffeɣ si tuqqna akk ipuden. Tugniwin-ik yudren ad qqiment akken llant. Tebɣiḍ ad tkemmleḍ? Rmd amsewḥal n udellel. Adelle yezmer ad ddunt, m.d. deg tmeẓriyin tusliɣin Sewḥel adellel - Γef + Ɣef Turagt Tamseɣtayt Asnas @@ -194,7 +194,7 @@ Wid yettseggimen Asnas-agi yezga di tneflit akked useggem sɣru <br><br>%1$s - Iwiziwen + Imttekkiyen %1$s<br><br>Tanemmirt! Turagt GNU GPLv3+ Tinedlisin tis kraḍ diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 05d697a1..ea637348 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -2,6 +2,8 @@ + 사이드 메뉴 열기 + 사이드 메뉴 닫기 새로고침 설정 diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml index d22bce0e..45434b62 100644 --- a/app/src/main/res/values-ml/strings.xml +++ b/app/src/main/res/values-ml/strings.xml @@ -49,7 +49,7 @@ ടാഗുകളെയോ വ്യക്തികളെയോ തിരയുക ആപ്പിന് പുറത്തുകടക്കുക മൊബൈൽ/ഡെസ്ക്ടോപ്പ് വ്യൂവിലേക്ക് മാറുക - പങ്കുവയ്ക്കുക… + പങ്കുവയ്ക്കുക… ടാഗുകളെ ആളുകളെ പേര് ചേർക്കുക diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index c1505345..31cbf9d2 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -44,12 +44,12 @@ Afbeelding opslaan Screenshot oplaan als: Link adres gekopieerd… - Nieuw Bericht + Nieuw bericht Terug naar boven Zoeken op tags of personen - App afsluiten + Afsluiten Desktop weergave in-/uitschakelen - Delen… + Delen… viaTags via mensen Voeg een naam toe diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index cc4fca1c..ef7ccada 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -51,7 +51,7 @@ Szukaj tagów lub osób Zamknij aplikację Przełącz na widok mobilny/standardowy - Udostępnij… + Udostępnij… w tagach w osobach Podaj nazwę użytkownika lub tagu @@ -106,7 +106,7 @@ Rozszerzone powiadomienia Dodaj do ikony powiadomień menu wyboru kategorii powiadomień - Zmień język aplikacji. Uruchom ponownie aplikację, aby zobaczyć zmiany + Zmienia język aplikacji. Zrestartuj żeby wprowadzić zmiany Język Język systemowy @@ -159,7 +159,7 @@ Ta operacja przywróci wszystkie zmodyfikowane przez Ciebie ustawienia aplikacji do ich domyślnych wartości i wyloguje Cię ze wszystkich Podów. Na pewno chcesz to zrobić? Włącz prosty AdBlocker. Reklamy mogą znajdować się m.in. w osadzonych widokach Blokuj reklamy - O aplikacji + Informacje Licencja Debugowanie Aplikacja @@ -191,7 +191,7 @@ Twórcy aplikacji Rozwojem i utrzymaniem aplikacji aktualnie zajmują się <br><br>%1$s - Wnieśli wkład + Współautorzy %1$s<br><br>Wielkie dzięki! Licencja GNU GPLv3+ Biblioteki zewnętrzne diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index b5565d76..64cb73a3 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -49,9 +49,9 @@ Nova postagem Ir para o topo Procurar por tags ou pessoas - Sair do aplicativo + Sair do app Alternar a exibição telefone/área de trabalho - Compartilhar… + Compartilhar… por tags por pessoas Por favor, adicione um nome @@ -73,7 +73,7 @@ Sem dado Voltar para a última página visitada no fluxo? Ocultar a barra de estado na janela principal - Ocultar barra de status + Esconder barra de status Mostrar título Barra de ferramentas superior abre o fluxo @@ -100,7 +100,7 @@ Modo AMOLED Notificações estendidas - Alterar o idioma deste aplicativo. Reinicie o aplicativo para as mudanças terem efeito + Muda o idioma do aplicativo. Reinicie o aplicativo para que as alterações entrem em vigor Idioma Idioma do sistema diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index fef3255b..0baf4751 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -94,7 +94,7 @@ Modo AMOLED Notificações expandidas - Altera o idioma da aplicação. Tem que reiniciar a aplicação para aplicar as alterações. + Altera o idioma da aplicação. Tem que reiniciar a aplicação para aplicar as alterações Idioma Idioma do sistema @@ -156,4 +156,6 @@ Bibliotecas de terceiros Utilizamos as seguintes bibliotecas: Saber mais + Ative para abrir as ligações YouTube na aplicação externa + Ligações YouTube diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index dc0b5be6..cd05a96c 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -49,7 +49,7 @@ Căutare după Tag-uri sau persoane Ieșire din Aplicatie Comuta Vezi mobil/desktop - Distribuire… + Distribuire… după etichete dupa persoane Adauga nume diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 79f93795..0a184397 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -51,7 +51,7 @@ Искать по тегам и людям Выйти из приложения Переключить мобильный вид - Поделиться… + Поделиться… по тегам по людям Пожалуйста, добавьте имя @@ -77,7 +77,7 @@ Скрыть строку состояния в главном окне Скрыть строку состояния Показывать заголовок на главном экране - Показывать заголовок + Показать заголовок Ярлык лаунчера Верхняя панель инструментов загружает Поток @@ -159,7 +159,7 @@ Это сбросит все изменённые параметры приложения на значения по умолчанию и выйдет из аккаунтов на всех подах. Ваши загруженные изображения останутся нетронутыми. Вы уверены, что хотите продолжить? Включить простой блокировщик рекламы. Реклама может быть во встроенных элементах страницы Блокировать рекламу - О приложении + О программе Лицензия Отладка Приложение @@ -191,11 +191,13 @@ Мейнтейнеры Это приложение в настоящее время разрабатывается и поддерживается следующими людьми: <br><br>%1$s - Участники + Поддержавшие проект %1$s<br><br>Спасибо вам! Лицензия GNU GPLv3+ Сторонние библиотеки Используются следующие библиотеки: Мы вдохновлялись и взяли немного кода из LeafPic. Попробуйте это приложение, оно тоже является свободным ПО! Расскажите мне больше + Открывать ссылки на Youtube во внешних приложениях + Ссылки на Youtube diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml index ad8ac073..72288008 100644 --- a/app/src/main/res/values-sc/strings.xml +++ b/app/src/main/res/values-sc/strings.xml @@ -201,4 +201,6 @@ Sunt impreadas custas librerias: Amus pigadu ispiratzione e parte de su còdighe dae LeafPic. Abbistade·bos·lu, est fintzas cussu unu programma lìberu! Àteras informatziones + Abìlita pro abèrrere sos ligàmenes de Youtube in un\'aplicatzione esterna + Ligàmenes de Youtube diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 39d2b660..1bbf84ec 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -13,8 +13,10 @@ Подели… + Sakrij status + Izgled Мрежа diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 06a9ecf6..fba5005a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -51,7 +51,7 @@ Sök på taggar eller personer Avsluta appen Växla mellan telefon- och skrivbordsvy - Dela… + Dela… efter taggar efter människor Var god ange namn @@ -81,7 +81,7 @@ Värde saknas Vill du hoppa senast besökta sida i strömmen? Dölj statusfältet vid huvudvyn - Göm statusfältet + Dölj statusfältet Göm titeln i huvudvyn Visa titel Programstartargenväg diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d30ade42..ca2a50d3 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -17,7 +17,7 @@ Yorumlananlar Bahsetmeler Herkes - Arama + Ara Kişiler Değişme Günlüğü İstatistikler @@ -102,7 +102,7 @@ Genişletilmiş Bildirimler Bildirim zilini, bildirim kategorilerini gösteren bir açılır menü ile genişlet - Uygulamanın dilini değiştir. Değişikliklerin etkili olması için uygulamayı yeniden başlat + Bu uygulamanın dilini değiştir. Değişikliklerin etkili olması için uygulamayı yeniden başlatın Dil Sistem dili @@ -184,7 +184,7 @@ Hey %1$s ! #dandelion’a bir göz at! Yardımcılar - Katkıda Bulunanlar + Katkıda bulunanlar %1$s<br><br>Teşekkürler! GNU GPLv3+ License Üçüncü Parti Kütüphaneler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 8763522b..3ef60848 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -51,7 +51,7 @@ Шукати мітки чи людей Вийти Перемкнути мобільний/стаціонарний вигляд - Поширити… + Поширити… за мітками за людьми Будь ласка, додайте ім\'я @@ -83,7 +83,7 @@ Приховати рядок статусу Сховати рядок статусу Показати заголовки у головному вікні - Показати заголовок + Показувати заголовок Створити ярлик Верхня панель завантажує потік @@ -112,7 +112,7 @@ Розширені сповіщення Додати до дзвоника сповіщень випадне меню з категоріями сповіщень - Змінити мову цієї програмки. Перезавантажте застосунок, щоб зміни запрацювали + Змінити мову додатку. Перезапустіть додаток для застосування змін. Мова Мова системи @@ -165,7 +165,7 @@ Це зітре усі змінені налаштування застосунку до їхніх значень за замовчуванням і вилогінить вас з усіх подів. Ваші завантажені зображення залишаться на міці. Бажаєте продовжити? Увімкнути базовий AdBlocker. Реклама може зберегтися, напр., у вбудованих переглядах Блокувати рекламу - Про нас + Про Markor Ліцензія Налагодження Програма @@ -197,7 +197,7 @@ Розробники Зараз цю програмку розробляють і підтримують <br><br>%1$s - Учасники + Автори %1$s<br><br>Дякуємо! Ліцензія GNU GPLv3+ Сторонні бібліотеки diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index dbdd3fbf..e575411b 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -3,13 +3,17 @@ + Cài đặt + Tìm kiếm + Ẩn thanh trạng thái + Xuất hiện @@ -21,5 +25,7 @@ + Trong khoảng + Những người đóng góp diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 80723c58..45f47267 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -7,7 +7,7 @@ 设置 搜索 - 更新日志​​​​​ + 更新日志 @@ -16,6 +16,7 @@ 隐藏状态栏 + 显示标题 外观 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 60e09554..e88fea5d 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -2,6 +2,8 @@ + 開啟側邊導覽選單 + 關閉側邊導覽選單 重新下載 設定 @@ -49,7 +51,7 @@ 找人或標籤 退出應用程式 切換行動/桌上型版面 - 分享… + 分享… 找標籤 找人 請輸入名稱 @@ -76,6 +78,7 @@ 隱藏狀態列 在主畫面中顯示標題列 顯示標題列 + 桌面捷徑 上方工具列可載入流水帳 可以點上方工具列的空白區域來進入流水帳 @@ -196,4 +199,6 @@ 我們使用了下列程式庫: 我們從 LeafPic 應用程式得到一些啟發以及程式碼。去看看吧,它也是自由軟體喔! 再多說一些 + 使用其他應用程式來開啟 Youtube 連結 + Youtube 連結 From 66cbf9a47d6efb1c8ed5db7948acdcb5393c278c Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 11 Jan 2019 00:56:13 +0100 Subject: [PATCH 3/7] update crowdin yaml --- crowdin.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crowdin.yml b/crowdin.yml index 36737188..b74b9cb5 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,3 +1,4 @@ +# vim: files: - source: /app/src/main/res/values/strings.xml translation: /app/src/main/res/values-%android_code%/%original_file_name% @@ -32,6 +33,7 @@ files: ca: ca # Catalan pt-PT: pt # Portugese pt-BR: pt-rBR # Portugese, Brazilian + fil: fil # Filipino uk: uk # Ukrainian ar: ar # Arabic fi: fi # Finnish @@ -39,4 +41,7 @@ files: he: iw # Hebrew ro: ro # Romanian vi: vi # Vietnamese + bs: bs # Bosnian + sr: sr # Serbian, Cyrillic + sr-CS: sr-rRS # Serbian, Latin translate_attributes: 0 From d34cbe1ed125b7f359014252df0dd62f35391b6d Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 11 Jan 2019 01:11:05 +0100 Subject: [PATCH 4/7] Remove/move serbian --- app/src/main/res/values-sr-rCS/strings.xml | 25 ------------- app/src/main/res/values-sr-rSP/strings.xml | 41 ---------------------- 2 files changed, 66 deletions(-) delete mode 100644 app/src/main/res/values-sr-rCS/strings.xml delete mode 100644 app/src/main/res/values-sr-rSP/strings.xml diff --git a/app/src/main/res/values-sr-rCS/strings.xml b/app/src/main/res/values-sr-rCS/strings.xml deleted file mode 100644 index dbdd3fbf..00000000 --- a/app/src/main/res/values-sr-rCS/strings.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml deleted file mode 100644 index 1bbf84ec..00000000 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - Поставке - тражи - Дневник измена - - - - још - Подели… - - - Sakrij status - - - Izgled - Мрежа - - - - - Промените језик апликације. Поново покрените након тога - Језик - - - - - - - Обриши кеш - - разно - О програму - Лиценца - - Програмери - Сарадници - From 6d62c7035915ee31537532caca093fd444ac1f2a Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 11 Jan 2019 00:16:10 +0000 Subject: [PATCH 5/7] New Crowdin translations (#224) --- app/src/main/res/values-bs/strings.xml | 25 +++++++++++++ app/src/main/res/values-fil/strings.xml | 25 +++++++++++++ app/src/main/res/values-sr-rRS/strings.xml | 39 ++++++++++++++++++++ app/src/main/res/values-sr/strings.xml | 41 ++++++++++++++++++++++ 4 files changed, 130 insertions(+) create mode 100644 app/src/main/res/values-bs/strings.xml create mode 100644 app/src/main/res/values-fil/strings.xml create mode 100644 app/src/main/res/values-sr-rRS/strings.xml create mode 100644 app/src/main/res/values-sr/strings.xml diff --git a/app/src/main/res/values-bs/strings.xml b/app/src/main/res/values-bs/strings.xml new file mode 100644 index 00000000..dbdd3fbf --- /dev/null +++ b/app/src/main/res/values-bs/strings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-fil/strings.xml b/app/src/main/res/values-fil/strings.xml new file mode 100644 index 00000000..dbdd3fbf --- /dev/null +++ b/app/src/main/res/values-fil/strings.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-sr-rRS/strings.xml b/app/src/main/res/values-sr-rRS/strings.xml new file mode 100644 index 00000000..6cca4e74 --- /dev/null +++ b/app/src/main/res/values-sr-rRS/strings.xml @@ -0,0 +1,39 @@ + + + + + Otvori navigacioni panel + Yatvori navigacioni panel + + Podesavanja + Lista promena + + + + + + Sakrij status + Prikaži naziv + + + Izgled + + + + + Promijeni jezik ove aplikacije. Restartuj apikaciju da bi podešavanja dobila efekat. + Jezik + + + + + + + + Ostalo + O ovom + + Pomo\'nici + Prikazi GNU GPLv3 licence + Prikaz licence trecih lica + diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml new file mode 100644 index 00000000..1bbf84ec --- /dev/null +++ b/app/src/main/res/values-sr/strings.xml @@ -0,0 +1,41 @@ + + + + + + Поставке + тражи + Дневник измена + + + + још + Подели… + + + Sakrij status + + + Izgled + Мрежа + + + + + Промените језик апликације. Поново покрените након тога + Језик + + + + + + + Обриши кеш + + разно + О програму + Лиценца + + Програмери + Сарадници + From 6f310985d6a4f2aa370e967decfdf7d5d8bfd0d9 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 11 Jan 2019 02:38:30 +0100 Subject: [PATCH 6/7] Update gradle tooling & gsantner-opoc --- app/build.gradle | 75 ++++++---- .../SharedPreferencesPropertyBackend.java | 9 ++ .../net/gsantner/opoc/util/ActivityUtils.java | 19 +-- .../net/gsantner/opoc/util/ContextUtils.java | 130 +++++++++++++++++- .../net/gsantner/opoc/util/ShareUtil.java | 64 ++++++++- build.gradle | 52 +++---- gradle/wrapper/gradle-wrapper.properties | 3 +- 7 files changed, 286 insertions(+), 66 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8f3688b1..beab3f7e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,44 +6,25 @@ if (enable_plugin_kotlin) { } android { - compileSdkVersion version_setup_compileSdk - flavorDimensions "default" + buildToolsVersion rootProject.ext.version_buildTools + compileSdkVersion rootProject.ext.version_compileSdk defaultConfig { - minSdkVersion version_setup_minSdk - targetSdkVersion version_setup_targetSdk + minSdkVersion rootProject.ext.version_minSdk + targetSdkVersion rootProject.ext.version_compileSdk buildConfigField "boolean", "IS_TEST_BUILD", "false" buildConfigField "boolean", "IS_GPLAY_BUILD", "false" buildConfigField "String[]", "DETECTED_ANDROID_LOCALES", "${findUsedAndroidLocales()}" buildConfigField "String", "GITHASH", "\"${getGitHash()}\"" - resValue "string", "manifest_package_id", "com.github.dfa.diaspora_android" + resValue "string", "manifest_package_id", "com.github.dfa.diaspora_android" applicationId "com.github.dfa.diaspora_android" versionName "1.2.3" versionCode 36 - - vectorDrawables.useSupportLibrary = true } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - - sourceSets { - if (enable_plugin_kotlin) { - main.java.srcDirs += 'src/main/kotlin' - } - } - + flavorDimensions "default" productFlavors { flavorDefault { } @@ -64,8 +45,52 @@ android { buildConfigField "boolean", "IS_TEST_BUILD", "true" } } + + sourceSets { + main { assets.srcDirs = ['src/main/assets'] } + if (enable_plugin_kotlin) { + main.java.srcDirs += 'src/main/kotlin' + } + main.java.srcDirs += 'thirdparty/java' + main.res.srcDirs += 'thirdparty/res' + main.assets.srcDirs += 'thirdparty/assets' + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + configurations.all { + resolutionStrategy { + eachDependency { details -> + if (details.requested.group == 'com.android.support') { + if (details.requested.name != 'multidex' && details.requested.name != 'multidex-instrumentation') { + details.useVersion "${rootProject.ext.version_library_appcompat}" + } + } + } + } + } + + packagingOptions { + exclude 'META-INF/LICENSE-LGPL-2.1.txt' + exclude 'META-INF/LICENSE-LGPL-3.txt' + exclude 'META-INF/LICENSE-W3C-TEST' + } + + compileOptions { + encoding = 'UTF-8' + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + lintOptions { disable 'MissingTranslation' + disable 'InvalidPackage' + abortOnError false } } diff --git a/app/src/main/java/net/gsantner/opoc/preference/SharedPreferencesPropertyBackend.java b/app/src/main/java/net/gsantner/opoc/preference/SharedPreferencesPropertyBackend.java index 2d1edbd9..665f1058 100644 --- a/app/src/main/java/net/gsantner/opoc/preference/SharedPreferencesPropertyBackend.java +++ b/app/src/main/java/net/gsantner/opoc/preference/SharedPreferencesPropertyBackend.java @@ -164,6 +164,14 @@ public class SharedPreferencesPropertyBackend implements PropertyBackend getStringList(@StringRes int keyResourceId, final SharedPreferences... pref) { return getStringListOne(rstr(keyResourceId), gp(pref)); } diff --git a/app/src/main/java/net/gsantner/opoc/util/ActivityUtils.java b/app/src/main/java/net/gsantner/opoc/util/ActivityUtils.java index 23a9212d..b7d60918 100644 --- a/app/src/main/java/net/gsantner/opoc/util/ActivityUtils.java +++ b/app/src/main/java/net/gsantner/opoc/util/ActivityUtils.java @@ -32,6 +32,7 @@ import android.view.View; import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import android.webkit.WebView; +import android.widget.ScrollView; @SuppressWarnings({"WeakerAccess", "unused", "SameParameterValue", "SpellCheckingInspection"}) @@ -115,18 +116,18 @@ public class ActivityUtils extends net.gsantner.opoc.util.ContextUtils { } public void showDialogWithHtmlTextView(@StringRes int resTitleId, String text, boolean isHtml, DialogInterface.OnDismissListener dismissedListener) { + ScrollView scroll = new ScrollView(_context); AppCompatTextView textView = new AppCompatTextView(_context); - int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, - _context.getResources().getDisplayMetrics()); - textView.setMovementMethod(new LinkMovementMethod()); - textView.setPadding(padding, 0, padding, 0); + int padding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16, _context.getResources().getDisplayMetrics()); + scroll.setPadding(padding, 0, padding, 0); + scroll.addView(textView); + textView.setMovementMethod(new LinkMovementMethod()); textView.setText(isHtml ? new SpannableString(Html.fromHtml(text)) : text); + AlertDialog.Builder dialog = new AlertDialog.Builder(_context) - .setPositiveButton(android.R.string.ok, null) - .setOnDismissListener(dismissedListener) - .setTitle(resTitleId) - .setView(textView); + .setPositiveButton(android.R.string.ok, null).setOnDismissListener(dismissedListener) + .setTitle(resTitleId).setView(scroll); dialog.show(); } @@ -164,7 +165,7 @@ public class ActivityUtils extends net.gsantner.opoc.util.ContextUtils { _activity.startActivity(goToMarket); } catch (ActivityNotFoundException e) { _activity.startActivity(new Intent(Intent.ACTION_VIEW, - Uri.parse("http://play.google.com/store/apps/" + pkgId))); + Uri.parse("https://play.google.com/store/apps/" + pkgId))); } } diff --git a/app/src/main/java/net/gsantner/opoc/util/ContextUtils.java b/app/src/main/java/net/gsantner/opoc/util/ContextUtils.java index ed90becb..8e7fae98 100644 --- a/app/src/main/java/net/gsantner/opoc/util/ContextUtils.java +++ b/app/src/main/java/net/gsantner/opoc/util/ContextUtils.java @@ -15,6 +15,7 @@ import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.ActivityNotFoundException; +import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; @@ -37,6 +38,7 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Build; +import android.os.SystemClock; import android.support.annotation.ColorInt; import android.support.annotation.ColorRes; import android.support.annotation.DrawableRes; @@ -47,6 +49,7 @@ import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v4.content.ContextCompat; import android.support.v4.graphics.drawable.DrawableCompat; import android.text.Html; +import android.text.InputFilter; import android.text.SpannableString; import android.text.Spanned; import android.text.TextUtils; @@ -55,6 +58,9 @@ import android.util.DisplayMetrics; import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.view.MotionEvent; +import android.view.View; +import android.webkit.MimeTypeMap; import android.widget.ImageView; import android.widget.TextView; @@ -67,6 +73,7 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Method; +import java.text.SimpleDateFormat; import java.util.Locale; import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK; @@ -235,7 +242,7 @@ public class ContextUtils { * Get this apps package name, returns the flavor specific package name. */ public String getPackageIdReal() { - return _context.getPackageName(); + return _context.getPackageName(); } /** @@ -509,6 +516,17 @@ public class ContextUtils { return dp * _context.getResources().getDisplayMetrics().density; } + /** + * Get the private directory for the current package (usually /data/data/package.name/) + */ + public String getAppDataDir() { + try { + return _context.getPackageManager().getPackageInfo(getPackageIdReal(), 0).applicationInfo.dataDir; + } catch (PackageManager.NameNotFoundException e) { + return _context.getFilesDir().getParent(); + } + } + /** * Request the givens paths to be scanned by MediaScanner * @@ -694,9 +712,13 @@ public class ContextUtils { public void tintMenuItems(Menu menu, boolean recurse, @ColorInt int iconColor) { for (int i = 0; i < menu.size(); i++) { MenuItem item = menu.getItem(i); - tintDrawable(item.getIcon(), iconColor); - if (item.hasSubMenu() && recurse) { - tintMenuItems(item.getSubMenu(), recurse, iconColor); + try { + tintDrawable(item.getIcon(), iconColor); + if (item.hasSubMenu() && recurse) { + tintMenuItems(item.getSubMenu(), recurse, iconColor); + } + } catch (Exception ignored) { + // This should not happen at all, but may in bad menu.xml configuration } } } @@ -734,4 +756,104 @@ public class ContextUtils { } } } + + + public String getLocalizedDateFormat() { + return ((SimpleDateFormat) android.text.format.DateFormat.getDateFormat(_context)).toPattern(); + } + + public String getLocalizedTimeFormat() { + return ((SimpleDateFormat) android.text.format.DateFormat.getTimeFormat(_context)).toPattern(); + } + + public String getLocalizedDateTimeFormat() { + return getLocalizedDateFormat() + " " + getLocalizedTimeFormat(); + } + + /** + * A {@link InputFilter} for filenames + */ + @SuppressWarnings("Convert2Lambda") + public static final InputFilter INPUTFILTER_FILENAME = new InputFilter() { + public CharSequence filter(CharSequence src, int start, int end, Spanned dest, int dstart, int dend) { + if (src.length() < 1) return null; + char last = src.charAt(src.length() - 1); + String illegal = "|\\?*<\":>+[]/'"; + if (illegal.indexOf(last) > -1) return src.subSequence(0, src.length() - 1); + return null; + } + }; + + /** + * A simple {@link Runnable} which does a touch event on a view. + * This pops up e.g. the keyboard on a {@link android.widget.EditText} + *

+ * Example: new Handler().postDelayed(new DoTouchView(editView), 200); + */ + public static class DoTouchView implements Runnable { + View _view; + + public DoTouchView(View view) { + _view = view; + } + + @Override + public void run() { + _view.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0)); + _view.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0)); + } + } + + + public String getMimeType(File file) { + return getMimeType(Uri.fromFile(file)); + } + + /** + * Detect MimeType of given file + * Android/Java's own MimeType map is very very small and detection barely works at all + * Hence use custom map for some file extensions + */ + public String getMimeType(Uri uri) { + String mimeType = null; + if (ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) { + ContentResolver cr = _context.getContentResolver(); + mimeType = cr.getType(uri); + } else { + String ext = MimeTypeMap.getFileExtensionFromUrl(uri.toString()); + mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(ext.toLowerCase()); + + // Try to guess if the recommended methods fail + if (TextUtils.isEmpty(mimeType)) { + switch (ext) { + case "md": + case "markdown": + case "mkd": + case "mdown": + case "mkdn": + case "mdwn": + case "rmd": + mimeType = "text/markdown"; + break; + case "yaml": + case "yml": + mimeType = "text/yaml"; + break; + case "json": + mimeType = "text/json"; + break; + case "txt": + mimeType = "text/plain"; + break; + } + } + } + + if (TextUtils.isEmpty(mimeType)) { + mimeType = "*/*"; + } + return mimeType; + } } + + diff --git a/app/src/main/java/net/gsantner/opoc/util/ShareUtil.java b/app/src/main/java/net/gsantner/opoc/util/ShareUtil.java index 4b4368cf..13c2589c 100644 --- a/app/src/main/java/net/gsantner/opoc/util/ShareUtil.java +++ b/app/src/main/java/net/gsantner/opoc/util/ShareUtil.java @@ -11,6 +11,7 @@ package net.gsantner.opoc.util; import android.app.Activity; +import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.ClipData; import android.content.Context; @@ -210,7 +211,7 @@ public class ShareUtil { /** * Start calendar application to add new event, with given details prefilled */ - public void createCalendarAppointment(@Nullable String title, @Nullable String description, @Nullable String location, @Nullable Long... startAndEndTime) { + public boolean createCalendarAppointment(@Nullable String title, @Nullable String description, @Nullable String location, @Nullable Long... startAndEndTime) { Intent intent = new Intent(Intent.ACTION_INSERT).setData(CalendarContract.Events.CONTENT_URI); if (title != null) { intent.putExtra(CalendarContract.Events.TITLE, title); @@ -230,7 +231,13 @@ public class ShareUtil { intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, startAndEndTime[1]); } } - _context.startActivity(intent); + + try { + _context.startActivity(intent); + return true; + } catch (ActivityNotFoundException e) { + return false; + } } /** @@ -762,4 +769,57 @@ public class ShareUtil { } return null; } + + /** + * By default Chrome Custom Tabs only uses Chrome Stable to open links + * There are also other packages (like Chrome Beta, Chromium, Firefox, ..) + * which implement the Chrome Custom Tab interface. This method changes + * the customtab intent to use an available compatible browser, if available. + */ + public void enableChromeCustomTabsForOtherBrowsers(Intent customTabIntent) { + String[] checkpkgs = new String[]{ + "com.android.chrome", "com.chrome.beta", "com.chrome.dev", "com.google.android.apps.chrome", "org.chromium.chrome", + "org.mozilla.fennec_fdroid", "org.mozilla.firefox", "org.mozilla.firefox_beta", "org.mozilla.fennec_aurora", + "org.mozilla.klar", "org.mozilla.focus", + }; + + // Get all intent handlers for web links + PackageManager pm = _context.getPackageManager(); + Intent urlIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.example.com")); + List browsers = new ArrayList<>(); + for (ResolveInfo ri : pm.queryIntentActivities(urlIntent, 0)) { + Intent i = new Intent("android.support.customtabs.action.CustomTabsService"); + i.setPackage(ri.activityInfo.packageName); + if (pm.resolveService(i, 0) != null) { + browsers.add(ri.activityInfo.packageName); + } + } + + // Check if the user has a "default browser" selected + ResolveInfo ri = pm.resolveActivity(urlIntent, 0); + String userDefaultBrowser = (ri == null) ? null : ri.activityInfo.packageName; + + // Select which browser to use out of all installed customtab supporting browsers + String pkg = null; + if (browsers.isEmpty()) { + pkg = null; + } else if (browsers.size() == 1) { + pkg = browsers.get(0); + } else if (!TextUtils.isEmpty(userDefaultBrowser) && browsers.contains(userDefaultBrowser)) { + pkg = userDefaultBrowser; + } else { + for (String checkpkg : checkpkgs) { + if (browsers.contains(checkpkg)) { + pkg = checkpkg; + break; + } + } + if (pkg == null && !browsers.isEmpty()) { + pkg = browsers.get(0); + } + } + if (pkg != null && customTabIntent != null) { + customTabIntent.setPackage(pkg); + } + } } diff --git a/build.gradle b/build.gradle index 937b7fc1..25e4f2b8 100644 --- a/build.gradle +++ b/build.gradle @@ -7,37 +7,40 @@ * https://www.apache.org/licenses/LICENSE-2.0 * #########################################################*/ -import java.text.SimpleDateFormat - // Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - ext.version_setup_compileSdk = 27 - ext.version_setup_minSdk = 17 - ext.version_setup_targetSdk = ext.version_setup_compileSdk - ext.version_setup_buildTools = "27.0.3" // Specifying optional +import java.text.SimpleDateFormat - // https://developer.android.com/studio/releases/gradle-plugin.html - ext.version_gradle_tools = "3.1.0" - // https://developer.android.com/topic/libraries/support-library/revisions.html - ext.version_library_appcompat = "27.1.1" - // https://github.com/JakeWharton/butterknife/releases - ext.version_library_butterknife = "8.8.1" - // https://github.com/guardianproject/NetCipher/releases - ext.version_library_netcipher = "2.0.0-alpha1" - // https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin#LookAtCentral - ext.version_plugin_kotlin = "1.2.21" - ext.enable_plugin_kotlin = false +buildscript { + ext { + version_gradle_tools = "3.2.1" + version_plugin_kotlin = "1.3.11" + enable_plugin_kotlin = false + + version_compileSdk = 28 + version_buildTools = "28.0.3" + version_minSdk = 17 + + // https://developer.android.com/topic/libraries/support-library/ + version_library_appcompat = "28.0.0" //androidx + // https://github.com/JakeWharton/butterknife/releases + version_library_butterknife = "8.8.1" //9.0.0-rc2 + // https://github.com/guardianproject/NetCipher/releases + version_library_netcipher = "2.0.0-alpha1" + } repositories { - google() + maven { url 'https://maven.google.com' } jcenter() + maven { url "https://jitpack.io" } + mavenCentral() } + dependencies { - classpath "com.android.tools.build:gradle:$version_gradle_tools" - classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' + classpath "com.android.tools.build:gradle:${version_gradle_tools}" + classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' if (project.enable_plugin_kotlin) { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$version_plugin_kotlin" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${version_plugin_kotlin}" } // NOTE: Do not place your application dependencies here; they belong @@ -47,10 +50,10 @@ buildscript { allprojects { repositories { - google() + maven { url 'https://maven.google.com' } jcenter() - mavenCentral() maven { url "https://jitpack.io" } + mavenCentral() } tasks.matching { task -> task.name.matches('.*generate.*Resources') }.all { @@ -99,6 +102,7 @@ ext.getGitHash = { -> return 'unknown' } } + @SuppressWarnings(["UnnecessaryQualifiedReference", "SpellCheckingInspection", "GroovyUnusedDeclaration"]) // Returns the build date in a RFC3339 compatible format. TZ is always converted to UTC static String getBuildDate() { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 18a0cf95..0682df5e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Apr 08 08:39:15 CEST 2018 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip From b833311353179d867dff963479674ccc74f1d6c0 Mon Sep 17 00:00:00 2001 From: Gregor Santner Date: Fri, 11 Jan 2019 02:43:53 +0100 Subject: [PATCH 7/7] Release v1.2.5 --- CHANGELOG.md | 3 +++ app/build.gradle | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70f0600b..f6049f2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +### v1.2.5 +Make youtube links open external/in youtube app (optional) + ### v1.2.3 **Improved:** - More supported languages, more complete translations! diff --git a/app/build.gradle b/app/build.gradle index beab3f7e..e0565339 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,8 +19,8 @@ android { resValue "string", "manifest_package_id", "com.github.dfa.diaspora_android" applicationId "com.github.dfa.diaspora_android" - versionName "1.2.3" - versionCode 36 + versionName "1.2.5" + versionCode 40 vectorDrawables.useSupportLibrary = true }