Use events for board changed events

filtering
Floens 10 years ago
parent 754632e113
commit 24f59f50eb
  1. 19
      Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java
  2. 19
      Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java
  3. 11
      Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java

@ -33,6 +33,8 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import de.greenrobot.event.EventBus;
public class BoardManager { public class BoardManager {
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> savedOrder = new Comparator<Board>() {
@ -45,8 +47,6 @@ public class BoardManager {
private List<Board> allBoards; private List<Board> allBoards;
private Map<String, Board> allBoardsByValue = new HashMap<>(); private Map<String, Board> allBoardsByValue = new HashMap<>();
private List<BoardChangeListener> listeners = new ArrayList<>();
public BoardManager() { public BoardManager() {
loadBoards(); loadBoards();
loadFromServer(); loadFromServer();
@ -89,14 +89,6 @@ public class BoardManager {
notifyChanged(); notifyChanged();
} }
public void addListener(BoardChangeListener listener) {
listeners.add(listener);
}
public void removeListener(BoardChangeListener listener) {
listeners.remove(listener);
}
private void updateByValueMap() { private void updateByValueMap() {
allBoardsByValue.clear(); allBoardsByValue.clear();
for (Board test : allBoards) { for (Board test : allBoards) {
@ -105,9 +97,7 @@ public class BoardManager {
} }
private void notifyChanged() { private void notifyChanged() {
for (BoardChangeListener l : listeners) { EventBus.getDefault().post(new BoardsChangedMessage());
l.onBoardsChanged();
}
} }
private void storeBoards() { private void storeBoards() {
@ -194,7 +184,6 @@ public class BoardManager {
return list; return list;
} }
public interface BoardChangeListener { public static class BoardsChangedMessage {
void onBoardsChanged();
} }
} }

@ -43,15 +43,14 @@ import android.widget.TextView;
import org.floens.chan.ChanApplication; import org.floens.chan.ChanApplication;
import org.floens.chan.R; import org.floens.chan.R;
import org.floens.chan.chan.ChanUrls; import org.floens.chan.chan.ChanUrls;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.core.loader.ChanLoader; import org.floens.chan.core.loader.ChanLoader;
import org.floens.chan.core.manager.BoardManager;
import org.floens.chan.core.manager.ThreadManager; import org.floens.chan.core.manager.ThreadManager;
import org.floens.chan.core.model.Board; import org.floens.chan.core.model.Board;
import org.floens.chan.core.model.ChanThread; import org.floens.chan.core.model.ChanThread;
import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Loadable;
import org.floens.chan.core.model.Pin; import org.floens.chan.core.model.Pin;
import org.floens.chan.core.model.Post; import org.floens.chan.core.model.Post;
import org.floens.chan.core.settings.ChanSettings;
import org.floens.chan.ui.fragment.ThreadFragment; import org.floens.chan.ui.fragment.ThreadFragment;
import org.floens.chan.utils.Logger; import org.floens.chan.utils.Logger;
@ -59,7 +58,7 @@ import java.util.List;
import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.dp;
public class ChanActivity extends BaseActivity implements AdapterView.OnItemSelectedListener, BoardManager.BoardChangeListener { public class ChanActivity extends BaseActivity implements AdapterView.OnItemSelectedListener {
private static final String TAG = "ChanActivity"; private static final String TAG = "ChanActivity";
private Loadable boardLoadable; private Loadable boardLoadable;
@ -75,8 +74,6 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
ChanApplication.getBoardManager().addListener(this);
boardLoadable = new Loadable(); boardLoadable = new Loadable();
threadLoadable = new Loadable(); threadLoadable = new Loadable();
@ -176,7 +173,7 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
ChanApplication.getBoardManager().removeListener(this); // ChanApplication.getBoardManager().removeListener(this);
} }
@Override @Override
@ -264,11 +261,11 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
updateActionBarState(); updateActionBarState();
} }
@Override // @Override
public void onBoardsChanged() { // public void onBoardsChanged() {
spinnerAdapter.setBoards(); // spinnerAdapter.setBoards();
spinnerAdapter.notifyDataSetChanged(); // spinnerAdapter.notifyDataSetChanged();
} // }
private void handleExtraBundle(Bundle extras) { private void handleExtraBundle(Bundle extras) {
int pinId = extras.getInt("pin_id", -2); int pinId = extras.getInt("pin_id", -2);

@ -42,7 +42,9 @@ import org.floens.chan.utils.AndroidUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class BrowseController extends ThreadController implements ToolbarMenuItem.ToolbarMenuItemCallback, ThreadLayout.ThreadLayoutCallback, FloatingMenu.FloatingMenuCallback, BoardManager.BoardChangeListener, RootNavigationController.DrawerCallbacks { import de.greenrobot.event.EventBus;
public class BrowseController extends ThreadController implements ToolbarMenuItem.ToolbarMenuItemCallback, ThreadLayout.ThreadLayoutCallback, FloatingMenu.FloatingMenuCallback, RootNavigationController.DrawerCallbacks {
private static final int REFRESH_ID = 1; private static final int REFRESH_ID = 1;
private static final int POST_ID = 2; private static final int POST_ID = 2;
private static final int SEARCH_ID = 101; private static final int SEARCH_ID = 101;
@ -59,7 +61,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
ChanApplication.getBoardManager().addListener(this); EventBus.getDefault().register(this);
navigationItem.hasDrawer = true; navigationItem.hasDrawer = true;
navigationItem.middleMenu = new FloatingMenu(context); navigationItem.middleMenu = new FloatingMenu(context);
@ -89,7 +91,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
ChanApplication.getBoardManager().removeListener(this); EventBus.getDefault().unregister(this);
} }
@Override @Override
@ -141,8 +143,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
navigationController.pushController(viewThreadController); navigationController.pushController(viewThreadController);
} }
@Override public void onEvent(BoardManager.BoardsChangedMessage event) {
public void onBoardsChanged() {
loadBoards(); loadBoards();
} }

Loading…
Cancel
Save