Skip to content

Commit f83e7e2

Browse files
committed
Fix endless recursion in the privacy menu
Fixes #193
1 parent 1cd85c4 commit f83e7e2

File tree

3 files changed

+31
-16
lines changed

3 files changed

+31
-16
lines changed

Signal-Windows/ViewModels/NotificationSettingsPageViewModel.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,21 @@ public void OnNavigatedTo()
4343
{
4444
var showNotificationTextSettings = GlobalSettingsManager.ShowNotificationTextSetting;
4545
if (showNotificationTextSettings == GlobalSettingsManager.ShowNotificationTextSettings.NameAndMessage)
46-
{
46+
{
47+
NameOnlyChecked = false;
48+
NoNameOrMessageChecked = false;
4749
NameAndMessageChecked = true;
4850
}
4951
else if (showNotificationTextSettings == GlobalSettingsManager.ShowNotificationTextSettings.NameOnly)
50-
{
52+
{
53+
NameAndMessageChecked = false;
54+
NoNameOrMessageChecked = false;
5155
NameOnlyChecked = true;
5256
}
5357
else if (showNotificationTextSettings == GlobalSettingsManager.ShowNotificationTextSettings.NoNameOrMessage)
54-
{
58+
{
59+
NameOnlyChecked = false;
60+
NameAndMessageChecked = false;
5561
NoNameOrMessageChecked = true;
5662
}
5763
}

Signal-Windows/Views/NotificationSettingsPage.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
</Grid.RowDefinitions>
2424
<StackPanel>
2525
<TextBlock Text="Show" Style="{StaticResource BodyTextBlockStyle}" Margin="0,0,0,6"/>
26-
<RadioButton Content="Name and message" Tag="{x:Bind Vm.NameAndMessageTag}" Margin="0,6" IsChecked="{x:Bind Vm.NameAndMessageChecked, Mode=TwoWay}" Checked="ShowNotificationText_Checked"/>
27-
<RadioButton Content="Name only" Tag="{x:Bind Vm.NameOnlyTag}" Margin="0,6" IsChecked="{x:Bind Vm.NameOnlyChecked, Mode=TwoWay}" Checked="ShowNotificationText_Checked"/>
28-
<RadioButton Content="No name or message" Tag="{x:Bind Vm.NoNameOrMessageTag}" Margin="0,6" IsChecked="{x:Bind Vm.NoNameOrMessageChecked, Mode=TwoWay}" Checked="ShowNotificationText_Checked"/>
26+
<RadioButton Content="Name and message" Tag="{x:Bind Vm.NameAndMessageTag}" Margin="0,6" IsChecked="{x:Bind Vm.NameAndMessageChecked, Mode=OneWay}" Checked="ShowNotificationText_Checked" />
27+
<RadioButton Content="Name only" Tag="{x:Bind Vm.NameOnlyTag}" Margin="0,6" IsChecked="{x:Bind Vm.NameOnlyChecked, Mode=OneWay}" Checked="ShowNotificationText_Checked" />
28+
<RadioButton Content="No name or message" Tag="{x:Bind Vm.NoNameOrMessageTag}" Margin="0,6" IsChecked="{x:Bind Vm.NoNameOrMessageChecked, Mode=OneWay}" Checked="ShowNotificationText_Checked" />
2929
</StackPanel>
3030
<HyperlinkButton Grid.Row="1" Margin="0,16,0,0" NavigateUri="ms-settings:notifications" Content="More notification settings"/>
3131
</Grid>

Signal-Windows/Views/NotificationSettingsPage.xaml.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public sealed partial class NotificationSettingsPage : Page
2727
{
2828
public NotificationSettingsPage()
2929
{
30-
this.InitializeComponent();
30+
this.InitializeComponent();
3131
}
3232

3333
public NotificationSettingsPageViewModel Vm
@@ -60,19 +60,28 @@ private void ShowNotificationText_Checked(object sender, RoutedEventArgs e)
6060
var radioButton = sender as RadioButton;
6161
string tag = radioButton.Tag.ToString();
6262
if (tag == Vm.NameAndMessageTag)
63-
{
64-
Vm.NameAndMessageChecked = true;
65-
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NameAndMessage;
63+
{
64+
if (GlobalSettingsManager.ShowNotificationTextSetting != GlobalSettingsManager.ShowNotificationTextSettings.NameAndMessage)
65+
{
66+
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NameAndMessage;
67+
Vm.NameAndMessageChecked = true;
68+
}
6669
}
6770
else if (tag == Vm.NameOnlyTag)
68-
{
69-
Vm.NameOnlyChecked = true;
70-
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NameOnly;
71+
{
72+
if (GlobalSettingsManager.ShowNotificationTextSetting != GlobalSettingsManager.ShowNotificationTextSettings.NameOnly)
73+
{
74+
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NameOnly;
75+
Vm.NameOnlyChecked = true;
76+
}
7177
}
7278
else if (tag == Vm.NoNameOrMessageTag)
73-
{
74-
Vm.NoNameOrMessageChecked = true;
75-
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NoNameOrMessage;
79+
{
80+
if (GlobalSettingsManager.ShowNotificationTextSetting != GlobalSettingsManager.ShowNotificationTextSettings.NoNameOrMessage)
81+
{
82+
GlobalSettingsManager.ShowNotificationTextSetting = GlobalSettingsManager.ShowNotificationTextSettings.NoNameOrMessage;
83+
Vm.NoNameOrMessageChecked = true;
84+
}
7685
}
7786
}
7887
}

0 commit comments

Comments
 (0)