|
@@ -4,6 +4,7 @@ import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Build;
|
|
|
import android.os.Bundle;
|
|
|
+import android.support.v7.widget.Toolbar;
|
|
|
import android.view.MotionEvent;
|
|
|
import android.view.View;
|
|
|
import android.view.WindowManager;
|
|
@@ -18,6 +19,8 @@ import butterknife.Bind;
|
|
|
import butterknife.ButterKnife;
|
|
|
import eu.kanade.mangafeed.App;
|
|
|
import eu.kanade.mangafeed.R;
|
|
|
+import eu.kanade.mangafeed.data.database.models.Chapter;
|
|
|
+import eu.kanade.mangafeed.data.database.models.Manga;
|
|
|
import eu.kanade.mangafeed.data.preference.PreferencesHelper;
|
|
|
import eu.kanade.mangafeed.data.source.model.Page;
|
|
|
import eu.kanade.mangafeed.ui.base.activity.BaseRxActivity;
|
|
@@ -34,11 +37,14 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
|
|
|
|
|
@Bind(R.id.page_number) TextView pageNumber;
|
|
|
@Bind(R.id.reader) FrameLayout container;
|
|
|
+ @Bind(R.id.toolbar) Toolbar toolbar;
|
|
|
|
|
|
@Inject PreferencesHelper prefs;
|
|
|
|
|
|
private BaseReader viewer;
|
|
|
- private boolean isFullscreen;
|
|
|
+ private ReaderMenu readerMenu;
|
|
|
+
|
|
|
+ private int uiFlags;
|
|
|
|
|
|
private static final int LEFT_TO_RIGHT = 1;
|
|
|
private static final int RIGHT_TO_LEFT = 2;
|
|
@@ -57,20 +63,43 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
|
|
setContentView(R.layout.activity_reader);
|
|
|
ButterKnife.bind(this);
|
|
|
|
|
|
- if (prefs.useFullscreenSet())
|
|
|
- enableFullScreen();
|
|
|
+ setupToolbar(toolbar);
|
|
|
|
|
|
+ readerMenu = new ReaderMenu(this, prefs);
|
|
|
+ createUiHideFlags();
|
|
|
enableHardwareAcceleration();
|
|
|
|
|
|
viewer = getViewer();
|
|
|
}
|
|
|
-
|
|
|
- public void onPageListReady(List<Page> pages) {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onResume() {
|
|
|
+ super.onResume();
|
|
|
+ hideSystemUI();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPause() {
|
|
|
+ getPresenter().setCurrentPage(viewer.getCurrentPosition());
|
|
|
+ viewer.destroySubscriptions();
|
|
|
+ super.onPause();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void createUiHideFlags() {
|
|
|
+ uiFlags |= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
|
|
|
+ if (prefs.isHideStatusBarSet())
|
|
|
+ uiFlags |= View.SYSTEM_UI_FLAG_FULLSCREEN;
|
|
|
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT)
|
|
|
+ uiFlags |= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void onChapterReady(List<Page> pages, Manga manga, Chapter chapter) {
|
|
|
viewer.onPageListReady(pages);
|
|
|
viewer.updatePageNumber();
|
|
|
+ readerMenu.onChapterReady(pages.size(), manga, chapter);
|
|
|
}
|
|
|
|
|
|
- public void onPageListError() {
|
|
|
+ public void onChapterError() {
|
|
|
finish();
|
|
|
ToastUtil.showShort(this, R.string.page_list_error);
|
|
|
}
|
|
@@ -78,51 +107,15 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
|
|
public void onPageChanged(int currentPageIndex, int totalPages) {
|
|
|
String page = (currentPageIndex + 1) + "/" + totalPages;
|
|
|
pageNumber.setText(page);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- protected void onPause() {
|
|
|
- getPresenter().setCurrentPage(viewer.getCurrentPosition());
|
|
|
- viewer.destroySubscriptions();
|
|
|
- super.onPause();
|
|
|
+ readerMenu.onPageChanged(currentPageIndex);
|
|
|
}
|
|
|
|
|
|
public void setSelectedPage(int pageIndex) {
|
|
|
viewer.setSelectedPage(pageIndex);
|
|
|
}
|
|
|
|
|
|
- public void enableFullScreen() {
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
|
|
- getWindow().getDecorView().setSystemUiVisibility(
|
|
|
- View.SYSTEM_UI_FLAG_LOW_PROFILE
|
|
|
- | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
|
|
- | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
|
|
- | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
|
|
- | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
|
|
|
- | View.SYSTEM_UI_FLAG_FULLSCREEN
|
|
|
- | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
|
|
- );
|
|
|
- } else {
|
|
|
- getWindow().getDecorView().setSystemUiVisibility(
|
|
|
- View.SYSTEM_UI_FLAG_LOW_PROFILE
|
|
|
- );
|
|
|
- }
|
|
|
- isFullscreen = true;
|
|
|
- }
|
|
|
-
|
|
|
- public void disableFullscreen() {
|
|
|
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
|
|
|
- getWindow().getDecorView().setSystemUiVisibility(
|
|
|
- View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
|
|
- | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
|
|
- | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
|
|
- );
|
|
|
- } else {
|
|
|
- getWindow().getDecorView().setSystemUiVisibility(
|
|
|
- View.VISIBLE
|
|
|
- );
|
|
|
- }
|
|
|
- isFullscreen = false;
|
|
|
+ public void hideSystemUI() {
|
|
|
+ getWindow().getDecorView().setSystemUiVisibility(uiFlags);
|
|
|
}
|
|
|
|
|
|
public void enableHardwareAcceleration() {
|
|
@@ -136,14 +129,7 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
|
|
|
}
|
|
|
|
|
|
public void onCenterSingleTap() {
|
|
|
- toggleFullscreen();
|
|
|
- }
|
|
|
-
|
|
|
- private void toggleFullscreen() {
|
|
|
- if (isFullscreen)
|
|
|
- disableFullscreen();
|
|
|
- else
|
|
|
- enableFullScreen();
|
|
|
+ readerMenu.toggle();
|
|
|
}
|
|
|
|
|
|
private BaseReader getViewer() {
|