Auto add all boards again & refactor boardmanager

multisite
Floens 9 years ago
parent 773927664c
commit 8695552b8d
  1. 4
      Clover/app/src/main/java/org/floens/chan/Chan.java
  2. 198
      Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java
  3. 4
      Clover/app/src/main/java/org/floens/chan/core/manager/FilterEngine.java
  4. 4
      Clover/app/src/main/java/org/floens/chan/core/manager/WatchManager.java
  5. 32
      Clover/app/src/main/java/org/floens/chan/core/model/Board.java
  6. 2
      Clover/app/src/main/java/org/floens/chan/core/model/Post.java
  7. 19
      Clover/app/src/main/java/org/floens/chan/core/net/BoardsRequest.java
  8. 2
      Clover/app/src/main/java/org/floens/chan/core/net/ChanReaderRequest.java
  9. 2
      Clover/app/src/main/java/org/floens/chan/core/presenter/ReplyPresenter.java
  10. 4
      Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java
  11. 2
      Clover/app/src/main/java/org/floens/chan/ui/cell/ThreadStatusCell.java
  12. 29
      Clover/app/src/main/java/org/floens/chan/ui/controller/BoardEditController.java
  13. 8
      Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java
  14. 4
      Clover/app/src/main/java/org/floens/chan/ui/controller/HistoryController.java
  15. 2
      Clover/app/src/main/java/org/floens/chan/ui/helper/BoardHelper.java
  16. 2
      Clover/app/src/main/java/org/floens/chan/ui/helper/PostHelper.java
  17. 6
      Clover/app/src/main/java/org/floens/chan/ui/layout/BoardSelectLayout.java

