Add a black background setting for the reader

This commit is contained in:
inorichi 2015-12-15 13:34:14 +01:00
parent 4630a5ed1a
commit e2795f5480
8 changed files with 58 additions and 3 deletions

View file

@ -83,6 +83,10 @@ public class PreferencesHelper {
return rxPrefs.getFloat(getKey(R.string.pref_custom_brightness_value_key), 0F); return rxPrefs.getFloat(getKey(R.string.pref_custom_brightness_value_key), 0F);
} }
public int getReaderTheme() {
return prefs.getInt(getKey(R.string.pref_reader_theme_key), 0);
}
public int getDefaultViewer() { public int getDefaultViewer() {
return Integer.parseInt(prefs.getString(getKey(R.string.pref_default_viewer_key), "1")); return Integer.parseInt(prefs.getString(getKey(R.string.pref_default_viewer_key), "1"));
} }

View file

@ -3,9 +3,11 @@ package eu.kanade.mangafeed.ui.reader;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.Color;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.Surface; import android.view.Surface;
import android.view.View; import android.view.View;
@ -51,6 +53,7 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
private ReaderMenu readerMenu; private ReaderMenu readerMenu;
private int uiFlags; private int uiFlags;
private int readerTheme;
protected CompositeSubscription subscriptions; protected CompositeSubscription subscriptions;
private Subscription customBrightnessSubscription; private Subscription customBrightnessSubscription;
@ -59,6 +62,8 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
private static final int VERTICAL = 3; private static final int VERTICAL = 3;
private static final int WEBTOON = 4; private static final int WEBTOON = 4;
public static final int BLACK_THEME = 1;
public static Intent newIntent(Context context) { public static Intent newIntent(Context context) {
return new Intent(context, ReaderActivity.class); return new Intent(context, ReaderActivity.class);
} }
@ -78,6 +83,10 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
if (savedState != null && readerMenu.showing) if (savedState != null && readerMenu.showing)
readerMenu.show(false); readerMenu.show(false);
readerTheme = preferences.getReaderTheme();
if (readerTheme == BLACK_THEME)
setBlackTheme();
initializeSettings(); initializeSettings();
} }
@ -251,6 +260,16 @@ public class ReaderActivity extends BaseRxActivity<ReaderPresenter> {
recreate(); recreate();
} }
private void setBlackTheme() {
getWindow().getDecorView().getRootView().setBackgroundColor(Color.BLACK);
pageNumber.setTextColor(ContextCompat.getColor(this, R.color.light_grey));
pageNumber.setBackgroundColor(ContextCompat.getColor(this, R.color.page_number_background_black));
}
public int getReaderTheme() {
return readerTheme;
}
public ViewGroup getContainer() { public ViewGroup getContainer() {
return container; return container;
} }

View file

@ -2,6 +2,7 @@ package eu.kanade.mangafeed.ui.reader.viewer.common;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.Nullable; import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
@ -37,6 +38,7 @@ public class ViewPagerReaderFragment extends BaseFragment {
@Bind(R.id.progress_text) TextView progressText; @Bind(R.id.progress_text) TextView progressText;
@Bind(R.id.retry_button) Button retryButton; @Bind(R.id.retry_button) Button retryButton;
private ReaderActivity activity;
private Page page; private Page page;
private Subscription progressSubscription; private Subscription progressSubscription;
private Subscription statusSubscription; private Subscription statusSubscription;
@ -51,17 +53,22 @@ public class ViewPagerReaderFragment extends BaseFragment {
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_page, container, false); View view = inflater.inflate(R.layout.fragment_page, container, false);
ButterKnife.bind(this, view); ButterKnife.bind(this, view);
activity = (ReaderActivity) getActivity();
if (activity.getReaderTheme() == ReaderActivity.BLACK_THEME) {
progressText.setTextColor(ContextCompat.getColor(getContext(), R.color.light_grey));
}
imageView.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_FIXED); imageView.setDoubleTapZoomStyle(SubsamplingScaleImageView.ZOOM_FOCUS_FIXED);
imageView.setPanLimit(SubsamplingScaleImageView.PAN_LIMIT_INSIDE); imageView.setPanLimit(SubsamplingScaleImageView.PAN_LIMIT_INSIDE);
imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE); imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_INSIDE);
imageView.setOnTouchListener((v, motionEvent) -> imageView.setOnTouchListener((v, motionEvent) ->
((ReaderActivity) getActivity()).getViewer().onImageTouch(motionEvent)); activity.getViewer().onImageTouch(motionEvent));
retryButton.setOnTouchListener((v, event) -> { retryButton.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getAction() == MotionEvent.ACTION_UP) {
if (page != null) if (page != null)
((ReaderActivity) getActivity()).getPresenter().retryPage(page); activity.getPresenter().retryPage(page);
return true; return true;
} }
return true; return true;

