diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java index 0576c04d..9053f803 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/BoardManager.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 savedOrder = new Comparator() { @@ -45,8 +47,6 @@ public class BoardManager { private List allBoards; private Map allBoardsByValue = new HashMap<>(); - private List 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 { } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java index 2397fc2a..053b4f84 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java @@ -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); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java index 60ff4a11..404db81c 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/BrowseController.java @@ -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(); }