mirrored_repositories/my_kitchen/lib
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:provider/provider.dart';


import '../widgets/drawer.dart';
import '../provider/filter_provider.dart';


class FiltterScreen extends StatefulWidget {
static const route = 'Filtter Screen';


  @override
  _FiltterScreenState createState() => _FiltterScreenState();
}

 class _FiltterScreenState extends State<FiltterScreen> {
  

  @override
  Widget build(BuildContext context) {
 Map<String,bool>  _selections = FilterProvider.selections;

  Widget seclectingWidget (String selecting){
    return Material(
          color: Colors.transparent,
          child: InkWell(
            borderRadius: const BorderRadius.all(Radius.circular(4.0)),
            onTap: () {
               setState(() {
              //   print('cupertino preesed' + _selections[selecting].toString());
              _selections[selecting] =(!_selections[selecting]) ;
               });

            },
            child: ListTile(
              title: Text(
                   selecting,
                   style: TextStyle(color: Colors.black),
                   ) ,
                trailing: CupertinoSwitch(
                     value: _selections[selecting]  ,
                      onChanged: (bool value) {
                         
                          setState(() {
                         ///   print('cupertino preesed' + value.toString() + _selections[selecting].toString());
                        _selections[selecting] = !_selections[selecting]  ;
                        });
                      },
                    ),
            ),
          ),
        );
  } 


  Widget selctionMealsUI() {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Padding(
          padding:
              const EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children:<Widget>[
              Text(
              'Type of Meals',
              textAlign: TextAlign.left,
              style: TextStyle(
                  color: Colors.grey,
                  fontSize: MediaQuery.of(context).size.width > 360 ? 16 : 20,
                  fontWeight: FontWeight.normal),
              ),

              SizedBox(
                height: 25,
                width: 95,
                  child: RaisedButton.icon( 
                  icon:Icon(Icons.save) , 
                  onPressed: (){Provider.of<FilterProvider>(context , listen: false ).setSelections(_selections) ;},
                  label: Text('Save'),
                ),
              ),
            ] 
          ),
        ),
        Padding(
          padding: const EdgeInsets.only(right: 16, left: 16),
          child: Column(
          children: <Widget>[
            seclectingWidget(FilterProvider.glutenFree),
            seclectingWidget(FilterProvider.vegetarian),
            seclectingWidget(FilterProvider.vegan),
            seclectingWidget(FilterProvider.lactoseFree),
          ],
            ),
        ),
        const SizedBox(
          height: 8,
        ),
      ],
    );
  }






    return Scaffold(
      appBar: CupertinoNavigationBar(

        middle:  Text('Fillter' , style:Theme.of(context).textTheme.title),
      ),

     drawer: MyDrawer(),
      body: selctionMealsUI()
    );
  }
}



// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';

// import '../widgets/drawer.dart';
// class FiltersScreen extends StatefulWidget {
//   @override
//   _FiltersScreenState createState() => _FiltersScreenState();
// }

// class _FiltersScreenState extends State<FiltersScreen> {
//   // List<PopularFilterListData> popularFilterListData =
//   //     PopularFilterListData.popularFList;
//   // List<PopularFilterListData> accomodationListData =
//   //     PopularFilterListData.accomodationList;

//   RangeValues _values = const RangeValues(100, 600);
//   double distValue = 50.0;
  
//    final Color primaryColor = Color.fromARGB(255, 84, 211, 194);
//   final Color bkgColor = const Color(0xFFFFFFFF);
//   @override
//   Widget build(BuildContext context) {
//         return Container(
//           color: bkgColor,
//           child: Scaffold(
//             backgroundColor: Colors.transparent,
//             body: Column(
//               children: <Widget>[
//                 getAppBarUI(),
//                 Expanded(
//                   child: SingleChildScrollView(
//                     child: Column(
//                       children: <Widget>[
//                         priceBarFilter(),
//                         const Divider(
//                           height: 1,
//                         ),
//                         popularFilter(),
//                         const Divider(
//                           height: 1,
//                         ),
//                         distanceViewUI(),
//                         const Divider(
//                           height: 1,
//                         ),
//                         allAccommodationUI()
//                       ],
//                     ),
//                   ),
//                 ),

//                 const Divider(
//                   height: 1,
//                 ),
//                 Padding(
//                   padding: const EdgeInsets.only(
//                       left: 16, right: 16, bottom: 16, top: 8),
//                   child: Container(
//                     height: 48,
//                     decoration: BoxDecoration(
//                       color: primaryColor ,
//                   borderRadius: const BorderRadius.all(Radius.circular(24.0)),
//                   boxShadow: <BoxShadow>[
//                     BoxShadow(
//                       color: Colors.grey.withOpacity(0.6),
//                       blurRadius: 8,
//                       offset: const Offset(4, 4),
//                     ),
//                   ],
//                 ),
//                 child: Material(
//                   color: Colors.transparent,
//                   child: InkWell(
//                     borderRadius: const BorderRadius.all(Radius.circular(24.0)),
//                     highlightColor: Colors.transparent,
//                     onTap: () {
//                       Navigator.pop(context);
//                     },
//                     child: Center(
//                       child: Text(
//                         'Apply',
//                         style: TextStyle(
//                             fontWeight: FontWeight.w500,
//                             fontSize: 18,
//                             color: Colors.white),
//                       ),
//                     ),
//                   ),
//                 ),
//               ),
//             )
//           ],
//         ),
//       ),
//     );
//   }

