use of com.winsonchiu.reader.data.reddit.Thing in project Reader by TheKeeperOfPie.
the class ControllerHistory method setNsfw.
@Override
public void setNsfw(String name, boolean over18) {
for (int index = 0; index < history.getChildren().size(); index++) {
Thing thing = history.getChildren().get(index);
if (thing.getName().equals(name)) {
((Link) thing).setOver18(over18);
eventHolder.call(new RxAdapterEvent<>(getData(), RxAdapterEvent.Type.CHANGE, index + 1));
return;
}
}
}
use of com.winsonchiu.reader.data.reddit.Thing in project Reader by TheKeeperOfPie.
the class ControllerHistory method setReplyText.
@Override
public boolean setReplyText(String name, String text, boolean collapsed) {
for (int index = 0; index < history.getChildren().size(); index++) {
Thing thing = history.getChildren().get(index);
if (thing.getName().equals(name)) {
((Replyable) thing).setReplyText(text);
((Replyable) thing).setReplyExpanded(!collapsed);
eventHolder.call(new RxAdapterEvent<>(getData(), RxAdapterEvent.Type.CHANGE, index + 1));
return true;
}
}
return false;
}
use of com.winsonchiu.reader.data.reddit.Thing in project Reader by TheKeeperOfPie.
the class ControllerSearch method saveSubscriptions.
private void saveSubscriptions(Listing listing) {
Log.d(TAG, "saveSubscriptions with listing: " + listing.getChildren());
boolean sort = subredditsSubscribed.getChildren().isEmpty();
if (controllerUser.hasUser()) {
ListIterator<Thing> iterator = subredditsSubscribed.getChildren().listIterator();
while (iterator.hasNext()) {
Thing next = iterator.next();
int index = listing.getChildren().indexOf(next);
if (index > -1) {
iterator.set(listing.getChildren().get(index));
} else {
iterator.remove();
}
}
}
subredditsSubscribed.addChildren(listing.getChildren());
subredditsLoaded = new Listing();
if (sort) {
Collections.sort(subredditsSubscribed.getChildren(), new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
return ((Subreddit) lhs).getDisplayName().compareToIgnoreCase(((Subreddit) rhs).getDisplayName());
}
});
}
saveSubscriptions();
}
use of com.winsonchiu.reader.data.reddit.Thing in project Reader by TheKeeperOfPie.
the class ControllerSearch method setSort.
public Observable<Listing> setSort(Sort sort) {
Listing listingSort = getCurrentPage() == PAGE_SUBREDDITS_RECOMMENDED ? subredditsRecommended : subreddits;
if (Sort.ALPHABETICAL.equals(sort)) {
if (Sort.ALPHABETICAL.equals(sortSubreddits)) {
Collections.sort(listingSort.getChildren(), new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
return ((Subreddit) rhs).getDisplayName().compareToIgnoreCase(((Subreddit) lhs).getDisplayName());
}
});
sortSubreddits = null;
} else {
Collections.sort(listingSort.getChildren(), new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
return ((Subreddit) lhs).getDisplayName().compareToIgnoreCase(((Subreddit) rhs).getDisplayName());
}
});
sortSubreddits = Sort.ALPHABETICAL;
}
if (listingSort == subredditsSubscribed) {
saveSubscriptions();
} else if (listingSort == subredditsRecommended) {
for (Listener listener : listeners) {
listener.getAdapterSearchSubredditsRecommended().notifyDataSetChanged();
}
} else {
for (Listener listener : listeners) {
listener.getAdapterSearchSubreddits().notifyDataSetChanged();
}
}
} else if (Sort.SUBSCRIBERS.equals(sort)) {
if (Sort.SUBSCRIBERS.equals(sortSubreddits)) {
Collections.sort(listingSort.getChildren(), new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
long subscribersFirst = ((Subreddit) lhs).getSubscribers();
long subscribersSecond = ((Subreddit) rhs).getSubscribers();
return subscribersFirst < subscribersSecond ? -1 : (subscribersFirst == subscribersSecond ? 0 : 1);
}
});
sortSubreddits = null;
} else {
Collections.sort(listingSort.getChildren(), new Comparator<Thing>() {
@Override
public int compare(Thing lhs, Thing rhs) {
long subscribersFirst = ((Subreddit) lhs).getSubscribers();
long subscribersSecond = ((Subreddit) rhs).getSubscribers();
return subscribersSecond < subscribersFirst ? -1 : (subscribersFirst == subscribersSecond ? 0 : 1);
}
});
sortSubreddits = Sort.SUBSCRIBERS;
}
if (listingSort == subredditsSubscribed) {
saveSubscriptions();
} else if (listingSort == subredditsRecommended) {
for (Listener listener : listeners) {
listener.getAdapterSearchSubredditsRecommended().notifyDataSetChanged();
}
} else {
for (Listener listener : listeners) {
listener.getAdapterSearchSubreddits().notifyDataSetChanged();
}
}
} else if (this.sort != sort) {
this.sort = sort;
eventHolder.getSort().call(sort);
return reloadCurrentPage();
}
return Observable.empty();
}
use of com.winsonchiu.reader.data.reddit.Thing in project Reader by TheKeeperOfPie.
the class ControllerSearch method setReplyTextLinksSubreddit.
public boolean setReplyTextLinksSubreddit(String name, String text, boolean collapsed) {
for (int index = 0; index < linksSubreddit.getChildren().size(); index++) {
Thing thing = linksSubreddit.getChildren().get(index);
if (thing.getName().equals(name)) {
((Replyable) thing).setReplyText(text);
((Replyable) thing).setReplyExpanded(!collapsed);
eventHolder.callLinksSubreddit(new RxAdapterEvent<>(getLinksSubredditModel(), RxAdapterEvent.Type.CHANGE, index + 1));
return true;
}
}
return false;
}
Aggregations