Search in sources :

Example 6 with Link

use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.

the class FragmentComments method subscribe.

private void subscribe() {
    CommentsTopModel data = controllerCommentsTop.getEventHolder().getData().getValue();
    Link linkStart = data.getLinkModel().getLink();
    Source source = data.getSource();
    LinksController linksController = getLinksControllerFromSource(source);
    if (linksController == null) {
        this.linksModel.getLinks().clear();
        this.linksModel.getLinks().add(linkStart);
    } else {
        subscriptionLinks = linksController.getEventHolder().getData().subscribe(linksModel -> {
            this.linksModel = linksModel;
            if (indexStart == 0) {
                indexStart = UtilsList.indexOf(linksModel.getLinks(), link -> linkStart.getId().equals(link.getId()));
                positionCurrent = indexStart;
            }
            adapterComments.notifyDataSetChanged();
            pagerComments.setCurrentItem(positionCurrent, false);
        });
    }
}
Also used : Rect(android.graphics.Rect) LinearLayout(android.widget.LinearLayout) Bundle(android.os.Bundle) Historian(com.winsonchiu.reader.history.Historian) CustomApplication(com.winsonchiu.reader.CustomApplication) ControllerLinks(com.winsonchiu.reader.links.ControllerLinks) Uri(android.net.Uri) ViewPropertyAnimatorListener(android.support.v4.view.ViewPropertyAnimatorListener) Animator(android.animation.Animator) CustomFrameLayout(com.winsonchiu.reader.views.CustomFrameLayout) YouTubeInitializationResult(com.google.android.youtube.player.YouTubeInitializationResult) LinksModel(com.winsonchiu.reader.links.LinksModel) BindView(butterknife.BindView) YouTubePlayerStateListener(com.winsonchiu.reader.utils.YouTubePlayerStateListener) MotionEventCompat(android.support.v4.view.MotionEventCompat) ControllerProfile(com.winsonchiu.reader.profile.ControllerProfile) Matcher(java.util.regex.Matcher) View(android.view.View) ViewCompat(android.support.v4.view.ViewCompat) PreferenceManager(android.preference.PreferenceManager) Log(android.util.Log) ControllerSearch(com.winsonchiu.reader.search.ControllerSearch) StaggeredGridLayoutManager(android.support.v7.widget.StaggeredGridLayoutManager) ApiKeys(com.winsonchiu.reader.ApiKeys) FloatingActionButton(android.support.design.widget.FloatingActionButton) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) DisplayMetrics(android.util.DisplayMetrics) ViewGroup(android.view.ViewGroup) R(com.winsonchiu.reader.R) FragmentBase(com.winsonchiu.reader.FragmentBase) RecyclerFragmentPagerAdapter(com.winsonchiu.reader.utils.RecyclerFragmentPagerAdapter) Pattern(java.util.regex.Pattern) Nullable(android.support.annotation.Nullable) YouTubePlayerSupportFragment(com.google.android.youtube.player.YouTubePlayerSupportFragment) Subscription(rx.Subscription) ControllerHistory(com.winsonchiu.reader.history.ControllerHistory) AppBarLayout(android.support.design.widget.AppBarLayout) CoordinatorLayout(android.support.design.widget.CoordinatorLayout) GestureDetector(android.view.GestureDetector) FastOutSlowInInterpolator(android.support.v4.view.animation.FastOutSlowInInterpolator) ButterKnife(butterknife.ButterKnife) AdapterLink(com.winsonchiu.reader.links.AdapterLink) UtilsRx(com.winsonchiu.reader.utils.UtilsRx) ViewPager(android.support.v4.view.ViewPager) UtilsList(com.winsonchiu.reader.utils.UtilsList) AppSettings(com.winsonchiu.reader.AppSettings) MenuItem(android.view.MenuItem) Inject(javax.inject.Inject) MotionEvent(android.view.MotionEvent) Toast(android.widget.Toast) LinksController(com.winsonchiu.reader.links.LinksController) Menu(android.view.Menu) Link(com.winsonchiu.reader.data.reddit.Link) ScrollAwareFloatingActionButtonBehavior(com.winsonchiu.reader.utils.ScrollAwareFloatingActionButtonBehavior) Build(android.os.Build) LayoutInflater(android.view.LayoutInflater) YouTubeListener(com.winsonchiu.reader.utils.YouTubeListener) Sort(com.winsonchiu.reader.data.reddit.Sort) TextUtils(android.text.TextUtils) RecyclerView(android.support.v7.widget.RecyclerView) SharedPreferences(android.content.SharedPreferences) TypedValue(android.util.TypedValue) YouTubePlayer(com.google.android.youtube.player.YouTubePlayer) Toolbar(android.support.v7.widget.Toolbar) ActivityMain(com.winsonchiu.reader.ActivityMain) GestureDetectorCompat(android.support.v4.view.GestureDetectorCompat) FragmentListenerBase(com.winsonchiu.reader.FragmentListenerBase) Activity(android.app.Activity) UtilsTheme(com.winsonchiu.reader.utils.UtilsTheme) ValueAnimator(android.animation.ValueAnimator) LinksController(com.winsonchiu.reader.links.LinksController) AdapterLink(com.winsonchiu.reader.links.AdapterLink) Link(com.winsonchiu.reader.data.reddit.Link)