View file

@ -39,4 +39,15 @@
<item>75</item> <item>75</item>
<item>100</item> <item>100</item>
</string-array> </string-array>
<string-array name="reader_themes">
<item>@string/white_theme</item>
<item>@string/black_theme</item>
</string-array>
<string-array name="reader_themes_values">
<item>0</item>
<item>1</item>
</string-array>
</resources> </resources>

View file

@ -28,5 +28,6 @@
<color name="line_grey">@color/md_light_dividers</color> <color name="line_grey">@color/md_light_dividers</color>
<color name="light_grey">@color/md_grey_300</color> <color name="light_grey">@color/md_grey_300</color>
<color name="page_number_background">#AAE9E9E9</color> <color name="page_number_background">#AAE9E9E9</color>
<color name="page_number_background_black">#AA252525</color>
<color name="reader_menu_background">@color/colorPrimarySuperDark</color> <color name="reader_menu_background">@color/colorPrimarySuperDark</color>
</resources> </resources>

View file

@ -14,6 +14,7 @@
<string name="pref_keep_screen_on_key">pref_keep_screen_on_key</string> <string name="pref_keep_screen_on_key">pref_keep_screen_on_key</string>
<string name="pref_custom_brightness_key">pref_custom_brightness_key</string> <string name="pref_custom_brightness_key">pref_custom_brightness_key</string>
<string name="pref_custom_brightness_value_key">pref_custom_brightness_value_key</string> <string name="pref_custom_brightness_value_key">pref_custom_brightness_value_key</string>
<string name="pref_reader_theme_key">pref_reader_theme_key</string>
<string name="pref_download_directory_key">pref_download_directory_key</string> <string name="pref_download_directory_key">pref_download_directory_key</string>
<string name="pref_download_slots_key">pref_download_slots_key</string> <string name="pref_download_slots_key">pref_download_slots_key</string>

View file

@ -47,6 +47,9 @@
<string name="pref_enable_transitions">Enable transitions</string> <string name="pref_enable_transitions">Enable transitions</string>
<string name="pref_show_page_number">Show page number</string> <string name="pref_show_page_number">Show page number</string>
<string name="pref_custom_brightness">Use custom brightness</string> <string name="pref_custom_brightness">Use custom brightness</string>
<string name="pref_reader_theme">Reader theme</string>
<string name="white_theme">White</string>
<string name="black_theme">Black</string>
<string name="pref_viewer_type">Default viewer</string> <string name="pref_viewer_type">Default viewer</string>
<string name="default_viewer">Default</string> <string name="default_viewer">Default</string>
<string name="left_to_right_viewer">Left to right</string> <string name="left_to_right_viewer">Left to right</string>

View file

@ -25,6 +25,15 @@
android:key="@string/pref_default_viewer_key" android:key="@string/pref_default_viewer_key"
android:entries="@array/viewers" android:entries="@array/viewers"
android:entryValues="@array/viewers_values" android:entryValues="@array/viewers_values"
android:defaultValue="1"/> android:defaultValue="1"
android:summary="%s"/>
<eu.kanade.mangafeed.ui.setting.preference.IntListPreference
android:title="@string/pref_reader_theme"
android:key="@string/pref_reader_theme_key"
android:entries="@array/reader_themes"
android:entryValues="@array/reader_themes_values"
android:defaultValue="0"
android:summary="%s"/>
</PreferenceScreen> </PreferenceScreen>