content: /*
   *  This file is part of BlackHole (https://github.com/Sangwan5688/BlackHole).
   * 
   * BlackHole is free software: you can redistribute it and/or modify
   * it under the terms of the GNU Lesser General Public License as published by
   * the Free Software Foundation, either version 3 of the License, or
   * (at your option) any later version.
   *
   * BlackHole is distributed in the hope that it will be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   * GNU Lesser General Public License for more details.
   *
   * You should have received a copy of the GNU Lesser General Public License
   * along with BlackHole.  If not, see <http://www.gnu.org/licenses/>.
   * 
   * Copyright (c) 2021-2022, Ankit Sangwan
   */
  
  import 'package:blackhole/Helpers/config.dart';
  import 'package:flutter/material.dart';
  import 'package:flutter/services.dart';
  import 'package:get_it/get_it.dart';
  
  // ignore: avoid_classes_with_only_static_members
  class AppTheme {
    static MyTheme get currentTheme => GetIt.I<MyTheme>();
    static ThemeMode get themeMode => GetIt.I<MyTheme>().currentTheme();
  
    static ThemeData lightTheme({
      required BuildContext context,
    }) {
      return ThemeData(
        textSelectionTheme: TextSelectionThemeData(
          selectionHandleColor: currentTheme.currentColor(),
          cursorColor: currentTheme.currentColor(),
          selectionColor: currentTheme.currentColor(),
        ),
        inputDecorationTheme: InputDecorationTheme(
          focusedBorder: UnderlineInputBorder(
            borderSide:
                BorderSide(width: 1.5, color: currentTheme.currentColor()),
          ),
        ),
        listTileTheme: ListTileThemeData(
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(7.0),
          ),
        ),
        visualDensity: VisualDensity.adaptivePlatformDensity,
        appBarTheme: AppBarTheme(
          backgroundColor: currentTheme.currentColor(),
          systemOverlayStyle: SystemUiOverlayStyle(
            statusBarIconBrightness: AppTheme.themeMode == ThemeMode.system
                ? MediaQuery.platformBrightnessOf(context) == Brightness.dark
                    ? Brightness.light
                    : Brightness.dark
                : AppTheme.themeMode == ThemeMode.dark
                    ? Brightness.light
                    : Brightness.dark,
          ),
        ),
        cardTheme: CardTheme(
          clipBehavior: Clip.antiAlias,
          elevation: 5,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(7.0),
          ),
        ),
        disabledColor: Colors.grey[600],
        brightness: Brightness.light,
        indicatorColor: currentTheme.currentColor(),
        progressIndicatorTheme: const ProgressIndicatorThemeData()
            .copyWith(color: currentTheme.currentColor()),
        iconTheme: IconThemeData(
          color: Colors.grey[800],
          opacity: 1.0,
          size: 24.0,
        ),
        colorScheme: Theme.of(context).colorScheme.copyWith(
              primary: Colors.grey[800],
              brightness: Brightness.light,
              secondary: currentTheme.currentColor(),
            ),
      );
    }
  
    static ThemeData darkTheme({
      required BuildContext context,
    }) {
      return ThemeData(
        textButtonTheme: TextButtonThemeData(
          style: TextButton.styleFrom(
            foregroundColor: Colors.white,
            backgroundColor: Colors.transparent,
            elevation: 0.0,
          ),
        ),
        textSelectionTheme: TextSelectionThemeData(
          selectionHandleColor: currentTheme.currentColor(),
          cursorColor: currentTheme.currentColor(),
          selectionColor: currentTheme.currentColor(),
        ),
        inputDecorationTheme: InputDecorationTheme(
          focusedBorder: UnderlineInputBorder(
            borderSide:
                BorderSide(width: 1.5, color: currentTheme.currentColor()),
          ),
        ),
        listTileTheme: ListTileThemeData(
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(7.0),
          ),
        ),
        visualDensity: VisualDensity.adaptivePlatformDensity,
        brightness: Brightness.dark,
        appBarTheme: AppBarTheme(
          color: currentTheme.getCanvasColor(),
          foregroundColor: Colors.white,
        ),
        canvasColor: currentTheme.getCanvasColor(),
        cardColor: currentTheme.getCardColor(),
        cardTheme: CardTheme(
          clipBehavior: Clip.antiAlias,
          elevation: 5,
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(7.0),
          ),
        ),
        dialogBackgroundColor: currentTheme.getCardColor(),
        progressIndicatorTheme: const ProgressIndicatorThemeData()
            .copyWith(color: currentTheme.currentColor()),
        iconTheme: const IconThemeData(
          color: Colors.white,
          opacity: 1.0,
          size: 24.0,
        ),
        indicatorColor: currentTheme.currentColor(),
        colorScheme: Theme.of(context).colorScheme.copyWith(
              primary: Colors.white,
              secondary: currentTheme.currentColor(),
              brightness: Brightness.dark,
            ),
      );
    }
  }
  