Skip to content

Commit 2bb34a1

Browse files
committed
feat: hide entire feed
1 parent c5369b9 commit 2bb34a1

File tree

2 files changed

+45
-12
lines changed

2 files changed

+45
-12
lines changed

src/Controllers/SettingsViewController.m

+1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ - (NSArray *)specifiers {
100100
// Section 2: Feed
101101
[self newSectionWithTitle:@"Feed" footer:nil],
102102
[self newSwitchCellWithTitle:@"Hide ads" detailTitle:@"Removes all ads from the Instagram app" key:@"hide_ads" defaultValue:true changeAction:nil],
103+
[self newSwitchCellWithTitle:@"Hide entire feed" detailTitle:@"Removes all content from your home feed, including posts" key:@"hide_entire_feed" defaultValue:false changeAction:nil],
103104
[self newSwitchCellWithTitle:@"Hide stories tray" detailTitle:@"Hides the story tray at the top and within your feed" key:@"hide_stories_tray" defaultValue:false changeAction:nil],
104105
[self newSwitchCellWithTitle:@"No suggested posts" detailTitle:@"Removes suggested posts from your feed" key:@"no_suggested_post" defaultValue:false changeAction:nil],
105106
[self newSwitchCellWithTitle:@"No suggested for you" detailTitle:@"Hides suggested accounts for you to follow" key:@"no_suggested_account" defaultValue:false changeAction:nil],

src/Features/Feed/HideFeedItems.xm

+44-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#import "../../InstagramHeaders.h"
22
#import "../../Manager.h"
33

4-
static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
4+
static NSArray *removeItemsInList(NSArray *list, BOOL isFeed) {
55
NSMutableArray *orig = [list mutableCopy];
66

77
[orig enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
@@ -14,6 +14,8 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
1414
NSLog(@"[SCInsta] Removing suggested posts");
1515

1616
[orig removeObjectAtIndex:idx];
17+
18+
return;
1719
}
1820
}
1921

@@ -23,6 +25,8 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
2325
NSLog(@"[SCInsta] Hiding suggested reels: reels carousel");
2426

2527
[orig removeObjectAtIndex:idx];
28+
29+
return;
2630
}
2731
}
2832

@@ -32,6 +36,8 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
3236
NSLog(@"[SCInsta] Hiding suggested reels: stories carousel");
3337

3438
[orig removeObjectAtIndex:idx];
39+
40+
return;
3541
}
3642
}
3743

@@ -41,6 +47,8 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
4147
NSLog(@"[SCInsta] Hiding suggested for you");
4248

4349
[orig removeObjectAtIndex:idx];
50+
51+
return;
4452
}
4553
}
4654

@@ -50,14 +58,42 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
5058
NSLog(@"[SCInsta] Hiding threads posts");
5159

5260
[orig removeObjectAtIndex:idx];
61+
62+
return;
63+
}
64+
}
65+
66+
// Remove story tray
67+
if (isFeed && [SCIManager getPref:@"hide_stories_tray"]) {
68+
if ([obj isKindOfClass:%c(IGStoryDataController)]) {
69+
NSLog(@"[SCInsta] Hiding stories tray");
70+
71+
[orig removeObjectAtIndex:idx];
72+
73+
return;
74+
}
75+
}
76+
77+
// Hide entire feed
78+
if ([SCIManager getPref:@"hide_entire_feed"]) {
79+
if ([obj isKindOfClass:%c(IGPostCreationManager)] || [obj isKindOfClass:%c(IGMedia)] || [obj isKindOfClass:%c(IGEndOfFeedDemarcatorModel)] || [obj isKindOfClass:%c(IGSpinnerLabelViewModel)]) {
80+
NSLog(@"[SCInsta] Hiding entire feed");
81+
82+
[orig removeObjectAtIndex:idx];
83+
84+
return;
5385
}
5486
}
5587

5688
// Remove ads
57-
if (([obj isKindOfClass:%c(IGFeedItem)] && ([obj isSponsored] || [obj isSponsoredApp])) || [obj isKindOfClass:%c(IGAdItem)]) {
58-
NSLog(@"[SCInsta] Removing ads");
89+
if ([SCIManager getPref:@"hide_ads"]) {
90+
if (([obj isKindOfClass:%c(IGFeedItem)] && ([obj isSponsored] || [obj isSponsoredApp])) || [obj isKindOfClass:%c(IGAdItem)]) {
91+
NSLog(@"[SCInsta] Removing ads");
92+
93+
[orig removeObjectAtIndex:idx];
5994

60-
[orig removeObjectAtIndex:idx];
95+
return;
96+
}
6197
}
6298
}];
6399

@@ -67,17 +103,13 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
67103
// Suggested posts
68104
%hook IGMainFeedListAdapterDataSource
69105
- (NSArray *)objectsForListAdapter:(id)arg1 {
70-
if ([SCIManager getPref:@"hide_ads"]) {
71-
return removeAdsItemsInList(%orig, YES);
72-
}
73-
74-
return %orig;
106+
return removeItemsInList(%orig, YES);
75107
}
76108
%end
77109
%hook IGContextualFeedViewController
78110
- (NSArray *)objectsForListAdapter:(id)arg1 {
79111
if ([SCIManager getPref:@"hide_ads"]) {
80-
return removeAdsItemsInList(%orig, NO);
112+
return removeItemsInList(%orig, NO);
81113
}
82114

83115
return %orig;
@@ -86,7 +118,7 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
86118
%hook IGVideoFeedViewController
87119
- (NSArray *)objectsForListAdapter:(id)arg1 {
88120
if ([SCIManager getPref:@"hide_ads"]) {
89-
return removeAdsItemsInList(%orig, NO);
121+
return removeItemsInList(%orig, NO);
90122
}
91123

92124
return %orig;
@@ -95,7 +127,7 @@ static NSArray *removeAdsItemsInList(NSArray *list, BOOL isFeed) {
95127
%hook IGChainingFeedViewController
96128
- (NSArray *)objectsForListAdapter:(id)arg1 {
97129
if ([SCIManager getPref:@"hide_ads"]) {
98-
return removeAdsItemsInList(%orig, NO);
130+
return removeItemsInList(%orig, NO);
99131
}
100132

101133
return %orig;

0 commit comments

Comments
 (0)