Created
March 28, 2021 13:44
Revisions
-
dJani97 created this gist
Mar 28, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,40 @@ import 'dart:developer'; import 'package:flutter_displaymode/flutter_displaymode.dart'; class DisplayModeUtil { static Future<void> setOptimalDisplayMode() async { final DisplayMode optimalDisplayMode = await _getOptimalDisplayMode(); if (optimalDisplayMode != null) { FlutterDisplayMode.setMode(optimalDisplayMode); } return; } static Future<DisplayMode> _getOptimalDisplayMode() async { try { final List<DisplayMode> supported = await FlutterDisplayMode.supported; final DisplayMode current = await FlutterDisplayMode.current; final List<DisplayMode> sameResolution = supported .where((DisplayMode m) => m.width == current.width && m.height == current.height) .toList(); sameResolution.sort((DisplayMode a, DisplayMode b) => b.refreshRate.compareTo(a.refreshRate)); final DisplayMode mostOptimalMode = sameResolution.isNotEmpty ? sameResolution.first : current; log('All display modes with same resolution: $sameResolution' '\nMost optimal display mode: $mostOptimalMode'); return mostOptimalMode; } catch (ex, trace) { log('Error{ ${ex.toString()} } while selecting display mode, trace:\n$trace'); return null; } } } This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,8 @@ import 'package:flutter/material.dart'; import 'utils/display_mode_util.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await DisplayModeUtil.setOptimalDisplayMode(); runApp(MyApp()); }