From 79e15cd26f255f67877df5064c6d4163ed6f0d86 Mon Sep 17 00:00:00 2001 From: vyankatesh Date: Thu, 26 Jul 2018 18:19:13 +0530 Subject: [PATCH 1/3] fix for #89 added rearrange selected images feature --- app/src/main/AndroidManifest.xml | 1 + .../createpdf/activity/PreviewActivity.java | 82 +++++++++++++- .../createpdf/activity/ReArrangeImages.java | 86 +++++++++++++++ .../adapter/PreviewImageOptionsAdapter.java | 78 +++++++++++++ .../adapter/ReArrangeImagesAdapter.java | 103 ++++++++++++++++++ .../fragment/ImageToPdfFragment.java | 21 +++- .../model/PreviewImageOptionItem.java | 27 +++++ .../res/drawable/ic_arrow_down_black_24dp.xml | 9 ++ .../res/drawable/ic_arrow_up_black_24dp.xml | 9 ++ app/src/main/res/drawable/ic_rearrange.xml | 9 ++ app/src/main/res/layout/activity_preview.xml | 41 ++++--- .../res/layout/activity_rearrange_images.xml | 14 +++ .../res/layout/item_preview_image_options.xml | 34 ++++++ .../main/res/layout/item_rearrange_images.xml | 50 +++++++++ app/src/main/res/values-es/strings.xml | 4 + app/src/main/res/values-fr/strings.xml | 4 + app/src/main/res/values-ja/strings.xml | 4 + app/src/main/res/values/strings.xml | 4 + 18 files changed, 557 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java create mode 100644 app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java create mode 100644 app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java create mode 100644 app/src/main/java/swati4star/createpdf/model/PreviewImageOptionItem.java create mode 100644 app/src/main/res/drawable/ic_arrow_down_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_arrow_up_black_24dp.xml create mode 100644 app/src/main/res/drawable/ic_rearrange.xml create mode 100644 app/src/main/res/layout/activity_rearrange_images.xml create mode 100644 app/src/main/res/layout/item_preview_image_options.xml create mode 100644 app/src/main/res/layout/item_rearrange_images.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 97b8bed71..e2fd1dfcc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -68,6 +68,7 @@ + diff --git a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java index dd003f12d..164c4b76e 100644 --- a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java +++ b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java @@ -1,37 +1,109 @@ package swati4star.createpdf.activity; +import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; -import android.widget.TextView; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import com.eftimoff.viewpagertransformers.DepthPageTransformer; import java.util.ArrayList; import java.util.Objects; +import butterknife.BindView; +import butterknife.ButterKnife; import swati4star.createpdf.R; import swati4star.createpdf.adapter.PreviewAdapter; +import swati4star.createpdf.adapter.PreviewImageOptionsAdapter; +import swati4star.createpdf.model.PreviewImageOptionItem; import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; -public class PreviewActivity extends AppCompatActivity { +public class PreviewActivity extends AppCompatActivity implements PreviewImageOptionsAdapter.OnItemClickListener { + + @BindView(R.id.recyclerView) + RecyclerView mRecyclerView; + + private ArrayList mImagesArrayList; + private static final int INTENT_REQUEST_REARRANGE_IMAGE = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preview); - // Extract images uri array from the intent + ButterKnife.bind(this); + // Extract mImagesArrayList uri array from the intent Intent intent = getIntent(); - ArrayList images = intent.getStringArrayListExtra(PREVIEW_IMAGES); + mImagesArrayList = intent.getStringArrayListExtra(PREVIEW_IMAGES); ViewPager viewPager = findViewById(R.id.viewpager); - viewPager.setAdapter(new PreviewAdapter(this, images )); + viewPager.setAdapter(new PreviewAdapter(this, mImagesArrayList)); viewPager.setPageTransformer(true, new DepthPageTransformer()); Objects.requireNonNull(getSupportActionBar()).hide(); + showOptions(); + } + + private void showOptions() { + LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); + mRecyclerView.setLayoutManager(layoutManager); + PreviewImageOptionsAdapter adapter = new PreviewImageOptionsAdapter(this, getOptions(), + getApplicationContext()); + mRecyclerView.setAdapter(adapter); + } + + private ArrayList getOptions() { + ArrayList mOptions = new ArrayList<>(); + mOptions.add(new PreviewImageOptionItem(R.drawable.ic_rearrange, "Rearrange")); + return mOptions; } + @Override + public void onItemClick(int position) { + switch (position) { + case 0: + reArrangeImages(); + break; + } + } + + private void reArrangeImages() { + Intent intent = new Intent(this, ReArrangeImages.class); + intent.putStringArrayListExtra(PREVIEW_IMAGES, mImagesArrayList); + startActivityForResult(intent, INTENT_REQUEST_REARRANGE_IMAGE); + } + + private void passUris() { + Intent returnIntent = new Intent(); + returnIntent.putStringArrayListExtra("result", mImagesArrayList); + setResult(Activity.RESULT_OK, returnIntent); + finish(); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + switch (requestCode) { + case INTENT_REQUEST_REARRANGE_IMAGE: + switch (resultCode) { + case Activity.RESULT_OK: + try { + mImagesArrayList = data.getStringArrayListExtra("result"); + + } catch (Exception e) { + e.printStackTrace(); + } + } + break; + } + } + + @Override + public void onBackPressed() { + passUris(); + } } \ No newline at end of file diff --git a/app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java b/app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java new file mode 100644 index 000000000..bfc864ce9 --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java @@ -0,0 +1,86 @@ +package swati4star.createpdf.activity; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; +import android.view.MenuItem; + +import java.util.ArrayList; +import java.util.Objects; + +import butterknife.BindView; +import butterknife.ButterKnife; +import swati4star.createpdf.R; +import swati4star.createpdf.adapter.ReArrangeImagesAdapter; + +import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; + +public class ReArrangeImages extends AppCompatActivity implements ReArrangeImagesAdapter.OnClickListener { + + @BindView(R.id.recyclerView) + RecyclerView mRecyclerView; + + private ArrayList mImages; + private ReArrangeImagesAdapter mReArrangeImagesAdapter; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_rearrange_images); + Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); + ButterKnife.bind(this); + Intent intent = getIntent(); + mImages = intent.getStringArrayListExtra(PREVIEW_IMAGES); + initRecyclerView(mImages); + } + + private void initRecyclerView(ArrayList images) { + LinearLayoutManager layoutManager = new LinearLayoutManager(this, + LinearLayoutManager.VERTICAL, false); + RecyclerView recyclerView = findViewById(R.id.recyclerView); + recyclerView.setLayoutManager(layoutManager); + mReArrangeImagesAdapter = new ReArrangeImagesAdapter(this, images, this); + recyclerView.setAdapter(mReArrangeImagesAdapter); + } + + @Override + public void onUpClick(int position) { + mImages.add(position - 1, mImages.remove(position)); + mReArrangeImagesAdapter.positionChanged(mImages); + } + + @Override + public void onDownClick(int position) { + mImages.add(position + 1, mImages.remove(position)); + mReArrangeImagesAdapter.positionChanged(mImages); + + } + + private void passUris() { + Intent returnIntent = new Intent(); + returnIntent.putStringArrayListExtra("result", mImages); + setResult(Activity.RESULT_OK, returnIntent); + finish(); + } + + @Override + public void onBackPressed() { + passUris(); + super.onBackPressed(); + } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + passUris(); + return true; + default: + return super.onOptionsItemSelected(item); + } + } +} + diff --git a/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java b/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java new file mode 100644 index 000000000..0ff4eb185 --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java @@ -0,0 +1,78 @@ +package swati4star.createpdf.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import java.util.ArrayList; + +import swati4star.createpdf.R; +import swati4star.createpdf.model.PreviewImageOptionItem; + + +public class PreviewImageOptionsAdapter extends RecyclerView.Adapter { + private final ArrayList mOptions; + private final Context mContext; + private final OnItemClickListener mOnItemClickListener; + + + public PreviewImageOptionsAdapter(OnItemClickListener onItemClickListener, + ArrayList optionItems, Context context) { + mOnItemClickListener = onItemClickListener; + mOptions = optionItems; + mContext = context; + } + + @NonNull + @Override + public PreviewImageOptionsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_preview_image_options, + parent, false); + return new PreviewImageOptionsAdapter.ViewHolder(view); + } + + @SuppressLint("NewApi") + @Override + public void onBindViewHolder(@NonNull PreviewImageOptionsAdapter.ViewHolder holder, int position) { + int imageid = mOptions.get(position).getOptionImageId(); + + /* Bitmap roundBitmap = BitmapFactory.decodeResource(mContext.getResources(), imageid); + int width = roundBitmap.getWidth(), height = roundBitmap.getHeight(); + int radius = width > height ? height : width; // set the smallest edge as radius. + roundBitmap = ImageUtils.getRoundBitmap(roundBitmap, radius);*/ + holder.imageView.setImageDrawable(mContext.getDrawable(imageid)); + holder.textView.setText(mOptions.get(position).getOptionName()); + } + + @Override + public int getItemCount() { + return mOptions.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + final ImageView imageView; + final TextView textView; + + ViewHolder(View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.option_image); + textView = itemView.findViewById(R.id.option_name); + imageView.setOnClickListener(this); + } + + @Override + public void onClick(View view) { + mOnItemClickListener.onItemClick(getAdapterPosition()); + } + } + + public interface OnItemClickListener { + void onItemClick(int position); + } +} diff --git a/app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java b/app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java new file mode 100644 index 000000000..b33cf4b15 --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java @@ -0,0 +1,103 @@ +package swati4star.createpdf.adapter; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.support.annotation.NonNull; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.ImageView; + +import com.squareup.picasso.Picasso; + +import java.io.File; +import java.util.ArrayList; + +import swati4star.createpdf.R; + + +public class ReArrangeImagesAdapter extends RecyclerView.Adapter { + private ArrayList mImagesUri; + private final Context mContext; + private final OnClickListener mOnClickListener; + + + public ReArrangeImagesAdapter(OnClickListener onClickListener, + ArrayList uris, Context context) { + mOnClickListener = onClickListener; + mImagesUri = uris; + mContext = context; + } + + @NonNull + @Override + public ReArrangeImagesAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View view = LayoutInflater.from(parent.getContext()) + .inflate(R.layout.item_rearrange_images, parent, false); + return new ReArrangeImagesAdapter.ViewHolder(view); + + } + + @SuppressLint("NewApi") + @Override + public void onBindViewHolder(@NonNull ReArrangeImagesAdapter.ViewHolder holder, int position) { + File imageFile = new File(mImagesUri.get(position)); + if (position == 0) { + holder.buttonUp.setVisibility(View.GONE); + } else { + holder.buttonUp.setVisibility(View.VISIBLE); + } + if (position == getItemCount() - 1) { + holder.buttonDown.setVisibility(View.GONE); + } else { + holder.buttonDown.setVisibility(View.VISIBLE); + } + Picasso.with(mContext).load(imageFile).into(holder.imageView); + } + + @Override + public int getItemCount() { + return mImagesUri.size(); + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + final ImageView imageView; + final ImageButton buttonUp; + final ImageButton buttonDown; + + ViewHolder(View itemView) { + super(itemView); + imageView = itemView.findViewById(R.id.image); + buttonUp = itemView.findViewById(R.id.buttonUp); + buttonDown = itemView.findViewById(R.id.buttonDown); + + buttonDown.setOnClickListener(this); + buttonUp.setOnClickListener(this); + } + + @Override + public void onClick(View view) { + switch (view.getId()) { + case R.id.buttonUp: + mOnClickListener.onUpClick(getAdapterPosition()); + break; + case R.id.buttonDown: + mOnClickListener.onDownClick(getAdapterPosition()); + break; + } + } + } + + public void positionChanged(ArrayList images) { + mImagesUri = images; + notifyDataSetChanged(); + } + + public interface OnClickListener { + void onUpClick(int position); + + void onDownClick(int position); + } +} \ No newline at end of file diff --git a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java index 95fce8f69..38dfa8e4c 100755 --- a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java +++ b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java @@ -74,6 +74,7 @@ public class ImageToPdfFragment extends Fragment implements EnhancementOptionsAd private static final int INTENT_REQUEST_GET_IMAGES = 13; private static final int PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE_RESULT = 1; private static final int INTENT_REQUEST_APPLY_FILTER = 10; + private static final int INTENT_REQUEST_PREVIEW_IMAGE = 11; private static int mImageCounter = 0; private final ArrayList mEnhancementOptionsEntityArrayList = new ArrayList<>(); @@ -380,6 +381,24 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { mImageCounter++; } break; + + case INTENT_REQUEST_PREVIEW_IMAGE: + switch (resultCode) { + case Activity.RESULT_OK: + try { + mImagesUri.clear(); + mTempUris.clear(); + ArrayList uris = data.getStringArrayListExtra("result"); + mImagesUri = uris; + int size = uris.size() - 1; + for (int k = 0; k <= size; k++) { + mTempUris.add(uris.get(k)); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + break; } } @@ -453,7 +472,7 @@ private void previewPDF() { Intent intent = new Intent(mActivity, PreviewActivity.class); intent.putExtra(PREVIEW_IMAGES, mImagesUri); - startActivity(intent); + startActivityForResult(intent, INTENT_REQUEST_PREVIEW_IMAGE); } private void setPageSize() { diff --git a/app/src/main/java/swati4star/createpdf/model/PreviewImageOptionItem.java b/app/src/main/java/swati4star/createpdf/model/PreviewImageOptionItem.java new file mode 100644 index 000000000..a12eda43d --- /dev/null +++ b/app/src/main/java/swati4star/createpdf/model/PreviewImageOptionItem.java @@ -0,0 +1,27 @@ +package swati4star.createpdf.model; + +public class PreviewImageOptionItem { + private int mOptionImageId; + private String mOptionName; + + public PreviewImageOptionItem(int mOptionImageId, String mOptionName) { + this.mOptionImageId = mOptionImageId; + this.mOptionName = mOptionName; + } + + public int getOptionImageId() { + return mOptionImageId; + } + + public void setOptionImageId(int mOptionImageId) { + this.mOptionImageId = mOptionImageId; + } + + public String getOptionName() { + return mOptionName; + } + + public void setOptionName(String mOptionName) { + this.mOptionName = mOptionName; + } +} diff --git a/app/src/main/res/drawable/ic_arrow_down_black_24dp.xml b/app/src/main/res/drawable/ic_arrow_down_black_24dp.xml new file mode 100644 index 000000000..ad33063c8 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_down_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_arrow_up_black_24dp.xml b/app/src/main/res/drawable/ic_arrow_up_black_24dp.xml new file mode 100644 index 000000000..57387ee4f --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_up_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_rearrange.xml b/app/src/main/res/drawable/ic_rearrange.xml new file mode 100644 index 000000000..e9ba75409 --- /dev/null +++ b/app/src/main/res/drawable/ic_rearrange.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_preview.xml b/app/src/main/res/layout/activity_preview.xml index 0f9add288..a996d73d8 100644 --- a/app/src/main/res/layout/activity_preview.xml +++ b/app/src/main/res/layout/activity_preview.xml @@ -1,38 +1,45 @@ + android:layout_height="match_parent" + android:layout_above="@id/recyclerView" + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - + - + + android:gravity="center" + android:text="@string/swipe_to_view_next" + android:textColor="@color/black" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_rearrange_images.xml b/app/src/main/res/layout/activity_rearrange_images.xml new file mode 100644 index 000000000..4796deb71 --- /dev/null +++ b/app/src/main/res/layout/activity_rearrange_images.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/app/src/main/res/layout/item_preview_image_options.xml b/app/src/main/res/layout/item_preview_image_options.xml new file mode 100644 index 000000000..d9cf9683d --- /dev/null +++ b/app/src/main/res/layout/item_preview_image_options.xml @@ -0,0 +1,34 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_rearrange_images.xml b/app/src/main/res/layout/item_rearrange_images.xml new file mode 100644 index 000000000..0de2fca9e --- /dev/null +++ b/app/src/main/res/layout/item_rearrange_images.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 1071e891a..49436692d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -232,4 +232,8 @@ SYMBOL ZAPFDINGBATS UNDEFINED + Selected Image + Arrow Up + Arrow Down + Rearrange Images \ 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 ba7ad78eb..7c5749ebe 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -233,4 +233,8 @@ SYMBOL ZAPFDINGBATS UNDEFINED + Selected Image + Arrow Up + Arrow Down + Rearrange Images \ 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 b73888fcd..68f4a8a19 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -231,4 +231,8 @@ SYMBOL ZAPFDINGBATS UNDEFINED + Selected Image + Arrow Up + Arrow Down + Rearrange Images diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dc6382266..b6b1834dd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -287,5 +287,9 @@ SYMBOL ZAPFDINGBATS UNDEFINED + Selected Image + Arrow Up + Arrow Down + Rearrange Images From e3c4e5880cd3313dad8e8067053c3ae5a971acca Mon Sep 17 00:00:00 2001 From: vyankatesh Date: Thu, 26 Jul 2018 18:54:30 +0530 Subject: [PATCH 2/3] fix for #89 added "Rearrange Selected Files" feature. --- .../java/swati4star/createpdf/activity/PreviewActivity.java | 2 +- app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java index 164c4b76e..6dafa4a15 100644 --- a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java +++ b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java @@ -58,7 +58,7 @@ private void showOptions() { private ArrayList getOptions() { ArrayList mOptions = new ArrayList<>(); - mOptions.add(new PreviewImageOptionItem(R.drawable.ic_rearrange, "Rearrange")); + mOptions.add(new PreviewImageOptionItem(R.drawable.ic_rearrange, getString(R.string.rearrange_text))); return mOptions; } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 4df8c40f2..2343803b4 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -238,4 +238,5 @@ Arrow Up Arrow Down Rearrange Images + Rearrange \ 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 3152691c9..b3b29bee2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -239,4 +239,5 @@ Arrow Up Arrow Down Rearrange Images + Rearrange \ 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 7a3474213..52d8e0365 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -237,4 +237,5 @@ Arrow Up Arrow Down Rearrange Images + Rearrange diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 944032cea..7ee3b9969 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -296,5 +296,6 @@ Arrow Up Arrow Down Rearrange Images + Rearrange From f0a962c2bf77369ce133a6f9c84ee72b602dd98c Mon Sep 17 00:00:00 2001 From: vyankatesh Date: Thu, 26 Jul 2018 21:57:24 +0530 Subject: [PATCH 3/3] fixed issue #89 changes implemented. --- app/src/main/AndroidManifest.xml | 2 +- .../createpdf/activity/PreviewActivity.java | 8 +++--- ...rrangeImages.java => RearrangeImages.java} | 18 +++++++------ .../adapter/PreviewImageOptionsAdapter.java | 9 ++----- ...apter.java => RearrangeImagesAdapter.java} | 26 ++++++++++--------- .../fragment/ImageToPdfFragment.java | 8 +++--- .../swati4star/createpdf/util/Constants.java | 1 + 7 files changed, 35 insertions(+), 37 deletions(-) rename app/src/main/java/swati4star/createpdf/activity/{ReArrangeImages.java => RearrangeImages.java} (79%) rename app/src/main/java/swati4star/createpdf/adapter/{ReArrangeImagesAdapter.java => RearrangeImagesAdapter.java} (79%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e2fd1dfcc..fe9fa606f 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -68,7 +68,7 @@ - + diff --git a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java index 5f42852a9..919afe166 100644 --- a/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java +++ b/app/src/main/java/swati4star/createpdf/activity/PreviewActivity.java @@ -5,7 +5,6 @@ import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; -import android.widget.TextView; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; @@ -20,6 +19,7 @@ import swati4star.createpdf.adapter.PreviewAdapter; import swati4star.createpdf.adapter.PreviewImageOptionsAdapter; import swati4star.createpdf.model.PreviewImageOptionItem; +import swati4star.createpdf.util.Constants; import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; @@ -73,14 +73,14 @@ public void onItemClick(int position) { } private void reArrangeImages() { - Intent intent = new Intent(this, ReArrangeImages.class); + Intent intent = new Intent(this, RearrangeImages.class); intent.putStringArrayListExtra(PREVIEW_IMAGES, mImagesArrayList); startActivityForResult(intent, INTENT_REQUEST_REARRANGE_IMAGE); } private void passUris() { Intent returnIntent = new Intent(); - returnIntent.putStringArrayListExtra("result", mImagesArrayList); + returnIntent.putStringArrayListExtra(Constants.RESULT, mImagesArrayList); setResult(Activity.RESULT_OK, returnIntent); finish(); } @@ -93,7 +93,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (resultCode) { case Activity.RESULT_OK: try { - mImagesArrayList = data.getStringArrayListExtra("result"); + mImagesArrayList = data.getStringArrayListExtra(Constants.RESULT); } catch (Exception e) { e.printStackTrace(); diff --git a/app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java b/app/src/main/java/swati4star/createpdf/activity/RearrangeImages.java similarity index 79% rename from app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java rename to app/src/main/java/swati4star/createpdf/activity/RearrangeImages.java index bfc864ce9..3afb4d1ac 100644 --- a/app/src/main/java/swati4star/createpdf/activity/ReArrangeImages.java +++ b/app/src/main/java/swati4star/createpdf/activity/RearrangeImages.java @@ -15,17 +15,18 @@ import butterknife.BindView; import butterknife.ButterKnife; import swati4star.createpdf.R; -import swati4star.createpdf.adapter.ReArrangeImagesAdapter; +import swati4star.createpdf.adapter.RearrangeImagesAdapter; +import swati4star.createpdf.util.Constants; import static swati4star.createpdf.util.Constants.PREVIEW_IMAGES; -public class ReArrangeImages extends AppCompatActivity implements ReArrangeImagesAdapter.OnClickListener { +public class RearrangeImages extends AppCompatActivity implements RearrangeImagesAdapter.OnClickListener { @BindView(R.id.recyclerView) RecyclerView mRecyclerView; private ArrayList mImages; - private ReArrangeImagesAdapter mReArrangeImagesAdapter; + private RearrangeImagesAdapter mRearrangeImagesAdapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -43,26 +44,26 @@ private void initRecyclerView(ArrayList images) { LinearLayoutManager.VERTICAL, false); RecyclerView recyclerView = findViewById(R.id.recyclerView); recyclerView.setLayoutManager(layoutManager); - mReArrangeImagesAdapter = new ReArrangeImagesAdapter(this, images, this); - recyclerView.setAdapter(mReArrangeImagesAdapter); + mRearrangeImagesAdapter = new RearrangeImagesAdapter(this, images, this); + recyclerView.setAdapter(mRearrangeImagesAdapter); } @Override public void onUpClick(int position) { mImages.add(position - 1, mImages.remove(position)); - mReArrangeImagesAdapter.positionChanged(mImages); + mRearrangeImagesAdapter.positionChanged(mImages); } @Override public void onDownClick(int position) { mImages.add(position + 1, mImages.remove(position)); - mReArrangeImagesAdapter.positionChanged(mImages); + mRearrangeImagesAdapter.positionChanged(mImages); } private void passUris() { Intent returnIntent = new Intent(); - returnIntent.putStringArrayListExtra("result", mImages); + returnIntent.putStringArrayListExtra(Constants.RESULT, mImages); setResult(Activity.RESULT_OK, returnIntent); finish(); } @@ -72,6 +73,7 @@ public void onBackPressed() { passUris(); super.onBackPressed(); } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java b/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java index 0ff4eb185..ead09770b 100644 --- a/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java +++ b/app/src/main/java/swati4star/createpdf/adapter/PreviewImageOptionsAdapter.java @@ -40,13 +40,8 @@ public PreviewImageOptionsAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGro @SuppressLint("NewApi") @Override public void onBindViewHolder(@NonNull PreviewImageOptionsAdapter.ViewHolder holder, int position) { - int imageid = mOptions.get(position).getOptionImageId(); - - /* Bitmap roundBitmap = BitmapFactory.decodeResource(mContext.getResources(), imageid); - int width = roundBitmap.getWidth(), height = roundBitmap.getHeight(); - int radius = width > height ? height : width; // set the smallest edge as radius. - roundBitmap = ImageUtils.getRoundBitmap(roundBitmap, radius);*/ - holder.imageView.setImageDrawable(mContext.getDrawable(imageid)); + int imageId = mOptions.get(position).getOptionImageId(); + holder.imageView.setImageDrawable(mContext.getDrawable(imageId)); holder.textView.setText(mOptions.get(position).getOptionName()); } diff --git a/app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java b/app/src/main/java/swati4star/createpdf/adapter/RearrangeImagesAdapter.java similarity index 79% rename from app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java rename to app/src/main/java/swati4star/createpdf/adapter/RearrangeImagesAdapter.java index b33cf4b15..e4d53e403 100644 --- a/app/src/main/java/swati4star/createpdf/adapter/ReArrangeImagesAdapter.java +++ b/app/src/main/java/swati4star/createpdf/adapter/RearrangeImagesAdapter.java @@ -15,16 +15,18 @@ import java.io.File; import java.util.ArrayList; +import butterknife.BindView; +import butterknife.ButterKnife; import swati4star.createpdf.R; -public class ReArrangeImagesAdapter extends RecyclerView.Adapter { +public class RearrangeImagesAdapter extends RecyclerView.Adapter { private ArrayList mImagesUri; private final Context mContext; private final OnClickListener mOnClickListener; - public ReArrangeImagesAdapter(OnClickListener onClickListener, + public RearrangeImagesAdapter(OnClickListener onClickListener, ArrayList uris, Context context) { mOnClickListener = onClickListener; mImagesUri = uris; @@ -33,16 +35,16 @@ public ReArrangeImagesAdapter(OnClickListener onClickListener, @NonNull @Override - public ReArrangeImagesAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + public RearrangeImagesAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.item_rearrange_images, parent, false); - return new ReArrangeImagesAdapter.ViewHolder(view); + return new RearrangeImagesAdapter.ViewHolder(view); } @SuppressLint("NewApi") @Override - public void onBindViewHolder(@NonNull ReArrangeImagesAdapter.ViewHolder holder, int position) { + public void onBindViewHolder(@NonNull RearrangeImagesAdapter.ViewHolder holder, int position) { File imageFile = new File(mImagesUri.get(position)); if (position == 0) { holder.buttonUp.setVisibility(View.GONE); @@ -63,16 +65,16 @@ public int getItemCount() { } public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { - final ImageView imageView; - final ImageButton buttonUp; - final ImageButton buttonDown; + @BindView(R.id.image) + ImageView imageView; + @BindView(R.id.buttonUp) + ImageButton buttonUp; + @BindView(R.id.buttonDown) + ImageButton buttonDown; ViewHolder(View itemView) { super(itemView); - imageView = itemView.findViewById(R.id.image); - buttonUp = itemView.findViewById(R.id.buttonUp); - buttonDown = itemView.findViewById(R.id.buttonDown); - + ButterKnife.bind(this, itemView); buttonDown.setOnClickListener(this); buttonUp.setOnClickListener(this); } diff --git a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java index 38dfa8e4c..7dd8ffe99 100755 --- a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java +++ b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java @@ -55,6 +55,7 @@ import swati4star.createpdf.interfaces.OnPDFCreatedInterface; import swati4star.createpdf.model.EnhancementOptionsEntity; import swati4star.createpdf.model.ImageToPDFOptions; +import swati4star.createpdf.util.Constants; import swati4star.createpdf.util.CreatePdf; import swati4star.createpdf.util.FileUtils; import swati4star.createpdf.util.MorphButtonUtility; @@ -388,12 +389,9 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { try { mImagesUri.clear(); mTempUris.clear(); - ArrayList uris = data.getStringArrayListExtra("result"); + ArrayList uris = data.getStringArrayListExtra(Constants.RESULT); mImagesUri = uris; - int size = uris.size() - 1; - for (int k = 0; k <= size; k++) { - mTempUris.add(uris.get(k)); - } + mTempUris.addAll(uris); } catch (Exception e) { e.printStackTrace(); } diff --git a/app/src/main/java/swati4star/createpdf/util/Constants.java b/app/src/main/java/swati4star/createpdf/util/Constants.java index df9557780..9b9d971c4 100644 --- a/app/src/main/java/swati4star/createpdf/util/Constants.java +++ b/app/src/main/java/swati4star/createpdf/util/Constants.java @@ -24,4 +24,5 @@ public class Constants { public static final String DATABASE_NAME = "ImagesToPdfDB.db"; public static final String DEFAULT_FONT_FAMILY_TEXT = "DefaultFontFamily"; public static final String DEFAULT_FONT_FAMILY = "TIMES_ROMAN"; + public static final String RESULT = "result"; }