From d55314c996b4cfe0281342787e26930862b7ea47 Mon Sep 17 00:00:00 2001 From: Swati4star Date: Fri, 20 Jul 2018 20:50:54 +0530 Subject: [PATCH] #88 - option to preview images --- app/build.gradle | 1 + app/src/main/AndroidManifest.xml | 5 +- .../createpdf/activity/PreviewActivity.java | 31 ++++++++++ .../createpdf/adapter/PreviewAdapter.java | 62 +++++++++++++++++++ .../createpdf/fragment/HomeFragment.java | 36 +++++++++-- .../swati4star/createpdf/util/Constants.java | 1 + .../ic_play_circle_outline_black_24dp.xml | 9 +++ app/src/main/res/layout/activity_main.xml | 30 ++++----- app/src/main/res/layout/activity_preview.xml | 14 +++++ app/src/main/res/layout/pdf_preview_item.xml | 39 ++++++++++++ app/src/main/res/values-es/strings.xml | 3 + app/src/main/res/values-fr/strings.xml | 2 + app/src/main/res/values-ja/strings.xml | 2 + app/src/main/res/values/colors.xml | 1 + app/src/main/res/values/strings.xml | 6 +- 15 files changed, 218 insertions(+), 24 deletions(-) create mode 100644 app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java create mode 100644 app/src/main/java/swati4star/createpdf/adapter/PreviewAdapter.java create mode 100644 app/src/main/res/drawable/ic_play_circle_outline_black_24dp.xml create mode 100644 app/src/main/res/layout/activity_preview.xml create mode 100644 app/src/main/res/layout/pdf_preview_item.xml diff --git a/app/build.gradle b/app/build.gradle index 9ae1f49c7..8b4f3156b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -57,4 +57,5 @@ dependencies { // To show what's new in the application implementation 'io.github.tonnyl:whatsnew:0.1.1' implementation 'com.airbnb.android:lottie:2.5.5' + implementation 'com.squareup.picasso:picasso:2.5.2' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index cf9ba8731..4682b3f46 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -65,8 +65,9 @@ android:resource="@xml/provider_paths"/> - - + + + \ No newline at end of file diff --git a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java new file mode 100644 index 000000000..c15aadeea --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java @@ -0,0 +1,31 @@ +package swati4star.createpdf.activity; + +import android.content.Intent; +import android.os.Bundle; +import android.support.v4.view.ViewPager; +import android.support.v7.app.AppCompatActivity; + +import java.util.ArrayList; + +import swati4star.createpdf.R; +import swati4star.createpdf.adapter.PreviewAdapter; + +import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; + +public class PreviewActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_preview); + + Intent intent = getIntent(); + ArrayList images = intent.getStringArrayListExtra(PREVIEW_IMAGES); + + ViewPager viewPager = findViewById(R.id.viewpager); + viewPager.setAdapter(new PreviewAdapter(this, images)); + + getSupportActionBar().hide(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/swati4star/createpdf/adapter/PreviewAdapter.java b/app/src/main/java/swati4star/createpdf/adapter/PreviewAdapter.java new file mode 100644 index 000000000..0b1e5e9e1 --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/adapter/PreviewAdapter.java @@ -0,0 +1,62 @@ +package swati4star.createpdf.adapter; + +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v4.view.PagerAdapter; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import com.squareup.picasso.Picasso; + +import java.io.File; +import java.util.ArrayList; + +import swati4star.createpdf.R; + +public class PreviewAdapter extends PagerAdapter { + + private Context mContext; + private ArrayList mPreviewItems; + private LayoutInflater mInflater; + + public PreviewAdapter(Context context, ArrayList previewItems) { + mContext = context; + mPreviewItems = previewItems; + mInflater = LayoutInflater.from(context); + } + + @NonNull + @Override + public Object instantiateItem(@NonNull ViewGroup view, int position) { + View layout = mInflater.inflate(R.layout.pdf_preview_item, view, false); + final TextView textView = layout.findViewById(R.id.textView); + final ImageView imageView = layout.findViewById(R.id.image); + + File fileLocation = new File(mPreviewItems.get(position)); + textView.setText( + String.format(mContext.getResources().getString(R.string.showing_image), + position + 1, mPreviewItems.size())); + Picasso.with(mContext).load(fileLocation).into(imageView); + view.addView(layout, 0); + return layout; + } + + @Override + public void destroyItem(@NonNull ViewGroup collection, int position, @NonNull Object view) { + collection.removeView((View) view); + } + + @Override + public int getCount() { + return mPreviewItems.size(); + } + + @Override + public boolean isViewFromObject(@NonNull View view, @NonNull Object object) { + return view == object; + } + +} diff --git a/app/src/main/java/swati4star/createpdf/fragment/HomeFragment.java b/app/src/main/java/swati4star/createpdf/fragment/HomeFragment.java index 6c302f82f..1d3ecaee9 100755 --- a/app/src/main/java/swati4star/createpdf/fragment/HomeFragment.java +++ b/app/src/main/java/swati4star/createpdf/fragment/HomeFragment.java @@ -50,6 +50,7 @@ import butterknife.OnClick; import swati4star.createpdf.R; import swati4star.createpdf.activity.ImageEditor; +import swati4star.createpdf.activity.PreviewActivity; import swati4star.createpdf.adapter.EnhancementOptionsAdapter; import swati4star.createpdf.interfaces.OnPDFCreatedInterface; import swati4star.createpdf.model.ImageToPDFOptions; @@ -61,6 +62,7 @@ import static swati4star.createpdf.util.Constants.DEFAULT_COMPRESSION; import static swati4star.createpdf.util.Constants.IMAGE_EDITOR_KEY; +import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; /** @@ -75,7 +77,6 @@ public class HomeFragment extends Fragment implements EnhancementOptionsAdapter. private static int mImageCounter = 0; private final ArrayList mEnhancementOptionsEntityArrayList = new ArrayList<>(); - ArrayList imageUris; @BindView(R.id.addImages) MorphingButton addImages; @BindView(R.id.pdfCreate) @@ -380,15 +381,12 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { public List getEnhancementOptions() { mEnhancementOptionsEntityArrayList.clear(); - mEnhancementOptionsEntityArrayList.add( new EnhancementOptionsEntity(getResources().getDrawable(R.drawable.baseline_enhanced_encryption_24), getResources().getString(R.string.password_protect_pdf_text))); - mEnhancementOptionsEntityArrayList.add( new EnhancementOptionsEntity(getResources().getDrawable(R.drawable.baseline_crop_rotate_24), getResources().getString(R.string.edit_images_text))); - mEnhancementOptionsEntityArrayList.add( new EnhancementOptionsEntity(getResources().getDrawable(R.drawable.ic_compress_image), getString(R.string.compress_image) + " " + @@ -399,8 +397,9 @@ public List getEnhancementOptions() { mEnhancementOptionsEntityArrayList.add( new EnhancementOptionsEntity(getResources().getDrawable(R.drawable.ic_page_size_24dp), getResources().getString(R.string.set_page_size_text))); - - + mEnhancementOptionsEntityArrayList.add( + new EnhancementOptionsEntity(getResources().getDrawable(R.drawable.ic_play_circle_outline_black_24dp), + getResources().getString(R.string.preview_image_to_pdf))); return mEnhancementOptionsEntityArrayList; } @@ -422,11 +421,36 @@ public void onItemClick(int position) { case 4: setPageSize(); break; + case 5: + previewPDF(); + break; default: break; } } + private void previewPDF() { + if (mImagesUri.size() == 0) { + if (mTempUris.size() == 0) { + Snackbar.make(Objects.requireNonNull(mActivity).findViewById(android.R.id.content), + R.string.snackbar_no_images, + Snackbar.LENGTH_LONG).show(); + return; + } else + mImagesUri = (ArrayList) mTempUris.clone(); + } + + if (mImagesUri.size() < mTempUris.size()) { + for (int i = mImagesUri.size(); i < mTempUris.size(); i++) { + mImagesUri.add(mTempUris.get(i)); + } + } + + Intent intent = new Intent(mActivity, PreviewActivity.class); + intent.putExtra(PREVIEW_IMAGES, mImagesUri); + startActivity(intent); + } + private void setPageSize() { if (mTempUris.size() == 0) { Snackbar.make(Objects.requireNonNull(mActivity).findViewById(android.R.id.content), diff --git a/app/src/main/java/swati4star/createpdf/util/Constants.java b/app/src/main/java/swati4star/createpdf/util/Constants.java index 0d958d62b..10120dd05 100644 --- a/app/src/main/java/swati4star/createpdf/util/Constants.java +++ b/app/src/main/java/swati4star/createpdf/util/Constants.java @@ -22,4 +22,5 @@ public class Constants { public static final String IMAGE_EDITOR_KEY = "first"; public static final String DEFAULT_FONT_SIZE_TEXT = "DefaultFontSize"; public static final int DEFAULT_FONT_SIZE = 11; + public static final String PREVIEW_IMAGES = "preview_images"; } diff --git a/app/src/main/res/drawable/ic_play_circle_outline_black_24dp.xml b/app/src/main/res/drawable/ic_play_circle_outline_black_24dp.xml new file mode 100644 index 000000000..f7a497a60 --- /dev/null +++ b/app/src/main/res/drawable/ic_play_circle_outline_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 808b440a2..b3701ca08 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,20 +1,20 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/drawer_layout" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true" + tools:openDrawer="start"> + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fitsSystemWindows="true" + tools:context=".activity.MainActivity"> + app:popupTheme="@style/AppTheme.PopupOverlay" /> @@ -46,6 +46,6 @@ android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" - app:menu="@menu/activity_main_drawer"/> + app:menu="@menu/activity_main_drawer" /> diff --git a/app/src/main/res/layout/activity_preview.xml b/app/src/main/res/layout/activity_preview.xml new file mode 100644 index 000000000..2387c0525 --- /dev/null +++ b/app/src/main/res/layout/activity_preview.xml @@ -0,0 +1,14 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/pdf_preview_item.xml b/app/src/main/res/layout/pdf_preview_item.xml new file mode 100644 index 000000000..448afd179 --- /dev/null +++ b/app/src/main/res/layout/pdf_preview_item.xml @@ -0,0 +1,39 @@ + + + + + + + + + + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index cefa8cd0f..11132505d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -208,4 +208,7 @@ Rate us on Playstore Send a Mail Visit our Website + + Preview PDF + Swipe right to view next image \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index e72bb9b11..ad6b63c79 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -209,4 +209,6 @@ Rate us on Playstore Send a Mail Visit our Website + Preview PDF + Swipe right to view next image \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 7dde5e115..f2ba34dd1 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -207,4 +207,6 @@ Rate us on Playstore Send a Mail Visit our Website + Preview PDF + Swipe right to view next image diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bd555fec1..f7189a39b 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -7,4 +7,5 @@ #690339 #607D8B #eceff1 + #000000 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1d3494991..4493eeaaf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ Couldn\'t find anything search Set Page Size + Preview PDF @@ -247,7 +248,6 @@ Example : 10 Font Size Changed Font Size : %1$s - About Us An easy to use Android application to convert your files to PDF. Version : @@ -260,4 +260,8 @@ Visit our Website License Rate us on Playstore + + Swipe right to view next image + Showing %1$d of %2$d image(s) +