Clarify Offline Mode Behaviour
continuous-integration/drone/pr Build is pending Details
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Sarah Jamie Lewis 2023-10-02 15:24:08 -07:00 committed by Gitea
parent 51f07cffd5
commit 69b7ddb2c1
2 changed files with 10 additions and 9 deletions

View File

@ -36,6 +36,7 @@ class ProfileInfoState extends ChangeNotifier {
bool _autostart = true;
bool _enabled = false;
bool _appearOffline = false;
bool _appearOfflineAtStartup = false;
ProfileInfoState({
required this.onion,
@ -62,6 +63,7 @@ class ProfileInfoState extends ChangeNotifier {
this._enabled = true;
}
this._appearOffline = appearOffline;
this._appearOfflineAtStartup = appearOffline;
this._encrypted = encrypted;
_contacts.connectServers(this._servers);
@ -185,6 +187,12 @@ class ProfileInfoState extends ChangeNotifier {
notifyListeners();
}
bool get appearOfflineAtStartup => this._appearOfflineAtStartup;
set appearOfflineAtStartup(bool newVal) {
this._appearOfflineAtStartup = newVal;
notifyListeners();
}
bool get appearOffline => this._appearOffline;
set appearOffline(bool newVal) {
this._appearOffline = newVal;

View File

@ -276,19 +276,12 @@ class _AddEditProfileViewState extends State<AddEditProfileView> {
child: SwitchListTile(
title: Text(AppLocalizations.of(context)!.profileOfflineAtStart, style: TextStyle(color: Provider.of<Settings>(context).current().mainTextColor)),
subtitle: Text(AppLocalizations.of(context)!.profileAppearOfflineDescription),
value: Provider.of<ProfileInfoState>(context).appearOffline,
value: Provider.of<ProfileInfoState>(context).appearOfflineAtStartup,
onChanged: (bool value) {
Provider.of<ProfileInfoState>(context, listen: false).appearOffline = value;
Provider.of<ProfileInfoState>(context, listen: false).appearOfflineAtStartup = value;
var onion = Provider.of<ProfileInfoState>(context, listen: false).onion;
if (!onion.isEmpty) {
Provider.of<FlwtchState>(context, listen: false).cwtch.SetProfileAttribute(onion, "profile.appear-offline", value ? "true" : "false");
// if the profile is already enabled, then cycle the peer engine...
if (value == true && Provider.of<ProfileInfoState>(context, listen: false).enabled) {
Provider.of<ProfileInfoState>(context, listen: false).deactivatePeerEngine(context);
Provider.of<FlwtchState>(context, listen: false).cwtch.ConfigureConnections(onion, false, false, false);
} else {
Provider.of<FlwtchState>(context, listen: false).cwtch.ConfigureConnections(onion, true, true, true);
}
}
},
activeTrackColor: Provider.of<Settings>(context).theme.defaultButtonColor,