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

@ -43,15 +43,14 @@ import android.widget.TextView;
import org.floens.chan.ChanApplication;
import org.floens.chan.R;
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.manager.BoardManager;
import org.floens.chan.core.manager.ThreadManager;
import org.floens.chan.core.model.Board;
import org.floens.chan.core.model.ChanThread;
import org.floens.chan.core.model.Loadable;
import org.floens.chan.core.model.Pin;
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.utils.Logger;
@ -59,7 +58,7 @@ import java.util.List;
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 Loadable boardLoadable;
@ -75,8 +74,6 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ChanApplication.getBoardManager().addListener(this);
boardLoadable = new Loadable();
threadLoadable = new Loadable();
@ -176,7 +173,7 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
protected void onDestroy() {
super.onDestroy();
ChanApplication.getBoardManager().removeListener(this);
// ChanApplication.getBoardManager().removeListener(this);
}
@Override
@ -264,11 +261,11 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele
updateActionBarState();
}
@Override
public void onBoardsChanged() {
spinnerAdapter.setBoards();
spinnerAdapter.notifyDataSetChanged();
}
// @Override
// public void onBoardsChanged() {
// spinnerAdapter.setBoards();
// spinnerAdapter.notifyDataSetChanged();
// }
private void handleExtraBundle(Bundle extras) {
int pinId = extras.getInt("pin_id", -2);

@ -42,7 +42,9 @@ import org.floens.chan.utils.AndroidUtils;
import java.util.ArrayList;
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 POST_ID = 2;
private static final int SEARCH_ID = 101;
@ -59,7 +61,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
public void onCreate() {
super.onCreate();
ChanApplication.getBoardManager().addListener(this);
EventBus.getDefault().register(this);
navigationItem.hasDrawer = true;
navigationItem.middleMenu = new FloatingMenu(context);
@ -89,7 +91,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
public void onDestroy() {
super.onDestroy();
ChanApplication.getBoardManager().removeListener(this);
EventBus.getDefault().unregister(this);
}
@Override
@ -141,8 +143,7 @@ public class BrowseController extends ThreadController implements ToolbarMenuIte
navigationController.pushController(viewThreadController);
}
@Override
public void onBoardsChanged() {
public void onEvent(BoardManager.BoardsChangedMessage event) {
loadBoards();
}

Loading…
Cancel
Save