mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 12:14:11 +00:00 
			
		
		
		
	Remove old application settings route
This commit is contained in:
		@@ -1,109 +0,0 @@
 | 
			
		||||
import 'package:comunic/helpers/preferences_helper.dart';
 | 
			
		||||
import 'package:comunic/utils/intl_utils.dart';
 | 
			
		||||
import 'package:comunic/utils/ui_utils.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
 | 
			
		||||
/// Application settings route
 | 
			
		||||
///
 | 
			
		||||
/// @author Pierre HUBERT
 | 
			
		||||
 | 
			
		||||
class AppSettingsRoute extends StatelessWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text(tr("App settings")),
 | 
			
		||||
      ),
 | 
			
		||||
      body: _AppSettingsBody(),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _AppSettingsBody extends StatefulWidget {
 | 
			
		||||
  @override
 | 
			
		||||
  __AppSettingsBodyState createState() => __AppSettingsBodyState();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class __AppSettingsBodyState extends State<_AppSettingsBody> {
 | 
			
		||||
  PreferencesHelper _preferencesHelper;
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  void initState() {
 | 
			
		||||
    super.initState();
 | 
			
		||||
    _load();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _load() async {
 | 
			
		||||
    final prefs = await PreferencesHelper.getInstance();
 | 
			
		||||
    setState(() {
 | 
			
		||||
      _preferencesHelper = prefs;
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  void _needRefresh() {
 | 
			
		||||
    setState(() {});
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    if (_preferencesHelper == null)
 | 
			
		||||
      return Center(child: CircularProgressIndicator());
 | 
			
		||||
 | 
			
		||||
    return Padding(
 | 
			
		||||
      padding: const EdgeInsets.all(8.0),
 | 
			
		||||
      child: ListView(
 | 
			
		||||
        children: <Widget>[
 | 
			
		||||
          // Dark theme
 | 
			
		||||
          _CheckBoxPreference(
 | 
			
		||||
            preferenceKey: PreferencesKeyList.ENABLE_DARK_THEME,
 | 
			
		||||
            preferencesHelper: _preferencesHelper,
 | 
			
		||||
            onUpdate: _needRefresh,
 | 
			
		||||
            title: tr("Enable dark theme"),
 | 
			
		||||
            description:
 | 
			
		||||
                tr("You will need to restart the application to apply changes"),
 | 
			
		||||
          ),
 | 
			
		||||
          ListTile(
 | 
			
		||||
            title: Text(tr("About Comunic")),
 | 
			
		||||
            onTap: () => showAboutAppDialog(context),
 | 
			
		||||
          ),
 | 
			
		||||
        ],
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class _CheckBoxPreference extends StatelessWidget {
 | 
			
		||||
  final PreferencesKeyList preferenceKey;
 | 
			
		||||
  final PreferencesHelper preferencesHelper;
 | 
			
		||||
  final VoidCallback onUpdate;
 | 
			
		||||
  final String title;
 | 
			
		||||
  final String description;
 | 
			
		||||
 | 
			
		||||
  const _CheckBoxPreference({
 | 
			
		||||
    Key key,
 | 
			
		||||
    @required this.preferenceKey,
 | 
			
		||||
    @required this.preferencesHelper,
 | 
			
		||||
    @required this.onUpdate,
 | 
			
		||||
    @required this.title,
 | 
			
		||||
    @required this.description,
 | 
			
		||||
  })  : assert(preferencesHelper != null),
 | 
			
		||||
        assert(preferencesHelper != null),
 | 
			
		||||
        assert(onUpdate != null),
 | 
			
		||||
        assert(title != null),
 | 
			
		||||
        assert(description != null),
 | 
			
		||||
        super(key: key);
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context) {
 | 
			
		||||
    return SwitchListTile(
 | 
			
		||||
      value: preferencesHelper.getBool(preferenceKey),
 | 
			
		||||
      onChanged: (b) async {
 | 
			
		||||
        await preferencesHelper.setBool(preferenceKey, b);
 | 
			
		||||
        onUpdate();
 | 
			
		||||
        return true;
 | 
			
		||||
      },
 | 
			
		||||
      title: Text(title),
 | 
			
		||||
      subtitle: Text(description),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user