Skip to content

Commit

Permalink
#88 - option to preview images
Browse files Browse the repository at this point in the history
  • Loading branch information
Swati4star committed Jul 20, 2018
1 parent 78c5954 commit d55314c
Show file tree
Hide file tree
Showing 15 changed files with 218 additions and 24 deletions.
1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
}
5 changes: 3 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,9 @@
android:resource="@xml/provider_paths"/>
</provider>

<activity android:name=".activity.ImageEditor">
</activity>
<activity android:name=".activity.ImageEditor"/>
<activity android:name=".activity.PreviewActivity"/>

</application>

</manifest>
Original file line number Diff line number Diff line change
@@ -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<String> images = intent.getStringArrayListExtra(PREVIEW_IMAGES);

ViewPager viewPager = findViewById(R.id.viewpager);
viewPager.setAdapter(new PreviewAdapter(this, images));

getSupportActionBar().hide();
}

}
62 changes: 62 additions & 0 deletions app/src/main/java/swati4star/createpdf/adapter/PreviewAdapter.java
Original file line number Diff line number Diff line change
@@ -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<String> mPreviewItems;
private LayoutInflater mInflater;

public PreviewAdapter(Context context, ArrayList<String> 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;
}

}
36 changes: 30 additions & 6 deletions app/src/main/java/swati4star/createpdf/fragment/HomeFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;


/**
Expand All @@ -75,7 +77,6 @@ public class HomeFragment extends Fragment implements EnhancementOptionsAdapter.

private static int mImageCounter = 0;
private final ArrayList<EnhancementOptionsEntity> mEnhancementOptionsEntityArrayList = new ArrayList<>();
ArrayList<Uri> imageUris;
@BindView(R.id.addImages)
MorphingButton addImages;
@BindView(R.id.pdfCreate)
Expand Down Expand Up @@ -380,15 +381,12 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {

public List<EnhancementOptionsEntity> 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) + " " +
Expand All @@ -399,8 +397,9 @@ public List<EnhancementOptionsEntity> 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;
}

Expand All @@ -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<String>) 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),
Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/swati4star/createpdf/util/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FF000000"
android:pathData="M10,16.5l6,-4.5 -6,-4.5v9zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8z"/>
</vector>
30 changes: 15 additions & 15 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
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:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
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">
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">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
Expand All @@ -26,7 +26,7 @@
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:background="@color/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
app:popupTheme="@style/AppTheme.PopupOverlay" />

</android.support.design.widget.AppBarLayout>

Expand All @@ -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" />

</android.support.v4.widget.DrawerLayout>
14 changes: 14 additions & 0 deletions app/src/main/res/layout/activity_preview.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".activity.PreviewActivity">

<android.support.v4.view.ViewPager
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

</RelativeLayout>
39 changes: 39 additions & 0 deletions app/src/main/res/layout/pdf_preview_item.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_marginTop="20dp"
android:contentDescription="@string/preview_image_to_pdf"
android:background="@color/light_gray"
android:padding="1dp" />

<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="55dp"
android:text="@string/showing_image"
android:textColor="@color/black"
android:textSize="14sp" />

<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="21dp"
android:textColor="@color/black"
android:text="@string/swipe_to_view_next" />

</RelativeLayout>
3 changes: 3 additions & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -208,4 +208,7 @@
<string name="playstore">Rate us on Playstore</string>
<string name="mail">Send a Mail</string>
<string name="website">Visit our Website</string>

<string name="preview_image_to_pdf">Preview PDF</string>
<string name="swipe_to_view_next">Swipe right to view next image</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -209,4 +209,6 @@
<string name="playstore">Rate us on Playstore</string>
<string name="mail">Send a Mail</string>
<string name="website">Visit our Website</string>
<string name="preview_image_to_pdf">Preview PDF</string>
<string name="swipe_to_view_next">Swipe right to view next image</string>
</resources>
2 changes: 2 additions & 0 deletions app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -207,4 +207,6 @@
<string name="playstore">Rate us on Playstore</string>
<string name="mail">Send a Mail</string>
<string name="website">Visit our Website</string>
<string name="preview_image_to_pdf">Preview PDF</string>
<string name="swipe_to_view_next">Swipe right to view next image</string>
</resources>
1 change: 1 addition & 0 deletions app/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
<color name="dark_purple">#690339</color>
<color name="colorGray">#607D8B</color>
<color name="gray_background">#eceff1</color>
<color name="black">#000000</color>
</resources>
6 changes: 5 additions & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
<string name="no_result">Couldn\'t find anything</string>
<string name="search">search</string>
<string name="set_page_size_text">Set Page Size</string>
<string name="preview_image_to_pdf">Preview PDF</string>


<array name="items">
Expand Down Expand Up @@ -247,7 +248,6 @@
<string name="example_font">Example : 10</string>
<string name="font_size_changed">Font Size Changed</string>
<string name="font_size">Font Size : %1$s</string>

<string name="about_us">About Us</string>
<string name="app_description">An easy to use Android application to convert your files to PDF.</string>
<string name="version">Version : </string>
Expand All @@ -260,4 +260,8 @@
<string name="website">Visit our Website</string>
<string name="license">License</string>
<string name="playstore">Rate us on Playstore</string>
<!-- Preview strings -->
<string name="swipe_to_view_next">Swipe right to view next image</string>
<string name="showing_image">Showing %1$d of %2$d image(s)</string>

</resources>

0 comments on commit d55314c

Please sign in to comment.