Skip to content

Commit

Permalink
[GDPR] Hiding recommendations (#244)
Browse files Browse the repository at this point in the history
* Hiding recommendations when user has setting off.
Updating tests.

* renaming `generate_recommendations` to `opted_out_of_recommendations`
  • Loading branch information
eoji committed May 11, 2018
1 parent 6b4412d commit dfe2091
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import rx.Observable;

import static com.kickstarter.libs.utils.BooleanUtils.isFalse;
import static com.kickstarter.libs.utils.BooleanUtils.isTrue;

public final class DiscoveryDrawerUtils {
Expand Down Expand Up @@ -142,7 +143,10 @@ private static boolean isVisible(final @NonNull Category category, final @Nullab

if (user != null) {
filters.add(DiscoveryParams.builder().starred(1).build());
filters.add(DiscoveryParams.builder().recommended(true).backed(-1).build());

if (isFalse(user.optedOutOfRecommendations())) {
filters.add(DiscoveryParams.builder().recommended(true).backed(-1).build());
}

if (isTrue(user.social())) {
filters.add(DiscoveryParams.builder().social(1).build());
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/com/kickstarter/models/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ public abstract class User implements Parcelable {
public abstract @Nullable Boolean notifyOfFollower();
public abstract @Nullable Boolean notifyOfFriendActivity();
public abstract @Nullable Boolean notifyOfUpdates();
public abstract @Nullable Boolean optedOutOfRecommendations();
public abstract @Nullable Boolean promoNewsletter();
public abstract @Nullable Boolean social();
public abstract @Nullable Integer starredProjectsCount();
Expand Down Expand Up @@ -57,6 +58,7 @@ public abstract static class Builder {
public abstract Builder notifyOfFollower(Boolean __);
public abstract Builder notifyOfFriendActivity(Boolean __);
public abstract Builder notifyOfUpdates(Boolean __);
public abstract Builder optedOutOfRecommendations(Boolean __);
public abstract Builder promoNewsletter(Boolean __);
public abstract Builder social(Boolean __);
public abstract Builder starredProjectsCount(Integer __);
Expand Down
8 changes: 8 additions & 0 deletions app/src/test/java/com/kickstarter/factories/UserFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public static User user() {
.avatar(AvatarFactory.avatar())
.id(IdFactory.id())
.name("Sammy Sosa")
.optedOutOfRecommendations(false)
.location(LocationFactory.unitedStates())
.build();
}
Expand Down Expand Up @@ -40,4 +41,11 @@ public static User germanUser() {
.location(LocationFactory.germany())
.build();
}

public static User noRecommendations() {
return user()
.toBuilder()
.optedOutOfRecommendations(true)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,26 @@ public void testDeriveNavigationDrawerData_LoggedIn_DefaultSelected() {
assertEquals(1, data.sections().get(6).rows().size());
}

@Test
public void testDeriveNavigationDrawerData_LoggedIn_NoRecommendations_DefaultSelected() {

final NavigationDrawerData data = DiscoveryDrawerUtils.deriveNavigationDrawerData(
categories,
DiscoveryParams.builder().build(),
null,
UserFactory.noRecommendations()
);

assertEquals(6, data.sections().size());

assertEquals(1, data.sections().get(0).rows().size());
assertEquals(1, data.sections().get(1).rows().size());
assertEquals(1, data.sections().get(2).rows().size());
assertEquals(1, data.sections().get(3).rows().size());
assertEquals(1, data.sections().get(4).rows().size());
assertEquals(1, data.sections().get(5).rows().size());
}

@Test
public void testDeriveNavigationDrawerData_LoggedIn_Social_DefaultSelected() {

Expand Down

0 comments on commit dfe2091

Please sign in to comment.