From 716d02ed040b776d44d11b3a9f771952c5ddcb93 Mon Sep 17 00:00:00 2001 From: vyankatesh Date: Mon, 13 Aug 2018 20:12:30 +0530 Subject: [PATCH] Fixed issue #214 Added 'set as default' option in Page Size dialog. --- .../fragment/ImageToPdfFragment.java | 4 +- .../createpdf/fragment/TextToPdfFragment.java | 3 +- .../swati4star/createpdf/util/Constants.java | 2 + .../createpdf/util/PageSizeUtils.java | 20 ++- .../main/res/layout/set_page_size_dialog.xml | 152 ++++++++++-------- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 9 files changed, 112 insertions(+), 77 deletions(-) diff --git a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java index 569bf2199..f46eb7666 100755 --- a/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java +++ b/app/src/main/java/swati4star/createpdf/fragment/ImageToPdfFragment.java @@ -48,6 +48,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; @@ -112,7 +113,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, mMorphButtonUtility = new MorphButtonUtility(mActivity); mFileUtils = new FileUtils(mActivity); mPdfOptions = new ImageToPDFOptions(); - PageSizeUtils.mPageSize = getString(R.string.a4); + PageSizeUtils.mPageSize = mSharedPreferences.getString(Constants.DEFAULT_PAGE_SIZE_TEXT , + Constants.DEFAULT_PAGE_SIZE); mMorphButtonUtility.morphToGrey(mCreatePdf, mMorphButtonUtility.integer()); mCreatePdf.setEnabled(false); mOpenPdf.setVisibility(View.GONE); diff --git a/app/src/main/java/swati4star/createpdf/fragment/TextToPdfFragment.java b/app/src/main/java/swati4star/createpdf/fragment/TextToPdfFragment.java index 888af827a..0375454ab 100644 --- a/app/src/main/java/swati4star/createpdf/fragment/TextToPdfFragment.java +++ b/app/src/main/java/swati4star/createpdf/fragment/TextToPdfFragment.java @@ -93,7 +93,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, showEnhancementOptions(); mMorphButtonUtility.morphToGrey(mCreateTextPdf, mMorphButtonUtility.integer()); mCreateTextPdf.setEnabled(false); - PageSizeUtils.mPageSize = getString(R.string.a4); + PageSizeUtils.mPageSize = mSharedPreferences.getString(Constants.DEFAULT_PAGE_SIZE_TEXT , + Constants.DEFAULT_PAGE_SIZE); return rootview; } diff --git a/app/src/main/java/swati4star/createpdf/util/Constants.java b/app/src/main/java/swati4star/createpdf/util/Constants.java index 12cab871c..2bbb2fd33 100644 --- a/app/src/main/java/swati4star/createpdf/util/Constants.java +++ b/app/src/main/java/swati4star/createpdf/util/Constants.java @@ -25,4 +25,6 @@ public class Constants { public static final String DEFAULT_FONT_FAMILY_TEXT = "DefaultFontFamily"; public static final String DEFAULT_FONT_FAMILY = "TIMES_ROMAN"; public static final String RESULT = "result"; + public static final String DEFAULT_PAGE_SIZE_TEXT = "DefaultPageSize"; + public static final String DEFAULT_PAGE_SIZE = "A4"; } diff --git a/app/src/main/java/swati4star/createpdf/util/PageSizeUtils.java b/app/src/main/java/swati4star/createpdf/util/PageSizeUtils.java index 59b766623..88f4b3a48 100644 --- a/app/src/main/java/swati4star/createpdf/util/PageSizeUtils.java +++ b/app/src/main/java/swati4star/createpdf/util/PageSizeUtils.java @@ -1,7 +1,11 @@ package swati4star.createpdf.util; import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.view.View; +import android.widget.CheckBox; +import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Spinner; @@ -12,10 +16,15 @@ public class PageSizeUtils { private final Context mActivity; + private SharedPreferences mSharedPreferences; public static String mPageSize = "A4"; + private String mDefaultPageSize; public PageSizeUtils(Context mActivity) { this.mActivity = mActivity; + mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(mActivity); + mDefaultPageSize = mSharedPreferences.getString(Constants.DEFAULT_PAGE_SIZE_TEXT, + Constants.DEFAULT_PAGE_SIZE); } /** @@ -66,19 +75,28 @@ public void showPageSizeDialog() { .negativeText(android.R.string.cancel) .onPositive((dialog1, which) -> { View view = dialog1.getCustomView(); + CheckBox mSetAsDefault = view.findViewById(R.id.set_as_default); RadioGroup radioGroup = view.findViewById(R.id.radio_group_page_size); int selectedId = radioGroup.getCheckedRadioButtonId(); Spinner spinnerA = view.findViewById(R.id.spinner_page_size_a0_a10); Spinner spinnerB = view.findViewById(R.id.spinner_page_size_b0_b10); mPageSize = getPageSize(selectedId, spinnerA.getSelectedItem().toString(), spinnerB.getSelectedItem().toString()); + if (mSetAsDefault.isChecked()) { + SharedPreferences.Editor editor = mSharedPreferences.edit(); + editor.putString(Constants.DEFAULT_PAGE_SIZE_TEXT, mPageSize); + editor.apply(); + } }).build(); View view = materialDialog.getCustomView(); RadioGroup radioGroup = view.findViewById(R.id.radio_group_page_size); Spinner spinnerA = view.findViewById(R.id.spinner_page_size_a0_a10); Spinner spinnerB = view.findViewById(R.id.spinner_page_size_b0_b10); - if (mPageSize.equals(mActivity.getString(R.string.a4))) { + RadioButton radioButtonDefault = view.findViewById(R.id.page_size_default); + radioButtonDefault.setText(String.format(mActivity.getString(R.string.default_page_size), mDefaultPageSize)); + + if (mPageSize.equals(mDefaultPageSize)) { radioGroup.check(R.id.page_size_default); } else if (mPageSize.equals(mActivity.getString(R.string.letter))) { diff --git a/app/src/main/res/layout/set_page_size_dialog.xml b/app/src/main/res/layout/set_page_size_dialog.xml index a3e16e647..dea377250 100644 --- a/app/src/main/res/layout/set_page_size_dialog.xml +++ b/app/src/main/res/layout/set_page_size_dialog.xml @@ -2,92 +2,104 @@ + android:orientation="vertical"> - + android:orientation="horizontal"> - + android:orientation="vertical"> - + - + - + - + - + - + - + - + - + - + android:layout_height="match_parent" + android:gravity="bottom" + android:orientation="vertical"> - + + + + + + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 522a38eb3..6a83afa41 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -136,7 +136,7 @@ LETTER LEGAL A4 - DEFAULT (A4) + DEFAULT ( %s ) Text File Selected Directory diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f7cfcea17..3c21aac86 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -136,7 +136,7 @@ LETTER LEGAL A4 - DEFAULT (A4) + DEFAULT ( %s ) diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index c55b51e51..386aa4816 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -135,7 +135,7 @@ LETTER LEGAL A4 - DEFAULT (A4) + DEFAULT ( %s ) Directory Moving your files diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c3245f098..e44373a75 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -186,7 +186,7 @@ LETTER LEGAL A4 - DEFAULT (A4) + DEFAULT ( %s ) Do you want to delete all selected files?