From 2afc6a66d6ec58113f3a6dde0c0f3ce7d6faa9d5 Mon Sep 17 00:00:00 2001 From: Floens Date: Sat, 27 Jun 2015 15:18:06 +0200 Subject: [PATCH] Add board descriptions --- .../java/org/floens/chan/chan/ChanUrls.java | 4 -- .../org/floens/chan/core/model/Board.java | 32 ++++++++++++++++ .../java/org/floens/chan/core/model/Post.java | 3 +- .../floens/chan/core/net/BoardsRequest.java | 6 +-- .../floens/chan/database/DatabaseHelper.java | 10 ++++- .../ui/controller/BoardEditController.java | 11 +++++- .../src/main/res/layout/cell_board_edit.xml | 38 ++++++++++++++----- docs/database.txt | 3 ++ 8 files changed, 85 insertions(+), 22 deletions(-) diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java b/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java index 3d72c3e0..e448c9b5 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java +++ b/Clover/app/src/main/java/org/floens/chan/chan/ChanUrls.java @@ -62,10 +62,6 @@ public class ChanUrls { return scheme + "://s.4cdn.org/image/country/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; } - public static String getTrollCountryFlagUrl(String countryCode) { - return scheme + "://s.4cdn.org/image/country/troll/" + countryCode.toLowerCase(Locale.ENGLISH) + ".gif"; - } - public static String getBoardsUrl() { return scheme + "://a.4cdn.org/boards.json"; } diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/Board.java b/Clover/app/src/main/java/org/floens/chan/core/model/Board.java index 2f9baa10..0e3dd652 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/Board.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/Board.java @@ -46,53 +46,85 @@ public class Board { */ @DatabaseField public String value; + + /** + * True if this board appears in the dropdown, false otherwise. + */ @DatabaseField public boolean saved = false; + @DatabaseField public int order; + @DatabaseField public boolean workSafe = false; + @DatabaseField public int perPage = -1; + @DatabaseField public int pages = -1; + @DatabaseField public int maxFileSize = -1; + @DatabaseField public int maxWebmSize = -1; + @DatabaseField public int maxCommentChars = -1; + @DatabaseField public int bumpLimit = -1; + @DatabaseField public int imageLimit = -1; + @DatabaseField public int cooldownThreads = -1; + @DatabaseField public int cooldownReplies = -1; + @DatabaseField public int cooldownImages = -1; + @DatabaseField public int cooldownRepliesIntra = -1; + @DatabaseField public int cooldownImagesIntra = -1; + @DatabaseField public boolean spoilers = false; + @DatabaseField public int customSpoilers = -1; + @DatabaseField public boolean userIds = false; + @DatabaseField public boolean codeTags = false; + @DatabaseField public boolean preuploadCaptcha = false; + @DatabaseField public boolean countryFlags = false; + + /** + * Not used anymore. + */ @DatabaseField public boolean trollFlags = false; + @DatabaseField public boolean mathTags = false; + @DatabaseField + public String description; + public boolean finish() { if (key == null || value == null || perPage < 0 || pages < 0) return false; diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/Post.java b/Clover/app/src/main/java/org/floens/chan/core/model/Post.java index b6d59a8b..5c976980 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/Post.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/Post.java @@ -129,8 +129,7 @@ public class Post { } if (!TextUtils.isEmpty(country)) { - Board b = Chan.getBoardManager().getBoardByValue(board); - countryUrl = b.trollFlags ? ChanUrls.getTrollCountryFlagUrl(country) : ChanUrls.getCountryFlagUrl(country); + countryUrl = ChanUrls.getCountryFlagUrl(country); } ChanParser.getInstance().parse(this); diff --git a/Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java b/Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java index 3da18890..b9c6891e 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java +++ b/Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java @@ -150,12 +150,12 @@ public class BoardsRequest extends JsonReaderRequest> { case "country_flags": board.countryFlags = reader.nextInt() == 1; break; - case "troll_flags": - board.trollFlags = reader.nextInt() == 1; - break; case "math_tags": board.mathTags = reader.nextInt() == 1; break; + case "meta_description": + board.description = reader.nextString(); + break; default: reader.skipValue(); break; diff --git a/Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java b/Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java index 5e7d32be..b8461d50 100644 --- a/Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java +++ b/Clover/app/src/main/java/org/floens/chan/database/DatabaseHelper.java @@ -41,7 +41,7 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static final String TAG = "DatabaseHelper"; private static final String DATABASE_NAME = "ChanDB"; - private static final int DATABASE_VERSION = 16; + private static final int DATABASE_VERSION = 17; public Dao pinDao; public Dao loadableDao; @@ -155,6 +155,14 @@ public class DatabaseHelper extends OrmLiteSqliteOpenHelper { Logger.e(TAG, "Error upgrading to version 16", e); } } + + if (oldVersion < 17) { + try { + boardsDao.executeRawNoArgs("ALTER TABLE board ADD COLUMN description TEXT;"); + } catch (SQLException e) { + Logger.e(TAG, "Error upgrading to version 17", e); + } + } } public void reset() { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java index ed256894..83b05990 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java @@ -17,6 +17,7 @@ */ package org.floens.chan.ui.controller; +import android.annotation.SuppressLint; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; @@ -49,6 +50,7 @@ import org.floens.chan.ui.toolbar.ToolbarMenu; import org.floens.chan.ui.toolbar.ToolbarMenuItem; import org.floens.chan.ui.view.FloatingMenuItem; import org.floens.chan.utils.AndroidUtils; +import org.jsoup.parser.Parser; import java.util.ArrayList; import java.util.Collections; @@ -109,7 +111,7 @@ public class BoardEditController extends Controller implements SwipeListener.Cal Collections.sort(boards, new Comparator() { @Override public int compare(Board lhs, Board rhs) { - return lhs.key.compareTo(rhs.key); + return lhs.value.compareTo(rhs.value); } }); adapter.notifyDataSetChanged(); @@ -303,9 +305,10 @@ public class BoardEditController extends Controller implements SwipeListener.Cal public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); + @SuppressLint("ViewHolder") TextView view = (TextView) inflater.inflate(android.R.layout.simple_list_item_1, parent, false); Board b = filtered.get(position); - view.setText("/" + b.value + "/ " + b.key); + view.setText("/" + b.value + "/ - " + b.key); view.setOnTouchListener(new View.OnTouchListener() { @Override @@ -394,6 +397,8 @@ public class BoardEditController extends Controller implements SwipeListener.Cal BoardEditItem item = (BoardEditItem) holder; Board board = boards.get(position - 1); item.text.setText("/" + board.value + "/ " + board.key); + + item.description.setText(Parser.unescapeEntities(board.description, false)); } } @@ -420,11 +425,13 @@ public class BoardEditController extends Controller implements SwipeListener.Cal private class BoardEditItem extends RecyclerView.ViewHolder { private ImageView image; private TextView text; + private TextView description; public BoardEditItem(View itemView) { super(itemView); image = (ImageView) itemView.findViewById(R.id.thumb); text = (TextView) itemView.findViewById(R.id.text); + description = (TextView) itemView.findViewById(R.id.description); image.setImageDrawable(new ThumbDrawable()); } } diff --git a/Clover/app/src/main/res/layout/cell_board_edit.xml b/Clover/app/src/main/res/layout/cell_board_edit.xml index 31d5b5e0..52a498c5 100644 --- a/Clover/app/src/main/res/layout/cell_board_edit.xml +++ b/Clover/app/src/main/res/layout/cell_board_edit.xml @@ -18,7 +18,7 @@ along with this program. If not, see . @@ -32,17 +32,35 @@ along with this program. If not, see . android:scaleType="center" tools:ignore="ContentDescription" /> - + android:orientation="vertical"> + + + + + + diff --git a/docs/database.txt b/docs/database.txt index f65791f4..cc76422b 100644 --- a/docs/database.txt +++ b/docs/database.txt @@ -43,3 +43,6 @@ ALTER TABLE pin ADD COLUMN archived INTEGER; Changes in version 16: Table ThreadHide added + +Changes is version 17: +ALTER TABLE board ADD COLUMN description TEXT;