diff --git a/amethyst/build.gradle b/amethyst/build.gradle index 869259684..161d3de06 100644 --- a/amethyst/build.gradle +++ b/amethyst/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.vitorpamplona.amethyst" minSdk 26 targetSdk 34 - versionCode 382 - versionName "0.88.5" + versionCode 383 + versionName "0.88.6" buildConfigField "String", "RELEASE_NOTES_ID", "\"2a34cbadd03212c8162e1ff896ba12641821088a2ec8d5e40d54aa80c0510800\"" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 59f8501e9..8c832c4f2 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -2734,12 +2734,12 @@ class Account( val url = RelayUrlFormatter.normalize(it.key) val localFeedTypes = - localRelays.firstOrNull { localRelay -> RelayUrlFormatter.normalize(localRelay.url) == url }?.feedTypes + localRelays.firstOrNull { localRelay -> RelayUrlFormatter.normalize(localRelay.url) == url }?.feedTypes?.minus(setOf(FeedType.SEARCH, FeedType.WALLET_CONNECT)) ?: Constants.defaultRelays .filter { defaultRelay -> defaultRelay.url == url } .firstOrNull() ?.feedTypes - ?: FeedType.values().toSet() + ?: Constants.activeTypesGlobalChats RelaySetupInfo(url, it.value.read, it.value.write, localFeedTypes) } ?: return null @@ -2747,7 +2747,7 @@ class Account( return usersRelayList.toTypedArray() } - fun convertLocalRelays(): Array = localRelays.map { RelaySetupInfo(RelayUrlFormatter.normalize(it.url), it.read, it.write, it.feedTypes) }.toTypedArray() + fun convertLocalRelays(): Array = localRelays.map { RelaySetupInfo(RelayUrlFormatter.normalize(it.url), it.read, it.write, it.feedTypes.minus(setOf(FeedType.SEARCH, FeedType.WALLET_CONNECT))) }.toTypedArray() fun activeGlobalRelays(): Array = connectToRelays.value diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/NostrLnZapPaymentResponseDataSource.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/NostrLnZapPaymentResponseDataSource.kt index b0d77af3d..f2234343b 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/NostrLnZapPaymentResponseDataSource.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/NostrLnZapPaymentResponseDataSource.kt @@ -20,13 +20,10 @@ */ package com.vitorpamplona.amethyst.service -import com.vitorpamplona.ammolite.relays.Client import com.vitorpamplona.ammolite.relays.FeedType import com.vitorpamplona.ammolite.relays.Filter -import com.vitorpamplona.ammolite.relays.Relay import com.vitorpamplona.ammolite.relays.TypedFilter import com.vitorpamplona.quartz.events.LnZapPaymentResponseEvent -import com.vitorpamplona.quartz.events.RelayAuthEvent import com.vitorpamplona.quartz.signers.NostrSigner class NostrLnZapPaymentResponseDataSource( @@ -62,18 +59,4 @@ class NostrLnZapPaymentResponseDataSource( channel.typedFilters = listOfNotNull(wc).ifEmpty { null } } - - override fun auth( - relay: Relay, - challenge: String, - ) { - super.auth(relay, challenge) - - RelayAuthEvent.create(relay.url, challenge, authSigner) { - Client.send( - it, - relay.url, - ) - } - } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListView.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListView.kt index 8741f2cdb..0a6b966ad 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListView.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListView.kt @@ -88,6 +88,7 @@ import com.vitorpamplona.amethyst.ui.theme.largeRelayIconModifier import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.warningColor import com.vitorpamplona.ammolite.relays.Constants +import com.vitorpamplona.ammolite.relays.Constants.activeTypesGlobalChats import com.vitorpamplona.ammolite.relays.FeedType import com.vitorpamplona.ammolite.relays.RelayBriefInfoCache import com.vitorpamplona.ammolite.relays.RelayStat @@ -753,7 +754,7 @@ fun Kind3RelayEditBox( url = RelayUrlFormatter.normalize(url), read = read, write = write, - feedTypes = FeedType.entries.toSet(), + feedTypes = activeTypesGlobalChats, relayStat = RelayStat(), ), ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListViewModel.kt index de48cb790..a0f66e2f3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/relays/Kind3RelayListViewModel.kt @@ -25,6 +25,7 @@ import androidx.lifecycle.viewModelScope import com.vitorpamplona.amethyst.model.Account import com.vitorpamplona.amethyst.service.Nip11CachedRetriever import com.vitorpamplona.ammolite.relays.Constants +import com.vitorpamplona.ammolite.relays.Constants.activeTypesGlobalChats import com.vitorpamplona.ammolite.relays.FeedType import com.vitorpamplona.ammolite.relays.RelaySetupInfo import com.vitorpamplona.ammolite.relays.RelayStats @@ -99,7 +100,7 @@ class Kind3RelayListViewModel : ViewModel() { .filter { defaultRelay -> defaultRelay.url == it.key } .firstOrNull() ?.feedTypes - ?: FeedType.values().toSet().toImmutableSet() + ?: activeTypesGlobalChats.toImmutableSet() Kind3BasicRelaySetupInfo( url = RelayUrlFormatter.normalize(it.key), @@ -108,8 +109,7 @@ class Kind3RelayListViewModel : ViewModel() { feedTypes = localInfoFeedTypes, relayStat = RelayStats.get(it.key), ) - } - .distinctBy { it.url } + }.distinctBy { it.url } .sortedBy { it.relayStat.receivedBytes } .reversed() } else { @@ -122,8 +122,7 @@ class Kind3RelayListViewModel : ViewModel() { feedTypes = it.feedTypes, relayStat = RelayStats.get(it.url), ) - } - .distinctBy { it.url } + }.distinctBy { it.url } .sortedBy { it.relayStat.receivedBytes } .reversed() } @@ -134,16 +133,16 @@ class Kind3RelayListViewModel : ViewModel() { hasModified = true _relays.update { - defaultRelays.map { - Kind3BasicRelaySetupInfo( - url = RelayUrlFormatter.normalize(it.url), - read = it.read, - write = it.write, - feedTypes = it.feedTypes, - relayStat = RelayStats.get(it.url), - ) - } - .distinctBy { it.url } + defaultRelays + .map { + Kind3BasicRelaySetupInfo( + url = RelayUrlFormatter.normalize(it.url), + read = it.read, + write = it.write, + feedTypes = it.feedTypes, + relayStat = RelayStats.get(it.url), + ) + }.distinctBy { it.url } .sortedBy { it.relayStat.receivedBytes } .reversed() } @@ -223,6 +222,4 @@ fun Iterable.updated( fun togglePresenceInSet( set: Set, item: T, -): Set { - return if (set.contains(item)) set.minus(item) else set.plus(item) -} +): Set = if (set.contains(item)) set.minus(item) else set.plus(item) diff --git a/amethyst/src/main/res/values-cs/strings.xml b/amethyst/src/main/res/values-cs/strings.xml index c760b9db1..0ab0b8c71 100644 --- a/amethyst/src/main/res/values-cs/strings.xml +++ b/amethyst/src/main/res/values-cs/strings.xml @@ -437,6 +437,7 @@ Nastavení Vždy Pouze Wi-Fi + Neomezená WiFi Nikdy Hotovo Zjednodušené @@ -625,6 +626,8 @@ Server po nahrání neposkytl URL Nepodařilo se stáhnout nahraná média ze serveru Nelze připravit místní soubor k nahrání: %1$s + Nahrání selhalo: %1$s + Smazání selhalo: %1$s Upravit koncept Přihlášení pomocí QR kódu Trasa @@ -644,6 +647,7 @@ Odpověď Zvýšit nebo citovat Olajkovat + Změnit rychlé reakce Obrázek profilu %1$s Relé %1$s Rozbalit seznam relací @@ -732,4 +736,33 @@ Žádost o práci od DVM Žádost o platbu odeslána, čeká se na potvrzení z vaší peněženky Čekání na potvrzení platby DVM nebo na zaslání výsledků + Špatný požadavek - Server nemůže nebo nechce zpracovat požadavek. + Neautorizovaný - Uživatel nemá platné přihlašovací údaje + Požadována platba - Server vyžaduje platbu pro dokončení požadavku + Zakázáno - Uživatel nemá přístupová práva k provedení požadavku + Nenalezeno - Server nemůže najít požadovanou adresu + Metoda není povolena - Server podporuje metodu požadavku, ale ne cílový zdroj + Nepřijatelné - Server nenachází žádný obsah, který by vyhovoval požadavku. + Vyžadováno ověření proxy - Uživatel nemá platné přihlašovací údaje + Časový limit požadavku - Server čekal na někoho jiného příliš dlouho + Konflikt - Server nemůže splnit požadavek, protože existuje konflikt se zdrojem + Pryč - Požadovaný obsah byl trvale odstraněn ze serveru a nebude obnoven + Požadována délka - Server odmítá požadavek, protože vyžaduje definovanou délku + Předpoklad selhal - Předpoklady požadavku v hlavičkách, které server nesplňuje + Příliš velký obsah - Požadavek je větší než definované limity serveru a server odmítá jej zpracovat + Příliš dlouhá URI - URL požadovaná klientem je příliš dlouhá na to, aby ji server zpracoval. + Nepodporovaný typ média - Požadavek používá formát média, který server nepodporuje + Rozsah nesplnitelný - Server nemůže splnit hodnotu uvedenou v hlavičce rozsahu požadavku. + Očekávání selhalo - Server nemůže splnit požadavky uvedené v hlavičce očekávání požadavku + Vyžadována aktualizace - Server odmítá zpracovat požadavek s aktuálním protokolem, pokud klient neaktualizuje na jiný protokol. + Interní chyba serveru - Server narazil na neočekávanou chybu a nemůže dokončit požadavek + Nerealizováno - Server nemůže splnit požadavek nebo nerozpoznává metodu požadavku + Špatná brána - Server funguje jako brána a obdržel neplatnou odpověď od hostitele + Služba nedostupná - K tomu často dochází, když je server přetížený nebo je v údržbě + Časový limit brány - Server fungoval jako brána nebo proxy a čekal na odpověď příliš dlouho + Verze HTTP není podporována - Server nepodporuje verzi HTTP v požadavku + Varianta také vyjednává - Server má interní konfigurační chybu + Nedostatečné úložiště - Server nemá dostatek úložiště, aby úspěšně zpracoval požadavek + Detekována smyčka - Server detekuje nekonečnou smyčku při zpracování požadavku + Vyžadováno ověření sítě - Klient musí být autentizován, aby získal přístup k síti diff --git a/amethyst/src/main/res/values-de/strings.xml b/amethyst/src/main/res/values-de/strings.xml index 89ab15132..37a62dbee 100644 --- a/amethyst/src/main/res/values-de/strings.xml +++ b/amethyst/src/main/res/values-de/strings.xml @@ -436,6 +436,7 @@ anz der Bedingungen ist erforderlich Einstellungen Immer Nur WLAN + Unbegrenztes WLAN Nie Fertig Vereinfacht @@ -621,6 +622,8 @@ anz der Bedingungen ist erforderlich Der Server hat nach dem Hochladen keine URL angegeben Hochgeladene Medien konnten nicht vom Server heruntergeladen werden Lokale Datei konnte nicht zum Hochladen vorbereitet werden: %1$s + Upload fehlgeschlagen: %1$s + Löschen fehlgeschlagen: %1$s Entwurf bearbeiten Einloggen mit QR-Code Startseite @@ -638,6 +641,7 @@ anz der Bedingungen ist erforderlich Antworten Boosten oder Zitieren Gefällt mir + Schnelle Reaktionen ändern Profilbild von %1$s %1$s weiterleiten Rela-Liste erweitern @@ -725,4 +729,33 @@ anz der Bedingungen ist erforderlich Anforderung eines Jobs von DVM Zahlungsanforderung gesendet, wartet auf Bestätigung Ihrer Geldbörse Warten auf Bestätigung der Zahlung durch DVM oder auf die Ergebnisse + Fehlerhafte Anfrage - Der Server kann oder will die Anfrage nicht verarbeiten. + Nicht autorisiert - Der Benutzer hat keine gültigen Authentifizierungsdaten + Zahlung erforderlich - Der Server verlangt eine Zahlung, um die Anfrage abzuschließen + Verboten - Der Benutzer hat keine Zugriffsrechte, um die Anfrage zu stellen + Nicht gefunden - Der Server kann die angeforderte Adresse nicht finden + Methode nicht erlaubt - Der Server unterstützt die Anfragemethode, aber nicht die Zielressource + Nicht akzeptabel - Der Server findet keinen Inhalt, der die Anfrage erfüllt. + Proxy-Authentifizierung erforderlich - Der Benutzer hat keine gültigen Authentifizierungsdaten + Anfrage-Timeout - Der Server hat zu lange auf jemanden anderen gewartet + Konflikt - Der Server kann die Anfrage nicht erfüllen, da ein Konflikt mit der Ressource besteht + Verschwunden - Der angeforderte Inhalt wurde dauerhaft vom Server gelöscht und wird nicht wiederhergestellt + Länge erforderlich - Der Server lehnt die Anfrage ab, da er eine definierte Länge erfordert + Vorbedingung fehlgeschlagen - Die Vorbedingungen der Anfrage in den Kopfzeilenfeldern, die der Server nicht erfüllt + Nutzlast zu groß - Die Anfrage ist größer als die vom Server definierten Grenzen und der Server weigert sich, sie zu verarbeiten + URI zu lang - Die vom Client angeforderte URL ist zu lang, um vom Server verarbeitet zu werden. + Medientyp nicht unterstützt - Die Anfrage verwendet ein Medienformat, das der Server nicht unterstützt + Bereich nicht erfüllbar - Der Server kann den im Range-Header-Feld der Anfrage angegebenen Wert nicht erfüllen. + Erwartung fehlgeschlagen - Der Server kann die Anforderungen, die durch den Expect-Request-Header-Feld angegeben sind, nicht erfüllen + Upgrade erforderlich - Der Server weigert sich, die Anfrage mit dem aktuellen Protokoll zu verarbeiten, es sei denn, der Client wechselt zu einem anderen Protokoll. + Interner Serverfehler - Der Server hat einen unerwarteten Fehler festgestellt und kann die Anfrage nicht abschließen + Nicht implementiert - Der Server kann die Anfrage nicht erfüllen oder erkennt die Anfragemethode nicht + Schlechtes Gateway - Der Server agiert als Gateway und erhielt eine ungültige Antwort vom Host + Dienst nicht verfügbar - Dies tritt häufig auf, wenn ein Server überlastet ist oder gewartet wird + Gateway-Timeout - Der Server agierte als Gateway oder Proxy und hat zu lange auf eine Antwort gewartet + HTTP-Version nicht unterstützt - Der Server unterstützt die HTTP-Version der Anfrage nicht + Variante verhandelt auch - Der Server hat einen internen Konfigurationsfehler + Unzureichender Speicher - Der Server hat nicht genug Speicher, um die Anfrage erfolgreich zu verarbeiten + Schleife erkannt - Der Server erkennt eine Endlosschleife, während er die Anfrage bearbeitet + Netzwerk-Authentifizierung erforderlich - Der Client muss authentifiziert werden, um auf das Netzwerk zuzugreifen diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index 87d5ee60d..f2f5b53a2 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -434,6 +434,7 @@ Configurações Sempre Somente wifi + WiFi não medida Nunca Concluído Simplificado @@ -620,6 +621,8 @@ O servidor não forneceu uma URL após o upload Não foi possível baixar o arquivo de mídia carregado do servidor Não foi possível preparar o arquivo local para enviar: %1$s + Falha ao enviar: %1$s + Falha ao excluir: %1$s Editar rascunho Entrar com Código QR Rota @@ -638,6 +641,7 @@ Responder Impulsionar ou Citar Gostar + Mudar reações rápidas Foto de perfil de %1$s Repassar %1$s Expandir lista de repasse @@ -727,4 +731,33 @@ Solicitando Trabalho ao DVM Pedido de pagamento enviado, aguardando confirmação da sua carteira Aguardando o DVM confirmar o pagamento ou enviar resultados + Requisição inválida - O servidor não pode ou não irá processar a requisição. + Não autorizado - O usuário não possui credenciais de autenticação válidas + Pagamento necessário - O servidor requer pagamento para completar a requisição + Proibido - O usuário não tem direitos de acesso para fazer a requisição + Não encontrado - O servidor não consegue encontrar o endereço solicitado + Método não permitido - O servidor suporta o método da requisição, mas não o recurso alvo + Não aceitável - O servidor não encontra nenhum conteúdo que satisfaça a requisição. + Autenticação de Proxy necessária - O usuário não possui credenciais de autenticação válidas + Tempo de requisição esgotado - O servidor esperou muito tempo por outra parte + Conflito - O servidor não pode cumprir a requisição devido a um conflito com o recurso + Indisponível - O conteúdo solicitado foi permanentemente excluído do servidor e não será restaurado + Comprimento necessário - O servidor rejeita a requisição porque requer um comprimento definido + Falha na pré-condição - As pré-condições do cabeçalho da requisição não foram atendidas pelo servidor + Carga muito grande - A requisição é maior que os limites definidos pelo servidor, e o servidor se recusa a processá-la + URI muito longa - A URL solicitada pelo cliente é muito longa para o servidor processar. + Tipo de mídia não suportado - A requisição usa um formato de mídia que o servidor não suporta + Faixa não satisfatória - O servidor não pode atender ao valor indicado no campo de cabeçalho Range da requisição. + Falha na expectativa - O servidor não pode atender aos requisitos indicados pelo campo de cabeçalho Expect da requisição + Atualização necessária - O servidor se recusa a processar a requisição com o protocolo atual, a menos que o cliente faça a atualização para um protocolo diferente. + Erro interno do servidor - O servidor encontrou um erro inesperado e não pode completar a requisição + Não implementado - O servidor não pode cumprir a requisição ou não reconhece o método da requisição + Gateway inválido - O servidor atua como um gateway e recebeu uma resposta inválida do host + Serviço indisponível - Isso geralmente ocorre quando um servidor está sobrecarregado ou em manutenção + Tempo de gateway esgotado - O servidor estava atuando como um gateway ou proxy e esperou muito tempo por uma resposta + Versão HTTP não suportada - O servidor não suporta a versão HTTP na requisição + Variante também negocia - O servidor tem um erro de configuração interna + Armazenamento insuficiente - O servidor não possui armazenamento suficiente para processar a requisição com sucesso + Loop detectado - O servidor detecta um loop infinito enquanto processa a requisição + Autenticação de rede necessária - O cliente deve ser autenticado para acessar a rede diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index e44f42010..eaa9085c7 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -425,6 +425,7 @@ Inställningar Alltid Endast Wi-Fi + Obegränsad WiFi Aldrig Slutförd Förenklad @@ -614,6 +615,8 @@ Servern gav inte en URL efter uppladdning Kunde inte ladda ner uppladdade medier från servern Kunde inte förbereda lokal fil att ladda upp: %1$s + Uppladdning misslyckades: %1$s + Radering misslyckades: %1$s Redigera utkast Logga in med QR-kod Rutt @@ -633,6 +636,7 @@ Svara Boosta eller citera Gilla + Ändra Snabba Reaktioner %1$s Profilbild Relä %1$s Expandera relälistan @@ -720,4 +724,33 @@ Begär jobb från DVM Betalningsbegäran skickad, väntar på bekräftelse från din plånbok Väntar på att DVM ska bekräfta betalningen eller skicka resultaten + Felaktig begäran - Servern kan inte eller vill inte bearbeta begäran. + Obehörig - Användaren har inte giltiga autentiseringsuppgifter + Betalning krävs - Servern kräver betalning för att slutföra begäran + Förbjuden - Användaren har inte rätt att göra begäran + Ej hittad - Servern kan inte hitta den begärda adressen + Metod ej tillåten - Servern stöder begärningsmetoden men inte målresursen + Ej acceptabel - Servern hittar inget innehåll som uppfyller begäran. + Proxyautentisering krävs - Användaren har inte giltiga autentiseringsuppgifter + Begäran timeout - Servern väntade för länge på någon annan + Konflikt - Servern kan inte uppfylla begäran på grund av en konflikt med resursen + Borta - Det begärda innehållet har permanent raderats från servern och kommer inte att återställas + Längd krävs - Servern avvisar begäran eftersom den kräver en definierad längd + Förhandsvillkor misslyckades - Begärningens förhandsvillkor i huvudfält som servern inte uppfyller + För stor last - Begäran är större än serverns definierade gränser och servern vägrar att bearbeta den + URI för lång - URL som begärdes av klienten är för lång för servern att bearbeta. + Osupporterat mediatyp - Begäran använder ett mediaformat som servern inte stöder + Område ej tillfredsställt - Servern kan inte uppfylla värdet som anges i begärans Range-huvudfält. + Förväntning misslyckades - Servern kan inte uppfylla kraven som anges av Expect-begärans huvudfält + Uppgradering krävs - Servern vägrar att bearbeta begäran med det nuvarande protokollet om inte klienten uppgraderar till ett annat protokoll. + Internt serverfel - Servern har stött på ett oväntat fel och kan inte slutföra begäran + Ej implementerad - Servern kan inte uppfylla begäran eller känner inte igen begärningsmetoden + Fel gateway - Servern agerar som en gateway och fick ett ogiltigt svar från värden + Tjänst otillgänglig - Detta sker ofta när en server är överbelastad eller nere för underhåll + Gateway timeout - Servern agerade som en gateway eller proxy och väntade för länge på ett svar + HTTP-version ej stödd - Servern stöder inte HTTP-versionen i begäran + Variant förhandlar också - Servern har ett internt konfigurationsfel + Otillräckligt lagringsutrymme - Servern har inte tillräckligt med lagringsutrymme för att bearbeta begäran framgångsrikt + Loop upptäckt - Servern upptäcker en oändlig loop medan den bearbetar begäran + Nätverksautentisering krävs - Klienten måste autentiseras för att få tillgång till nätverket diff --git a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt index b403af399..6d9f0fad2 100644 --- a/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt +++ b/ammolite/src/main/java/com/vitorpamplona/ammolite/relays/Relay.kt @@ -56,7 +56,7 @@ class Relay( val url: String, val read: Boolean = true, val write: Boolean = true, - val activeTypes: Set = FeedType.values().toSet(), + val activeTypes: Set, ) { companion object { // waits 3 minutes to reconnect once things fail diff --git a/commons/src/main/java/com/vitorpamplona/amethyst/commons/preview/MetaTagsParser.kt b/commons/src/main/java/com/vitorpamplona/amethyst/commons/preview/MetaTagsParser.kt index 68fba9e94..9d70f8246 100644 --- a/commons/src/main/java/com/vitorpamplona/amethyst/commons/preview/MetaTagsParser.kt +++ b/commons/src/main/java/com/vitorpamplona/amethyst/commons/preview/MetaTagsParser.kt @@ -143,6 +143,7 @@ object MetaTagsParser { "GT" to ">", "nbsp" to " ", "NBSP" to " ", + "middot" to "·", ) val CHAR_REFS = mapOf( @@ -153,6 +154,8 @@ object MetaTagsParser { "039" to "'", "8217" to "’", "8216" to "‘", + "8220" to "“", + "8230" to "…", "39" to "'", "ldquo" to "“", "rdquo" to "”", @@ -160,6 +163,7 @@ object MetaTagsParser { "hellip" to "…", "x27" to "'", "nbsp" to " ", + "x2d" to "-", ) fun replaceCharRefs(match: MatchResult): String {