@ -128,8 +128,8 @@ public class Chan extends Application {
fileCache = new FileCache(new File(cacheDir, FILE_CACHE_NAME), FILE_CACHE_DISK_SIZE, getUserAgent()); fileCache = new FileCache(new File(cacheDir, FILE_CACHE_NAME), FILE_CACHE_DISK_SIZE, getUserAgent());
databaseManager = new DatabaseManager(this); databaseManager = new DatabaseManager(this);
boardManager = new BoardManager(); boardManager = new BoardManager(databaseManager);
watchManager = new WatchManager(); watchManager = new WatchManager(databaseManager);
Time.endTiming("Initializing application", startTime); Time.endTiming("Initializing application", startTime);

@ -22,6 +22,7 @@ import com.android.volley.VolleyError;
import org.floens.chan.Chan; import org.floens.chan.Chan;
import org.floens.chan.chan.ChanUrls; import org.floens.chan.chan.ChanUrls;
import org.floens.chan.core.database.DatabaseManager;
import org.floens.chan.core.model.Board; import org.floens.chan.core.model.Board;
import org.floens.chan.core.net.BoardsRequest; import org.floens.chan.core.net.BoardsRequest;
import org.floens.chan.utils.Logger; import org.floens.chan.utils.Logger;
@ -35,135 +36,134 @@ import java.util.Map;
import de.greenrobot.event.EventBus; import de.greenrobot.event.EventBus;
public class BoardManager { public class BoardManager implements Response.Listener<List<Board>>, Response.ErrorListener {
private static final String TAG = "BoardManager"; private static final String TAG = "BoardManager";
private static final Comparator<Board> savedOrder = new Comparator<Board>() {
private static final Comparator<Board> ORDER_SORT = new Comparator<Board>() {
@Override @Override
public int compare(Board lhs, Board rhs) { public int compare(Board lhs, Board rhs) {
return lhs.order < rhs.order ? -1 : 1; return lhs.order - rhs.order;
} }
}; };
private List<Board> allBoards; private static final Comparator<Board> NAME_SORT = new Comparator<Board>() {
private Map<String, Board> allBoardsByValue = new HashMap<>(); @Override
public int compare(Board lhs, Board rhs) {
return lhs.name.compareTo(rhs.name);
}
};
public BoardManager() { private final DatabaseManager databaseManager;
loadBoards();
loadFromServer();
}
// TODO: synchronize private final List<Board> boards;
public Board getBoardByValue(String value) { private final List<Board> savedBoards = new ArrayList<>();
return allBoardsByValue.get(value); private final Map<String, Board> boardsByCode = new HashMap<>();
}
public List<Board> getAllBoards() { public BoardManager(DatabaseManager databaseManager) {
return allBoards; this.databaseManager = databaseManager;
} boards = databaseManager.getBoards();
public List<Board> getSavedBoards() { if (boards.isEmpty()) {
List<Board> saved = new ArrayList<>(allBoards.size()); Logger.d(TAG, "Loading default boards");
boards.addAll(getDefaultBoards());
for (Board b : allBoards) { saveDatabase();
if (b.saved) update(true);
saved.add(b); } else {
update(false);
} }
Collections.sort(saved, savedOrder); Chan.getVolleyRequestQueue().add(new BoardsRequest(ChanUrls.getBoardsUrl(), this, this));
return saved;
} }
public boolean getBoardExists(String board) { @Override
for (Board e : getAllBoards()) { public void onResponse(List<Board> response) {
if (e.value.equals(board)) { List<Board> boardsToAddWs = new ArrayList<>();
return true; List<Board> boardsToAddNws = new ArrayList<>();
for (int i = 0; i < response.size(); i++) {
Board serverBoard = response.get(i);
Board existing = getBoardByCode(serverBoard.code);
if (existing != null) {
serverBoard.id = existing.id;
serverBoard.saved = existing.saved;
serverBoard.order = existing.order;
boards.set(boards.indexOf(existing), serverBoard);
} else {
serverBoard.saved = true;
if (serverBoard.workSafe) {
boardsToAddWs.add(serverBoard);
} else {
boardsToAddNws.add(serverBoard);
}
} }
} }
return false; Collections.sort(boardsToAddWs, NAME_SORT);
} Collections.sort(boardsToAddNws, NAME_SORT);
public void updateSavedBoards() {
Chan.getDatabaseManager().setBoards(allBoards);
notifyChanged(); for (int i = 0; i < boardsToAddWs.size(); i++) {
} Board board = boardsToAddWs.get(i);
board.order = boards.size();
boards.add(board);
}
private void updateByValueMap() { for (int i = 0; i < boardsToAddNws.size(); i++) {
allBoardsByValue.clear(); Board board = boardsToAddNws.get(i);
for (Board test : allBoards) { board.order = boards.size();
allBoardsByValue.put(test.value, test); boards.add(board);
} }
}
private void notifyChanged() { saveDatabase();
EventBus.getDefault().post(new BoardsChangedMessage()); update(true);
} }
private void storeBoards() { @Override
updateByValueMap(); public void onErrorResponse(VolleyError error) {
Logger.e(TAG, "Failed to get boards from server");
}
Chan.getDatabaseManager().setBoards(allBoards); // Thread-safe
notifyChanged(); public boolean getBoardExists(String code) {
return getBoardByCode(code) != null;
} }
private void loadBoards() { // Thread-safe
allBoards = Chan.getDatabaseManager().getBoards(); public Board getBoardByCode(String code) {
if (allBoards.size() == 0) { synchronized (boardsByCode) {
Logger.d(TAG, "Loading default boards"); return boardsByCode.get(code);
allBoards = getDefaultBoards();
storeBoards();
} }
updateByValueMap();
} }
private void setBoardsFromServer(List<Board> serverList) { public List<Board> getAllBoards() {
boolean has; return boards;
for (Board serverBoard : serverList) { }
has = false;
for (int i = 0; i < allBoards.size(); i++) {
if (allBoards.get(i).value.equals(serverBoard.value)) {
Board old = allBoards.get(i);
serverBoard.id = old.id;
serverBoard.saved = old.saved;
serverBoard.order = old.order;
allBoards.set(i, serverBoard);
has = true;
break;
}
}
if (!has) { public List<Board> getSavedBoards() {
/*Logger.d(TAG, "Adding unknown board: " + serverBoard.value); return savedBoards;
}
if (serverBoard.workSafe) { public void flushOrderAndSaved() {
serverBoard.saved = true; saveDatabase();
serverBoard.order = allBoards.size(); update(true);
}*/ }
allBoards.add(serverBoard); private void update(boolean notify) {
savedBoards.clear();
savedBoards.addAll(filterSaved(boards));
synchronized (boardsByCode) {
boardsByCode.clear();
for (Board board : boards) {
boardsByCode.put(board.code, board);
} }
} }
if (notify) {
storeBoards(); EventBus.getDefault().post(new BoardsChangedMessage());
}
} }
private void loadFromServer() { private void saveDatabase() {
Chan.getVolleyRequestQueue().add( databaseManager.setBoards(boards);
new BoardsRequest(ChanUrls.getBoardsUrl(), new Response.Listener<List<Board>>() {
@Override
public void onResponse(List<Board> data) {
setBoardsFromServer(data);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Logger.e(TAG, "Failed to get boards from server");
}
})
);
} }
private List<Board> getDefaultBoards() { private List<Board> getDefaultBoards() {
@ -178,6 +178,18 @@ public class BoardManager {
return list; return list;
} }
private List<Board> filterSaved(List<Board> all) {
List<Board> saved = new ArrayList<>(all.size());
for (int i = 0; i < all.size(); i++) {
Board board = all.get(i);
if (board.saved) {
saved.add(board);
}
}
Collections.sort(saved, ORDER_SORT);
return saved;
}
public static class BoardsChangedMessage { public static class BoardsChangedMessage {
} }
} }

@ -252,7 +252,7 @@ public class FilterEngine {
} else if (!TextUtils.isEmpty(filter.boards)) { } else if (!TextUtils.isEmpty(filter.boards)) {
List<Board> appliedBoards = new ArrayList<>(); List<Board> appliedBoards = new ArrayList<>();
for (String value : filter.boards.split(",")) { for (String value : filter.boards.split(",")) {
Board boardByValue = Chan.getBoardManager().getBoardByValue(value); Board boardByValue = Chan.getBoardManager().getBoardByCode(value);
if (boardByValue != null) { if (boardByValue != null) {
appliedBoards.add(boardByValue); appliedBoards.add(boardByValue);
} }
@ -267,7 +267,7 @@ public class FilterEngine {
filter.boards = ""; filter.boards = "";
for (int i = 0; i < appliedBoards.size(); i++) { for (int i = 0; i < appliedBoards.size(); i++) {
Board board = appliedBoards.get(i); Board board = appliedBoards.get(i);
filter.boards += board.value; filter.boards += board.code;
if (i < appliedBoards.size() - 1) { if (i < appliedBoards.size() - 1) {
filter.boards += ","; filter.boards += ",";
} }

@ -125,11 +125,11 @@ public class WatchManager {
private PowerManager.WakeLock wakeLock; private PowerManager.WakeLock wakeLock;
private long lastBackgroundUpdateTime; private long lastBackgroundUpdateTime;
public WatchManager() { public WatchManager(DatabaseManager databaseManager) {
alarmManager = (AlarmManager) getAppContext().getSystemService(Context.ALARM_SERVICE); alarmManager = (AlarmManager) getAppContext().getSystemService(Context.ALARM_SERVICE);
powerManager = (PowerManager) getAppContext().getSystemService(Context.POWER_SERVICE); powerManager = (PowerManager) getAppContext().getSystemService(Context.POWER_SERVICE);
databaseManager = Chan.getDatabaseManager(); this.databaseManager = databaseManager;
databasePinManager = databaseManager.getDatabasePinManager(); databasePinManager = databaseManager.getDatabasePinManager();
pins = databaseManager.runTaskSync(databasePinManager.getPins()); pins = databaseManager.runTaskSync(databasePinManager.getPins());
Collections.sort(pins, SORT_PINS); Collections.sort(pins, SORT_PINS);

@ -27,9 +27,9 @@ public class Board {
public Board() { public Board() {
} }
public Board(String key, String value, boolean saved, boolean workSafe) { public Board(String name, String code, boolean saved, boolean workSafe) {
this.key = key; this.name = name;
this.value = value; this.code = code;
this.saved = saved; this.saved = saved;
this.workSafe = workSafe; this.workSafe = workSafe;
} }
@ -37,17 +37,13 @@ public class Board {
@DatabaseField(generatedId = true) @DatabaseField(generatedId = true)
public int id; public int id;
/** // named key for legacy support
* Name of the board, e.g. Literature @DatabaseField(columnName = "key")
*/ public String name;
@DatabaseField
public String key;
/** // named value for legacy support
* Name of the url, e.g. lit @DatabaseField(columnName = "value")
*/ public String code;
@DatabaseField
public String value;
/** /**
* True if this board appears in the dropdown, false otherwise. * True if this board appears in the dropdown, false otherwise.
@ -115,9 +111,7 @@ public class Board {
@DatabaseField @DatabaseField
public boolean countryFlags = false; public boolean countryFlags = false;
/** @Deprecated
* Not used anymore.
*/
@DatabaseField @DatabaseField
public boolean trollFlags = false; public boolean trollFlags = false;
@ -128,7 +122,7 @@ public class Board {
public String description; public String description;
public boolean finish() { public boolean finish() {
if (TextUtils.isEmpty(key) || TextUtils.isEmpty(value) || perPage < 0 || pages < 0) if (TextUtils.isEmpty(name) || TextUtils.isEmpty(code) || perPage < 0 || pages < 0)
return false; return false;
if (cooldownThreads < 0 || cooldownReplies < 0 || cooldownImages < 0 || cooldownRepliesIntra < 0 || cooldownImagesIntra < 0) { if (cooldownThreads < 0 || cooldownReplies < 0 || cooldownImages < 0 || cooldownRepliesIntra < 0 || cooldownImagesIntra < 0) {
@ -140,6 +134,8 @@ public class Board {
@Override @Override
public String toString() { public String toString() {
return key; return name;
} }
} }

@ -166,7 +166,7 @@ public class Post {
filename = Parser.unescapeEntities(filename, false); filename = Parser.unescapeEntities(filename, false);
if (spoiler) { if (spoiler) {
Board b = Chan.getBoardManager().getBoardByValue(board); Board b = Chan.getBoardManager().getBoardByCode(board);
if (b != null && b.customSpoilers >= 0) { if (b != null && b.customSpoilers >= 0) {
thumbnailUrl = ChanUrls.getCustomSpoilerUrl(board, random.nextInt(b.customSpoilers) + 1); thumbnailUrl = ChanUrls.getCustomSpoilerUrl(board, random.nextInt(b.customSpoilers) + 1);
} else { } else {

@ -26,7 +26,6 @@ import org.floens.chan.core.model.Board;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -35,9 +34,9 @@ public class BoardsRequest extends JsonReaderRequest<List<Board>> {
"f" "f"
); );
public static List<String> TREAT_AS_NOT_WORKSAFE = Arrays.asList( // public static List<String> TREAT_AS_NOT_WORKSAFE = Arrays.asList(
"a", "c", "w", "cm", "jp", "mlp", "lgbt" // "a", "c", "w", "cm", "jp", "mlp", "lgbt"
); // );
public BoardsRequest(String url, Listener<List<Board>> listener, ErrorListener errorListener) { public BoardsRequest(String url, Listener<List<Board>> listener, ErrorListener errorListener) {
super(url, listener, errorListener); super(url, listener, errorListener);
@ -85,10 +84,10 @@ public class BoardsRequest extends JsonReaderRequest<List<Board>> {
switch (key) { switch (key) {
case "title": case "title":
board.key = reader.nextString(); board.name = reader.nextString();
break; break;
case "board": case "board":
board.value = reader.nextString(); board.code = reader.nextString();
break; break;
case "ws_board": case "ws_board":
board.workSafe = reader.nextInt() == 1; board.workSafe = reader.nextInt() == 1;
@ -179,13 +178,13 @@ public class BoardsRequest extends JsonReaderRequest<List<Board>> {
return null; return null;
} }
if (BLOCKED.contains(board.value)) { if (BLOCKED.contains(board.code)) {
return null; return null;
} }
if (TREAT_AS_NOT_WORKSAFE.contains(board.value)) { // if (TREAT_AS_NOT_WORKSAFE.contains(board.code)) {
board.workSafe = false; // board.workSafe = false;
} // }
return board; return board;
} }

@ -72,7 +72,7 @@ public class ChanReaderRequest extends JsonReaderRequest<ChanReaderRequest.ChanR
for (Filter filter : request.filterEngine.getEnabledFilters()) { for (Filter filter : request.filterEngine.getEnabledFilters()) {
List<Board> boards = request.filterEngine.getBoardsForFilter(filter); List<Board> boards = request.filterEngine.getBoardsForFilter(filter);
for (Board board : boards) { for (Board board : boards) {
if (board.value.equals(loadable.board)) { if (board.code.equals(loadable.board)) {
request.filters.add(filter.copy()); request.filters.add(filter.copy());
break; break;
} }

@ -91,7 +91,7 @@ public class ReplyPresenter implements ReplyManager.HttpCallback<ReplyHttpCall>,
bound = true; bound = true;
this.loadable = loadable; this.loadable = loadable;
this.board = boardManager.getBoardByValue(loadable.board); this.board = boardManager.getBoardByCode(loadable.board);
draft = replyManager.getReply(loadable); draft = replyManager.getReply(loadable);

@ -137,7 +137,7 @@ public class StartActivity extends AppCompatActivity implements NfcAdapter.Creat
chanState.thread = loadableManager.get(chanState.thread); chanState.thread = loadableManager.get(chanState.thread);
loadDefault = false; loadDefault = false;
Board board = boardManager.getBoardByValue(chanState.board.board); Board board = boardManager.getBoardByCode(chanState.board.board);
browseController.loadBoard(board); browseController.loadBoard(board);
if (chanState.thread.mode == Loadable.Mode.THREAD) { if (chanState.thread.mode == Loadable.Mode.THREAD) {
@ -150,7 +150,7 @@ public class StartActivity extends AppCompatActivity implements NfcAdapter.Creat
Loadable fromUri = ChanHelper.getLoadableFromStartUri(data); Loadable fromUri = ChanHelper.getLoadableFromStartUri(data);
if (fromUri != null) { if (fromUri != null) {
loadDefault = false; loadDefault = false;
Board board = boardManager.getBoardByValue(fromUri.board); Board board = boardManager.getBoardByCode(fromUri.board);
browseController.loadBoard(board); browseController.loadBoard(board);
if (fromUri.isThreadMode()) { if (fromUri.isThreadMode()) {

@ -119,7 +119,7 @@ public class ThreadStatusCell extends LinearLayout implements View.OnClickListen
Post op = chanThread.op; Post op = chanThread.op;
Board board = Chan.getBoardManager().getBoardByValue(chanThread.loadable.board); Board board = Chan.getBoardManager().getBoardByCode(chanThread.loadable.board);
if (board != null) { if (board != null) {
SpannableString replies = new SpannableString(op.replies + "R"); SpannableString replies = new SpannableString(op.replies + "R");
if (op.replies >= board.bumpLimit) { if (op.replies >= board.bumpLimit) {

@ -89,6 +89,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
items.add(new FloatingMenuItem(OPTION_SORT_A_Z, R.string.board_edit_sort_a_z)); items.add(new FloatingMenuItem(OPTION_SORT_A_Z, R.string.board_edit_sort_a_z));
navigationItem.menu = new ToolbarMenu(context); navigationItem.menu = new ToolbarMenu(context);
navigationItem.createOverflow(context, this, items); navigationItem.createOverflow(context, this, items);
navigationItem.swipeable = false;
view = inflateRes(R.layout.controller_board_edit); view = inflateRes(R.layout.controller_board_edit);
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
@ -135,7 +136,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
boards.remove(position - 1); boards.remove(position - 1);
adapter.notifyItemRemoved(position); adapter.notifyItemRemoved(position);
Snackbar snackbar = Snackbar.make(view, context.getString(R.string.board_edit_board_removed, board.key), Snackbar.LENGTH_LONG); Snackbar snackbar = Snackbar.make(view, context.getString(R.string.board_edit_board_removed, board.name), Snackbar.LENGTH_LONG);
fixSnackbarText(context, snackbar); fixSnackbarText(context, snackbar);
snackbar.setAction(R.string.undo, new View.OnClickListener() { snackbar.setAction(R.string.undo, new View.OnClickListener() {
@Override @Override
@ -162,7 +163,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
Collections.sort(boards, new Comparator<Board>() { Collections.sort(boards, new Comparator<Board>() {
@Override @Override
public int compare(Board lhs, Board rhs) { public int compare(Board lhs, Board rhs) {
return lhs.value.compareTo(rhs.value); return lhs.code.compareTo(rhs.code);
} }
}); });
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
@ -177,7 +178,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
boards.get(i).order = i; boards.get(i).order = i;
} }
boardManager.updateSavedBoards(); boardManager.flushOrderAndSaved();
} }
@Override @Override
@ -230,7 +231,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
// Duplicate // Duplicate
for (Board board : boards) { for (Board board : boards) {
if (board.value.equals(value)) { if (board.code.equals(value)) {
new AlertDialog.Builder(context).setMessage(R.string.board_add_duplicate).setPositiveButton(R.string.ok, null).show(); new AlertDialog.Builder(context).setMessage(R.string.board_add_duplicate).setPositiveButton(R.string.ok, null).show();
return; return;
@ -240,14 +241,14 @@ public class BoardEditController extends Controller implements View.OnClickListe
// Normal add // Normal add
List<Board> all = Chan.getBoardManager().getAllBoards(); List<Board> all = Chan.getBoardManager().getAllBoards();
for (Board board : all) { for (Board board : all) {
if (board.value.equals(value)) { if (board.code.equals(value)) {
board.saved = true; board.saved = true;
boards.add(board); boards.add(board);
adapter.notifyDataSetChanged(); adapter.notifyDataSetChanged();
recyclerView.smoothScrollToPosition(boards.size()); recyclerView.smoothScrollToPosition(boards.size());
Snackbar snackbar = Snackbar.make(view, getString(R.string.board_add_success) + " " + board.key, Snackbar.LENGTH_LONG); Snackbar snackbar = Snackbar.make(view, getString(R.string.board_add_success) + " " + board.name, Snackbar.LENGTH_LONG);
fixSnackbarText(context, snackbar); fixSnackbarText(context, snackbar);
snackbar.show(); snackbar.show();
@ -320,7 +321,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
@Override @Override
public String getItem(int position) { public String getItem(int position) {
return filtered.get(position).value; return filtered.get(position).code;
} }
@Override @Override
@ -328,7 +329,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
@SuppressLint("ViewHolder") @SuppressLint("ViewHolder")
TextView view = (TextView) LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false); TextView view = (TextView) LayoutInflater.from(parent.getContext()).inflate(android.R.layout.simple_list_item_1, parent, false);
Board b = filtered.get(position); Board b = filtered.get(position);
view.setText("/" + b.value + "/ - " + b.key); view.setText("/" + b.code + "/ - " + b.name);
view.setOnTouchListener(new View.OnTouchListener() { view.setOnTouchListener(new View.OnTouchListener() {
@Override @Override
@ -353,7 +354,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
String lowered = filter.toLowerCase(Locale.ENGLISH); String lowered = filter.toLowerCase(Locale.ENGLISH);
List<Board> list = new ArrayList<>(); List<Board> list = new ArrayList<>();
for (Board b : getBoards()) { for (Board b : getBoards()) {
if ((b.key.toLowerCase(Locale.ENGLISH).contains(lowered) || b.value.toLowerCase(Locale.ENGLISH) if ((b.name.toLowerCase(Locale.ENGLISH).contains(lowered) || b.code.toLowerCase(Locale.ENGLISH)
.contains(lowered))) { .contains(lowered))) {
list.add(b); list.add(b);
} }
@ -363,7 +364,7 @@ public class BoardEditController extends Controller implements View.OnClickListe
private boolean haveBoard(String value) { private boolean haveBoard(String value) {
for (Board b : currentlyEditing) { for (Board b : currentlyEditing) {
if (b.value.equals(value)) if (b.code.equals(value))
return true; return true;
} }
return false; return false;
@ -372,18 +373,18 @@ public class BoardEditController extends Controller implements View.OnClickListe
private List<Board> getBoards() { private List<Board> getBoards() {
// Lets be cheaty here: if the user has nsfw boards in the list, // Lets be cheaty here: if the user has nsfw boards in the list,
// show them in the autofiller, hide them otherwise. // show them in the autofiller, hide them otherwise.
boolean showUnsafe = false; /*boolean showUnsafe = false;
for (Board has : currentlyEditing) { for (Board has : currentlyEditing) {
if (!has.workSafe) { if (!has.workSafe) {
showUnsafe = true; showUnsafe = true;
break; break;
} }
} }*/
List<Board> s = new ArrayList<>(); List<Board> s = new ArrayList<>();
for (Board b : boardManager.getAllBoards()) { for (Board b : boardManager.getAllBoards()) {
if (!haveBoard(b.value) && (showUnsafe || b.workSafe)) if (!haveBoard(b.code)/* && (showUnsafe || b.workSafe)*/) {
s.add(b); s.add(b);
}
} }
return s; return s;
} }

@ -268,9 +268,9 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
} }
public void loadBoard(Board board) { public void loadBoard(Board board) {
Loadable loadable = databaseManager.getDatabaseLoadableManager().get(Loadable.forCatalog(board.value)); Loadable loadable = databaseManager.getDatabaseLoadableManager().get(Loadable.forCatalog(board.code));
loadable.title = board.key; loadable.title = board.name;
navigationItem.title = board.key; navigationItem.title = board.name;
ThreadPresenter presenter = threadLayout.getPresenter(); ThreadPresenter presenter = threadLayout.getPresenter();
presenter.unbindLoadable(); presenter.unbindLoadable();
@ -302,7 +302,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
public Board board; public Board board;
public FloatingMenuItemBoard(Board board) { public FloatingMenuItemBoard(Board board) {
super(board.id, board.key); super(board.id, board.name);
this.board = board; this.board = board;
} }
} }

@ -189,8 +189,8 @@ public class HistoryController extends Controller implements CompoundButton.OnCh
} }
holder.text.setText(history.loadable.title); holder.text.setText(history.loadable.title);
Board board = boardManager.getBoardByValue(history.loadable.board); Board board = boardManager.getBoardByCode(history.loadable.board);
holder.subtext.setText(board == null ? null : ("/" + board.value + "/ - " + board.key)); holder.subtext.setText(board == null ? null : ("/" + board.code + "/ \u2013 " + board.name));
} }
@Override @Override

@ -22,7 +22,7 @@ import org.jsoup.parser.Parser;
public class BoardHelper { public class BoardHelper {
public static String getName(Board board) { public static String getName(Board board) {
return "/" + board.value + "/ " + board.key; return "/" + board.code + "/ " + board.name;
} }
public static String getDescription(Board board) { public static String getDescription(Board board) {

@ -71,7 +71,7 @@ public class PostHelper {
if (!TextUtils.isEmpty(post.subject)) { if (!TextUtils.isEmpty(post.subject)) {
return post.subject; return post.subject;
} else if (!TextUtils.isEmpty(post.comment)) { } else if (!TextUtils.isEmpty(post.comment)) {
return "/" + post.board + "/ - " + post.comment.subSequence(0, Math.min(post.comment.length(), 200)).toString(); return "/" + post.board + "/ \u2013 " + post.comment.subSequence(0, Math.min(post.comment.length(), 200)).toString();
} else { } else {
return "/" + post.board + "/" + post.no; return "/" + post.board + "/" + post.no;
} }

@ -118,7 +118,7 @@ public class BoardSelectLayout extends LinearLayout implements SearchLayout.Sear
public void setCheckedBoards(List<Board> checked) { public void setCheckedBoards(List<Board> checked) {
for (BoardChecked board : boards) { for (BoardChecked board : boards) {
for (Board check : checked) { for (Board check : checked) {
if (check.value.equals(board.board.value)) { if (check.code.equals(board.board.code)) {
board.checked = true; board.checked = true;
break; break;
} }
@ -206,8 +206,8 @@ public class BoardSelectLayout extends LinearLayout implements SearchLayout.Sear
String query = searchQuery.toLowerCase(Locale.ENGLISH); String query = searchQuery.toLowerCase(Locale.ENGLISH);
for (BoardChecked boardChecked : sourceList) { for (BoardChecked boardChecked : sourceList) {
String description = boardChecked.board.description == null ? "" : boardChecked.board.description; String description = boardChecked.board.description == null ? "" : boardChecked.board.description;
if (boardChecked.board.key.toLowerCase(Locale.ENGLISH).contains(query) || if (boardChecked.board.name.toLowerCase(Locale.ENGLISH).contains(query) ||
boardChecked.board.value.toLowerCase(Locale.ENGLISH).contains(query) || boardChecked.board.code.toLowerCase(Locale.ENGLISH).contains(query) ||
description.toLowerCase(Locale.ENGLISH).contains(query)) { description.toLowerCase(Locale.ENGLISH).contains(query)) {
displayList.add(boardChecked); displayList.add(boardChecked);
} }

Loading…
Cancel
Save