import 'package:flutter/material.dart'; import 'package:tasktracker/Data.dart'; class NotificationSettings extends StatefulWidget { const NotificationSettings({Key? key}) : super(key: key); @override _NotificationSettingsState createState() => _NotificationSettingsState(); } class _NotificationSettingsState extends State { String dropdownValue = Settings.notificationOptions[1]; bool suggestionNotification = true; bool adaptiveNotification =true; bool adaptiveNotificationAvailable =false; @override void initState() { // TODO: implement initState super.initState(); updateSettings(); } void updateSettings() async{ int notificationInterval= await Settings.getNotificationInterval(); adaptiveNotificationAvailable = Settings.adaptiveNotificationAvailable(); setState(() { dropdownValue=Settings.notificationOptions[notificationInterval]; }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text("Notification Settings")), body: SafeArea( child: Column( children: [ SizedBox( height: 10, ), ListTile( enabled: adaptiveNotificationAvailable, title: Text("Adaptive Notifications"), trailing:(adaptiveNotificationAvailable) ?Switch.adaptive(value: adaptiveNotification, onChanged: (val){ adaptiveNotification=val; setState(() { }); }) : Text("Track more data to activate this", style: TextStyle(color: Colors.red)), subtitle: Text("Notifies you to track activities according to your past activities patterns"), ), ListTile( enabled: !adaptiveNotification, title: Text("New Activity Notification"), trailing:(adaptiveNotification) ? (Text("Adaptive")) : DropdownButton( value: dropdownValue, icon: const Icon(Icons.arrow_downward), elevation: 16, underline: Container( height: 2, color: Colors.red, ), onChanged: (String? newValue) { setState(() { Settings.setNotificationInterval(Settings.notificationOptions.indexOf(newValue!)); dropdownValue = newValue!; }); }, items:Settings.notificationOptions.map>((String value) { return DropdownMenuItem( value: value, child: Text(value), ); }).toList(), ), subtitle: Text("Notify you to track activities of past time"), ), Divider(), ListTile( title: Text("Suggestion Notifications"), trailing:Switch.adaptive(value: suggestionNotification, onChanged: (val){ suggestionNotification=val; setState(() { }); }), subtitle: Text("Notifies you about suggestions according to your data"), ) ], ), ), ); } }