From 90c22c10d28d3b3e20f1a2b104880b5a70b2036e Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Sat, 28 Dec 2013 16:47:33 +0200 Subject: [PATCH] introduced ImageOptions class --- .../fbreader/ProcessHyperlinkAction.java | 2 +- .../preferences/PreferenceActivity.java | 9 ++-- .../fbreader/fbreader/FBReaderApp.java | 19 +------- .../fbreader/fbreader/FBView.java | 13 ++--- .../fbreader/options/ImageOptions.java | 47 +++++++++++++++++++ .../view/style/ZLTextStyleCollection.java | 1 - 6 files changed, 62 insertions(+), 29 deletions(-) create mode 100644 src/org/geometerplus/fbreader/fbreader/options/ImageOptions.java diff --git a/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java b/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java index 6a77da66d..3c10a8dab 100644 --- a/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java +++ b/src/org/geometerplus/android/fbreader/ProcessHyperlinkAction.java @@ -75,7 +75,7 @@ class ProcessHyperlinkAction extends FBAndroidAction { intent.setData(Uri.parse(url)); intent.putExtra( ImageViewActivity.BACKGROUND_COLOR_KEY, - Reader.ImageViewBackgroundOption.getValue().intValue() + Reader.ImageOptions.ImageViewBackground.getValue().intValue() ); OrientationUtil.startActivity(BaseActivity, intent); } catch (Exception e) { diff --git a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java index 845592219..4e6c9a9bb 100644 --- a/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java +++ b/src/org/geometerplus/android/fbreader/preferences/PreferenceActivity.java @@ -539,11 +539,12 @@ public class PreferenceActivity extends ZLPreferenceActivity { } }); + final ImageOptions imageOptions = fbReader.ImageOptions; final Screen imagesScreen = createPreferenceScreen("images"); - imagesScreen.addOption(fbReader.ImageTappingActionOption, "tappingAction"); - imagesScreen.addOption(fbReader.FitImagesToScreenOption, "fitImagesToScreen"); - imagesScreen.addOption(fbReader.ImageViewBackgroundOption, "backgroundColor"); - imagesScreen.addOption(fbReader.ImageMatchBackgroundOption, "matchBackground"); + imagesScreen.addOption(imageOptions.TapAction, "tappingAction"); + imagesScreen.addOption(imageOptions.FitToScreen, "fitImagesToScreen"); + imagesScreen.addOption(imageOptions.ImageViewBackground, "backgroundColor"); + imagesScreen.addOption(imageOptions.MatchBackground, "matchBackground"); final CancelMenuHelper cancelMenuHelper = new CancelMenuHelper(); final Screen cancelMenuScreen = createPreferenceScreen("cancelMenu"); diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java index cd7d768ca..517fd9eda 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java +++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java @@ -50,14 +50,7 @@ public final class FBReaderApp extends ZLApplication { } public final ZLEnumOption WordTappingActionOption; - public final ZLColorOption ImageViewBackgroundOption; - public final ZLEnumOption FitImagesToScreenOption; - public static enum ImageTappingAction { - doNothing, selectImage, openImageView - } - public final ZLEnumOption ImageTappingActionOption; - public final ZLBooleanOption ImageMatchBackgroundOption; - + public final ImageOptions ImageOptions; public final ViewOptions ViewOptions; public final ZLIntegerRangeOption ScrollbarTypeOption; @@ -85,15 +78,7 @@ public final class FBReaderApp extends ZLApplication { WordTappingActionOption = new ZLEnumOption("Options", "WordTappingAction", WordTappingAction.startSelecting); - ImageViewBackgroundOption = - new ZLColorOption("Colors", "ImageViewBackground", new ZLColor(255, 255, 255)); - FitImagesToScreenOption = - new ZLEnumOption("Options", "FitImagesToScreen", FBView.ImageFitting.covers); - ImageTappingActionOption = - new ZLEnumOption("Options", "ImageTappingAction", ImageTappingAction.openImageView); - ImageMatchBackgroundOption = - new ZLBooleanOption("Colors", "ImageMatchBackground", true); - + ImageOptions = new ImageOptions(); ViewOptions = new ViewOptions(); ScrollbarTypeOption = diff --git a/src/org/geometerplus/fbreader/fbreader/FBView.java b/src/org/geometerplus/fbreader/fbreader/FBView.java index f4b67a96f..5225389c0 100644 --- a/src/org/geometerplus/fbreader/fbreader/FBView.java +++ b/src/org/geometerplus/fbreader/fbreader/FBView.java @@ -34,6 +34,7 @@ import org.geometerplus.zlibrary.text.view.style.ZLTextStyleCollection; import org.geometerplus.fbreader.bookmodel.BookModel; import org.geometerplus.fbreader.bookmodel.FBHyperlinkType; import org.geometerplus.fbreader.bookmodel.TOCTree; +import org.geometerplus.fbreader.fbreader.options.ImageOptions; import org.geometerplus.fbreader.fbreader.options.PageTurningOptions; public final class FBView extends ZLTextView { @@ -239,8 +240,8 @@ public final class FBView extends ZLTextView { } } else if (soul instanceof ZLTextImageRegionSoul) { doSelectRegion = - myReader.ImageTappingActionOption.getValue() != - FBReaderApp.ImageTappingAction.doNothing; + myReader.ImageOptions.TapAction.getValue() != + ImageOptions.TapActionEnum.doNothing; } else if (soul instanceof ZLTextHyperlinkRegionSoul) { doSelectRegion = true; } @@ -312,8 +313,8 @@ public final class FBView extends ZLTextView { FBReaderApp.WordTappingAction.openDictionary; } else if (soul instanceof ZLTextImageRegionSoul) { doRunAction = - myReader.ImageTappingActionOption.getValue() == - FBReaderApp.ImageTappingAction.openImageView; + myReader.ImageOptions.TapAction.getValue() == + ImageOptions.TapActionEnum.openImageView; } if (doRunAction) { @@ -345,7 +346,7 @@ public final class FBView extends ZLTextView { @Override public ImageFitting getImageFitting() { - return myReader.FitImagesToScreenOption.getValue(); + return myReader.ImageOptions.FitToScreen.getValue(); } @Override @@ -654,7 +655,7 @@ public final class FBView extends ZLTextView { @Override protected ZLPaintContext.ColorAdjustingMode getAdjustingModeForImages() { - if (myReader.ImageMatchBackgroundOption.getValue()) { + if (myReader.ImageOptions.MatchBackground.getValue()) { if (ColorProfile.DAY.equals(myReader.getColorProfile().Name)) { return ZLPaintContext.ColorAdjustingMode.DARKEN_TO_BACKGROUND; } else { diff --git a/src/org/geometerplus/fbreader/fbreader/options/ImageOptions.java b/src/org/geometerplus/fbreader/fbreader/options/ImageOptions.java new file mode 100644 index 000000000..e1f68151c --- /dev/null +++ b/src/org/geometerplus/fbreader/fbreader/options/ImageOptions.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2007-2013 Geometer Plus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +package org.geometerplus.fbreader.fbreader.options; + +import org.geometerplus.zlibrary.core.options.*; +import org.geometerplus.zlibrary.core.util.ZLColor; + +import org.geometerplus.fbreader.fbreader.FBView; + +public class ImageOptions { + public final ZLColorOption ImageViewBackground; + + public final ZLEnumOption FitToScreen; + public static enum TapActionEnum { + doNothing, selectImage, openImageView + } + public final ZLEnumOption TapAction; + public final ZLBooleanOption MatchBackground; + + public ImageOptions() { + ImageViewBackground = + new ZLColorOption("Colors", "ImageViewBackground", new ZLColor(255, 255, 255)); + FitToScreen = + new ZLEnumOption("Options", "FitImagesToScreen", FBView.ImageFitting.covers); + TapAction = + new ZLEnumOption("Options", "ImageTappingAction", TapActionEnum.openImageView); + MatchBackground = + new ZLBooleanOption("Colors", "ImageMatchBackground", true); + } +} diff --git a/src/org/geometerplus/zlibrary/text/view/style/ZLTextStyleCollection.java b/src/org/geometerplus/zlibrary/text/view/style/ZLTextStyleCollection.java index 6ffbe2984..57a81f034 100644 --- a/src/org/geometerplus/zlibrary/text/view/style/ZLTextStyleCollection.java +++ b/src/org/geometerplus/zlibrary/text/view/style/ZLTextStyleCollection.java @@ -21,7 +21,6 @@ package org.geometerplus.zlibrary.text.view.style; import org.geometerplus.zlibrary.core.filesystem.ZLResourceFile; import org.geometerplus.zlibrary.core.library.ZLibrary; -import org.geometerplus.zlibrary.core.options.ZLBooleanOption; import org.geometerplus.zlibrary.core.util.ZLBoolean3; import org.geometerplus.zlibrary.core.xml.*; import org.geometerplus.zlibrary.text.model.ZLTextAlignmentType;