Download Latest Version NeReO_1.3.7.apk (14.0 MB) Google Add to Preferred Sources
Home / 1.3.7
Name Modified Size InfoDownloads / Week
Parent folder
NeReO_1.3.7.apk < 20 hours ago 14.0 MB
README.txt < 20 hours ago 61.4 kB
README_EN.txt < 20 hours ago 57.5 kB
NeReO_1.3.7_src.zip < 20 hours ago 696.2 kB
NeReO_features_EN_essentials.txt 2026-09-15 581 Bytes
NeReO_features_IT_essenziali.txt 2026-09-15 666 Bytes
Totals: 6 Items   14.8 MB 38
======================================================================
 NeReO 1.3.7 - Ne(ws) Re(ader) O(pen-source)
 Newsreader Usenet (NNTP) solo testo per Android
 By MCSM - 2026/09/10
======================================================================

 ***  VERSIONE 1.3.7  ***

 Due segnalazioni di Dave Royal sul ripristino del backup. Una era
 giusta, e il difetto era piu' esteso di quanto avesse visto.

  * Il ripristino non duplica piu' filtri e identita'. Lui aveva
    notato che i filtri venivano AGGIUNTI invece che sostituiti;
    guardando il codice e' emerso che le IDENTITA' avevano lo stesso
    difetto. Il ripristino e' ora IDEMPOTENTE: ripristinare due volte
    lo stesso file lascia esattamente lo stesso stato. I filtri si
    riconoscono da nome, campo, tipo di confronto, pattern e ambito
    dei gruppi; le identita' dal nickname, che il formato di backup
    usava gia' come chiave per rilegare i server.
  * Il ripristino ora chiede come procedere: Unisci o Sostituisci. Il
    difetto vero non era "aggiunge invece di sostituire": era che
    nella stessa operazione l'app faceva TRE cose diverse (dedup su
    server e sottoscrizioni, inserimento cieco su filtri e identita',
    sovrascrittura sulle impostazioni). Nessuna delle due opzioni
    tocca server, sottoscrizioni o articoli scaricati: cancellare un
    server porterebbe via con se' i suoi gruppi e i suoi messaggi.
  * "Password errata" non copre piu' gli errori di importazione. Il
    dialogo decifrava E importava in un unico blocco protetto: un
    guasto nel secondo passo veniva annunciato come un problema del
    primo, mandando a cercare la causa sbagliata.
  * L'a capo in invio non lascia piu' uno spazio in coda alle righe
    che spezza. Uno spazio a fine riga e' il marcatore di rottura
    debole del Format=Flowed (RFC 3676): un lettore che lo interpreta
    avrebbe riunito quella riga con la successiva, disfacendo proprio
    l'a-capo appena messo. Succedeva solo quando la rottura cadeva su
    un doppio spazio, tutt'altro che raro dopo un punto. I doppi spazi
    DENTRO la riga restano come li hai scritti, e il delimitatore
    della firma conserva lo spazio che la convenzione richiede.
    Domanda di Adam H. Kerman.

 ***  VERSIONE 1.3.6  ***

 Due difetti di conformita' e una funzione che mancava, tutti nati
 dalle domande di Adam H. Kerman su un gruppo anglofono. Escono prima
 della 1.4 perche' riguardano cio' che NeReO mette SULLA RETE: quello
 che finisce negli archivi altrui non si corregge dopo.

  * Oggetti lunghi con caratteri accentati o non latini: codifica
    corretta. La RFC 2047 ammette al massimo 75 caratteri per parola
    codificata; NeReO ne produceva UNA SOLA di lunghezza qualunque -
    misurato, un oggetto italiano normale usciva a 140 caratteri. Ora
    la codifica si spezza e si piega come vuole lo standard, tagliando
    solo fra caratteri interi perche' emoji e simboli multi-byte
    restino intatti.
  * us-ascii dichiarato quando il corpo e' davvero us-ascii (con
    7bit), invece di dichiarare sempre UTF-8. Il controllo avviene
    DOPO che la firma e' entrata nel corpo: deciderlo un passo prima
    significherebbe dichiarare ASCII puro e poi spedire una firma con
    dentro un accento.
  * Nuova azione di barra: Esporta / condividi. Consegna l'articolo -
    intestazioni complete comprese - a un'altra app, cosi' puoi
    archiviarlo o rispondere all'autore per posta, cosa che NeReO non
    sa fare da se'. Sostituisce una condivisione sparita in sordina
    con la 1.3.4 insieme al vecchio menu di selezione.
  * Due nuove azioni di barra: Copia link (usenet.id) e Copia
    Message-ID. La prima costruisce un indirizzo web che punta
    all'articolo aperto - https://usenet.id/ seguito dal suo
    Message-ID - cosi' puoi mandare qualcuno a leggere proprio quel
    messaggio da una chat, una mail o un forum. La seconda mette negli
    appunti il Message-ID stesso, nella forma canonica, che finora si
    poteva ottenere solo aprendo le intestazioni complete e
    selezionandolo a mano. NeReO NON CONTATTA MAI usenet.id: compone
    il testo e lo copia - nessuna connessione, nessun permesso nuovo.
    Richiesta di ObiWan.
  * Preimpostazione corretta: OVH torna sulla porta 119 con
    STARTTLS, invece della 563 con TLS implicito. La 1.3.5 aveva
    spostato sulla 563 tutti e tre i server che richiedono un account,
    ma OVH non offre TLS su quella porta: sceglierlo dall'elenco
    integrato produceva una configurazione che non poteva funzionare.
    Il suo amministratore ha abilitato STARTTLS sulla 119 il 14
    settembre 2026, e quella combinazione e' stata verificata su un
    dispositivo reale. Per i server gia' configurati non cambia nulla.

 ***  VERSIONE 1.3.5  ***

 Una sola cosa, e non e' una funzione: i messaggi d'errore del
 livello di rete ora sono in INGLESE per tutti.

  * Da dove nasce: un utente che usa NeReO con l'interfaccia in
    inglese si e' visto rispondere IN ITALIANO quando il suo server
    ha rifiutato la connessione ("483 Connessione non cifrata...") e
    si e' ragionevolmente chiesto cosa avesse sbagliato. Non aveva
    sbagliato niente.
  * Perche' succedeva: NntpClient e' volutamente privo di dipendenze
    Android - e' la scelta che lo rende provabile da riga di comando
    - e quindi non ha un Context e non puo' leggere strings.xml. I
    suoi messaggi sono scritti nel codice, e nessuna lingua di
    sistema li tocca. Non era una traduzione dimenticata: i tre
    strings.xml hanno parita' completa di chiavi.
  * Cosa si e' scelto, e cosa costa: se una lingua sola deve valere
    per tutti, tanto vale sia quella di values/ (il predefinito
    dell'app) e la lingua franca di Usenet. NON e' la
    localizzazione: e' un ripiego dichiarato, e il prezzo lo paga
    ora chi usa l'app in italiano, che leggera' in inglese meno di
    dieci messaggi su un'app per il resto tradotta. La soluzione
    vera - passare i testi dall'esterno di quel livello - si fara'
    quando quella classe verra' riaperta per altri motivi.
  * Il nome utente viene ripulito dagli spazi ai bordi, come gia'
    l'indirizzo del server. Uno spazio arrivato da un incolla o da un
    suggerimento della tastiera veniva spedito al server, che lo
    contava - e l'unico riscontro era "autenticazione fallita". La
    password NO, di proposito: puo' legittimamente iniziare o finire
    con uno spazio, e l'app non ha il diritto di modificarla in
    silenzio.
  * Campo password: pulsante per rivelarla e conteggio dei caratteri.
    Il conteggio c'e' perche' coglie cio' che rivelare la password non
    puo': uno spazio finale e' invisibile anche in chiaro. Se sai che
    la tua ha undici caratteri e il campo ne segna dodici, il problema
    e' trovato. E se davvero ha spazi ai bordi, l'app te lo dice in
    rosso invece di correggerti d'autorita'.
  * Il registro diagnostico NNTP annota la FORMA delle credenziali -
    quanti caratteri, spazi ai bordi, presenza di caratteri non ASCII
    - e MAI il valore. E' la differenza fra diagnosticare un accesso
    rifiutato leggendo un log e tirare a indovinare.
  * Scegliendo un server dall'elenco integrato, i tre che
    richiedono un account (Eternal September, Solani, OVH) nascono
    su porta 563 cifrata. Finora l'elenco proponeva a tutti la 119
    in chiaro, quei tre compresi - e siccome NeReO si rifiuta di
    mettere una password su una connessione non cifrata, il primo
    tentativo falliva SEMPRE con un 483. Non era un caso limite: era
    il percorso normale, e chi sceglie da un elenco lo fa proprio
    per non dover decidere la porta. I due server aperti restano
    sulla 119. Per i server gia' configurati non cambia nulla.
  * Corretto un difetto che si presentava in due modi diversi.
    "Apri il primo non letto" a volte tornava al post iniziale -
    GIA' LETTO - pur essendoci messaggi da leggere; e marcare una
    discussione come letta ogni tanto la lasciava visibile. Erano
    lo STESSO difetto: NeReO rispondeva alla domanda "quali
    messaggi stanno in questa discussione" in TRE modi, e uno solo
    dei tre era il motore di threading che disegna davvero lo
    schermo. Gli altri due confrontavano il testo dell'intestazione
    References, e divergevano ogni volta che il post iniziale non
    era mai stato scaricato o che un messaggio elencava il solo
    padre diretto. Ora tutta l'app chiede al motore di threading.
  * Nota per chi ha segnalato: le risposte orfane erano esattamente
    la causa. I cambi di oggetto no - il motore di threading di
    NeReO non guarda mai l'oggetto, quindi rinominare un messaggio
    non puo' influenzare il raggruppamento.
  * La firma puo' contenere righe vuote fra le righe di testo.
    Quattro righe intercalate perdevano le ultime due, perche' il
    limite contava le righe FISICHE; ora conta le righe DI TESTO,
    con un tetto complessivo perche' una firma non diventi spazio
    vuoto. Da sapere: la netiquette classica conta quattro righe
    fisiche, vuote comprese - questa e' una tolleranza di NeReO, e
    un altro lettore potrebbe comunque troncarla.

 ***  VERSIONE 1.3.4 - RELEASE TECNICA  ***

 Del codice dell'app non e' cambiata una riga rispetto alla 1.3.3.
 E' cambiato tutto cio' su cui NeReO poggia.

  * Catena di compilazione migrata: Android Gradle plugin 8.7.3 ->
    9.3.0, Gradle 8.9 -> 9.5.0, Kotlin 2.0.21 -> 2.2.10, KSP alla
    numerazione KSP2. Fatta con l'AGP Upgrade Assistant di Android
    Studio, non a mano: le versioni le ha scelte lo strumento in base
    a cio' che quella installazione regge davvero.
  * Jetpack Compose dalla 1.7.6 alla 1.12 - venti mesi in un colpo
    solo. compileSdk sale a 37 perche' Compose 1.12 lo pretende;
    targetSdk RESTA a 35, deliberatamente: alzarlo farebbe scattare
    restrizioni nuove del sistema operativo, e non vogliamo mescolare
    QUELLE con questo salto.
  * Perche' esce da sola, senza nient'altro dentro: venti mesi di
    Compose toccano il disegno del testo, lo scorrimento, la tastiera
    e le animazioni, cioe' tutta l'app. Se dopo questa qualcosa si
    comporta male, dev'esserci UN SOLO sospettato possibile. E' la
    stessa regola con cui e' uscita la 1.2.14.
  * Il passo intermedio e' stato provato sul campo: toolchain nuova
    con Compose ancora vecchia, compilata e installata - APK
    verificato, AGP 9.3.0 con Compose 1.7.6, tutto normale. Quindi
    AGP e Gradle sono gia' assolti: se qualcosa si rompe adesso, e'
    Compose.
  * Cosa speriamo, dichiarato per quello che e': nelle note di Compose
    1.12 ci sono lavori espliciti sulla selezione col mouse e sulla
    barra di selezione. Su un dispositivo senza schermo tattile quella
    barra non e' mai comparsa. Questo e' l'unico modo per sapere se il
    problema fosse gia' risolto a monte. E' una PREVISIONE, non una
    promessa: se non si risolve, sapremo che quella strada non
    bastava - e il debito di venti mesi sara' tolto comunque.
  * Una cosa si e' persa, ed e' giusto dirlo: selezionando il testo di
    un messaggio non compaiono piu' "Cerca sul web" e "Condividi".
    Erano state aggiunte nella 1.2.8 su richiesta di Dave Royal,
    sostituendo il menu di selezione con uno nostro. Compose 1.12 non
    passa piu' da quel meccanismo: il menu ora e' quello della
    piattaforma, e il nostro veniva ignorato in silenzio.
  * Perche' non si possono ricostruire: l'API nuova permette di
    AGGIUNGERE voci a quel menu, ma non dice quale testo sia
    selezionato - verificato nel sorgente di androidx, non dedotto.
    Senza il testo, "Cerca" e "Condividi" non sanno cosa cercare ne'
    cosa condividere. Copia e Seleziona tutto non sono toccate, e
    l'azione "Copia il messaggio" nella barra di lettura resta.
  * SelectionToolbar.kt e' stato cancellato, non lasciato li' inerte:
    il suo commento continuava ad affermare che funzionava, e un file
    che mente e' peggio di un file che manca.
  * Se noti qualcosa di diverso dalla 1.3.3, segnalalo anche se
    sembra una sciocchezza. E' esattamente a questo che serve questa
    versione.

 ---

 ***  VERSIONE 1.3.3  ***

 Novita' di questa versione:
  * Quando una connessione cifrata fallisce, NeReO dice ora QUALE dei
    due problemi possibili sia: i rimedi sono diversi, e fino alla
    1.3.2 li trattavamo come uno solo.
  * CATENA DI FIRMA: se il certificato non e' firmato da un'autorita'
    che Android riconosce (autofirmato, CA privata) o e' scaduto, il
    messaggio lo dice e avverte esplicitamente che l'opzione di
    sicurezza NON PUO' SERVIRE. Fino alla 1.3.2 la suggerivamo in ogni
    caso, mandando l'utente a cercare una via d'uscita inesistente.
  * NOME HOST: se invece il certificato e' valido ma emesso per un
    altro indirizzo, l'opzione serve davvero e il messaggio ci
    indirizza.
  * INDETERMINATO: se l'errore non corrisponde a nessuno dei due,
    NeReO lo dice invece di inventarsi una diagnosi, e mostra il testo
    grezzo dell'eccezione - il dato che serve a chi segnala.
  * L'opzione e' stata rinominata con quello che fa davvero: "Non
    verificare il nome host sul certificato". Il vecchio nome,
    "Consenti certificati non verificabili", prometteva piu' di quanto
    mantenesse: non ha MAI fatto accettare a NeReO un certificato
    autofirmato, di autorita' sconosciuta o scaduto - quello lo
    rifiuta il TrustManager di Android, che quell'interruttore non
    sfiora. Ora la nota sotto l'opzione lo dice esplicitamente.
  * Nessun cambiamento di comportamento: cio' che si collegava prima
    si collega ancora, cio' che veniva rifiutato viene rifiutato
    ancora. Cambia solo quello che NeReO DICE.
  * Segnalato da Bingo3331, che su Paganini ha fatto esattamente
    quello che il messaggio d'errore gli diceva di fare, ha visto che
    non funzionava e ne ha dedotto - ragionevolmente - che l'opzione
    fosse rotta. Non e' rotta: fa un'altra cosa. Il vicolo cieco
    l'avevamo costruito noi.

 ---

  * Nuova azione "Copia il messaggio" nella barra di lettura, sia sul
    telefono sia nel riquadro dei pannelli: UN CLIC copia l'intero
    messaggio negli appunti, senza dover prima selezionare nulla. E'
    personalizzabile come tutte le altre azioni (si puo' spostare nel
    menu tre puntini o spegnere). Insieme, un pulsante "Incolla" nella
    barra della schermata di scrittura.
  * Perche' serviva, e non era quello che pensavamo: il video di
    collaudo di Roxy chiude la questione. Sul suo Box TV la SELEZIONE
    del testo FUNZIONA - il blocco si evidenzia e si estende col
    trascinamento - ma la barra flottante Copia/Cerca/Condividi NON
    COMPARE MAI, nemmeno per un fotogramma in 22 secondi con la
    selezione ferma al centro dello schermo. Non e' un problema di
    posizionamento del popup, come avevamo ipotizzato: la barra non
    viene proprio chiamata.
  * L'indizio del meccanismo: mancano anche le MANIGLIE di selezione,
    che Compose disegna sul percorso a tocco - mentre sul telefono,
    col dito, maniglie e barra ci sono entrambe. Due dispositivi, due
    percorsi di input, segnali coerenti in direzioni opposte: e' il
    percorso MOUSE a non alzare la barra. E su Android il tasto destro
    e' BACK, quindi non c'e' nemmeno un menu contestuale su cui
    ripiegare.
  * Se hai una tastiera collegata, Ctrl+C e Ctrl+V funzionano gia',
    anche dove la barra flottante non compare - confermato da Roxy sul
    suo Box TV. Per copiare UNA PARTE di messaggio resta la via piu'
    rapida, e vale la pena saperlo: la funzione c'era gia', mancava
    l'informazione.
  * Il rimedio gira intorno al problema invece di combatterlo: azioni
    che non passano dalla selezione. Un clic, identiche a tocco e a
    puntatore.
  * Limite dichiarato dell'azione: copia il messaggio INTERO. Per
    copiarne un pezzo bisogna ancora selezionarlo - col dito e la
    barra, oppure con Ctrl+C.

 ---

 ***  VERSIONE 1.3.2  ***

 Novita' di questa versione:
  * Anche sul TELEFONO si puo' andare dritti al primo messaggio non
    letto. Nuova opzione facoltativa in Aspetto -> "Tocca la
    discussione per aprire il primo non letto": toccando la testa di
    una discussione si apre il primo messaggio non ancora letto,
    invece del primo post (se sono gia' tutti letti, si apre il primo
    post). Vale nella vista AD ALBERO e in quella RAGGRUPPATA.
  * Spenta di default: chi non la accende non nota alcuna differenza.
    Nella vista raggruppata, se e' accesa anche "Tocca il messaggio
    per espandere il thread", ESPANDERE HA LA PRECEDENZA - li' il
    thread si apre sul posto e restare nella lista e' la cosa sensata.
  * Perche' un'opzione nuova e non la stessa della 1.3.1: quella
    agisce solo dove una riga rappresenta l'intera discussione
    richiudibile (vista raggruppata), e nella vista ad albero -
    proprio quella per cui la funzione e' stata chiesta - quel
    presupposto non esiste. Riusare l'interruttore esistente non
    avrebbe potuto funzionare: sono due comportamenti diversi in due
    viste diverse, quindi due interruttori.
  * User-Agent nella forma prevista dalla RFC 5536 (nota tecnica di Dave
    Royal): ora NeReO/1.3.2 (Android), con la versione attaccata da una
    BARRA. Fino alla 1.3.1 era "NeReO 1.3.1 (Android)", con uno spazio.
  * Perche' non era solo estetica: la RFC 5536 par. 3.2.13 definisce
    product = [CFWS] token [ [CFWS] "/" product-version ], cioe' la
    versione si attacca al prodotto con la barra. Con lo spazio
    l'intestazione non era ILLEGALE - la grammatica ammette piu'
    prodotti e "1.3.1" e' un token valido - ma diceva un'altra cosa:
    DUE PRODOTTI, uno di nome "NeReO" e uno di nome "1.3.1". Chi
    raccoglie statistiche sui newsreader leggeva un software
    inesistente. Il commento "(Android)" e' CFWS ed era gia' corretto.
  * Le identita' gia' salvate vengono riallineate una volta sola, e
    SOLO se contengono ancora esattamente uno dei predefiniti spediti
    da noi. Uno User-Agent scritto dall'utente non viene mai toccato -
    campo vuoto compreso, che dalla 1.2.9 significa "non dichiarare
    nulla" ed e' una scelta, non una dimenticanza.
  * Corretto: se l'ultimo articolo di un gruppo veniva cancellato,
    quel gruppo non si aggiornava piu'. Ogni tentativo rispondeva
    "423 No articles in NNNN-NNNN" e si sbloccava da solo soltanto
    quando qualcuno postava di nuovo.
  * Perche' succedeva: cancellato l'ultimo articolo, il numero alto
    dichiarato dal gruppo NON scende (RFC 3977 par. 6.1.1: non tutti i
    numeri fra il water mark basso e quello alto corrispondono a
    articoli esistenti), quindi NeReO chiedeva l'intervallo dal
    proprio segnalibro fino a quel numero - ormai vuoto. Il 423 che il
    server restituisce NON e' un errore: la RFC 3977 par. 8.3 lo
    definisce "nessun articolo in quell'intervallo", ed e' la risposta
    giusta. NeReO lo trattava come fatale.
  * Cosa costava davvero, oltre all'errore a schermo: la connessione
    condivisa veniva buttata e riaperta per i gruppi rimanenti (socket
    + TLS + autenticazione da capo, a ogni aggiornamento), il gruppo
    veniva saltato dalla guardia anti-loop, e il segnalibro non
    avanzava mai - quindi l'aggiornamento dopo richiedeva lo stesso
    intervallo morto. Ora il 423 produce una lista vuota, il
    segnalibro avanza e l'intervallo morto si consuma una volta sola.
  * Non era un caso di laboratorio: il buco fra numero basso e numero
    alto e' previsto dal protocollo, e i cancel di spam sull'ultimo
    articolo di un gruppo poco trafficato sono ordinaria
    amministrazione. Il test deliberato di BIG Umberto su alt.test.a,
    riprodotto tre volte su tre server diversi (Solani,
    eternal-september, Paganini), non ha inventato uno scenario
    impossibile: ha reso riproducibile una cosa che capita da sola e
    che finora poteva essere archiviata come "errore di connessione".
  * Sotto il cofano: prima di aggiungere il QUINTO punto del codice
    che calcola "primo non letto della discussione", la logica e'
    stata estratta una volta sola e i cinque punti ora la
    condividono. La 1.3 e' uscita con un difetto proprio perche' una
    correzione era stata applicata a due copie su quattro di un
    blocco duplicato.

 ---

 ***  VERSIONE 1.3.1  ***

 Novita' di questa versione:
  * Nel layout a pannelli, toccare una discussione ora la espande E ci
    va: con l'opzione "Tocca l'OP per espandere" attiva, il tocco apre
    nel riquadro di lettura il primo messaggio NON LETTO di quella
    discussione (o il primo post, se sono gia' tutti letti). Chiudendo
    la discussione la selezione torna sull'OP, l'unica riga rimasta
    visibile.
  * Perche' era un problema serio e non un fastidio: prima il tocco
    espandeva soltanto, e il primo post di una discussione con
    risposte non si poteva aprire affatto. Nella 1.2.9 avevamo
    indicato come via d'uscita il menu a pressione prolungata, ma su
    un Box TV col telecomando quel gesto NON ESISTE: per chi legge da
    li' quel messaggio era irraggiungibile. Segnalato da Roxy, che
    quell'opzione l'aveva chiesta lui stesso nella 1.2.9.
  * Ogni riga dell'elenco discussioni ha ora un pulsante "..." (tre
    puntini verticali) che apre il suo menu contestuale - apri, plonk,
    sostituisci, ritira, conservazione, selezione multipla - con UN
    SOLO CLIC. La pressione prolungata continua a funzionare
    esattamente come prima: e' una via in piu', non una sostituzione.
    Nasce dalla stessa segnalazione: su un dispositivo guidato da un
    puntatore (mini tastiera con trackpad) tenere premuto un tasto e'
    tecnicamente possibile, ma cosi' lento che - parole di Roxy -
    "passerebbe la voglia di usarlo".
  * La barra del riquadro di lettura nei pannelli e' ora
    personalizzabile, come gia' quella del telefono (Aspetto ->
    Personalizza barra di lettura). Con una differenza voluta: qui
    "spento" non vuol dire NASCOSTO ma SPOSTATO NEL MENU tre puntini
    - nulla diventa irraggiungibile. Nasce gia' con ROT13 e
    Intestazioni nel menu, perche' su un tablet tenuto in verticale
    il riquadro e' stretto e cinque pulsanti non lasciavano quasi
    spazio all'oggetto del messaggio. Suggerimento di Dave Royal,
    gia' chiesto in precedenza da Roxy.
  * Solo nel layout a pannelli, di proposito: sul telefono il tocco
    naviga via, quindi "espandi e vai" sarebbe una contraddizione, e
    li' la pressione prolungata e' un gesto naturale, non un ostacolo.

 ---

 ***  VERSIONE 1.3  ***

 Novita' di questa versione:
  * Corretta una lacuna della 1.2.17: "Invia la password solo quando
    il server la chiede" NON veniva applicata all'invio di un
    messaggio ne' allo scaricamento dell'elenco gruppi, che
    continuavano ad autenticarsi subito. Causa: lo stesso blocco di
    codice esisteva in quattro copie e ne erano state aggiornate due.
    I quattro punti che aprivano una connessione sono ora unificati in
    uno solo, cosi' la regola vale ovunque per costruzione.
  * Per il resto la 1.3 e' la 1.2.17 provata sul campo: e' la versione
    stabile che raccoglie tutta la linea 1.2.12-1.2.17 - il giro di
    irrobustimento nato dall'audit di sicurezza, la verifica del nome
    host TLS, ritiro e sostituzione con esito server per server, e
    tutto cio' che e' emerso da due giorni di prove reali su tre
    provider.
  * La 1.3 e' la PRIMA VERSIONE PUBBLICA dopo la 1.2.11: chi
    aggiorna da li' riceve in un colpo solo anche tutto il contenuto
    delle versioni 1.2.12-1.2.17, che non sono mai state distribuite
    (vedi la nota subito sotto lo storico).

 ---

 ======================================================================
  ATTENZIONE - LE VERSIONI DA 1.2.12 A 1.2.17 NON SONO MAI STATE
  PUBBLICATE
 ======================================================================

 L'ultima versione distribuita pubblicamente su SourceForge e' stata
 la 1.2.11.

 Tutto quello che segue qui sotto, dalla 1.2.12 alla 1.2.17, e' stato
 compilato e collaudato SOLO all'interno del progetto: su tre server
 reali (Astraweb, usenet.ovh, eternal-september) e su un solo
 dispositivo. Nessuna di quelle versioni e' mai arrivata agli utenti,
 e non esiste alcun APK pubblico che le contenga.

 Sono elencate perche' il loro contenuto e' TUTTO dentro la 1.3:
 servono a capire cosa e' cambiato e perche', non a cercare un
 aggiornamento che non e' mai esistito. Chi viene dalla 1.2.11 passa
 direttamente alla 1.3 e riceve tutto in un colpo solo.

 ---

 ***  VERSIONE 1.2.17  ***

 Novita' di questa versione:
  * Nuova opzione "Invia la password solo quando il server la chiede"
    (Manutenzione -> Sicurezza), SPENTA di default. Di norma NeReO si
    autentica appena si collega, ad ogni connessione; con questa
    accesa aspetta che sia il server a chiederlo, si autentica in quel
    momento e ripete il comando. Su un server che non riesce a cifrare
    la connessione cambia molto: i server INN lasciano leggere senza
    credenziali e le pretendono solo per pubblicare, quindi la
    password attraversa la rete qualche volta al mese invece che
    decine di volte al giorno. Spenta di default perche' tocca il modo
    in cui si contatta OGNI server: se uno smette di funzionare, si
    rispegne e si torna esattamente a prima.
  * Nell'elenco dei server compare l'avviso "ultimo collegamento NON
    cifrato" sotto i server che stanno parlando in chiaro. Si basa su
    cio' che e' realmente successo, non sulle impostazioni: un server
    puo' essere configurato per cifrare, dichiararlo, e non riuscirci
    comunque. E' un segno permanente e non un avviso ricorrente,
    perche' quello stato non cambia da solo e un avviso che torna ogni
    volta si impara a ignorare.
  * Il registro diagnostico non conta piu' come errori le risposte
    attese: un ritiro riuscito chiudeva la sessione con "1 errori",
    perche' il 430 "no such article" - che e' esattamente la risposta
    cercata - veniva contato come guasto.

 ---

 ***  VERSIONE 1.2.16  ***

 Novita' di questa versione:
  * Il ritiro (cancel) ora dice com'e' andata su OGNI server
    configurato, non solo su quello da cui hai pubblicato. Al termine
    compare un elenco - ritirato, ancora presente, non verificabile -
    con il server a cui la richiesta e' stata effettivamente inviata
    marcato come tale. E' la risposta che finora si poteva ottenere
    solo controllando a mano, un server alla volta, da un altro
    programma.
  * Il dialogo di conferma dice prima quello che si scopriva dopo.
    Quattro prove sul campo fra il 6 e il 7 settembre hanno stabilito
    che il ritiro agisce, in pratica, solo sul server su cui hai
    pubblicato: sugli altri il messaggio resta, e molti provider
    ignorano del tutto le richieste di ritiro. Ne discende un
    consiglio, ora scritto nella conferma: se una correzione deve
    essere vista da tutti, lo strumento giusto e' "Sostituisci" e non
    "Ritira" - il supersede e' un articolo normale e si propaga
    sempre, il ritiro e' un messaggio di controllo e quasi nessuno lo
    inoltra.
  * Nessun lavoro in sottofondo: i server vengono interrogati solo in
    quel momento, una connessione ciascuno, e uno irraggiungibile
    diventa "non verificabile" senza far fallire il resto.

 ---

 ***  VERSIONE 1.2.15  ***

 Novita' di questa versione:
  * "Ritira dal server (cancel)" ora dice SE HA FUNZIONATO. Prima l'app
    diceva soltanto "richiesta inviata, il server potrebbe ignorarla":
    chi ritirava un messaggio su un server che ignora i messaggi di
    controllo restava convinto di averlo tolto. Ora, subito dopo
    l'invio, NeReO chiede al server se quell'articolo c'e' ancora e
    riferisce la risposta: ritirato, ancora presente, oppure non
    verificabile. Tre esiti e non due, perche' sul campo li abbiamo
    visti tutti e tre.
  * Un messaggio che sul server non esiste piu' (scaduto, o ritirato
    dal suo autore) viene detto per quello che e', invece di comparire
    come un errore di rete qualunque. Accanto alla spiegazione c'e' il
    pulsante "Rimuovi la copia locale", per togliere la riga di
    riepilogo rimasta orfana. Sia nella vista a pagine sia nel
    pannello di lettura.
  * Supersedes gestito in lettura: quando un messaggio ne sostituisce
    un altro, il sostituito viene NASCOSTO (non eliminato: "Mostra
    nascosti" lo riporta), e solo se i due vengono dallo stesso
    indirizzo. Senza quel controllo chiunque potrebbe far sparire il
    messaggio di un altro dalla vista di chi legge.
  * Correzioni tecniche invisibili: una normale risposta "articolo non
    trovato" non viene piu' scambiata per una connessione caduta
    (difetto della 1.2.13, costava una riconnessione inutile); un
    server indicato con l'indirizzo IP non produce piu' un errore
    incomprensibile; cambiando gli interruttori di sicurezza viene ora
    chiusa subito la connessione aperta con le impostazioni
    precedenti.

 ---

 ***  VERSIONE 1.2.14  ***

 Novita' di questa versione:
  * VERIFICA DEL NOME HOST NELLE CONNESSIONI CIFRATE (TLS). Fino alla
    1.2.13 il traffico verso il server era cifrato, ma nessuno
    controllava che il certificato presentato appartenesse davvero
    all'indirizzo richiesto: una rete ostile poteva mettersi in mezzo
    e leggere tutto, credenziali comprese, senza che l'app se ne
    accorgesse. Ora il controllo c'e', su entrambe le strade (TLS
    implicito e STARTTLS), come lo fa un browser.
  * Se un server ha il certificato configurato male, la connessione
    fallisce con un messaggio esplicito che dice cosa e' successo e
    dove intervenire, non con un errore di rete generico.
  * Nuovo interruttore "Consenti certificati non verificabili"
    (Manutenzione -> Sicurezza), SPENTO di default e con avviso in
    rosso: chi sa che il proprio provider ha il certificato messo
    male puo' collegarsi lo stesso. E' globale, non per-server, sul
    modello gia' usato dalla 1.2.6 per l'autenticazione non cifrata.
  * Questa versione esce DA SOLA, di proposito: e' l'unica correzione
    dell'audit di sicurezza che puo' far smettere di funzionare una
    configurazione che oggi funziona. Se dopo l'aggiornamento un
    server non si connette piu', la causa e' senza ambiguita' questa
    e la cura e' l'interruttore qui sopra.

 ---

 ***  VERSIONE 1.2.13  ***

 Novita' di questa versione:
  * Niente piu' errore di rete al posto del corpo di un messaggio
    passando in fretta da uno all'altro. La connessione tenuta aperta
    per la lettura veniva lasciata cadere dal server mentre si
    leggeva, e il primo comando dopo la pausa finiva nel vuoto: ora,
    se un errore di rete capita su una connessione RIUSATA, questa
    viene buttata e il messaggio riletto una volta con una
    connessione nuova, in silenzio. Diagnosticato col log della
    Diagnostica NNTP.
  * User-Agent precompilato nelle identita' NUOVE (richiesta di
    Merovingio): il campo nasceva vuoto su un'app appena installata,
    quindi chi non lo compilava postava anonimo senza averlo scelto.
    Ora contiene %nereo%, che all'invio diventa nome e versione in
    uso (e resta aggiornato da solo ad ogni release). Chi vuole
    restare anonimo lo svuota: le identita' GIA' ESISTENTI non
    vengono toccate.
  * La verifica del nome host nelle connessioni cifrate slitta alla
    1.2.14: resta l'unica correzione che esce da sola.

 ---

 ***  VERSIONE 1.2.12  ***

 Novita' di questa versione:
  * Giro di irrobustimento generale, nato da un audit di sicurezza su
    tutto il codice. NeReO regge senza scomporsi articoli e risposte
    del server malformati o costruiti apposta: messaggi fuori misura,
    intestazioni con a-capo infilati dentro, catene References
    abnormi, immagini Face anomale, ripristini da file di backup
    manomessi. Nell'uso normale non cambia nulla - sono difese che si
    notano solo quando qualcosa prova ad approfittarne.
  * "Sostituisci (supersede)..." compare ora solo sui PROPRI
    messaggi, e accanto c'e' il nuovo "Ritira dal server
    (cancel)...": invia un messaggio di controllo che chiede al
    server di ritirare un articolo che hai pubblicato. Molti server
    ignorano queste richieste e la propagazione agli altri server non
    e' mai garantita: il dialogo di conferma lo dice chiaramente,
    invece di lasciartelo scoprire dopo.
  * NON inclusa qui: la verifica del nome host nelle connessioni
    cifrate. E' l'unica correzione che puo' far smettere di
    funzionare una configurazione che oggi funziona (capita che un
    provider presenti un certificato con nome non combaciante),
    quindi esce da sola nella versione successiva - cosi', se
    qualcosa non si connette piu', si sa subito di chi e' la colpa.

 ---

 ***  VERSIONE 1.2.11  ***

 Novita' di questa versione:
  * Aggiornata la libreria del database interno (Room) da 2.6.1 a
    2.8.4: tentativo di correzione a monte del raro crash CursorWindow
    del Dato 5 (vedi versione 1.2.10 qui sotto). La 2.8.4 include due
    correzioni ufficiali su corse fra Flow di lettura e scritture
    concorrenti, la stessa categoria di quel crash - non e' una
    conferma della causa esatta, resta un'ipotesi verificata solo in
    parte, e le difese gia' introdotte nella 1.2.10 restano attive
    comunque, come rete aggiuntiva. Nessun cambiamento visibile
    all'utente.
  * Estesa la stessa difesa (elenco precedente al posto del crash)
    anche alla ricerca testuale, che condivideva lo stesso rischio ma
    non era ancora protetta.

 ---

 ***  VERSIONE 1.2.10  ***

 Novita' di questa versione:
  * Elenco articoli piu' robusto: un raro errore di lettura dal
    database (IllegalStateException del CursorWindow di Room), che
    poteva capitare uscendo da un gruppo mentre un sync scriveva
    ancora nuovi messaggi, non manda piu' in crash l'app - ora, se
    capita, mostra l'ultimo elenco valido invece di chiudersi. Prima
    versione reale a portare questa difesa: era pronta dal 5
    settembre, in attesa di un giro di consegna.
  * Nuovo interruttore "Aggiorna automaticamente aprendo un gruppo"
    (Manutenzione, segnalazione di un tester tramite Marco): entrare
    in un gruppo (anche solo rientrando da un articolo appena letto)
    lo sincronizzava sempre, senza un modo per disattivarlo - chi si
    distraeva leggendo si ritrovava le discussioni lasciate a meta'
    mescolate a quelle nuove. Ora si puo' spegnere, tenendo tutto
    fermo finche' non si lancia il sync a mano (pulsante/tira giu' per
    aggiornare, sempre disponibili). Default acceso: nessun cambiamento
    per chi non ne ha bisogno.

 ---

 ***  VERSIONE 1.2.9.c  ***

 Novita' di questa versione:
  * Sincronizzazione piu' robusta: eliminata una possibile corsa a
    tempo fra il controllo automatico dei nuovi messaggi e altre
    sincronizzazioni in corso (manuali o del timer), che poteva
    contribuire a un arresto anomalo occasionale - segnalazione dal
    collaudo pubblico ancora in indagine (vedi la 1.2.9.b sotto per il
    log diagnostico). Non e' una correzione CONFERMATA del crash
    specifico (manca ancora una prova diretta), ma un difetto di
    concorrenza reale e dimostrato nel codice.

 ---

 ***  VERSIONE 1.2.9.b  ***

 Tre correzioni emerse dal collaudo pubblico della 1.2.9, piu' un nuovo
 strumento diagnostico: prima vera nuova versione da compilare e
 distribuire agli utenti (le correzioni precedenti erano rimaste "a
 versione invariata" perche' la 1.2.9 non era ancora stata pubblicata).

 Novita' di questa versione:
  * Ricerca: la lista dei risultati non si azzera piu' riaprendo un
    risultato (segnalazione di Marco): tornando da un messaggio aperto
    dalla ricerca, la query e i risultati restano quelli di prima
    invece di ripartire vuoti - prima bisognava rifare la stessa
    ricerca ogni volta per raggiungere il risultato successivo.
  * "Mostra filtrati" e' ora un audit completo (segnalazione di Marco:
    "se sono filtrati perche' mai dovremmo vederli?" -> "per me e' un
    audit rotto"): applicando i filtri ai messaggi gia' scaricati,
    anche quelli che corrispondono a una regola "Ignora" (non solo
    "Elimina del tutto") vengono ora marcati e mostrati in grigio -
    prima venivano solo eliminati i secondi, i primi restavano
    invisibili all'audit.
  * User-Agent vuoto = post davvero anonimo (segnalazione di Marco):
    lasciando vuoto il campo User-Agent nell'identita', ora il
    messaggio inviato non porta piu' nessuna intestazione User-Agent,
    come il testo di aiuto ha sempre promesso - prima veniva comunque
    sostituito in silenzio col valore predefinito dell'app.
  * Nuovo: registro dell'ultimo arresto anomalo (Manutenzione): se
    l'app dovesse mai chiudersi in modo improvviso, l'ultimo crash
    viene salvato da solo sul dispositivo - nulla parte
    automaticamente. Se capita, copialo o esportalo dalla nuova
    sezione "Ultimo arresto anomalo" e mandalo a chi sviluppa: senza
    questo, un crash segnalato senza altri dettagli non e'
    diagnosticabile.

 ---

 ***  VERSIONE 1.2.9  ***

 Multi-identita' vera (richiesta di Marco: "un multi utente reale,
 come in MesNews e/o NR MOD17 di Piao Hong") piu' il resto della
 roadmap NNTP rimasta (voce E), nella stessa release - piano completo
 scelto esplicitamente da Marco invece che per gradi. Chiude il gate
 verso la 1.3 definitiva, in attesa solo del collaudo su device.

 Novita' di questa versione:
  * Multi-identita': crea quante identita' vuoi (nome, email, firma,
    User-Agent, X-No-Archive, intestazioni personalizzate,
    introduzione alla citazione, Face) e assegna ciascuna a un
    server preciso - scrivi come "MCSM" su un server e come "TAF" su
    un altro, ognuna col proprio indirizzo e la propria Face. Nuove
    schermate Identita' (elenco + editor); l'assegnazione a un
    server si fa modificando il server. Chi aveva gia' un'identita'
    generale o override per-server nelle versioni precedenti se li
    ritrova migrati automaticamente, senza dover rifare nulla.
  * STARTTLS (RFC 4642): i server rimasti su una porta in chiaro
    (di solito 119) possono ora passare a una connessione cifrata
    subito dopo la connessione, in alternativa al TLS implicito.
  * CAPABILITIES: letto e registrato in diagnostica alla connessione.
  * Lettura piu' veloce: leggendo un thread, il corpo degli articoli
    riusa la stessa connessione invece di riconnettersi ad ogni
    singolo articolo.
  * Override per server dell'autenticazione non cifrata: per un
    singolo server puoi forzarla sempre consentita o sempre bloccata,
    indipendentemente dall'impostazione globale (Manutenzione ->
    Sicurezza).
  * Backup e ripristino portano ora anche le identita' e le nuove
    opzioni per server; i vecchi backup restano leggibili come prima.
  * Citazioni molto annidate - soglia numerica (Aspetto, richiesta di
    Marco): oltre una certa profondita' (default 8, configurabile fra
    6/8/10/12) i ">" ripetuti diventano il numero del livello ("9",
    "10", "11"...) invece di allungarsi all'infinito - solo nella
    resa a schermo, con stile citazioni "chevron"/"entrambi": il
    testo che arriva e quello che parte resta sempre con i ">"
    standard, quindi la profondita' si legge correttamente ovunque,
    anche in un altro client. Attivo di default.
  * Tocca il messaggio per espandere il thread (Aspetto, opzionale,
    richiesta di Roxy): in alternativa al pulsante +/- (ingrandito a
    48dp minimo per chi mira da lontano, es. TV box col telecomando),
    il tocco sul testo del primo messaggio di una discussione con
    risposte puo' espanderla/comprimerla invece di aprirla; il
    messaggio resta comunque raggiungibile dal menu (tocco
    prolungato) -> "Apri". Spento di default.
  * Bozze spostate dentro il gruppo (richiesta di Marco): "Bozze" non
    e' piu' nel menu principale - si apre dal menu del gruppo a cui
    si sta scrivendo, gia' filtrata sulle bozze di quel gruppo (ogni
    bozza sa gia' a quale gruppo appartiene). Un interruttore
    "Questo gruppo"/"Tutti i gruppi" dentro lo schermo permette di
    vedere comunque tutte le bozze insieme, quando serve.
  * Swipe verticale: ora passa anche da una discussione all'altra
    (segnalazione di Marco): nella lettura, con "solo non letti"
    spento lo swipe in fondo/inizio messaggio si fermava zitto
    all'ultimo/primo post della discussione invece di proseguire -
    diverso da quando "solo non letti" e' acceso, che gia' saltava
    alla discussione successiva. Ora lo swipe verticale si comporta
    allo stesso modo in entrambi i casi (le frecce singole < >
    restano bloccate dentro la discussione corrente, come sempre -
    per quello ci sono le doppie frecce).

 ---

 ***  VERSIONE 1.2.8  ***

 Tappa intermedia fra la 1.2.7 e la futura 1.3 "completa": raccoglie
 tutto cio' che era stato preparato come 1.3/1.3.1/1.3.2 durante il
 collaudo in solitaria, rinumerato prima di qualunque diffusione piu'
 larga - nessuna di quelle versioni e' mai uscita ufficialmente (quei
 numeri sono poi stati riusati dalle versioni reali descritte piu' in
 alto: sono omonimi, non le stesse build). La
 1.3 vera arrivera' solo quando anche il resto della roadmap NNTP
 (CAPABILITIES, STARTTLS, pool di connessioni, override
 auth-non-cifrata per-server) sara' completato o scartato.

 Novita' di questa versione:
  * Barra di lettura personalizzabile: in Aspetto -> "Personalizza
    barra di lettura" scegli quali icone mostrare nella barra bassa
    della lettura e in che ordine (interruttore mostra/nascondi +
    frecce su/giu', comode anche col telecomando dei TV box).
  * Aggiornamento selettivo: l'icona di aggiornamento ora apre un menu
    - "Aggiorna tutto" (come prima) oppure "Scegli quali server
    aggiornare". Sull'intestazione di ogni server un menu simile
    permette di aggiornare solo quel server o solo alcuni suoi
    gruppi, invece di scaricare sempre tutto. In tablet/pannelli e'
    disponibile il livello server.
  * Lettura a tutto schermo nei pannelli (tablet): mentre leggi, una
    nuova icona nasconde temporaneamente le colonne gruppi e
    discussioni per concentrarti sul testo; si richiude da sola
    uscendo dall'articolo.
  * Cerca/Condividi sul testo selezionato: selezionando del testo in
    un articolo, oltre a Copia e Seleziona tutto compaiono anche
    Cerca (ricerca web) e Condividi. "Traduci" e' stato scartato
    DEFINITIVAMENTE (dipenderebbe da un gestore non garantito su ogni
    device).
  * Controllo aggiornamenti a quattro modalita': in Manutenzione ->
    Aggiornamenti scegli fra Mai / Una volta al giorno / Ogni 4 ore /
    Ad ogni apertura. Sotto il selettore compare sempre "Ultimo
    controllo: ..." cosi' si vede che il controllo funziona anche
    quando non trova nulla di nuovo (nessun avviso in quel caso, solo
    quel testo).
  * Corretto un bug: il vecchio limite "una volta al giorno" era per
    giorno di calendario, non per tempo trascorso - chi apriva l'app
    anche una sola volta prima che una nuova versione fosse
    pubblicata restava "bloccato" fino al giorno dopo, qualunque
    numero di volte riaprisse l'app nel frattempo.
  * Diagnostica NNTP potenziata (Bingo3331 + HAL): col log NNTP acceso
    (Manutenzione -> Diagnostica), ora si registra anche un riepilogo
    di ogni risposta OVER/XOVER (righe ricevute, numeri mancanti,
    duplicati), i tempi di ogni comando, e un'intestazione/piede per
    ogni sessione NNTP - pensato per capire i buchi nel backfill di
    provider come Astraweb.
  * Nuova diagnostica manuale "Diagnostica LISTGROUP...": chiede al
    server l'elenco vero degli articoli di un gruppo e lo confronta
    con l'ultimo riepilogo overview; sui numeri assenti, verifica con
    STAT se esistono davvero - distingue un buco nel database
    overview del server da un articolo davvero scaduto o cancellato.

 ---

 ***  VERSIONE 1.2.7  ***

 Novita' di questa versione:
  * Connessione non sicura: se un server rifiuta la password su una
    connessione non cifrata, ora compare un avviso chiaro con due
    scelte - "Passa a SSL" (consigliato) oppure "Consenti non cifrata"
    (sconsigliato). Niente piu' fallimento muto per chi e' alle prime
    armi. L'avviso non compare durante il controllo automatico a
    intervalli, solo quando aggiorni tu.
  * Risposta ai crosspost: nuova opzione in Manutenzione per rispondere
    di default a TUTTI i gruppi dell'originale invece del solo gruppo
    corrente (spenta di default; puoi comunque scegliere caso per caso).
  * Vista continua: un separatore piu' spesso segna ora l'inizio di
    ogni nuova sotto-discussione, cosi' si distinguono a colpo d'occhio.

 ---

 ***  VERSIONE 1.2.6  ***

 Novita' di questa versione:
  * Sicurezza: la password non viene piu' inviata su una connessione
    non cifrata (viaggerebbe in chiaro - RFC 4643 lo vieta). Se hai
    davvero un vecchio server che lo richiede, puoi consentirlo
    consapevolmente in Manutenzione -> Sicurezza. Preferisci sempre la
    porta SSL (di solito 563).
  * "Controlla aggiornamenti" ora e' anche nel menu principale, accanto
    a Informazioni e Novita' - niente piu' trafila in Manutenzione.
  * Vista a pannelli: menu a tre punti su ogni post, con il plonk
    dell'autore. Prima bisognava passare alla vista a schermo intero.
  * Vista a pannelli: si possono riordinare i gruppi anche qui (icona
    "riordina" in cima alla colonna gruppi), non piu' solo a schermo
    intero.
  * Il backup ora salva l'ordine dei gruppi: al ripristino non torna
    piu' tutto in ordine alfabetico.
  * Vista Intestazioni piu' pulita: il lungo codice base64 di
    Face/X-Face non viene piu' mostrato (la faccina resta accanto
    all'autore).
  * Muta citazioni: un nuovo pulsante nasconde il testo citato con un
    tocco, cosi' resta in evidenza solo il messaggio nuovo (un tocco sul
    segnaposto lo rimostra). Icona "virgolette" nella barra di lettura e
    nelle intestazioni dei pannelli.
  * Vista a pannelli: nel pannello di lettura lo swipe su/giu' salta al
    post non letto successivo/precedente della discussione (se non ce ne
    sono, al post seguente/precedente) - come sul telefono.

 ---

 ***  VERSIONE 1.2.5 (correzioni)  ***

 Novita' e correzioni di questa versione:
  * Vista continua: aprendo un thread lungo non vengono piu' segnati
    come letti in blocco i messaggi successivi al selezionato. Ora si
    marca letto solo cio' che appare davvero sotto gli occhi: il
    messaggio scelto all'apertura, e poi ogni messaggio man mano che lo
    porti in cima scorrendo.
  * Vista continua: i gruppi del crosspost sono ora mostrati (in rosso)
    su ogni post, non solo nella vista a singolo articolo.
  * Con il filtro "solo non letti" attivo, se non c'e' nulla da leggere
    l'elenco ora dice "Nessun messaggio da leggere" invece di "Nessun
    messaggio".
  * Controllo aggiornamenti: NeReO puo' avvisare quando c'e' una
    versione piu' recente su SourceForge (automatico una volta al
    giorno, disattivabile in Manutenzione, piu' un pulsante manuale).
    Solo avviso e link: l'app non scarica ne' installa nulla da se'.

 ---

 ***  VERSIONE 1.2.4 (correzioni)  ***

 Novita' e correzioni di questa versione:
  * Riflusso testo: ora unisce anche le righe "orfane" di una-due
    parole rimaste in mezzo a un capoverso. Prima, anche col riflusso
    attivo, qualche riga corta (una "e" o una "è" da sola) restava
    isolata perche' l'euristica precedente la scambiava per un a-capo
    voluto. Ora restano su riga propria solo etichette, saluti e frasi
    brevi che finiscono con punteggiatura (. , : ; ! ? ...). Spento di
    default; solo in lettura.

 ---

 ***  VERSIONE 1.2.3 (correzioni)  ***

 Novita' e correzioni di questa versione:
  * Vista ad albero: i messaggi che aprono una discussione non
    risultano piu' "gia' letti" quando non lo sono. Il colore segue
    ora lo stato reale del post, in accordo con "vai al prossimo non
    letto".
  * Vista continua: rispondendo a un messaggio crosspostato ora
    compare l'avviso per scegliere in quali gruppi rispondere, come
    nella vista a singolo articolo. Prima la risposta finiva solo nel
    primo gruppo, senza avviso.
  * Vista continua: aprendo piu' messaggi non letti non compare piu'
    "Error: connection reset" al posto del testo. I corpi si scaricano
    una richiesta per volta, invece di aprire tante connessioni insieme.
  * Vista a pannelli: l'aggiornamento usa di default l'icona in cima
    alla colonna; lo swipe "tira giu'" non ruba piu' il primo
    scorrimento verso l'alto. Lo swipe resta riattivabile in Aspetto.
    Sul telefono nulla cambia.
  * Riflusso testo: ora agisce anche sui post che vanno a capo stretto
    (intorno alle 38-40 colonne), che prima venivano ignorati del tutto
    e restavano con parole orfane. Sempre spento di default; solo in
    lettura.
  * Vista continua: aprendo un thread su un messaggio in mezzo, i
    messaggi in testa che vengono solo attraversati all'apertura non
    vengono piu' segnati come "letti". La marcatura vale dal messaggio
    scelto in giu', non su cio' che scorre via all'apertura.

 ---

 ***  VERSIONE 1.2.2 (correzioni)  ***

 Novita' e correzioni di questa versione:
  * Nuova opzione "Riflusso testo" (Aspetto): ricompone i capoversi
    spezzati dall'a-capo classico a 72 colonne, cosi' i post si leggono
    ordinati su schermo stretto invece di mostrare righe orfane di una
    o due parole. Spenta di default; solo in lettura.
  * Aggiornamento molto piu' veloce: una sola connessione per server
    invece di una per ogni gruppo (con molti gruppi la differenza si
    sente). La striscia col numero di nuovi messaggi ora compare anche
    premendo l'icona di aggiornamento, non solo col "tira giu'".
  * Vista a pannelli (tablet): nella vista continua la terza colonna
    segue ora lo stesso ordine-albero della colonna centrale (non piu'
    per data). Scrivendo un post l'editor si apre a tutto schermo, cosi'
    la tastiera non copre piu' l'area di scrittura in orizzontale.
  * Vista a pannelli (tablet/orizzontale): selezionando un messaggio
    dall'albero ora si posiziona di nuovo correttamente in cima e ci
    resta (nella 1.2 poteva finire in un punto casuale).
  * Il cerchietto "aggiorna" non resta piu' appeso in cima all'albero:
    lo scorrimento torna immediato.
  * Connessioni SSL/TLS: aggiunto il timeout di lettura che mancava,
    cosi' una connessione cifrata che si blocca non lascia l'app in
    attesa infinita.

 ---

 ***  VERSIONE 1.2  ***

 Novita' di questa versione:
  * Compatibilita' server: alcuni provider (Astraweb tra questi)
    rifiutano il comando OVER usato per scaricare le intestazioni e
    la sincronizzazione si fermava. Ora NeReO ripiega automaticamente
    su XOVER, cosi' quei server tornano a funzionare.
  * Plonk esteso alle risposte: una regola su "da" puo' nascondere
    anche le risposte al post filtrato e l'intero ramo sottostante,
    chiunque le abbia scritte (reversibile: togli la regola e tornano).
  * Parita' su tablet: nella vista a pannelli ci sono ora le
    intestazioni complete e il ROT13, e si raggiungono anche le Bozze.
    La vista continua si apre gia' posizionata sul messaggio scelto.
  * Gruppi: tieni premuto un gruppo per scaricare in un colpo solo i
    corpi mancanti degli ultimi 300 messaggi. "Segui la discussione"
    ora vale per l'intero thread; i tuoi post sono riconosciuti anche
    con le identita' per-server.
  * Dopo l'invio di un post: conferma "Messaggio inviato" e refresh
    automatico del gruppo, cosi' il proprio messaggio compare senza
    ricaricare a mano (appena il server lo rende disponibile).
  * Backup completo (identita' per-server, tutte le impostazioni e le
    discussioni seguite; ripristino compatibile coi backup vecchi).
  * Diagnostica NNTP in Manutenzione: registra il dialogo col server
    (password sempre oscurata) per risolvere piu' in fretta i casi
    strani. Spenta di default.
  * Correzioni: barra icone in basso a due righe sugli schermi
    stretti; via un errore spurio che compariva scorrendo veloce.

 Per il resto restano le funzioni complete della 1.1. L'interfaccia
 e' disponibile in italiano e in inglese.

