diff --git a/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java
index 7fdb6aa..5fcaaff 100644
--- a/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java
+++ b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java
@@ -13,6 +13,8 @@ import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
@@ -65,12 +67,12 @@ public class PdfViewerFragment extends Fragment {
public static final String DIALOG_FRAGMENT_TAG_MARK = "DIALOG_FRAGMENT";
- private GraphView mOldGraphView;
private GraphView mGraphView;
private PDFFile mPdfFile;
public static byte[] byteArray;
private int mPage;
private ProgressDialog progress;
+ private TextView pageNumbersView;
private PDFPage mPdfPage;
@@ -85,37 +87,39 @@ public class PdfViewerFragment extends Fragment {
public View onCreateView(final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable final Bundle savedInstanceState) {
Log.i(TAG, "onCreate");
uiHandler = new Handler();
- restoreInstance();
- setupActionBar();
+ hideActionBar();
progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page", true, true);
- if (mOldGraphView != null) {
- mGraphView = new GraphView(getActivity());
- mGraphView.mBi = mOldGraphView.mBi;
- mOldGraphView = null;
- mGraphView.pdfZoomedImageView.setImageBitmap(mGraphView.mBi);
- mGraphView.updateTexts();
- return mGraphView;
- } else {
- mGraphView = new GraphView(getActivity());
- PDFImage.sShowImages = PdfViewerFragment.DEFAULTSHOWIMAGES;
- PDFPaint.s_doAntiAlias = PdfViewerFragment.DEFAULTANTIALIAS;
- PDFFont.sUseFontSubstitution = PdfViewerFragment.DEFAULTUSEFONTSUBSTITUTION;
- HardReference.sKeepCaches = true;
- mPage = STARTPAGE;
+ mGraphView = new GraphView(getActivity());
+ PDFImage.sShowImages = PdfViewerFragment.DEFAULTSHOWIMAGES;
+ PDFPaint.s_doAntiAlias = PdfViewerFragment.DEFAULTANTIALIAS;
+ PDFFont.sUseFontSubstitution = PdfViewerFragment.DEFAULTUSEFONTSUBSTITUTION;
+ HardReference.sKeepCaches = true;
- final LinearLayout linearLayout = new LinearLayout(getActivity());
- linearLayout.setOrientation(LinearLayout.VERTICAL);
- linearLayout.addView(LayoutInflater.from(getActivity()).inflate(R.layout.pfd_toolbar, null));
- linearLayout.addView(setContent(password));
- return linearLayout;
- }
+ mPage = STARTPAGE;
+
+ final LinearLayout linearLayout = new LinearLayout(getActivity());
+ linearLayout.setOrientation(LinearLayout.VERTICAL);
+ final View view = LayoutInflater.from(getActivity()).inflate(R.layout.pfd_toolbar, null);
+ view.findViewById(R.id.pdf_toolbar_close_image).setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(final View v) {
+ getFragmentManager().popBackStack();
+ }
+ });
+ pageNumbersView = (TextView) view.findViewById(R.id.pdf_toolbar_page_numbers_text_view);
+ linearLayout.addView(view);
+ linearLayout.addView(setContent(password));
+ return linearLayout;
}
- private void setupActionBar() {
-
+ private void hideActionBar() {
+ final ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
+ if (actionBar != null) {
+ actionBar.hide();
+ }
}
@Override
@@ -167,28 +171,6 @@ public class PdfViewerFragment extends Fragment {
return null;
}
- /**
- * restore member variables from previously saved instance
- *
- * @return true if instance to restore from was found
- * @see
- */
- private boolean restoreInstance() {
- mOldGraphView = null;
- Log.e(TAG, "restoreInstance");
- if (getActivity().getLastNonConfigurationInstance() == null) return false;
- PdfViewerFragment inst = (PdfViewerFragment) getActivity().getLastNonConfigurationInstance();
- if (inst != this) {
- Log.e(TAG, "restoring Instance");
- mOldGraphView = inst.mGraphView;
- mPage = inst.mPage;
- mPdfFile = inst.mPdfFile;
- mPdfPage = inst.mPdfPage;
- backgroundThread = inst.backgroundThread;
- }
- return true;
- }
-
private synchronized void startRenderThread(final int page) {
if (backgroundThread != null) return;
backgroundThread = new Thread(new Runnable() {
@@ -209,10 +191,8 @@ public class PdfViewerFragment extends Fragment {
private void updateImageStatus() {
if (backgroundThread == null) {
- mGraphView.updateUi();
return;
}
- mGraphView.updateUi();
mGraphView.postDelayed(new Runnable() {
public void run() {
updateImageStatus();
@@ -224,6 +204,7 @@ public class PdfViewerFragment extends Fragment {
if (mPdfFile != null) {
if (mPage < mPdfFile.getNumPages()) {
mPage += 1;
+ updatePageNumbersView();
progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page " + mPage, true, true);
startRenderThread(mPage);
}
@@ -234,12 +215,23 @@ public class PdfViewerFragment extends Fragment {
if (mPdfFile != null) {
if (mPage > 1) {
mPage -= 1;
+ updatePageNumbersView();
progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page " + mPage, true, true);
startRenderThread(mPage);
}
}
}
+ private void updatePageNumbersView() {
+ if (mPdfPage != null) {
+ if (mPdfPage.getPageNumber() == mPdfFile.getNumPages() && mPdfPage.getPageNumber() == 1) {
+ pageNumbersView.setVisibility(View.GONE);
+ } else {
+ pageNumbersView.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
+ }
+ }
+ }
+
private void gotoPage() {
if (mPdfFile != null) {
final Bundle bundle = new Bundle();
@@ -328,15 +320,12 @@ public class PdfViewerFragment extends Fragment {
public Bitmap mBi;
public ImageView pdfZoomedImageView;
public PhotoViewAttacher photoViewAttacher;
- public Button mBtPage;
- private Button mBtPage2;
ImageButton bZoomOut;
ImageButton bZoomIn;
public GraphView(Context context) {
super(context);
- mBtPage2 = mBtPage;
final FrameLayout.LayoutParams frameLayout = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
frameLayout.gravity = Gravity.CENTER;
@@ -373,14 +362,7 @@ public class PdfViewerFragment extends Fragment {
public void run() {
pdfZoomedImageView.setImageBitmap(mBi);
photoViewAttacher.update();
- }
- });
- }
-
- private void updateUi() {
- uiHandler.post(new Runnable() {
- public void run() {
- updateTexts();
+ updatePageNumbersView();
}
});
}
@@ -391,15 +373,6 @@ public class PdfViewerFragment extends Fragment {
}
}
- protected void updateTexts() {
- if (mPdfPage != null) {
- if (mBtPage != null)
- mBtPage.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
- if (mBtPage2 != null)
- mBtPage2.setText(mPdfPage.getPageNumber() + "/" + mPdfFile.getNumPages());
- }
- }
-
}
// TODO: refactor
@@ -422,7 +395,6 @@ public class PdfViewerFragment extends Fragment {
int maxWidthToPopulate = mGraphView.getWidth();
int maxHeightToPopulate = mGraphView.getHeight();
-
int calculatedWidth;
int calculatedHeight;
final float widthRatio = width / maxWidthToPopulate;
diff --git a/PdfView/src/main/res/layout/pfd_toolbar.xml b/PdfView/src/main/res/layout/pfd_toolbar.xml
index 3c16f1b..693a168 100644
--- a/PdfView/src/main/res/layout/pfd_toolbar.xml
+++ b/PdfView/src/main/res/layout/pfd_toolbar.xml
@@ -11,6 +11,7 @@
android:orientation="horizontal">