Skip to content
Snippets Groups Projects
Select Git revision
  • 13c5c2f37c6e68ad3d1a4d286e52aee2370ad9bb
  • master default protected
  • 60-display-last-tracks-and-some-dump-metadata
  • 58-create-api-for-main-routes
  • 40-add-more-default-playlists-in-quick-create-feature
  • 37-batch-update-recently-played-tracks
  • 11-improve-new-playlist-name-and-description
  • 15-add-a-play-now-button-on-created-playlist-message
  • 20-rename-playlist-with-artists-names
  • 30-save-spotify-personal-token-for-external-use
10 results

SpotifyPlaylistService.php

Blame
  • parameters.dart 3.28 KiB
    import 'package:flutter/material.dart';
    
    import '../provider/data.dart';
    import '../utils/game_utils.dart';
    
    class Parameters {
    
      static Container buildParametersSelector(Data myProvider) {
        return Container(
          padding: EdgeInsets.all(2),
          margin: EdgeInsets.all(2),
          child: Column(
            mainAxisSize: MainAxisSize.min,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Parameters.buildParameterSelector(myProvider, 'lang'),
              SizedBox(height: 5),
              Parameters.buildParameterSelector(myProvider, 'length'),
              SizedBox(height: 5),
              Parameters.buildParameterSelector(myProvider, 'skin'),
              SizedBox(height: 5),
    
              Parameters.buildStartGameButton(myProvider),
            ],
          ),
        );
      }
    
      static Container buildStartGameButton(Data myProvider) {
        Column decorationImage = Column(
          children: [
            Image(
              image: AssetImage('assets/icons/game_win.png'),
              fit: BoxFit.fill
            ),
          ]
        );
    
        return Container(
          margin: EdgeInsets.all(2),
          padding: EdgeInsets.all(2),
    
          child: Table(
            defaultColumnWidth: IntrinsicColumnWidth(),
            children: [
              TableRow(
                children: [
                  decorationImage,
                  Column(
                    children: [
                      FlatButton(
                        child: Container(
                          child: Image(
                            image: AssetImage('assets/icons/button_start.png'),
                            fit: BoxFit.fill,
                          ),
                        ),
                        onPressed: () => GameUtils.startGame(myProvider),
                      ),
                    ]
                  ),
                  decorationImage,
                ],
              ),
            ]
          )
        );
      }
    
      static Widget buildParameterSelector(Data myProvider, String parameterCode) {
        List availableValues = myProvider.getParameterAvailableValues(parameterCode);
    
        if (availableValues.length == 1) {
          return SizedBox(height: 1);
        }
    
        return Table(
          defaultColumnWidth: IntrinsicColumnWidth(),
          children: [
            TableRow(
              children: [
                for (var index = 0; index < availableValues.length; index++)
                  Column(
                    children: [
                      _buildParameterButton(myProvider, parameterCode, availableValues[index])
                    ]
                  ),
              ],
            ),
          ],
        );
      }
    
      static FlatButton _buildParameterButton(Data myProvider, String parameterCode, String parameterValue) {
        String currentValue = myProvider.getParameterValue(parameterCode).toString();
    
        bool isActive = (parameterValue == currentValue);
        String imageAsset = 'assets/icons/' + parameterCode + '_' + parameterValue + '.png';
    
        return FlatButton(
          padding: EdgeInsets.all(2),
          child: Container(
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: BorderRadius.circular(10),
              border: Border.all(
                color: isActive ? Colors.blue : Colors.white,
                width: 10,
              ),
            ),
            child: Image(
              image: AssetImage(imageAsset),
              fit: BoxFit.fill,
            ),
          ),
          onPressed: () => myProvider.setParameterValue(parameterCode, parameterValue),
        );
      }
    
    }