======================================================================


=============
 COS'E' NeReO
=============

NeReO e' un lettore di newsgroup Usenet per Android, dedicato alle
discussioni testuali.

Niente gruppi binari, niente allegati, niente pubblicita', niente
telemetria: solo messaggi e conversazioni, come Usenet e' sempre stata.

E' software libero, rilasciato con licenza GNU GPL v3 o successiva.


===================
 LINGUA INTERFACCIA
===================

NeReO segue automaticamente la lingua del telefono:

  * telefono in italiano   -> interfaccia in italiano
  * qualunque altra lingua -> interfaccia in inglese

Se preferisci una lingua diversa da quella del telefono, puoi
impostarla solo per NeReO, senza toccare il resto del sistema, in
due modi:

  * dentro l'app:  Aspetto -> Lingua
  * dal sistema:   Impostazioni -> App -> NeReO -> Lingua
                   (solo Android 13 e successivi)

Su Android 13 e successivi le due strade comandano la stessa scelta.
Su Android 12 e precedenti la voce di sistema non esiste: in quel
caso si cambia lingua dall'interruttore dentro l'app.

Sono previste soltanto queste due lingue.


==============
 COSA SA FARE
==============

LETTURA
  * Tre modi di vedere le discussioni: ad albero, sequenziale, oppure
    raggruppate per thread.
  * Vista continua: tutti i messaggi di una discussione uno sotto
    l'altro, con salto diretto al messaggio scelto nell'albero.
  * Citazioni a colori per livello, con possibilita' di accorciarle.
  * Face (l'avatar storico di Usenet) mostrata accanto all'autore.
  * ROT13, intestazioni complete, albero della conversazione.
  * Navigazione con gesti: scorri per passare al messaggio o alla
    discussione successiva.
  * Indicazione delle risposte ai tuoi messaggi, con salto diretto
    alla prima non letta.

SCRITTURA
  * Risposte con citazione in quattro modalita', compresa la citazione
    ridotta e la rifinitura riga per riga.
  * Crosspost: risposte e nuovi thread su piu' gruppi.
  * Firma con varianti a rotazione e segnaposto automatici.
  * Identita' diversa per ogni server, se serve.
  * Bozze salvate localmente.

ORGANIZZAZIONE
  * Filtri con azioni chiare (Ignora, Elimina, Evidenzia, Segui il
    thread) oppure a punteggio per chi vuole il controllo fine.
    Applicabili anche ai messaggi gia' scaricati.
  * Plonk autore con un tocco.
  * Ricerca per messaggio o per discussione.
  * Conservazione automatica: per tempo o per numero di discussioni,
    impostabile gruppo per gruppo.
  * Backup e ripristino della configurazione, con cifratura opzionale.

ASPETTO
  * Tema chiaro, scuro o automatico; colori dinamici Material You.
  * Dieci tinte per l'interfaccia, sei dimensioni di testo.
  * Layout a pannelli per tablet e schermi larghi, con proporzioni
    regolabili.

CONNESSIONE
  * NNTP con autenticazione, SSL/TLS su porta dedicata.
  * Fallback automatico IPv6/IPv4.


======================
 PRIMA CONFIGURAZIONE
======================

1. Apri il menu (tre puntini in alto a destra) e scegli "Server",
   poi il "+" in basso.
   Puoi partire da un server noto o inserirne uno a mano.
   Esempio gratuito: news.eternal-september.org, porta 563, SSL
   (richiede registrazione gratuita sul loro sito).

2. Sempre dal menu, apri "Identita' e firma" e inserisci nome ed
   e-mail con cui vuoi comparire nei gruppi.

3. Torna all'elenco e tocca il "+" in basso per sfogliare i gruppi
   disponibili sul server e sottoscrivere quelli che ti interessano.

4. Tocca un gruppo per scaricarne i messaggi.


======================
 NOTE DI INSTALLAZIONE
======================

* Se stai aggiornando da una versione precedente, installa l'APK
  sopra quella esistente: NON disinstallare prima, o perderai gruppi,
  letture e impostazioni.
* Se il telefono blocca l'installazione, autorizza le origini
  sconosciute per l'app da cui apri il file.
* Requisiti: Android 8.0 o successivo.


==============
 SEGNALAZIONI
==============

Per una segnalazione utile bastano tre cose:
  * cosa stavi facendo quando e' successo;
  * uno screenshot, se il problema si vede;
  * il blocco da Informazioni -> Dati tecnici (c'e' un tasto Copia).


================
 STORICO VERSIONI
================

1.2.7      Avviso "connessione non sicura" con due scelte (passa a SSL /
           consenti non cifrata) quando un server rifiuta l'auth in
           chiaro. Opzione: rispondi ai crosspost su tutti i gruppi per
           default. Vista continua: separatori piu' spessi a inizio
           sotto-discussione.
1.2.6      Sicurezza: niente password su connessione non cifrata
           (override consapevole in Manutenzione). "Controlla
           aggiornamenti" nel menu principale. Vista a pannelli: menu
           plonk per-post e riordino gruppi. Il backup salva l'ordine
           dei gruppi. Codice Face/X-Face nascosto nelle Intestazioni.
           Muta citazioni con un tocco. Vista a pannelli: swipe su/giu'
           al post non letto successivo/precedente.
1.2.5      Vista continua: la marcatura "letto" segue cio' che vedi
           davvero (solo il messaggio in cima, mentre scorri), non l'intera
           schermata di segnaposto. Gruppi crosspost su ogni post in vista
           continua. Stato vuoto "Nessun messaggio da leggere". Controllo
           aggiornamenti su SourceForge (disattivabile, solo avviso + link).
1.2.4      Riflusso testo: unisce anche le righe "orfane" di una-due
           parole rimaste in mezzo a un capoverso (restano a se' solo
           etichette, saluti e frasi brevi che finiscono con
           punteggiatura).
1.2.3      Vista ad albero: i messaggi che aprono una discussione non
           risultano piu' sempre "letti" (il colore segue lo stato
           reale). Vista continua: ripristinato l'avviso crosspost in
           risposta; niente piu' "connection reset" sui corpi (una
           richiesta per volta). Vista a pannelli: icona di aggiornamento
           come default, swipe "tira giu'" opzionale (Aspetto). Riflusso
           testo esteso agli autori a impaginazione stretta (~38-40 col).
           Vista continua: la marcatura "letto" vale solo dal messaggio
           scelto in giu' (niente piu' capi-thread letti solo perche'
           attraversati all'apertura).
