show static method

dynamic show({
  1. required BuildContext context,
  2. required List<AudioBandModel> bands,
  3. required dynamic onChanged(
    1. int index,
    2. double gain
    ),
  4. required double height,
  5. required bool enableEq,
  6. required dynamic onEqSwitchChanged(
    1. bool value
    ),
  7. required dynamic onReset(),
})

Implementation

static show({
  required BuildContext context,
  required List<AudioBandModel> bands,
  required Function(int index, double gain) onChanged,
  required double height,
  required bool enableEq,
  required Function(bool value) onEqSwitchChanged,
  required Function() onReset,
}) {
  bool _enableEq = enableEq;

  List<AudioBandModel> _bands = bands;

  showModalBottomSheet(
    context: context,
    builder: (BuildContext context) {
      return StatefulBuilder(
        builder: (context, setState) {
          return SizedBox(
            width: double.infinity,
            height: height,
            child: Column(
              children: [
                Container(
                  height: 50,
                  width: double.infinity,
                  padding: EdgeInsets.all(6),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Transform.scale(
                        scale: 0.7,
                        child: OutlinedButton(
                          onPressed: () {
                            onReset();

                            _bands.forEach((element) {
                              element.gain = 0;
                            });

                            setState(() {});
                          },
                          child: Text("reset"),
                        ),
                      ),
                      Transform.scale(
                        scale: 0.7,
                        child: Switch(
                          value: _enableEq,
                          onChanged: (value) {
                            onEqSwitchChanged(value);
                            setState(() {
                              _enableEq = value;
                            });
                          },
                        ),
                      ),
                    ],
                  ),
                ),
                Expanded(
                  child: EqualizerView(
                    bands: _bands,
                    onChanged: (index, value) {
                      _bands[index].gain = value;
                      onChanged(index, value);
                      setState(() {});
                    },
                  ),
                ),
                SizedBox(height: 20),
              ],
            ),
          );
        },
      );
    },
  );
}