[Framework] Feed item filtering in the Feed List view (#11)

This PR contains the work done to implement the filtering of the items shown in the `FeedListViewController` view controller by star rating.

Reviewed-on: rock-n-code/app-reviews#11
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #11.
This commit is contained in:
2024-03-20 21:35:46 +00:00
committed by javier
parent c9f4b9a677
commit eac34c61c1
11 changed files with 517 additions and 94 deletions
+44 -4
View File
@@ -9,7 +9,11 @@
/* Begin PBXBuildFile section */
0220ADA32BA90646001E6A9F /* FeedItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0220ADA22BA90646001E6A9F /* FeedItemCell.swift */; };
023AC7FC2BAA3EC10027D064 /* Int+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023AC7FB2BAA3EC10027D064 /* Int+Constants.swift */; };
02620B8C2BA89C9A00DE7137 /* FeedViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02620B8B2BA89C9A00DE7137 /* FeedViewModel.swift */; };
02620B8C2BA89C9A00DE7137 /* FeedListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02620B8B2BA89C9A00DE7137 /* FeedListViewModel.swift */; };
02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E782BAB6B0200710E14 /* FilterOption.swift */; };
02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */; };
02909E7D2BAB7FFE00710E14 /* Review+DTOs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */; };
02DA924E2BAAE3FD00C47985 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */; };
02DC7F9F2BA51793000EEEBE /* ReviewsFeed.h in Headers */ = {isa = PBXBuildFile; fileRef = 02DC7F912BA51793000EEEBE /* ReviewsFeed.h */; settings = {ATTRIBUTES = (Public, ); }; };
02DC7FA22BA51793000EEEBE /* ReviewsFeed.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */; };
02DC7FA32BA51793000EEEBE /* ReviewsFeed.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@@ -50,7 +54,11 @@
/* Begin PBXFileReference section */
0220ADA22BA90646001E6A9F /* FeedItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedItemCell.swift; sourceTree = "<group>"; };
023AC7FB2BAA3EC10027D064 /* Int+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Constants.swift"; sourceTree = "<group>"; };
02620B8B2BA89C9A00DE7137 /* FeedViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedViewModel.swift; sourceTree = "<group>"; };
02620B8B2BA89C9A00DE7137 /* FeedListViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedListViewModel.swift; sourceTree = "<group>"; };
02909E782BAB6B0200710E14 /* FilterOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterOption.swift; sourceTree = "<group>"; };
02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Constants.swift"; sourceTree = "<group>"; };
02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Review+DTOs.swift"; sourceTree = "<group>"; };
02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReviewsFeed.framework; sourceTree = BUILT_PRODUCTS_DIR; };
02DC7F912BA51793000EEEBE /* ReviewsFeed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReviewsFeed.h; sourceTree = "<group>"; };
02DC7FB12BA52084000EEEBE /* Libraries */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Libraries; sourceTree = "<group>"; };
@@ -96,7 +104,9 @@
023AC7FA2BAA3EB60027D064 /* Extensions */ = {
isa = PBXGroup;
children = (
02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */,
023AC7FB2BAA3EC10027D064 /* Int+Constants.swift */,
02909E7C2BAB7FFE00710E14 /* Review+DTOs.swift */,
);
path = Extensions;
sourceTree = "<group>";
@@ -113,6 +123,7 @@
02620B862BA89C0000DE7137 /* Logic */ = {
isa = PBXGroup;
children = (
02909E772BAB6AD500710E14 /* Enumerations */,
023AC7FA2BAA3EB60027D064 /* Extensions */,
02620B8A2BA89C3300DE7137 /* Models */,
02620B872BA89C0700DE7137 /* View Models */,
@@ -123,7 +134,7 @@
02620B872BA89C0700DE7137 /* View Models */ = {
isa = PBXGroup;
children = (
02620B8B2BA89C9A00DE7137 /* FeedViewModel.swift */,
02620B8B2BA89C9A00DE7137 /* FeedListViewModel.swift */,
);
path = "View Models";
sourceTree = "<group>";
@@ -153,10 +164,19 @@
path = Models;
sourceTree = "<group>";
};
02909E772BAB6AD500710E14 /* Enumerations */ = {
isa = PBXGroup;
children = (
02909E782BAB6B0200710E14 /* FilterOption.swift */,
);
path = Enumerations;
sourceTree = "<group>";
};
02A6DA2F2BA591C000B943E2 /* Bundle */ = {
isa = PBXGroup;
children = (
02DC7F912BA51793000EEEBE /* ReviewsFeed.h */,
02DA924B2BAAE3E500C47985 /* Resources */,
02DC7FB02BA51B4F000EEEBE /* Sources */,
);
path = Bundle;
@@ -169,6 +189,22 @@
path = Test;
sourceTree = "<group>";
};
02DA924B2BAAE3E500C47985 /* Resources */ = {
isa = PBXGroup;
children = (
02DA924C2BAAE3ED00C47985 /* Catalogs */,
);
path = Resources;
sourceTree = "<group>";
};
02DA924C2BAAE3ED00C47985 /* Catalogs */ = {
isa = PBXGroup;
children = (
02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */,
);
path = Catalogs;
sourceTree = "<group>";
};
02DC7F722BA4F8F0000EEEBE /* Resources */ = {
isa = PBXGroup;
children = (
@@ -365,6 +401,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
02DA924E2BAAE3FD00C47985 /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -384,12 +421,15 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
02620B8C2BA89C9A00DE7137 /* FeedViewModel.swift in Sources */,
02620B8C2BA89C9A00DE7137 /* FeedListViewModel.swift in Sources */,
023AC7FC2BAA3EC10027D064 /* Int+Constants.swift in Sources */,
02DC7FAC2BA51B4C000EEEBE /* FeedItemViewController.swift in Sources */,
02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */,
02909E7D2BAB7FFE00710E14 /* Review+DTOs.swift in Sources */,
0220ADA32BA90646001E6A9F /* FeedItemCell.swift in Sources */,
02DC7FAF2BA51B4C000EEEBE /* Review.swift in Sources */,
02DC7FAE2BA51B4C000EEEBE /* FeedListViewController.swift in Sources */,
02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};