1.2.2      Nuova opzione "Riflusso testo" (ricompone i capoversi a 72
           colonne). Aggiornamento piu' veloce (una connessione per
           server invece che per gruppo); striscia conteggio anche
           sull'icona.
           Posizionamento del messaggio nella vista a pannelli
           (regressione landscape); cerchietto "aggiorna" non piu'
           appeso in cima all'albero; timeout di lettura SSL/TLS.
1.2        Compatibilita' server (ripiego OVER->XOVER: risolve Astraweb
           e simili). Plonk esteso alle risposte. Parita' su tablet:
           intestazioni, ROT13 e Bozze nella vista a pannelli; vista
           continua posizionata. "Scarica corpi (ultimi 300)" tenendo
           premuto un gruppo. "Segui la discussione" sull'intero thread;
           identita' per-server riconosciute. Backup completo.
           Diagnostica NNTP in Manutenzione. Barra icone a due righe.
           Conferma "inviato" e refresh automatico dopo un post.
1.1        Cambio lingua dentro l'app (Aspetto -> Lingua). Rete di
           sicurezza del database: copia automatica e avviso prima di
           un eventuale azzeramento per schema incompatibile.
1.0        Prima versione stabile. Interfaccia in italiano e inglese.
1.0-RC01   Release candidate: traduzione completa dell'interfaccia.
beta20     Risolti tre crash (gruppi molto grandi, schermata vuota col
           tasto indietro, finestre di conferma). Filtri applicabili ai
           messaggi gia' scaricati; elimina discussione; salto alle
           risposte ai propri post; chiudi applicazione; correzioni a
           vista continua, tastiera e citazione ridotta.
