diff --git a/lib/models/profile.dart b/lib/models/profile.dart index 54e7fa66..3269f25a 100644 --- a/lib/models/profile.dart +++ b/lib/models/profile.dart @@ -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; diff --git a/lib/views/addeditprofileview.dart b/lib/views/addeditprofileview.dart index d6453017..c6db4414 100644 --- a/lib/views/addeditprofileview.dart +++ b/lib/views/addeditprofileview.dart @@ -276,19 +276,12 @@ class _AddEditProfileViewState extends State { child: SwitchListTile( title: Text(AppLocalizations.of(context)!.profileOfflineAtStart, style: TextStyle(color: Provider.of(context).current().mainTextColor)), subtitle: Text(AppLocalizations.of(context)!.profileAppearOfflineDescription), - value: Provider.of(context).appearOffline, + value: Provider.of(context).appearOfflineAtStartup, onChanged: (bool value) { - Provider.of(context, listen: false).appearOffline = value; + Provider.of(context, listen: false).appearOfflineAtStartup = value; var onion = Provider.of(context, listen: false).onion; if (!onion.isEmpty) { Provider.of(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(context, listen: false).enabled) { - Provider.of(context, listen: false).deactivatePeerEngine(context); - Provider.of(context, listen: false).cwtch.ConfigureConnections(onion, false, false, false); - } else { - Provider.of(context, listen: false).cwtch.ConfigureConnections(onion, true, true, true); - } } }, activeTrackColor: Provider.of(context).theme.defaultButtonColor,