@@ -846,17 +846,44 @@ extension PathTypeUtils on String {
846846 bool isVideo () => NamidaFileExtensionsWrapper .video.isPathValid (this );
847847}
848848
849+ enum NamidaFeaturesAvailablity {
850+ android ('Android' ),
851+ windows ('Windows' ),
852+ android13and_plus ('Android 13+' ), // >= 33
853+ android12and_plus ('Android S/12+' ), // >= 31
854+ android12and_below ('Android <= 12' ), // <= 32
855+ android11and_plus ('Android 11+' ), // >=30
856+ android11and_below ('Android <= 11' ), // <=30
857+ ;
858+
859+ final String text;
860+ const NamidaFeaturesAvailablity (this .text);
861+
862+ bool resolve () {
863+ final isAndroid = NamidaFeaturesVisibility ._isAndroid;
864+ return switch (this ) {
865+ NamidaFeaturesAvailablity .android => isAndroid,
866+ NamidaFeaturesAvailablity .windows => NamidaFeaturesVisibility ._isWindows,
867+ NamidaFeaturesAvailablity .android13and_plus => isAndroid && NamidaDeviceInfo .sdkVersion >= 33 ,
868+ NamidaFeaturesAvailablity .android12and_plus => isAndroid && NamidaDeviceInfo .sdkVersion >= 31 ,
869+ NamidaFeaturesAvailablity .android12and_below => isAndroid && NamidaDeviceInfo .sdkVersion <= 32 ,
870+ NamidaFeaturesAvailablity .android11and_plus => isAndroid && NamidaDeviceInfo .sdkVersion >= 30 ,
871+ NamidaFeaturesAvailablity .android11and_below => isAndroid && NamidaDeviceInfo .sdkVersion <= 30 ,
872+ };
873+ }
874+ }
875+
849876class NamidaFeaturesVisibility {
850877 static final _platform = defaultTargetPlatform;
851878 static final _isAndroid = _platform == TargetPlatform .android;
852879 static final _isWindows = _platform == TargetPlatform .windows;
853880
854- static final wallpaperColors = _isAndroid && NamidaDeviceInfo .sdkVersion >= 31 ;
855- static final displayArtworkOnLockscreen = _isAndroid && NamidaDeviceInfo .sdkVersion < 33 ;
881+ static final wallpaperColors = NamidaFeaturesAvailablity .android12and_plus. resolve () ;
882+ static final displayArtworkOnLockscreen = NamidaFeaturesAvailablity .android12and_below. resolve () ;
856883 static final displayFavButtonInNotif = _isAndroid;
857- static final displayFavButtonInNotifMightCauseIssue = displayFavButtonInNotif && NamidaDeviceInfo .sdkVersion < 31 ;
884+ static final displayFavButtonInNotifMightCauseIssue = displayFavButtonInNotif && NamidaFeaturesAvailablity .android11and_below. resolve () ;
858885 static final displayStopButtonInNotif = _isAndroid;
859- static final shouldRequestManageAllFilesPermission = _isAndroid && NamidaDeviceInfo .sdkVersion >= 30 ;
886+ static final shouldRequestManageAllFilesPermission = NamidaFeaturesAvailablity .android11and_plus. resolve () ;
860887 static final displayAppIcons = _isAndroid;
861888 static final showEqualizerBands = _isAndroid;
862889 static final showToggleMediaStore = onAudioQueryAvailable;
0 commit comments