diff --git a/ChangeLog b/ChangeLog index d26a611e6..137753bd7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,6 @@ ===== 1.7.9 (Apr ??, 2013) ===== * Fixed Ukrainian hyphenations +* Fixed missing paragraph before new section issue (in some book formats) ===== 1.7.8 (Mar 24, 2013) ===== * Fixed library scanning: all books are visible in the library diff --git a/jni/NativeFormats/fbreader/src/bookmodel/BookReader.cpp b/jni/NativeFormats/fbreader/src/bookmodel/BookReader.cpp index 36e7ddcc1..b399f77a0 100644 --- a/jni/NativeFormats/fbreader/src/bookmodel/BookReader.cpp +++ b/jni/NativeFormats/fbreader/src/bookmodel/BookReader.cpp @@ -231,9 +231,10 @@ void BookReader::addImage(const std::string &id, shared_ptr image } void BookReader::insertEndParagraph(ZLTextParagraph::Kind kind) { - if ((myCurrentTextModel != 0) && mySectionContainsRegularContents) { + if (myCurrentTextModel != 0 && mySectionContainsRegularContents) { std::size_t size = myCurrentTextModel->paragraphsNumber(); if ((size > 0) && (((*myCurrentTextModel)[(std::size_t)-1])->kind() != kind)) { + endParagraph(); ((ZLTextPlainModel&)*myCurrentTextModel).createParagraph(kind); mySectionContainsRegularContents = false; } diff --git a/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java b/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java index fcb29a085..a7029b445 100644 --- a/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java +++ b/src/org/geometerplus/android/fbreader/ShowBookmarksAction.java @@ -25,6 +25,8 @@ import android.content.Intent; import org.geometerplus.fbreader.book.SerializerUtil; import org.geometerplus.fbreader.fbreader.FBReaderApp; +import org.geometerplus.android.util.PackageUtil; + class ShowBookmarksAction extends FBAndroidAction { ShowBookmarksAction(FBReader baseActivity, FBReaderApp fbreader) { super(baseActivity, fbreader); @@ -37,14 +39,18 @@ class ShowBookmarksAction extends FBAndroidAction { @Override protected void run(Object ... params) { - try { - startBookmarksActivity( - new Intent("android.fbreader.action.EXTERNAL_BOOKMARKS") - ); - } catch (ActivityNotFoundException e) { - startBookmarksActivity( - new Intent(BaseActivity.getApplicationContext(), BookmarksActivity.class) - ); + final Intent externalIntent = + new Intent("android.fbreader.action.EXTERNAL_BOOKMARKS"); + final Intent internalIntent = + new Intent(BaseActivity.getApplicationContext(), BookmarksActivity.class); + if (PackageUtil.canBeStarted(BaseActivity, externalIntent, true)) { + try { + startBookmarksActivity(externalIntent); + } catch (ActivityNotFoundException e) { + startBookmarksActivity(internalIntent); + } + } else { + startBookmarksActivity(internalIntent); } } diff --git a/src/org/geometerplus/android/fbreader/ShowLibraryAction.java b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java index 2c20590c1..06b889a9d 100644 --- a/src/org/geometerplus/android/fbreader/ShowLibraryAction.java +++ b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java @@ -26,6 +26,7 @@ import org.geometerplus.fbreader.book.SerializerUtil; import org.geometerplus.fbreader.fbreader.FBReaderApp; import org.geometerplus.android.fbreader.library.LibraryActivity; +import org.geometerplus.android.util.PackageUtil; class ShowLibraryAction extends FBAndroidAction { ShowLibraryAction(FBReader baseActivity, FBReaderApp fbreader) { @@ -34,14 +35,18 @@ class ShowLibraryAction extends FBAndroidAction { @Override protected void run(Object ... params) { - try { - startLibraryActivity( - new Intent("android.fbreader.action.EXTERNAL_LIBRARY") - ); - } catch (ActivityNotFoundException e) { - startLibraryActivity( - new Intent(BaseActivity.getApplicationContext(), LibraryActivity.class) - ); + final Intent externalIntent = + new Intent("android.fbreader.action.EXTERNAL_LIBRARY"); + final Intent internalIntent = + new Intent(BaseActivity.getApplicationContext(), LibraryActivity.class); + if (PackageUtil.canBeStarted(BaseActivity, externalIntent, true)) { + try { + startLibraryActivity(externalIntent); + } catch (ActivityNotFoundException e) { + startLibraryActivity(internalIntent); + } + } else { + startLibraryActivity(internalIntent); } }