//   Widget allAccommodationUI() {
//     return Column(
//       mainAxisAlignment: MainAxisAlignment.center,
//       crossAxisAlignment: CrossAxisAlignment.start,
//       children: <Widget>[
//         Padding(
//           padding:
//               const EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8),
//           child: Text(
//             'Type of Accommodation',
//             textAlign: TextAlign.left,
//             style: TextStyle(
//                 color: Colors.grey,
//                 fontSize: MediaQuery.of(context).size.width > 360 ? 18 : 16,
//                 fontWeight: FontWeight.normal),
//           ),
//         ),
//         Padding(
//           padding: const EdgeInsets.only(right: 16, left: 16),
//           child: Column(
//             children: getAccomodationListUI(),
//           ),
//         ),
//         const SizedBox(
//           height: 8,
//         ),
//       ],
//     );
//   }

//   List<Widget> getAccomodationListUI() {
//     final List<Widget> noList = <Widget>[];
//     for (int i = 0; i < accomodationListData.length; i++) {
//       final PopularFilterListData date = accomodationListData[i];
//       noList.add(
//         Material(
//           color: Colors.transparent,
//           child: InkWell(
//             borderRadius: const BorderRadius.all(Radius.circular(4.0)),
//             onTap: () {
//               setState(() {
//                 checkAppPosition(i);
//               });
//             },
//             child: Padding(
//               padding: const EdgeInsets.all(8.0),
//               child: Row(
//                 children: <Widget>[
//                   Expanded(
//                     child: Text(
//                       date.titleTxt,
//                       style: TextStyle(color: Colors.black),
//                     ),
//                   ),
//                   CupertinoSwitch(
//                     activeColor: date.isSelected
//                         ? primaryColor
//                         : Colors.grey.withOpacity(0.6),
//                     onChanged: (bool value) {
//                       setState(() {
//                         checkAppPosition(i);
//                       });
//                     },
//                     value: date.isSelected,
//                   ),
//                 ],
//               ),
//             ),
//           ),
//         ),
//       );
//       if (i == 0) {
//         noList.add(const Divider(
//           height: 1,
//         ));
//       }
//     }
//     return noList;
//   }

//   void checkAppPosition(int index) {
//     if (index == 0) {
//       if (accomodationListData[0].isSelected) {
//         accomodationListData.forEach((d) {
//           d.isSelected = false;
//         });
//       } else {
//         accomodationListData.forEach((d) {
//           d.isSelected = true;
//         });
//       }
//     } else {
//       accomodationListData[index].isSelected =
//           !accomodationListData[index].isSelected;

//       int count = 0;
//       // for (int i = 0; i < accomodationListData.length; i++) {
//       //   if (i != 0) {
//       //     final PopularFilterListData data = accomodationListData[i];
//       //     if (data.isSelected) {
//       //       count += 1;
//       //     }
//       //   }
//       // }

//       if (count == accomodationListData.length - 1) {
//         accomodationListData[0].isSelected = true;
//       } else {
//         accomodationListData[0].isSelected = false;
//       }
//     }
//   }

//   Widget distanceViewUI() {
//     return Column(
//       mainAxisAlignment: MainAxisAlignment.center,
//       crossAxisAlignment: CrossAxisAlignment.start,
//       children: <Widget>[
//         Padding(
//           padding:
//               const EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8),
//           child: Text(
//             'Distance from city center',
//             textAlign: TextAlign.left,
//             style: TextStyle(
//                 color: Colors.grey,
//                 fontSize: MediaQuery.of(context).size.width > 360 ? 18 : 16,
//                 fontWeight: FontWeight.normal),
//           ),
//         ),
//         // SliderView(
//         //   distValue: distValue,
//         //   onChangedistValue: (double value) {
//         //     distValue = value;
//         //   },
//         // ),
//         const SizedBox(
//           height: 8,
//         ),
//       ],
//     );
//   }

//   Widget popularFilter() {
//     return Column(
//       mainAxisAlignment: MainAxisAlignment.center,
//       crossAxisAlignment: CrossAxisAlignment.start,
//       children: <Widget>[
//         Padding(
//           padding:
//               const EdgeInsets.only(left: 16, right: 16, top: 16, bottom: 8),
//           child: Text(
//             'Popular filters',
//             textAlign: TextAlign.left,
//             style: TextStyle(
//                 color: Colors.grey,
//                 fontSize: MediaQuery.of(context).size.width > 360 ? 18 : 16,
//                 fontWeight: FontWeight.normal),
//           ),
//         ),
//         Padding(
//           padding: const EdgeInsets.only(right: 16, left: 16),
//           child: Column(
//             //children: getPList(),
//           ),
//         ),
//         const SizedBox(
//           height: 8,
//         )
//       ],
//     );
//   }

