Skip to content

Commit

Permalink
chore: dynamic folders tile height
Browse files Browse the repository at this point in the history
ref #152
  • Loading branch information
MSOB7YY committed Apr 27, 2024
1 parent 9a22c6f commit 409d464
Show file tree
Hide file tree
Showing 3 changed files with 71 additions and 79 deletions.
9 changes: 3 additions & 6 deletions lib/ui/pages/folders_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,8 @@ class FoldersPage extends StatelessWidget {
controller: scrollController,
slivers: [
if (Folders.inst.isHome.value)
SliverFixedExtentList.builder(
SliverList.builder(
itemCount: kStoragePaths.length,
itemExtent: Dimensions.inst.trackTileItemExtent,
itemBuilder: (context, i) {
final p = kStoragePaths.elementAt(i);
return FolderTile(
Expand All @@ -105,9 +104,8 @@ class FoldersPage extends StatelessWidget {
},
),
if (!Folders.inst.isHome.value) ...[
SliverFixedExtentList.builder(
SliverList.builder(
itemCount: Folders.inst.currentFolderslist.length,
itemExtent: Dimensions.inst.trackTileItemExtent,
itemBuilder: (context, i) {
return FolderTile(
folder: Folders.inst.currentFolderslist[i],
Expand Down Expand Up @@ -159,9 +157,8 @@ class FoldersPage extends StatelessWidget {
controller: scrollController,
slivers: [
if (!Folders.inst.isInside.value)
SliverFixedExtentList.builder(
SliverList.builder(
itemCount: Indexer.inst.mainMapFolders.length,
itemExtent: Dimensions.inst.trackTileItemExtent,
itemBuilder: (context, i) {
final folder = mainMapFoldersKeys[i];
return FolderTile(
Expand Down
139 changes: 67 additions & 72 deletions lib/ui/widgets/library/folder_tile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -36,87 +36,82 @@ class FolderTile extends StatelessWidget {
borderRadius: 10.0,
onTap: () => NamidaOnTaps.inst.onFolderTap(folder),
onLongPress: () => NamidaDialogs.inst.showFolderDialog(folder: folder, tracks: tracks),
child: SizedBox(
height: Dimensions.inst.trackTileItemExtent,
child: Padding(
padding: const EdgeInsets.symmetric(vertical: Dimensions.tileVerticalPadding),
child: Row(
children: [
const SizedBox(width: 12.0),
Stack(
children: [
SizedBox(
width: settings.trackThumbnailSizeinList.value,
height: settings.trackThumbnailSizeinList.value,
child: Stack(
alignment: Alignment.center,
children: [
Icon(
Broken.folder,
size: (settings.trackThumbnailSizeinList.value / 1.35).clamp(0, settings.trackListTileHeight.value),
),
Positioned(
child: Padding(
padding: const EdgeInsets.only(top: 8.0),
child: ArtworkWidget(
key: ValueKey(tracks.firstOrNull),
track: tracks.firstOrNull,
blur: 0,
borderRadius: 6,
thumbnailSize: (settings.trackThumbnailSizeinList.value / 2.6).clamp(0, settings.trackListTileHeight.value * 0.5),
path: tracks.firstOrNull?.pathToImage,
forceSquared: true,
),
child: Padding(
padding: const EdgeInsets.symmetric(vertical: Dimensions.tileVerticalPadding),
child: Row(
children: [
const SizedBox(width: 12.0),
Stack(
children: [
SizedBox(
width: settings.trackThumbnailSizeinList.value.withMinimum(12.0),
height: (Dimensions.inst.trackTileItemExtent - Dimensions.totalVerticalDistance).withMinimum(12.0),
child: Stack(
alignment: Alignment.center,
children: [
Icon(
Broken.folder,
size: (settings.trackThumbnailSizeinList.value / 1.35).clamp(0, settings.trackListTileHeight.value),
),
Positioned(
child: Padding(
padding: const EdgeInsets.only(top: 8.0),
child: ArtworkWidget(
key: ValueKey(tracks.firstOrNull),
track: tracks.firstOrNull,
blur: 0,
borderRadius: 6,
thumbnailSize: (settings.trackThumbnailSizeinList.value / 2.6).clamp(0, settings.trackListTileHeight.value * 0.5),
path: tracks.firstOrNull?.pathToImage,
forceSquared: true,
),
),
],
),
),
],
),
const SizedBox(width: 12.0),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
folder.folderName,
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: context.textTheme.displayMedium!,
),
if (subtitle != null)
Text(
subtitle!,
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: context.textTheme.displaySmall!,
),
],
),
),
],
),
const SizedBox(width: 12.0),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
folder.folderName,
style: context.textTheme.displayMedium!,
),
if (subtitle != null)
Text(
[
tracks.displayTrackKeyword,
if (dirInside.isNotEmpty) dirInside.length.displayFolderKeyword,
].join(' - '),
subtitle!,
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: context.textTheme.displaySmall!,
),
],
),
),
const SizedBox(
width: 2.0,
),
MoreIcon(
padding: 6.0,
onPressed: () => NamidaDialogs.inst.showFolderDialog(folder: folder, tracks: tracks),
),
const SizedBox(
width: 4.0,
Text(
[
tracks.displayTrackKeyword,
if (dirInside.isNotEmpty) dirInside.length.displayFolderKeyword,
].join(' - '),
overflow: TextOverflow.ellipsis,
maxLines: 1,
style: context.textTheme.displaySmall!,
),
],
),
],
),
),
const SizedBox(
width: 2.0,
),
MoreIcon(
padding: 6.0,
onPressed: () => NamidaDialogs.inst.showFolderDialog(folder: folder, tracks: tracks),
),
const SizedBox(
width: 4.0,
),
],
),
),
),
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: namida
description: A Beautiful and Feature-rich Music Player, With YouTube & Video Support Built in Flutter
publish_to: "none"
version: 2.0.7-beta+240427212
version: 2.0.8-beta+240427224

environment:
sdk: ">=3.1.4 <4.0.0"
Expand Down

0 comments on commit 409d464

Please sign in to comment.