Search in sources :

Example 6 with Thing

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;
        }
    }
}
Also used : Thing(com.winsonchiu.reader.data.reddit.Thing) Link(com.winsonchiu.reader.data.reddit.Link)

Example 7 with Thing

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;
}
Also used : Replyable(com.winsonchiu.reader.data.reddit.Replyable) Thing(com.winsonchiu.reader.data.reddit.Thing)

Example 8 with Thing

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();
}
Also used : Listing(com.winsonchiu.reader.data.reddit.Listing) Subreddit(com.winsonchiu.reader.data.reddit.Subreddit) Thing(com.winsonchiu.reader.data.reddit.Thing)

Example 9 with Thing

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();
}
Also used : Listing(com.winsonchiu.reader.data.reddit.Listing) Subreddit(com.winsonchiu.reader.data.reddit.Subreddit) Thing(com.winsonchiu.reader.data.reddit.Thing) Comparator(java.util.Comparator)

Example 10 with Thing

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;
}
Also used : Replyable(com.winsonchiu.reader.data.reddit.Replyable) Thing(com.winsonchiu.reader.data.reddit.Thing)

Aggregations

Thing (com.winsonchiu.reader.data.reddit.Thing)21 Replyable (com.winsonchiu.reader.data.reddit.Replyable)8 Comment (com.winsonchiu.reader.data.reddit.Comment)7 Link (com.winsonchiu.reader.data.reddit.Link)7 Listing (com.winsonchiu.reader.data.reddit.Listing)6 JsonNode (com.fasterxml.jackson.databind.JsonNode)4 Subreddit (com.winsonchiu.reader.data.reddit.Subreddit)4 IOException (java.io.IOException)4 ArrayList (java.util.ArrayList)3 Comparator (java.util.Comparator)3 AccountManager (android.accounts.AccountManager)2 Context (android.content.Context)2 SharedPreferences (android.content.SharedPreferences)2 PreferenceManager (android.preference.PreferenceManager)2 Nullable (android.support.annotation.Nullable)2 TextUtils (android.text.TextUtils)2 Log (android.util.Log)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)2 BehaviorRelay (com.jakewharton.rxrelay.BehaviorRelay)2 AppSettings (com.winsonchiu.reader.AppSettings)2