//   // List<Widget> getPList() {
//   //   final List<Widget> noList = <Widget>[];
//   //   int count = 0;
//   //   const int columnCount = 2;
//   //   for (int i = 0; i < popularFilterListData.length / columnCount; i++) {
//   //     final List<Widget> listUI = <Widget>[];
//   //     for (int i = 0; i < columnCount; i++) {
//   //       try {
//   //         final PopularFilterListData date = popularFilterListData[count];
//   //         listUI.add(Expanded(
//   //           child: Row(
//   //             children: <Widget>[
//   //               Material(
//   //                 color: Colors.transparent,
//   //                 child: InkWell(
//   //                   borderRadius: const BorderRadius.all(Radius.circular(4.0)),
//   //                   onTap: () {
//   //                     setState(() {
//   //                       date.isSelected = !date.isSelected;
//   //                     });
//   //                   },
//   //                   child: Padding(
//   //                     padding: const EdgeInsets.all(8.0),
//   //                     child: Row(
//   //                       children: <Widget>[
//   //                         Icon(
//   //                           date.isSelected
//   //                               ? Icons.check_box
//   //                               : Icons.check_box_outline_blank,
//   //                           color: date.isSelected
//   //                               ? primaryColor
//   //                               : Colors.grey.withOpacity(0.6),
//   //                         ),
//   //                         const SizedBox(
//   //                           width: 4,
//   //                         ),
//   //                         Text(
//   //                           date.titleTxt,
//   //                         ),
//   //                       ],
//   //                     ),
//   //                   ),
//   //                 ),
//   //               ),
//   //             ],
//   //           ),
//   //         ));
//   //         count += 1;
//   //       } catch (e) {
//   //         print(e);
//   //       }
//   //     }
//   //     noList.add(Row(
//   //       mainAxisAlignment: MainAxisAlignment.center,
//   //       crossAxisAlignment: CrossAxisAlignment.center,
//   //       mainAxisSize: MainAxisSize.min,
//   //       children: listUI,
//   //     ));
//   //   }
//   //   return noList;
//   // }

//   Widget priceBarFilter() {
//     return Column(
//       mainAxisAlignment: MainAxisAlignment.center,
//       crossAxisAlignment: CrossAxisAlignment.start,
//       children: <Widget>[
//         Padding(
//           padding: const EdgeInsets.all(16.0),
//           child: Text(
//             'Price (for 1 night)',
//             textAlign: TextAlign.left,
//             style: TextStyle(
//                 color: Colors.grey,
//                 fontSize: MediaQuery.of(context).size.width > 360 ? 18 : 16,
//                 fontWeight: FontWeight.normal),
//           ),
//         ),
//         // RangeSliderView(
//         //   values: _values,
//         //   onChangeRangeValues: (RangeValues values) {
//         //     _values = values;
//         //   },
//         // ),
//         const SizedBox(
//           height: 8,
//         )
//       ],
//     );
//   }

//   Widget getAppBarUI() {
//     return Container(
//       decoration: BoxDecoration(
//         color: bkgColor,
//         boxShadow: <BoxShadow>[
//           BoxShadow(
//               color: Colors.grey.withOpacity(0.2),
//               offset: const Offset(0, 2),
//               blurRadius: 4.0),
//         ],
//       ),
//       child: Padding(
//         padding: EdgeInsets.only(
//             top: MediaQuery.of(context).padding.top, left: 8, right: 8),
//         child: Row(
//           children: <Widget>[
//             Container(
//               alignment: Alignment.centerLeft,
//               width: AppBar().preferredSize.height + 40,
//               height: AppBar().preferredSize.height,
//               child: Material(
//                 color: Colors.transparent,
//                 child: InkWell(
//                   borderRadius: const BorderRadius.all(
//                     Radius.circular(32.0),
//                   ),
//                   onTap: () {
//                     Navigator.pop(context);
//                   },
//                   child: Padding(
//                     padding: const EdgeInsets.all(8.0),
//                     child: Icon(Icons.close),
//                   ),
//                 ),
//               ),
//             ),
//             Expanded(
//               child: Center(
//                 child: Text(
//                   'Filters',
//                   style: TextStyle(
//                     fontWeight: FontWeight.w600,
//                     fontSize: 22,
//                   ),
//                 ),
//               ),
//             ),
//             Container(
//               width: AppBar().preferredSize.height + 40,
//               height: AppBar().preferredSize.height,
//             )
//           ],
//         ),
//       ),
//     );
//   }
// }


