Skip to content
Snippets Groups Projects
screen.dart 1.52 KiB
Newer Older
import 'package:flutter/material.dart';
import 'package:unicons/unicons.dart';

import 'package:midisynth/ui/screens/about.dart';
import 'package:midisynth/ui/screens/activity.dart';
import 'package:midisynth/ui/screens/settings.dart';

class ScreenItem {
  final Icon icon;
  final Widget screen;
  final bool displayBottomNavBar;

  const ScreenItem({
    required this.icon,
    required this.screen,
    required this.displayBottomNavBar,
  });
}

class Screen {
  static const indexActivity = 0;
  static const screenActivity = ScreenItem(
    icon: Icon(UniconsLine.home),
    screen: ScreenActivity(),
    displayBottomNavBar: true,
  );

  static const indexSettings = 1;
  static const screenSettings = ScreenItem(
    icon: Icon(UniconsLine.setting),
    screen: ScreenSettings(),
    displayBottomNavBar: false,
  );

  static const indexAbout = 2;
  static const screenAbout = ScreenItem(
    icon: Icon(UniconsLine.info_circle),
    screen: ScreenAbout(),
    displayBottomNavBar: false,
  );

  static Map<int, ScreenItem> items = {
    indexActivity: screenActivity,
    indexSettings: screenSettings,
    indexAbout: screenAbout,
  };

  static bool isIndexAllowed(int screenIndex) {
    return items.keys.contains(screenIndex);
  }

  static Widget getWidget(int screenIndex) {
    return items[screenIndex]?.screen ?? screenActivity.screen;
  }

  static bool displayBottomNavBar(int screenIndex) {
    return items[screenIndex]?.displayBottomNavBar ?? screenActivity.displayBottomNavBar;
  }

  static int itemsCount = Screen.items.length;
}