Fix boards by value not available before database load

captchafix
Floens 11 years ago
parent 16418a8b5c
commit 1f8b0a5cbe
  1. 12
      Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java
  2. 2
      Clover/app/src/main/java/org/floens/chan/core/model/Post.java

@ -97,6 +97,13 @@ public class BoardManager {
listeners.remove(listener); listeners.remove(listener);
} }
private void updateByValueMap() {
allBoardsByValue.clear();
for (Board test : allBoards) {
allBoardsByValue.put(test.value, test);
}
}
private void notifyChanged() { private void notifyChanged() {
for (BoardChangeListener l : listeners) { for (BoardChangeListener l : listeners) {
l.onBoardsChanged(); l.onBoardsChanged();
@ -106,14 +113,12 @@ public class BoardManager {
private void storeBoards() { private void storeBoards() {
Logger.d(TAG, "Storing boards in database"); Logger.d(TAG, "Storing boards in database");
allBoardsByValue.clear();
for (Board test : allBoards) { for (Board test : allBoards) {
if (test.saved) { if (test.saved) {
Logger.d(TAG, "Board with value " + test.value + " saved"); Logger.d(TAG, "Board with value " + test.value + " saved");
} }
allBoardsByValue.put(test.value, test);
} }
updateByValueMap();
ChanApplication.getDatabaseManager().setBoards(allBoards); ChanApplication.getDatabaseManager().setBoards(allBoards);
notifyChanged(); notifyChanged();
@ -126,6 +131,7 @@ public class BoardManager {
allBoards = getDefaultBoards(); allBoards = getDefaultBoards();
storeBoards(); storeBoards();
} }
updateByValueMap();
} }
private void setBoardsFromServer(List<Board> serverList) { private void setBoardsFromServer(List<Board> serverList) {

@ -136,7 +136,7 @@ public class Post {
if (spoiler) { if (spoiler) {
Board b = ChanApplication.getBoardManager().getBoardByValue(board); Board b = ChanApplication.getBoardManager().getBoardByValue(board);
if (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 {
thumbnailUrl = ChanUrls.getSpoilerUrl(); thumbnailUrl = ChanUrls.getSpoilerUrl();

Loading…
Cancel
Save