Untitled

 avatar
unknown
plain_text
2 years ago
6.8 kB
3
Indexable
import 'package:assets_audio_player/assets_audio_player.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_downloader/flutter_downloader.dart';
import 'package:flutter_native_splash/flutter_native_splash.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:pull_to_refresh/pull_to_refresh.dart';
import 'package:responsive_framework/responsive_framework.dart';

import 'utils/utils.dart';
import 'views/songs.dart';

void main() async {
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations(
    [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown],
  );
  await FlutterDownloader.initialize(debug: true, ignoreSsl: true);
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  AssetsAudioPlayer.setupNotificationsOpenAction((notification) {
    return true;
  });
  await GetStorage.init('liveallin');
  runApp(LiveAllIn());
}

class LiveAllIn extends StatelessWidget {
  final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();

  @override
  Widget build(BuildContext context) {
    return RefreshConfiguration(
      headerBuilder: () => MaterialClassicHeader(
        backgroundColor: Colors.white,
        color: AppUtils.primaryColor,
      ),
      headerTriggerDistance: 80.0,
      springDescription: SpringDescription(
        stiffness: 170,
        damping: 16,
        mass: 1.9,
      ),
      maxOverScrollExtent: 100,
      maxUnderScrollExtent: 0,
      enableLoadingWhenFailed: true,
      hideFooterWhenNotFull: true,
      enableBallisticLoad: true,
      child: GestureDetector(
        onTap: () {
          FocusManager.instance.primaryFocus?.unfocus();
        },
        child: GetMaterialApp(
          title: AppUtils.appName,
          debugShowCheckedModeBanner: false,
          navigatorKey: navigatorKey,
          theme: ThemeData(
            visualDensity: VisualDensity.adaptivePlatformDensity,
            primaryColor: AppUtils.primaryColor,
            scaffoldBackgroundColor: AppUtils.scaffold,
            appBarTheme: AppBarTheme(
              backgroundColor: AppUtils.secondaryColor,
              toolbarHeight: 60.0,
              centerTitle: true,
              titleTextStyle: TextStyle(
                fontSize: 24.0,
                fontWeight: FontWeight.bold,
              ),
            ),
            textTheme: GoogleFonts.robotoTextTheme(),
            inputDecorationTheme: InputDecorationTheme(
              isDense: false,
              floatingLabelBehavior: FloatingLabelBehavior.auto,
              prefixIconColor: AppUtils.labelColor,
              errorStyle: TextStyle(
                fontSize: 15.0,
              ),
              hintStyle: TextStyle(
                // color: AppUtils.labelColor,
                fontSize: 20.0,
              ),
              labelStyle: TextStyle(
                color: AppUtils.labelColor,
                fontSize: 20.0,
              ),
              // contentPadding: EdgeInsets.symmetric(
              //   vertical: 18.0,
              //   horizontal: 10.0,
              // ),
              border: OutlineInputBorder(
                borderSide: BorderSide(
                  color: Colors.white,
                ),
                // borderRadius: BorderRadius.circular(30.0),
                borderRadius: BorderRadius.zero,
              ),
              disabledBorder: OutlineInputBorder(
                borderSide: BorderSide(
                  color: Colors.white,
                ),
                // borderRadius: BorderRadius.circular(30.0),
                borderRadius: BorderRadius.zero,
              ),
              focusedBorder: OutlineInputBorder(
                borderSide: BorderSide(
                  color: Colors.white,
                ),
                // borderRadius: BorderRadius.circular(30.0),
                borderRadius: BorderRadius.zero,
              ),
              enabledBorder: OutlineInputBorder(
                borderSide: BorderSide(
                  color: Colors.white,
                ),
                // borderRadius: BorderRadius.circular(30.0),
                borderRadius: BorderRadius.zero,
              ),
            ),
            elevatedButtonTheme: ElevatedButtonThemeData(
              style: ButtonStyle(
                overlayColor: MaterialStateProperty.all(Colors.transparent),
                backgroundColor: MaterialStateProperty.all(AppUtils.primaryColor),
                elevation: MaterialStateProperty.all(0.0),
                padding: MaterialStateProperty.all(
                  EdgeInsets.symmetric(
                    vertical: 18.0,
                  ),
                ),
                shape: MaterialStateProperty.all(
                  RoundedRectangleBorder(
                    // borderRadius: BorderRadius.circular(30.0),
                    borderRadius: BorderRadius.circular(5.0),
                  ),
                ),
                // primary: AppUtils.primaryColor,
                // elevation: 0.0,
                // padding: const EdgeInsets.symmetric(
                //   vertical: 18.0,
                // ),
                // shape: RoundedRectangleBorder(
                //   borderRadius: BorderRadius.circular(5.0),
                // ),
              ),
            ),
            textButtonTheme: TextButtonThemeData(
              style: ButtonStyle(
                overlayColor: MaterialStateProperty.all(Colors.transparent),
              ),
            ),
          ),
          builder: (context, widget) => MediaQuery(
            data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
            child: ResponsiveWrapper.builder(
              ScrollConfiguration(
                behavior: MyBehavior(),
                child: widget!,
              ),
              maxWidth: 1200,
              minWidth: 480,
              defaultScale: true,
              debugLog: false,
              breakpoints: [
                const ResponsiveBreakpoint.resize(480, name: MOBILE),
                const ResponsiveBreakpoint.autoScale(800, name: TABLET),
                const ResponsiveBreakpoint.resize(1000, name: DESKTOP),
              ],
            ),
          ),
          home: Songs(),
        ),
      ),
    );
  }
}

class MyBehavior extends ScrollBehavior {
  Widget buildViewportChrome(
    BuildContext context,
    Widget child,
    AxisDirection axisDirection,
  ) {
    return child;
  }
}
Editor is loading...