speed up board adding

still hitty code but whatever
refactor-toolbar
Floens 8 years ago
parent c21f889fee
commit 707bce3263
  1. 10
      Clover/app/src/main/java/org/floens/chan/core/database/DatabaseBoardManager.java
  2. 18
      Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java
  3. 12
      Clover/app/src/main/java/org/floens/chan/core/presenter/BoardSetupPresenter.java

@ -48,6 +48,16 @@ public class DatabaseBoardManager {
};
}
public Callable<Void> updateIncludingUserFields(final List<Board> boards) {
return () -> {
for (Board board : boards) {
helper.boardsDao.update(board);
}
return null;
};
}
public Callable<Void> updateOrders(final List<Board> boards) {
return () -> {
SelectArg id = new SelectArg();

@ -97,26 +97,26 @@ public class BoardManager {
return savedBoardsObservable;
}
public void saveBoard(Board board) {
setSaved(board, true);
}
public void unsaveBoard(Board board) {
setSaved(board, false);
}
public void updateBoardOrders(List<Board> boards) {
databaseManager.runTask(databaseManager.getDatabaseBoardManager()
.updateOrders(boards));
updateSavedBoardsAndNotify();
}
private void setSaved(Board board, boolean saved) {
public void setSaved(Board board, boolean saved) {
board.saved = saved;
databaseManager.runTask(databaseManager.getDatabaseBoardManager().updateIncludingUserFields(board));
updateSavedBoardsAndNotify();
}
public void setAllSaved(List<Board> boards, boolean saved) {
for (Board board : boards) {
board.saved = saved;
}
databaseManager.runTask(databaseManager.getDatabaseBoardManager().updateIncludingUserFields(boards));
updateSavedBoardsAndNotify();
}
private void updateSavedBoardsAndNotify() {
sitesWithSavedBoards.clear();
for (Site site : Sites.allSites()) {

@ -107,6 +107,8 @@ public class BoardSetupPresenter {
public void onAddDialogPositiveClicked() {
int count = 0;
List<Board> boardsToSave = new ArrayList<>();
if (site.boardsType().canList) {
List<Board> siteBoards = boardManager.getSiteBoards(site);
Map<String, Board> siteBoardsByCode = new HashMap<>();
@ -116,7 +118,7 @@ public class BoardSetupPresenter {
for (String selectedSuggestion : selectedSuggestions) {
Board board = siteBoardsByCode.get(selectedSuggestion);
if (board != null) {
boardManager.saveBoard(board);
boardsToSave.add(board);
savedBoards.add(board);
count++;
}
@ -124,12 +126,14 @@ public class BoardSetupPresenter {
} else {
for (String suggestion : selectedSuggestions) {
Board board = site.createBoard(suggestion, suggestion);
boardManager.saveBoard(board);
boardsToSave.add(board);
savedBoards.add(board);
count++;
}
}
boardManager.setAllSaved(boardsToSave, true);
setOrder();
callback.setSavedBoards(savedBoards);
callback.boardsWereAdded(count);
@ -145,7 +149,7 @@ public class BoardSetupPresenter {
public void remove(int position) {
Board board = savedBoards.remove(position);
boardManager.unsaveBoard(board);
boardManager.setSaved(board, false);
setOrder();
callback.setSavedBoards(savedBoards);
@ -154,7 +158,7 @@ public class BoardSetupPresenter {
}
public void undoRemoveBoard(Board board) {
boardManager.saveBoard(board);
boardManager.setSaved(board, true);
savedBoards.add(board.order, board);
setOrder();
callback.setSavedBoards(savedBoards);

Loading…
Cancel
Save