import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:libacflutter/Constants.dart'; import 'package:pokedex/Session.dart'; class Filters { static final int GEN1 = 1; static final int GEN2 = 2; static final int GEN3 = 4; static final int GEN4 = 8; static final int GEN5 = 16; static final int GEN6 = 32; static final int GEN7 = 64; static final int GEN8 = 128; static final int GEN9 = 255; static final int All = GEN1 | GEN2 | GEN3 | GEN4 | GEN5 | GEN6 | GEN7 | GEN8 | GEN9; } class FilterPage extends StatefulWidget { @override State createState() { return _filterPage(); } } class _filterPage extends State { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("PokeDex - Filters"), backgroundColor: SessionData.darkMode ? LibACFlutterConstants.TITLEBAR_COLOR : Colors.cyan, ), body: Padding( padding: EdgeInsets.all(8), child: SingleChildScrollView( child: Column( children: [ Text( "The PokeDex's filters will allow you to customize what Generations are shown in the app.\n\n** WARNING **\nThis will prevent evolutions from showing up if the Pokemon resides in a future generation.\n\nThe dex entries will also not show the evolution conditions, or catch conditions for disabled generations.", style: TextStyle(fontSize: 24), ), SwitchListTile( value: (SessionData.filter & Filters.GEN1 == Filters.GEN1), title: Text("Generation 1"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN1; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN2 == Filters.GEN2), title: Text("Generation 2"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN2; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN3 == Filters.GEN3), title: Text("Generation 3"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN3; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN4 == Filters.GEN4), title: Text("Generation 4"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN4; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN5 == Filters.GEN5), title: Text("Generation 5"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN5; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN6 == Filters.GEN6), title: Text("Generation 6"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN6; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN7 == Filters.GEN7), title: Text("Generation 7"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN7; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN8 == Filters.GEN8), title: Text("Generation 8"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN8; }); }, ), SwitchListTile( value: (SessionData.filter & Filters.GEN9 == Filters.GEN9), title: Text("Generation 9"), onChanged: (val) { setState(() { SessionData.filter = SessionData.filter ^ Filters.GEN9; }); }, ), ], ), ), ), ); } }