Skip to content

Commit d0d2dd7

Browse files
authored
Code Quality: Added extension helper for media files (#13828)
1 parent c440e68 commit d0d2dd7

File tree

4 files changed

+24
-17
lines changed

4 files changed

+24
-17
lines changed

src/Files.App/Helpers/ContentLayout/AdaptiveLayoutHelpers.cs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,9 @@
11
// Copyright (c) 2023 Files Community
22
// Licensed under the MIT License. See the LICENSE.
33

4-
using CommunityToolkit.Mvvm.DependencyInjection;
5-
using Files.App.Utils;
6-
using Files.App.ViewModels;
74
using Files.App.ViewModels.Previews;
8-
using Files.Core.Services.Settings;
5+
using Files.Shared.Helpers;
96
using IniParser.Model;
10-
using System;
11-
using System.Collections.Generic;
12-
using System.Linq;
137
using Windows.Storage;
148
using static Files.App.Constants.AdaptiveLayout;
159
using IO = System.IO;
@@ -118,7 +112,8 @@ static bool IsImage(ListedItem item)
118112

119113
static bool IsMedia(ListedItem item)
120114
=> !string.IsNullOrEmpty(item.FileExtension)
121-
&& MediaPreviewViewModel.ContainsExtension(item.FileExtension.ToLowerInvariant());
115+
&& (FileExtensionHelpers.IsAudioFile(item.FileExtension)
116+
|| FileExtensionHelpers.IsVideoFile(item.FileExtension));
122117
}
123118

124119
private enum Layouts

src/Files.App/ViewModels/Previews/MediaPreviewViewModel.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,6 @@ public MediaSource Source
2020

2121
public MediaPreviewViewModel(ListedItem item) : base(item) { }
2222

23-
// TODO: Use existing helper mothods
24-
public static bool ContainsExtension(string extension)
25-
=> extension is
26-
// Video
27-
".mp4" or ".webm" or ".ogg" or ".mov" or ".qt" or ".mp4" or ".m4v" or ".mp4v" or ".3g2" or ".3gp2" or ".3gp" or ".3gpp" or ".mkv"
28-
// Audio
29-
or ".mp3" or ".m4a" or ".wav" or ".wma" or ".aac" or ".adt" or ".adts" or ".cda" or ".flac";
30-
3123
public void TogglePlayback()
3224
=> TogglePlaybackRequested?.Invoke(this, null);
3325

src/Files.App/ViewModels/UserControls/PreviewPaneViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ private async Task<UserControl> GetBuiltInPreviewControlAsync(ListedItem item, b
198198

199199
var ext = item.FileExtension.ToLowerInvariant();
200200

201-
if (MediaPreviewViewModel.ContainsExtension(ext))
201+
if (FileExtensionHelpers.IsAudioFile(ext) || FileExtensionHelpers.IsVideoFile(ext))
202202
{
203203
var model = new MediaPreviewViewModel(item);
204204
await model.LoadAsync();

src/Files.Shared/Helpers/FileExtensionHelpers.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,26 @@ public static bool IsImageFile(string? fileExtensionToCheck)
3434
{
3535
return HasExtension(fileExtensionToCheck, ".png", ".bmp", ".jpg", ".jpeg", ".gif", ".tiff", ".tif");
3636
}
37+
38+
/// <summary>
39+
/// Check if the file extension is an audio file.
40+
/// </summary>
41+
/// <param name="fileExtensionToCheck">The file extension to check.</param>
42+
/// <returns><c>true</c> if the fileExtensionToCheck is an audio file; otherwise, <c>false</c>.</returns>
43+
public static bool IsAudioFile(string? fileExtensionToCheck)
44+
{
45+
return HasExtension(fileExtensionToCheck, ".mp3", ".m4a", ".wav", ".wma", ".aac", ".adt", ".adts", ".cda", ".flac");
46+
}
47+
48+
/// <summary>
49+
/// Check if the file extension is a video file.
50+
/// </summary>
51+
/// <param name="fileExtensionToCheck">The file extension to check.</param>
52+
/// <returns><c>true</c> if the fileExtensionToCheck is a video file; otherwise, <c>false</c>.</returns>
53+
public static bool IsVideoFile(string? fileExtensionToCheck)
54+
{
55+
return HasExtension(fileExtensionToCheck, ".mp4", ".webm", ".ogg", ".mov", ".qt", ".m4v", ".mp4v", ".3g2", ".3gp2", ".3gp", ".3gpp", ".mkv");
56+
}
3757

3858
/// <summary>
3959
/// Check if the file extension is a PowerShell script.

0 commit comments

Comments
 (0)