From 9e002e2576892c9916a843b272f11eb229ece0eb Mon Sep 17 00:00:00 2001 From: Nikolay Pultsin Date: Tue, 23 Dec 2014 17:27:18 +0000 Subject: [PATCH] synchronisation with intro branch --- .../fbreader/DisplayBookPopupAction.java | 44 +++++++++++++++++++ .../text/view/ZLTextElementAreaVector.java | 2 + 2 files changed, 46 insertions(+) diff --git a/src/org/geometerplus/android/fbreader/DisplayBookPopupAction.java b/src/org/geometerplus/android/fbreader/DisplayBookPopupAction.java index cdec66c5e..d1685a3f4 100644 --- a/src/org/geometerplus/android/fbreader/DisplayBookPopupAction.java +++ b/src/org/geometerplus/android/fbreader/DisplayBookPopupAction.java @@ -19,6 +19,10 @@ package org.geometerplus.android.fbreader; +import android.view.View; +import android.widget.PopupWindow; +import android.widget.*; + import org.geometerplus.zlibrary.text.view.*; import org.geometerplus.fbreader.fbreader.FBReaderApp; @@ -41,5 +45,45 @@ class DisplayBookPopupAction extends FBAndroidAction { if (!element.isInitialized()) { return; } + + final View mainView = (View)BaseActivity.getViewWidget(); + final View bookView = BaseActivity.getLayoutInflater().inflate(R.layout.book_popup, null); + final int inch = (int)TypedValue.applyDimension( + TypedValue.COMPLEX_UNIT_IN, 1, BaseActivity.getResources().getDisplayMetrics() + ); + final PopupWindow popup = new PopupWindow( + bookView, + Math.min(4 * inch, mainView.getWidth() * 9 / 10), + Math.min(3 * inch, mainView.getHeight() * 9 / 10) + ); + popup.setFocusable(true); + popup.setOutsideTouchable(true); + + final ZLResource buttonResource = ZLResource.resource("dialog").getResource("button") + final View buttonsView = bookView.findViewById(R.id.book_popup_buttons); + + final Button downloadButton = (Button)buttonsView.findViewById(R.id.ok_button); + downloadButton.setText(buttonResource.getResource("download").getValue()); + downloadButton.setOnClickListener(new Button.OnClickListener() { + public void onClick(View v) { + // TODO: implement + popup.dismiss(); + } + }); + + final Button cancelButton = (Button)buttonsView.findViewById(R.id.cancel_button); + cancelButton.setText(buttonResource.getResource("cancel").getValue()); + cancelButton.setOnClickListener(new Button.OnClickListener() { + public void onClick(View v) { + popup.dismiss(); + } + }); + + popup.setOnDismissListener(new PopupWindow.OnDismissListener() { + public void onDismiss() { + } + }); + + popup.showAtLocation(BaseActivity.getCurrentFocus(), Gravity.CENTER, 0, 0); } } diff --git a/src/org/geometerplus/zlibrary/text/view/ZLTextElementAreaVector.java b/src/org/geometerplus/zlibrary/text/view/ZLTextElementAreaVector.java index 43d179a10..b035c7bb0 100644 --- a/src/org/geometerplus/zlibrary/text/view/ZLTextElementAreaVector.java +++ b/src/org/geometerplus/zlibrary/text/view/ZLTextElementAreaVector.java @@ -71,6 +71,8 @@ final class ZLTextElementAreaVector { soul = new ZLTextVideoRegionSoul(area, (ZLTextVideoElement)area.Element); } else if (area.Element instanceof ZLTextWord && !((ZLTextWord)area.Element).isASpace()) { soul = new ZLTextWordRegionSoul(area, (ZLTextWord)area.Element); + } else if (area.Element instanceof BookElement) { + soul = new BookRegionSoul(area, (BookElement)area.Element); } if (soul != null) { myCurrentElementRegion = new ZLTextRegion(soul, myAreas, myAreas.size());