ios add settings tab

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2023-08-30 21:59:25 +08:00
parent c9423509a9
commit 3eeed39f52
3 changed files with 41 additions and 37 deletions

View File

@ -395,7 +395,7 @@ class _AppState extends State<App> {
themeMode: MyTheme.currentThemeMode(), themeMode: MyTheme.currentThemeMode(),
home: isDesktop home: isDesktop
? const DesktopTabPage() ? const DesktopTabPage()
: !isAndroid : isWeb
? WebHomePage() ? WebHomePage()
: HomePage(), : HomePage(),
localizationsDelegates: const [ localizationsDelegates: const [

View File

@ -28,7 +28,7 @@ class ConnectionPage extends StatefulWidget implements PageShape {
final title = translate("Connection"); final title = translate("Connection");
@override @override
final appBarActions = !isAndroid ? <Widget>[const WebMenu()] : <Widget>[]; final appBarActions = isWeb ? <Widget>[const WebMenu()] : <Widget>[];
@override @override
State<ConnectionPage> createState() => _ConnectionPageState(); State<ConnectionPage> createState() => _ConnectionPageState();

View File

@ -424,41 +424,45 @@ class _SettingsState extends State<SettingsPage> with WidgetsBindingObserver {
}, },
) )
]), ]),
SettingsSection( if (isAndroid)
title: Text(translate("Recording")), SettingsSection(
tiles: [ title: Text(translate("Recording")),
SettingsTile.switchTile( tiles: [
title: Text(translate('Automatically record incoming sessions')), SettingsTile.switchTile(
leading: Icon(Icons.videocam), title:
description: FutureBuilder( Text(translate('Automatically record incoming sessions')),
builder: (ctx, data) => Offstage( leading: Icon(Icons.videocam),
offstage: !data.hasData, description: FutureBuilder(
child: Text("${translate("Directory")}: ${data.data}")), builder: (ctx, data) => Offstage(
future: bind.mainDefaultVideoSaveDirectory()), offstage: !data.hasData,
initialValue: _autoRecordIncomingSession, child: Text("${translate("Directory")}: ${data.data}")),
onToggle: (v) async { future: bind.mainDefaultVideoSaveDirectory()),
await bind.mainSetOption( initialValue: _autoRecordIncomingSession,
key: "allow-auto-record-incoming", onToggle: (v) async {
value: bool2option("allow-auto-record-incoming", v)); await bind.mainSetOption(
final newValue = option2bool( key: "allow-auto-record-incoming",
'allow-auto-record-incoming', value: bool2option("allow-auto-record-incoming", v));
await bind.mainGetOption( final newValue = option2bool(
key: 'allow-auto-record-incoming')); 'allow-auto-record-incoming',
setState(() { await bind.mainGetOption(
_autoRecordIncomingSession = newValue; key: 'allow-auto-record-incoming'));
}); setState(() {
}, _autoRecordIncomingSession = newValue;
), });
], },
), ),
SettingsSection( ],
title: Text(translate("Share Screen")), ),
tiles: shareScreenTiles, if (isAndroid)
), SettingsSection(
SettingsSection( title: Text(translate("Share Screen")),
title: Text(translate("Enhancements")), tiles: shareScreenTiles,
tiles: enhancementsTiles, ),
), if (isAndroid)
SettingsSection(
title: Text(translate("Enhancements")),
tiles: enhancementsTiles,
),
SettingsSection( SettingsSection(
title: Text(translate("About")), title: Text(translate("About")),
tiles: [ tiles: [