mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-03 19:54:12 +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