Example 7 with Link

use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.

the class ControllerProfile method remove.

public Link remove(int position) {
    Link link;
    if (position == -1) {
        link = topLink;
        topLink = null;
        for (Listener listener : listeners) {
            listener.getAdapter().notifyItemChanged(2);
        }
    } else {
        link = (Link) data.getChildren().remove(position);
        for (Listener listener : listeners) {
            listener.getAdapter().notifyItemRemoved(position + 6);
        }
    }
    return link;
}
Also used : ControllerListener(com.winsonchiu.reader.utils.ControllerListener) Link(com.winsonchiu.reader.data.reddit.Link)

Example 8 with Link

use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.

the class TableLink method queryListing.

public List<Thing> queryListing(final List<String> ids) {
    //        StringBuilder statement = new StringBuilder("SELECT * from " + NAME + " inner join (select " + ids.get(0) + " as " + _ID);
    //
    //        String union = " union all select ";
    //
    //        for (int index = 1; index < ids.size(); index++) {
    //            statement.append(union)
    //                    .append(DatabaseUtils.sqlEscapeString(ids.get(index)));
    //        }
    //
    //        statement.append(") as x on " + NAME + "." + _ID + " = x." + _ID);
    List<String> parameters = new ArrayList<>(ids.size());
    for (int index = 0; index < ids.size(); index++) {
        parameters.add("?");
    }
    List<Thing> links = new ArrayList<>();
    ObjectMapper objectMapper = ComponentStatic.getObjectMapper();
    String[] idArray = new String[ids.size()];
    for (int index = 0; index < idArray.length; index++) {
        idArray[index] = ids.get(index);
    }
    Cursor query = sqLiteDatabase.query(NAME, new String[] { COLUMN_JSON, COLUMN_COMMENTS }, _ID + " IN (" + TextUtils.join(",", parameters) + ")", idArray, null, null, null);
    if (query != null) {
        if (query.moveToFirst()) {
            do {
                String json = query.getString(query.getColumnIndex(COLUMN_JSON));
                String comments = query.getString(query.getColumnIndex(COLUMN_COMMENTS));
                try {
                    Link link = Link.fromJson(objectMapper.readValue(json, JsonNode.class));
                    if (!TextUtils.isEmpty(comments)) {
                        link.setComments(Listing.fromJson(objectMapper.readValue(comments, JsonNode.class)));
                    }
                    links.add(link);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } while (query.moveToNext());
        }
        query.close();
    }
    Collections.sort(links, new Comparator<Thing>() {

        @Override
        public int compare(Thing lhs, Thing rhs) {
            int first = ids.indexOf(lhs.getId());
            int second = ids.indexOf(rhs.getId());
            return first < second ? -1 : (first == second ? 0 : 1);
        }
    });
    return links;
}
Also used : ArrayList(java.util.ArrayList) JsonNode(com.fasterxml.jackson.databind.JsonNode) IOException(java.io.IOException) Cursor(android.database.Cursor) Thing(com.winsonchiu.reader.data.reddit.Thing) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Link(com.winsonchiu.reader.data.reddit.Link)

Example 9 with Link

use of com.winsonchiu.reader.data.reddit.Link 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 10 with Link

use of com.winsonchiu.reader.data.reddit.Link in project Reader by TheKeeperOfPie.

the class ControllerHistory method remove.

public Link remove(int position) {
    Link link = getLink(position);
    history.getChildren().remove(link);
    historian.getEntry(link).setRemoved(true);
    eventHolder.call(new RxAdapterEvent<>(getData(), RxAdapterEvent.Type.REMOVE, position));
    return link;
}
Also used : Link(com.winsonchiu.reader.data.reddit.Link)

Aggregations

Link (com.winsonchiu.reader.data.reddit.Link)19 AdapterLink (com.winsonchiu.reader.links.AdapterLink)8 RecyclerView (android.support.v7.widget.RecyclerView)7 View (android.view.View)7 AppBarLayout (android.support.design.widget.AppBarLayout)6 ViewGroup (android.view.ViewGroup)6 Thing (com.winsonchiu.reader.data.reddit.Thing)6 Bundle (android.os.Bundle)5 CoordinatorLayout (android.support.design.widget.CoordinatorLayout)5 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)5 ImageView (android.widget.ImageView)5 AdapterListener (com.winsonchiu.reader.adapter.AdapterListener)5 Likes (com.winsonchiu.reader.data.reddit.Likes)5 Sort (com.winsonchiu.reader.data.reddit.Sort)5 BindView (butterknife.BindView)4 ActivityMain (com.winsonchiu.reader.ActivityMain)4 Source (com.winsonchiu.reader.comments.Source)4 Activity (android.app.Activity)3 Nullable (android.support.annotation.Nullable)3 GestureDetectorCompat (android.support.v4.view.GestureDetectorCompat)3