Search in sources :

Example 1 with ReaderRecommendedBlog

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

the class ReaderBlogTable method getRecommendedBlogs.

public static ReaderRecommendBlogList getRecommendedBlogs() {
    String sql = " SELECT * FROM tbl_recommended_blogs ORDER BY title";
    Cursor c = ReaderDatabase.getReadableDb().rawQuery(sql, null);
    try {
        ReaderRecommendBlogList blogs = new ReaderRecommendBlogList();
        if (c.moveToFirst()) {
            do {
                ReaderRecommendedBlog blog = new ReaderRecommendedBlog();
                blog.blogId = c.getLong(c.getColumnIndex("blog_id"));
                blog.followRecoId = c.getLong(c.getColumnIndex("follow_reco_id"));
                blog.score = c.getInt(c.getColumnIndex("score"));
                blog.setTitle(c.getString(c.getColumnIndex("title")));
                blog.setBlogUrl(c.getString(c.getColumnIndex("blog_url")));
                blog.setImageUrl(c.getString(c.getColumnIndex("image_url")));
                blog.setReason(c.getString(c.getColumnIndex("reason")));
                blogs.add(blog);
            } while (c.moveToNext());
        }
        return blogs;
    } finally {
        SqlUtils.closeCursor(c);
    }
}
Also used : Cursor(android.database.Cursor) ReaderRecommendBlogList(org.wordpress.android.models.ReaderRecommendBlogList) ReaderRecommendedBlog(org.wordpress.android.models.ReaderRecommendedBlog)

Example 2 with ReaderRecommendedBlog

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

the class ReaderBlogFragment method onBlogClicked.

@Override
public void onBlogClicked(Object item) {
    long blogId;
    long feedId;
    if (item instanceof ReaderRecommendedBlog) {
        ReaderRecommendedBlog blog = (ReaderRecommendedBlog) item;
        blogId = blog.blogId;
        feedId = 0;
    } else if (item instanceof ReaderBlog) {
        ReaderBlog blog = (ReaderBlog) item;
        blogId = blog.blogId;
        feedId = blog.feedId;
    } else {
        return;
    }
    if (feedId != 0) {
        ReaderActivityLauncher.showReaderFeedPreview(getActivity(), feedId);
    } else if (blogId != 0) {
        ReaderActivityLauncher.showReaderBlogPreview(getActivity(), blogId);
    }
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog) ReaderRecommendedBlog(org.wordpress.android.models.ReaderRecommendedBlog)

Example 3 with ReaderRecommendedBlog

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

the class ReaderBlogAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    if (holder instanceof BlogViewHolder) {
        final BlogViewHolder blogHolder = (BlogViewHolder) holder;
        switch(getBlogType()) {
            case RECOMMENDED:
                final ReaderRecommendedBlog blog = mRecommendedBlogs.get(position);
                blogHolder.txtTitle.setText(blog.getTitle());
                blogHolder.txtDescription.setText(blog.getReason());
                blogHolder.txtUrl.setText(UrlUtils.getHost(blog.getBlogUrl()));
                blogHolder.imgBlog.setImageUrl(blog.getImageUrl(), WPNetworkImageView.ImageType.BLAVATAR);
                break;
            case FOLLOWED:
                final ReaderBlog blogInfo = mFollowedBlogs.get(position);
                if (blogInfo.hasName()) {
                    blogHolder.txtTitle.setText(blogInfo.getName());
                } else {
                    blogHolder.txtTitle.setText(R.string.reader_untitled_post);
                }
                if (blogInfo.hasUrl()) {
                    blogHolder.txtUrl.setText(UrlUtils.getHost(blogInfo.getUrl()));
                } else if (blogInfo.hasFeedUrl()) {
                    blogHolder.txtUrl.setText(UrlUtils.getHost(blogInfo.getFeedUrl()));
                } else {
                    blogHolder.txtUrl.setText("");
                }
                blogHolder.imgBlog.setImageUrl(blogInfo.getImageUrl(), WPNetworkImageView.ImageType.BLAVATAR);
                break;
        }
        if (mClickListener != null) {
            blogHolder.itemView.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    int clickedPosition = blogHolder.getAdapterPosition();
                    switch(getBlogType()) {
                        case RECOMMENDED:
                            mClickListener.onBlogClicked(mRecommendedBlogs.get(clickedPosition));
                            break;
                        case FOLLOWED:
                            mClickListener.onBlogClicked(mFollowedBlogs.get(clickedPosition));
                            break;
                    }
                }
            });
        }
    }
}
Also used : ReaderBlog(org.wordpress.android.models.ReaderBlog) ReaderRecommendedBlog(org.wordpress.android.models.ReaderRecommendedBlog) WPNetworkImageView(org.wordpress.android.widgets.WPNetworkImageView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) View(android.view.View)

Example 4 with ReaderRecommendedBlog

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

the class ReaderBlogTable method setRecommendedBlogs.

public static void setRecommendedBlogs(ReaderRecommendBlogList blogs) {
    SQLiteDatabase db = ReaderDatabase.getWritableDb();
    SQLiteStatement stmt = db.compileStatement("INSERT INTO tbl_recommended_blogs" + " (blog_id, follow_reco_id, score, title, blog_url, image_url, reason)" + " VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)");
    db.beginTransaction();
    try {
        try {
            // first delete all recommended blogs
            SqlUtils.deleteAllRowsInTable(db, "tbl_recommended_blogs");
            // then insert the passed ones
            if (blogs != null && blogs.size() > 0) {
                for (ReaderRecommendedBlog blog : blogs) {
                    stmt.bindLong(1, blog.blogId);
                    stmt.bindLong(2, blog.followRecoId);
                    stmt.bindLong(3, blog.score);
                    stmt.bindString(4, blog.getTitle());
                    stmt.bindString(5, blog.getBlogUrl());
                    stmt.bindString(6, blog.getImageUrl());
                    stmt.bindString(7, blog.getReason());
                    stmt.execute();
                }
            }
            db.setTransactionSuccessful();
        } catch (SQLException e) {
            AppLog.e(AppLog.T.READER, e);
        }
    } finally {
        SqlUtils.closeStatement(stmt);
        db.endTransaction();
    }
}
Also used : SQLiteDatabase(android.database.sqlite.SQLiteDatabase) SQLiteStatement(android.database.sqlite.SQLiteStatement) SQLException(android.database.SQLException) ReaderRecommendedBlog(org.wordpress.android.models.ReaderRecommendedBlog)

Aggregations

ReaderRecommendedBlog (org.wordpress.android.models.ReaderRecommendedBlog)4 ReaderBlog (org.wordpress.android.models.ReaderBlog)2 Cursor (android.database.Cursor)1 SQLException (android.database.SQLException)1 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)1 SQLiteStatement (android.database.sqlite.SQLiteStatement)1 RecyclerView (android.support.v7.widget.RecyclerView)1 View (android.view.View)1 TextView (android.widget.TextView)1 ReaderRecommendBlogList (org.wordpress.android.models.ReaderRecommendBlogList)1 WPNetworkImageView (org.wordpress.android.widgets.WPNetworkImageView)1