fix(app)!: instances over plain HTTP are refused, but on this machine

What the app sends an instance (the proofs that sign in, the keys'
wrappings, every request a session carries) must not be read or changed on
the way, so an instance is reached over HTTPS, or over plain HTTP only on
this machine (localhost, 127.0.0.0/8, ::1), as Jellyfin servers are. An
address over plain HTTP elsewhere is refused before anything is sent there.
One kept from before is never opened: the app says why, and offers another
instance or removing it from the device, never dropping it silently.
Development builds still use their own instance over HTTP (an emulator
reaches the developer's machine as 10.0.2.2); releases never.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-21 14:35:21 +02:00
commit 4914df348e
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -32,6 +32,22 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
@override
String get instanceAddressInvalid => 'Das ist keine Adresse.';
@override
String instanceAddressInsecure(String app) {
return '$app erreicht Instanzen nur über HTTPS, damit unterwegs niemand mitliest oder verändert, was es sendet. Frag nach der HTTPS-Adresse der Instanz.';
}
@override
String instanceInsecure(String name, String app) {
return '$name wird über einfaches HTTP erreicht, wo unterwegs mitgelesen und verändert werden könnte, was $app sendet. Deshalb öffnet $app es nicht mehr. Das Konto bleibt auf $name und auf diesem Gerät. Nutze eine andere Instanz oder entferne diese von diesem Gerät.';
}
@override
String get instanceInsecureUseAnother => 'Andere Instanz nutzen';
@override
String get instanceInsecureRemove => 'Von diesem Gerät entfernen';
@override
String get instanceAddressRequired => 'Gib die Adresse einer Instanz ein.';