Search in sources :

Example 1 with ReaderBlog

use of org.wordpress.android.models.ReaderBlog in project WordPress-Android by wordpress-mobile.

the class ReaderBlogActions method handleUpdateBlogInfoResponse.

private static void handleUpdateBlogInfoResponse(JSONObject jsonObject, UpdateBlogInfoListener infoListener) {
    if (jsonObject == null) {
        if (infoListener != null) {
            infoListener.onResult(null);
        }
        return;
    }
    ReaderBlog blogInfo = ReaderBlog.fromJson(jsonObject);
    ReaderBlogTable.addOrUpdateBlog(blogInfo);
    if (infoListener != null) {
        infoListener.onResult(blogInfo);
    }
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog)

Example 2 with ReaderBlog

use of org.wordpress.android.models.ReaderBlog in project WordPress-Android by wordpress-mobile.

the class ReaderBlogActions method followFeedById.

public static boolean followFeedById(final long feedId, final boolean isAskingToFollow, final ActionListener actionListener) {
    ReaderBlog blogInfo = ReaderBlogTable.getFeedInfo(feedId);
    if (blogInfo != null) {
        return internalFollowFeed(blogInfo.feedId, blogInfo.getFeedUrl(), isAskingToFollow, actionListener);
    }
    updateFeedInfo(feedId, null, new UpdateBlogInfoListener() {

        @Override
        public void onResult(ReaderBlog blogInfo) {
            if (blogInfo != null) {
                internalFollowFeed(blogInfo.feedId, blogInfo.getFeedUrl(), isAskingToFollow, actionListener);
            } else {
                ReaderActions.callActionListener(actionListener, false);
            }
        }
    });
    return true;
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog) UpdateBlogInfoListener(org.wordpress.android.ui.reader.actions.ReaderActions.UpdateBlogInfoListener)

Example 3 with ReaderBlog

use of org.wordpress.android.models.ReaderBlog in project WordPress-Android by wordpress-mobile.

the class ReaderBlogActions method followFeedByUrl.

public static void followFeedByUrl(final String feedUrl, final ActionListener actionListener) {
    if (TextUtils.isEmpty(feedUrl)) {
        ReaderActions.callActionListener(actionListener, false);
        return;
    }
    // use existing blog info if we can
    ReaderBlog blogInfo = ReaderBlogTable.getFeedInfo(ReaderBlogTable.getFeedIdFromUrl(feedUrl));
    if (blogInfo != null) {
        internalFollowFeed(blogInfo.feedId, blogInfo.getFeedUrl(), true, actionListener);
        return;
    }
    // otherwise, look it up via the endpoint
    updateFeedInfo(0, feedUrl, new UpdateBlogInfoListener() {

        @Override
        public void onResult(ReaderBlog blogInfo) {
            // note we attempt to follow even when the look up fails (blogInfo = null) because that
            // endpoint doesn't perform feed discovery, whereas the endpoint to follow a feed does
            long feedIdToFollow = blogInfo != null ? blogInfo.feedId : 0;
            String feedUrlToFollow = (blogInfo != null && blogInfo.hasFeedUrl()) ? blogInfo.getFeedUrl() : feedUrl;
            internalFollowFeed(feedIdToFollow, feedUrlToFollow, true, actionListener);
        }
    });
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog) UpdateBlogInfoListener(org.wordpress.android.ui.reader.actions.ReaderActions.UpdateBlogInfoListener)

Example 4 with ReaderBlog

use of org.wordpress.android.models.ReaderBlog in project WordPress-Android by wordpress-mobile.

the class ReaderBlogTable method getFollowedBlogs.

/*
     * returns blogInfo for all followed blogs
     */
public static ReaderBlogList getFollowedBlogs() {
    Cursor c = ReaderDatabase.getReadableDb().rawQuery("SELECT * FROM tbl_blog_info WHERE is_following!=0 ORDER BY name COLLATE NOCASE, blog_url", null);
    try {
        ReaderBlogList blogs = new ReaderBlogList();
        if (c.moveToFirst()) {
            do {
                ReaderBlog blogInfo = getBlogInfoFromCursor(c);
                blogs.add(blogInfo);
            } while (c.moveToNext());
        }
        return blogs;
    } finally {
        SqlUtils.closeCursor(c);
    }
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog) Cursor(android.database.Cursor) ReaderBlogList(org.wordpress.android.models.ReaderBlogList)

Example 5 with ReaderBlog

use of org.wordpress.android.models.ReaderBlog in project WordPress-Android by wordpress-mobile.

the class ReaderBlogTable method getBlogInfoFromCursor.

private static ReaderBlog getBlogInfoFromCursor(Cursor c) {
    if (c == null) {
        return null;
    }
    ReaderBlog blogInfo = new ReaderBlog();
    blogInfo.blogId = c.getLong(c.getColumnIndex("blog_id"));
    blogInfo.feedId = c.getLong(c.getColumnIndex("feed_id"));
    blogInfo.setUrl(c.getString(c.getColumnIndex("blog_url")));
    blogInfo.setImageUrl(c.getString(c.getColumnIndex("image_url")));
    blogInfo.setFeedUrl(c.getString(c.getColumnIndex("feed_url")));
    blogInfo.setName(c.getString(c.getColumnIndex("name")));
    blogInfo.setDescription(c.getString(c.getColumnIndex("description")));
    blogInfo.isPrivate = SqlUtils.sqlToBool(c.getInt(c.getColumnIndex("is_private")));
    blogInfo.isJetpack = SqlUtils.sqlToBool(c.getInt(c.getColumnIndex("is_jetpack")));
    blogInfo.isFollowing = SqlUtils.sqlToBool(c.getInt(c.getColumnIndex("is_following")));
    blogInfo.numSubscribers = c.getInt(c.getColumnIndex("num_followers"));
    return blogInfo;
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog)

Aggregations

ReaderBlog (org.wordpress.android.models.ReaderBlog)9 ReaderRecommendedBlog (org.wordpress.android.models.ReaderRecommendedBlog)2 UpdateBlogInfoListener (org.wordpress.android.ui.reader.actions.ReaderActions.UpdateBlogInfoListener)2 Cursor (android.database.Cursor)1 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)1 RecyclerView (android.support.v7.widget.RecyclerView)1 View (android.view.View)1 TextView (android.widget.TextView)1 ReaderBlogList (org.wordpress.android.models.ReaderBlogList)1 ReaderActions (org.wordpress.android.ui.reader.actions.ReaderActions)1 WPNetworkImageView (org.wordpress.android.widgets.WPNetworkImageView)1