beta19     Citazione ridotta corretta; maiuscola automatica; elenco
           gruppi scaricato per intero; conservazione per numero di
           discussioni.
beta18     Risposte ai propri post evidenziate; vista continua del
           thread; filtri con azioni al posto dei punteggi; crosspost
           su nuovo thread.
beta17     Risposta ai crosspost scegliendo i gruppi; fallback
           IPv6/IPv4.
beta16     Correzioni al layout orizzontale e all'interfaccia.
beta14-15  Intestazioni complete; Face affidabili; rifinisci citazione.
beta11-13  Ricerca; riordino gruppi; crosspost; splashscreen.
beta7-10   Da MyNewsReader a NeReO; bozze; identita' multiple.
beta1      Primo rilascio.


===============
 RINGRAZIAMENTI
===============

NeReO e' arrivato fin qui grazie a chi lo ha provato pazientemente
versione dopo versione, segnalando difetti, proponendo funzioni e
insistendo quando qualcosa non convinceva.

Un grazie particolare a Roxy, Bingo3331, Big Umberto, rpoggi, Paul,
Dave Royal, Alessandro, John (n2n), Macchia, Allen e il Merovingio:
molte delle cose che oggi funzionano bene esistono perche' qualcuno
si e' preso la briga di spiegare con precisione cosa non andava.

Il progetto nasce dal MOD 17 di Newsreader di Piao Hong, di cui
riprende l'impostazione dell'interfaccia.

Usenet Still Lives!
===================
MCSM (aka Marco)
Source: README.txt, updated 2026-09-15