streamer mode

This commit is contained in:
Dan Ballard 2021-09-14 09:05:07 -07:00
parent f3b09d3e3a
commit 34da2bea35
11 changed files with 54 additions and 16 deletions

View File

@ -1,6 +1,8 @@
{
"@@locale": "de",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Senden Sie diese Adresse an Peers, mit denen Sie sich verbinden möchten",
"addPeerTab": "Einen anderen Nutzer hinzufügen",

View File

@ -1,6 +1,8 @@
{
"@@locale": "en",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Send this address to people you want to connect with",
"addPeerTab": "Add a contact",

View File

@ -1,6 +1,8 @@
{
"@@locale": "es",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Envía esta dirección a los contactos con los que quieras conectarte",
"addPeerTab": "Agregar Contacto",

View File

@ -1,6 +1,8 @@
{
"@@locale": "fr",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archiver cette conversation",
"profileOnionLabel": "Envoyez cette adresse aux personnes avec lesquelles vous souhaitez entrer en contact.",
"addPeerTab": "Ajouter un contact",

View File

@ -1,6 +1,8 @@
{
"@@locale": "it",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Inviare questo indirizzo ai peer con cui si desidera connettersi",
"addPeerTab": "Aggiungi un peer",

View File

@ -1,6 +1,8 @@
{
"@@locale": "pl",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Send this address to contacts you want to connect with",
"addPeerTab": "Add a contact",

View File

@ -1,6 +1,8 @@
{
"@@locale": "pt",
"@@last_modified": "2021-08-29T18:35:41+02:00",
"@@last_modified": "2021-09-14T02:24:48+02:00",
"descriptionStreamerMode": "If turned on, this option makes the app more visually private for steaming or presenting with, for example, hiding profile and contact onions",
"streamerModeLabel": "Streamer\/Presentation Mode",
"archiveConversation": "Archive this Conversation",
"profileOnionLabel": "Send this address to contacts you want to connect with",
"addPeerTab": "Add a contact",

View File

@ -31,6 +31,7 @@ class Settings extends ChangeNotifier {
DualpaneMode _uiColumnModeLandscape = DualpaneMode.CopyPortrait;
bool blockUnknownConnections = false;
bool streamerMode = false;
/// Set the dark theme.
void setDark() {
@ -74,8 +75,8 @@ class Settings extends ChangeNotifier {
// Set Locale and notify listeners
switchLocale(Locale(settings["Locale"]));
// Decide whether to enable Experiments
blockUnknownConnections = settings["BlockUnknownConnections"];
streamerMode = settings["StreamerMode"];
// Decide whether to enable Experiments
experimentsEnabled = settings["ExperimentsEnabled"];
@ -105,6 +106,11 @@ class Settings extends ChangeNotifier {
notifyListeners();
}
setStreamerMode(bool newSteamerMode) {
streamerMode = newSteamerMode;
notifyListeners();
}
/// Block Unknown Connections will autoblock connections if they authenticate with public key not in our contacts list.
/// This is one of the best tools we have to combat abuse, while it isn't ideal it does allow a user to curate their contacts
/// list without being bothered by spurious requests (either permanently, or as a short term measure).
@ -227,6 +233,7 @@ class Settings extends ChangeNotifier {
"Theme": themeString,
"PreviousPid": -1,
"BlockUnknownConnections": blockUnknownConnections,
"StreamerMode": streamerMode,
"ExperimentsEnabled": this.experimentsEnabled,
"Experiments": experiments,
"StateRootPane": 0,

View File

@ -137,6 +137,19 @@ class _GlobalSettingsViewState extends State<GlobalSettingsView> {
inactiveTrackColor: settings.theme.defaultButtonDisabledColor(),
secondary: Icon(CwtchIcons.block_unknown, color: settings.current().mainTextColor()),
),
SwitchListTile(
title: Text(AppLocalizations.of(context)!.streamerModeLabel, style: TextStyle(color: settings.current().mainTextColor())),
subtitle: Text(AppLocalizations.of(context)!.descriptionStreamerMode),
value: settings.streamerMode,
onChanged: (bool value) {
settings.setStreamerMode(value);
// Save Settings...
saveSettings(context);
},
activeTrackColor: settings.theme.defaultButtonActiveColor(),
inactiveTrackColor: settings.theme.defaultButtonDisabledColor(),
secondary: Icon(CwtchIcons.block_unknown, color: settings.current().mainTextColor()),
),
SwitchListTile(
title: Text(AppLocalizations.of(context)!.experimentsEnabled, style: TextStyle(color: settings.current().mainTextColor())),
subtitle: Text(AppLocalizations.of(context)!.descriptionExperiments),

View File

@ -65,9 +65,11 @@ class _ContactRowState extends State<ContactRow> {
child: LinearProgressIndicator(
color: Provider.of<Settings>(context).theme.defaultButtonActiveColor(),
)),
Text(contact.onion,
Visibility(
visible: !Provider.of<Settings>(context).streamerMode,
child: Text(contact.onion,
style: TextStyle(color: contact.isBlocked ? Provider.of<Settings>(context).theme.portraitBlockedTextColor() : Provider.of<Settings>(context).theme.mainTextColor())),
],
)],
))),
Padding(
padding: const EdgeInsets.all(5.0),

View File

@ -46,12 +46,14 @@ class _ProfileRowState extends State<ProfileRow> {
softWrap: true,
overflow: TextOverflow.ellipsis,
),
ExcludeSemantics(
child: Text(
profile.onion,
softWrap: true,
overflow: TextOverflow.ellipsis,
))
Visibility(
visible: !Provider.of<Settings>(context).streamerMode,
child: ExcludeSemantics(
child: Text(
profile.onion,
softWrap: true,
overflow: TextOverflow.ellipsis,
)))
],
)),
IconButton(