diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java index e8dbde23..592af0ce 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/StartActivity.java @@ -29,6 +29,7 @@ import org.floens.chan.Chan; import org.floens.chan.R; import org.floens.chan.chan.ChanHelper; import org.floens.chan.controller.Controller; +import org.floens.chan.core.manager.BoardManager; import org.floens.chan.core.model.Board; import org.floens.chan.core.model.Loadable; import org.floens.chan.core.model.Pin; @@ -51,9 +52,14 @@ public class StartActivity extends AppCompatActivity { private ViewGroup contentView; private List stack = new ArrayList<>(); + private final BoardManager boardManager; private RootNavigationController rootNavigationController; private BrowseController browseController; + public StartActivity() { + boardManager = Chan.getBoardManager(); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -85,7 +91,7 @@ public class StartActivity extends AppCompatActivity { Logger.w(TAG, "savedInstanceState was not null, but no ChanState was found!"); } else { loadDefault = false; - Board board = Chan.getBoardManager().getBoardByValue(chanState.board.board); + Board board = boardManager.getBoardByValue(chanState.board.board); browseController.loadBoard(board); if (chanState.thread.mode == Loadable.Mode.THREAD) { @@ -96,7 +102,7 @@ public class StartActivity extends AppCompatActivity { Loadable fromUri = ChanHelper.getLoadableFromStartUri(getIntent().getData()); if (fromUri != null) { loadDefault = false; - Board board = Chan.getBoardManager().getBoardByValue(fromUri.board); + Board board = boardManager.getBoardByValue(fromUri.board); browseController.loadBoard(board); if (fromUri.isThreadMode()) { @@ -106,7 +112,7 @@ public class StartActivity extends AppCompatActivity { } if (loadDefault) { - browseController.loadBoard(Chan.getBoardManager().getSavedBoards().get(0)); + browseController.loadBoard(boardManager.getSavedBoards().get(0)); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java index 869aaefd..14d27635 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PinAdapter.java @@ -44,7 +44,7 @@ import static org.floens.chan.utils.AndroidUtils.setRoundItemBackground; import static org.floens.chan.utils.AndroidUtils.sp; public class PinAdapter extends RecyclerView.Adapter implements SwipeListener.Callback { - private static final int PIN_OFFSET = 4; + private static final int PIN_OFFSET = 1; private static final int TYPE_HEADER = 0; private static final int TYPE_PIN = 1; @@ -122,12 +122,7 @@ public class PinAdapter extends RecyclerView.Adapter im @Override public int getItemViewType(int position) { switch (position) { - case 1: - return TYPE_LINK; case 0: - case 2: - return TYPE_DIVIDER; - case 3: return TYPE_HEADER; default: return TYPE_PIN; @@ -334,7 +329,6 @@ public class PinAdapter extends RecyclerView.Adapter im itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - callback.openSettings(); } }); } @@ -370,8 +364,6 @@ public class PinAdapter extends RecyclerView.Adapter im boolean isHighlighted(Pin pin); - void openSettings(); - void onPinRemoved(Pin pin); void onPinLongClocked(Pin pin); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java index 91004ea7..f4dd30c0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/RootNavigationController.java @@ -29,6 +29,7 @@ import android.view.Gravity; import android.view.View; import android.widget.EditText; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -49,15 +50,17 @@ import java.util.List; import de.greenrobot.event.EventBus; +import static org.floens.chan.ui.theme.ThemeHelper.theme; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; -public class RootNavigationController extends NavigationController implements PinAdapter.Callback { +public class RootNavigationController extends NavigationController implements PinAdapter.Callback, View.OnClickListener { private WatchManager watchManager; public DrawerLayout drawerLayout; - public FrameLayout drawer; + public LinearLayout drawer; private RecyclerView recyclerView; + private LinearLayout settings; private PinAdapter pinAdapter; public RootNavigationController(Context context) { @@ -77,9 +80,12 @@ public class RootNavigationController extends NavigationController implements Pi container = (FrameLayout) view.findViewById(R.id.container); drawerLayout = (DrawerLayout) view.findViewById(R.id.drawer_layout); drawerLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.LEFT); - drawer = (FrameLayout) view.findViewById(R.id.drawer); + drawer = (LinearLayout) view.findViewById(R.id.drawer); recyclerView = (RecyclerView) view.findViewById(R.id.drawer_recycler_view); recyclerView.setHasFixedSize(true); + settings = (LinearLayout) view.findViewById(R.id.settings); + settings.setOnClickListener(this); + theme().settingsDrawable.apply((ImageView) settings.findViewById(R.id.image)); toolbar.setBackgroundColor(ThemeHelper.getInstance().getTheme().primaryColor.color); @@ -121,6 +127,13 @@ public class RootNavigationController extends NavigationController implements Pi }); } + @Override + public void onClick(View v) { + if (v == settings) { + pushController(new MainSettingsController(context)); + } + } + @Override public void onMenuClicked() { super.onMenuClicked(); @@ -188,11 +201,6 @@ public class RootNavigationController extends NavigationController implements Pi pushController(new WatchSettingsController(context)); } - @Override - public void openSettings() { - pushController(new MainSettingsController(context)); - } - @Override public void onPinRemoved(final Pin pin) { watchManager.removePin(pin); diff --git a/Clover/app/src/main/res/layout/controller_navigation_drawer.xml b/Clover/app/src/main/res/layout/controller_navigation_drawer.xml index 6d05e8c0..e5ec044a 100644 --- a/Clover/app/src/main/res/layout/controller_navigation_drawer.xml +++ b/Clover/app/src/main/res/layout/controller_navigation_drawer.xml @@ -42,22 +42,67 @@ along with this program. If not, see . - + android:background="?backcolor" + android:clipToPadding="false" + android:orientation="vertical"> - + + + + + + + + + + +