|
4 | 4 | x:Class="McpServerManager.Android.Views.PhoneSettingsView" |
5 | 5 | x:DataType="vm:SettingsViewModel"> |
6 | 6 |
|
7 | | - <Grid RowDefinitions="Auto,Auto,*,Auto" Margin="8"> |
| 7 | + <ScrollViewer VerticalScrollBarVisibility="Auto"> |
| 8 | + <StackPanel Margin="8" Spacing="12"> |
| 9 | + <Border Classes="phone-outline-card" Padding="12"> |
| 10 | + <StackPanel Spacing="8"> |
| 11 | + <TextBlock Text="Voice Chat" FontSize="22" FontWeight="SemiBold"/> |
| 12 | + <TextBlock Text="Shared voice-chat defaults. These values seed the Android voice experience and the simplified chat view." |
| 13 | + TextWrapping="Wrap" Opacity="0.7" FontSize="18"/> |
| 14 | + <TextBlock Text="Default language" FontSize="18" FontWeight="SemiBold"/> |
| 15 | + <TextBox Text="{Binding VoiceLanguage, Mode=TwoWay}" |
| 16 | + Watermark="en-US" |
| 17 | + FontSize="20"/> |
| 18 | + <CheckBox Content="Auto-continue voice chat after each response" |
| 19 | + IsChecked="{Binding AutoContinueEnabled, Mode=TwoWay}" |
| 20 | + FontSize="19"/> |
| 21 | + </StackPanel> |
| 22 | + </Border> |
8 | 23 |
|
9 | | - <!-- Speech Filter Section Header --> |
10 | | - <StackPanel Grid.Row="0" Spacing="4" Margin="0,8,0,8"> |
11 | | - <TextBlock Text="Speech Filter Phrases" FontSize="22" FontWeight="SemiBold"/> |
12 | | - <TextBlock Text="Lines containing any of these phrases (case-insensitive) will be excluded from text-to-speech. One phrase per line." |
13 | | - TextWrapping="Wrap" Opacity="0.7" FontSize="18"/> |
14 | | - </StackPanel> |
| 24 | + <Border Classes="phone-outline-card" Padding="12" IsVisible="{Binding SupportsWakeWordSettings}"> |
| 25 | + <StackPanel Spacing="8"> |
| 26 | + <TextBlock Text="Wake Word" FontSize="22" FontWeight="SemiBold"/> |
| 27 | + <TextBlock Text="Android-only wake-word settings. These are saved to the same device preferences used by the Android wake-word runtime." |
| 28 | + TextWrapping="Wrap" Opacity="0.7" FontSize="18"/> |
| 29 | + <TextBlock Text="Wake phrase" FontSize="18" FontWeight="SemiBold"/> |
| 30 | + <ComboBox ItemsSource="{Binding AvailableWakePhrases}" |
| 31 | + SelectedItem="{Binding WakePhrase, Mode=TwoWay}" |
| 32 | + FontSize="20"/> |
| 33 | + <TextBlock Text="Wake sensitivity" FontSize="18" FontWeight="SemiBold"/> |
| 34 | + <ComboBox ItemsSource="{Binding AvailableWakeSensitivities}" |
| 35 | + SelectedItem="{Binding WakeSensitivity, Mode=TwoWay}" |
| 36 | + FontSize="20"/> |
| 37 | + <CheckBox Content="Auto listen + send when wake phrase is detected" |
| 38 | + IsChecked="{Binding AutoListenOnWake, Mode=TwoWay}" |
| 39 | + FontSize="19"/> |
| 40 | + <TextBlock Text="Picovoice access key" FontSize="18" FontWeight="SemiBold"/> |
| 41 | + <TextBox Text="{Binding PicovoiceAccessKey, Mode=TwoWay}" |
| 42 | + Watermark="Optional when already set by environment or metadata" |
| 43 | + FontSize="19"/> |
| 44 | + </StackPanel> |
| 45 | + </Border> |
15 | 46 |
|
16 | | - <!-- Filter Words Editor --> |
17 | | - <TextBox Grid.Row="2" |
18 | | - Text="{Binding SpeechFilterWords, Mode=TwoWay}" |
19 | | - AcceptsReturn="True" |
20 | | - TextWrapping="Wrap" |
21 | | - Watermark="Enter filter phrases, one per line..." |
22 | | - FontSize="20" |
23 | | - MinHeight="200" |
24 | | - VerticalContentAlignment="Top"/> |
| 47 | + <Border Classes="phone-outline-card" Padding="12"> |
| 48 | + <StackPanel Spacing="8"> |
| 49 | + <TextBlock Text="Speech Filter Phrases" FontSize="22" FontWeight="SemiBold"/> |
| 50 | + <TextBlock Text="Lines containing any of these phrases (case-insensitive) will be excluded from text-to-speech. One phrase per line." |
| 51 | + TextWrapping="Wrap" Opacity="0.7" FontSize="18"/> |
| 52 | + <TextBox Text="{Binding SpeechFilterWords, Mode=TwoWay}" |
| 53 | + AcceptsReturn="True" |
| 54 | + TextWrapping="Wrap" |
| 55 | + Watermark="Enter filter phrases, one per line..." |
| 56 | + FontSize="20" |
| 57 | + MinHeight="200" |
| 58 | + VerticalContentAlignment="Top"/> |
| 59 | + </StackPanel> |
| 60 | + </Border> |
25 | 61 |
|
26 | | - <!-- Save/Revert/Import Buttons + Status --> |
27 | | - <StackPanel Grid.Row="3" Orientation="Horizontal" Spacing="8" Margin="0,8,0,4"> |
28 | | - <Button Content="Save" Command="{Binding SaveFilterWordsCommand}" Padding="14,8" FontSize="21"/> |
29 | | - <Button Content="Revert" Command="{Binding RevertFilterWordsCommand}" Padding="14,8" FontSize="21"/> |
30 | | - <Button Content="Import" x:Name="ImportButton" Click="OnImportClick" Padding="14,8" FontSize="21"/> |
31 | | - <TextBlock Text="{Binding StatusMessage}" VerticalAlignment="Center" Opacity="0.7" FontSize="19"/> |
| 62 | + <StackPanel Orientation="Horizontal" Spacing="8" Margin="0,0,0,4"> |
| 63 | + <Button Content="Save" Command="{Binding SaveFilterWordsCommand}" Padding="14,8" FontSize="21"/> |
| 64 | + <Button Content="Revert" Command="{Binding RevertFilterWordsCommand}" Padding="14,8" FontSize="21"/> |
| 65 | + <Button Content="Import" x:Name="ImportButton" Click="OnImportClick" Padding="14,8" FontSize="21"/> |
| 66 | + <TextBlock Text="{Binding StatusMessage}" VerticalAlignment="Center" Opacity="0.7" FontSize="19" TextWrapping="Wrap"/> |
| 67 | + </StackPanel> |
32 | 68 | </StackPanel> |
33 | | - |
34 | | - </Grid> |
| 69 | + </ScrollViewer> |
35 | 70 |
|
36 | 71 | </UserControl> |
0 commit comments