From a367aeaf12f97404012ffba73e5cd2768a81f2c0 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Thu, 19 Apr 2018 11:09:55 +0200 Subject: [PATCH] Change font by Droid Sans Mono Slashed and activate by default, add it in password generator #86 --- LICENSES/LICENSE_FONT_DROID_SANS_MONO.txt | 201 ++++++++++++++++++ .../assets/fonts/DroidSansMonoSlashed.ttf | Bin 0 -> 117468 bytes .../keepass/activities/EntryEditActivity.java | 16 +- .../GeneratePasswordDialogFragment.java | 8 +- .../keepass/utils/SpannableReplacer.java | 88 -------- .../com/kunzisoft/keepass/utils/Util.java | 67 +----- .../keepass/view/EntryContentsView.java | 6 +- .../keepass/view/EntryCustomField.java | 2 +- .../keepass/view/EntryEditCustomField.java | 2 +- app/src/main/res/values/donottranslate.xml | 2 +- 10 files changed, 229 insertions(+), 163 deletions(-) create mode 100644 LICENSES/LICENSE_FONT_DROID_SANS_MONO.txt create mode 100644 app/src/main/assets/fonts/DroidSansMonoSlashed.ttf delete mode 100644 app/src/main/java/com/kunzisoft/keepass/utils/SpannableReplacer.java diff --git a/LICENSES/LICENSE_FONT_DROID_SANS_MONO.txt b/LICENSES/LICENSE_FONT_DROID_SANS_MONO.txt new file mode 100644 index 000000000..5c304d1a4 --- /dev/null +++ b/LICENSES/LICENSE_FONT_DROID_SANS_MONO.txt @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/app/src/main/assets/fonts/DroidSansMonoSlashed.ttf b/app/src/main/assets/fonts/DroidSansMonoSlashed.ttf new file mode 100644 index 0000000000000000000000000000000000000000..57242f6b93e05e602c19debf09ba267ea3ccca65 GIT binary patch literal 117468 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ŊS=_IL$xVf^0fCkAV85NN#5g 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 scrollView.fullScroll(ScrollView.FOCUS_DOWN)); @@ -483,10 +485,10 @@ public class EntryEditActivity extends LockingHideActivity boolean visibilityFontActivated = PreferencesUtil.fieldFontIsInVisibility(this); if (visibilityFontActivated) { - Util.applyFontVisibilityTo(entryUserNameView); - Util.applyFontVisibilityTo(entryPasswordView); - Util.applyFontVisibilityTo(entryConfirmationPasswordView); - Util.applyFontVisibilityTo(entryCommentView); + Util.applyFontVisibilityTo(this, entryUserNameView); + Util.applyFontVisibilityTo(this, entryPasswordView); + Util.applyFontVisibilityTo(this, entryConfirmationPasswordView); + Util.applyFontVisibilityTo(this, entryCommentView); } if (mEntry.allowExtraFields()) { diff --git a/app/src/main/java/com/kunzisoft/keepass/dialogs/GeneratePasswordDialogFragment.java b/app/src/main/java/com/kunzisoft/keepass/dialogs/GeneratePasswordDialogFragment.java index 5265a16ec..a92e25cff 100644 --- a/app/src/main/java/com/kunzisoft/keepass/dialogs/GeneratePasswordDialogFragment.java +++ b/app/src/main/java/com/kunzisoft/keepass/dialogs/GeneratePasswordDialogFragment.java @@ -36,6 +36,7 @@ import android.widget.Toast; import com.kunzisoft.keepass.R; import com.kunzisoft.keepass.password.PasswordGenerator; import com.kunzisoft.keepass.settings.PreferencesUtil; +import com.kunzisoft.keepass.utils.Util; import java.util.Set; @@ -46,6 +47,7 @@ public class GeneratePasswordDialogFragment extends DialogFragment { private GeneratePasswordListener mListener; private View root; private EditText lengthTextView; + private EditText passwordView; private CompoundButton uppercaseBox; private CompoundButton lowercaseBox; @@ -75,6 +77,9 @@ public class GeneratePasswordDialogFragment extends DialogFragment { LayoutInflater inflater = getActivity().getLayoutInflater(); root = inflater.inflate(R.layout.generate_password, null); + passwordView = root.findViewById(R.id.password); + Util.applyFontVisibilityTo(getContext(), passwordView); + lengthTextView = root.findViewById(R.id.length); uppercaseBox = root.findViewById(R.id.cb_uppercase); @@ -109,9 +114,8 @@ public class GeneratePasswordDialogFragment extends DialogFragment { builder.setView(root) .setPositiveButton(R.string.accept, (dialog, id) -> { - EditText password = root.findViewById(R.id.password); Bundle bundle = new Bundle(); - bundle.putString(KEY_PASSWORD_ID, password.getText().toString()); + bundle.putString(KEY_PASSWORD_ID, passwordView.getText().toString()); mListener.acceptPassword(bundle); dismiss(); diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/SpannableReplacer.java b/app/src/main/java/com/kunzisoft/keepass/utils/SpannableReplacer.java deleted file mode 100644 index 38e81f2d1..000000000 --- a/app/src/main/java/com/kunzisoft/keepass/utils/SpannableReplacer.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2017 Brian Pellin, Jeremy Jamet / Kunzisoft. - * - * This file is part of KeePass DX. - * - * KeePass DX is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * KeePass DX is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with KeePass DX. If not, see . - * - */ -package com.kunzisoft.keepass.utils; - -import android.os.Parcel; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.TextUtils; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class SpannableReplacer { - private final CharSequence mSource; - private final CharSequence mReplacement; - private final Matcher mMatcher; - private int mAppendPosition; - private final boolean mIsSpannable; - - public static CharSequence replace(CharSequence source, String regex, - CharSequence replacement) { - - Pattern pattern = Pattern.compile(regex); - Matcher matcher = pattern.matcher(source); - return new SpannableReplacer(source, matcher, replacement).doReplace(); - } - - private SpannableReplacer(CharSequence source, Matcher matcher, - CharSequence replacement) { - mSource = source; - mReplacement = replacement; - mMatcher = matcher; - mAppendPosition = 0; - mIsSpannable = replacement instanceof Spannable; - } - - private CharSequence doReplace() { - SpannableStringBuilder buffer = new SpannableStringBuilder(); - while (mMatcher.find()) { - appendReplacement(buffer); - } - return appendTail(buffer); - } - - private void appendReplacement(SpannableStringBuilder buffer) { - buffer.append(mSource.subSequence(mAppendPosition, mMatcher.start())); - CharSequence replacement = mIsSpannable - ? copyCharSequenceWithSpans(mReplacement) - : mReplacement; - buffer.append(replacement); - - mAppendPosition = mMatcher.end(); - } - - public SpannableStringBuilder appendTail(SpannableStringBuilder buffer) { - buffer.append(mSource.subSequence(mAppendPosition, mSource.length())); - return buffer; - } - - // This is a weird way of copying spans, but I don't know any better way. - private CharSequence copyCharSequenceWithSpans(CharSequence string) { - Parcel parcel = Parcel.obtain(); - try { - TextUtils.writeToParcel(string, parcel, 0); - parcel.setDataPosition(0); - return TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(parcel); - } finally { - parcel.recycle(); - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/kunzisoft/keepass/utils/Util.java b/app/src/main/java/com/kunzisoft/keepass/utils/Util.java index d4112d1b4..cae34f1c2 100644 --- a/app/src/main/java/com/kunzisoft/keepass/utils/Util.java +++ b/app/src/main/java/com/kunzisoft/keepass/utils/Util.java @@ -24,11 +24,6 @@ import android.content.Context; import android.content.Intent; import android.graphics.Typeface; import android.net.Uri; -import android.text.Editable; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.TextWatcher; -import android.text.style.StrikethroughSpan; import android.widget.EditText; import android.widget.TextView; @@ -61,66 +56,18 @@ public class Util { } } - private final static String stringToStrikeThrough = "0"; - /** - * Replace font by monospace and strike through all zeros, must be called after seText() + * Replace font by monospace, must be called after seText() */ - public static void applyFontVisibilityTo(final TextView textView) { - textView.setText(strikeThroughToZero(textView.getText())); - textView.setTypeface(Typeface.MONOSPACE); + public static void applyFontVisibilityTo(final Context context, final TextView textView) { + Typeface typeFace=Typeface.createFromAsset(context.getAssets(),"fonts/DroidSansMonoSlashed.ttf"); + textView.setTypeface(typeFace); } /** - * Replace font by monospace and strike through all zeros, must be called after seText() + * Replace font by monospace, must be called after seText() */ - public static void applyFontVisibilityTo(final EditText editText) { - // Assign spans to default text - editText.setText(strikeThroughToZero(editText.getText())); - // Add spans for each new 0 character - class TextWatcherCustomFont implements TextWatcher { - - private boolean applySpannable; - - @Override - public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) { - applySpannable = count < after; - } - - @Override - public void onTextChanged(CharSequence charSequence, int start, int before, int count) { - if (applySpannable) { - String text = charSequence.toString(); - if (text.contains(stringToStrikeThrough)) { - for (int index = text.indexOf(stringToStrikeThrough); - index >= 0; index = text.indexOf(stringToStrikeThrough, - index + 1)) { - editText.getText().setSpan(new StrikethroughSpan(), - index, - index + stringToStrikeThrough.length(), - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - } - } - } - - @Override - public void afterTextChanged(Editable editable) {} - }; - TextWatcher textWatcher = new TextWatcherCustomFont(); - editText.addTextChangedListener(textWatcher); - editText.setTypeface(Typeface.MONOSPACE); + public static void applyFontVisibilityTo(final Context context, final EditText editText) { + applyFontVisibilityTo(context, (TextView) editText); } - - private static CharSequence strikeThroughToZero(final CharSequence text) { - if (text.toString().contains(stringToStrikeThrough)) { - SpannableString spannable = new SpannableString(stringToStrikeThrough); - spannable.setSpan(new StrikethroughSpan(), - 0, - stringToStrikeThrough.length(), - Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - return SpannableReplacer.replace(text, stringToStrikeThrough, spannable); - } - return text; - } } diff --git a/app/src/main/java/com/kunzisoft/keepass/view/EntryContentsView.java b/app/src/main/java/com/kunzisoft/keepass/view/EntryContentsView.java index 707d4c51a..a2854dab7 100644 --- a/app/src/main/java/com/kunzisoft/keepass/view/EntryContentsView.java +++ b/app/src/main/java/com/kunzisoft/keepass/view/EntryContentsView.java @@ -115,7 +115,7 @@ public class EntryContentsView extends LinearLayout { userNameContainerView.setVisibility(VISIBLE); userNameView.setText(userName); if (fontInVisibility) - Util.applyFontVisibilityTo(userNameView); + Util.applyFontVisibilityTo(getContext(), userNameView); } else { userNameContainerView.setVisibility(GONE); } @@ -134,7 +134,7 @@ public class EntryContentsView extends LinearLayout { passwordContainerView.setVisibility(VISIBLE); passwordView.setText(password); if (fontInVisibility) - Util.applyFontVisibilityTo(passwordView); + Util.applyFontVisibilityTo(getContext(), passwordView); passwordActionView.setVisibility(GONE); } else { passwordContainerView.setVisibility(GONE); @@ -187,7 +187,7 @@ public class EntryContentsView extends LinearLayout { commentContainerView.setVisibility(VISIBLE); commentView.setText(comment); if (fontInVisibility) - Util.applyFontVisibilityTo(commentView); + Util.applyFontVisibilityTo(getContext(), commentView); } else { commentContainerView.setVisibility(GONE); } diff --git a/app/src/main/java/com/kunzisoft/keepass/view/EntryCustomField.java b/app/src/main/java/com/kunzisoft/keepass/view/EntryCustomField.java index 83f593f7b..56733d4d1 100644 --- a/app/src/main/java/com/kunzisoft/keepass/view/EntryCustomField.java +++ b/app/src/main/java/com/kunzisoft/keepass/view/EntryCustomField.java @@ -66,7 +66,7 @@ public class EntryCustomField extends LinearLayout { public void applyFontVisibility(boolean fontInVisibility) { if (fontInVisibility) - Util.applyFontVisibilityTo(valueView); + Util.applyFontVisibilityTo(getContext(), valueView); } public void setLabel(String label) { diff --git a/app/src/main/java/com/kunzisoft/keepass/view/EntryEditCustomField.java b/app/src/main/java/com/kunzisoft/keepass/view/EntryEditCustomField.java index dd3d7c427..85a7a8094 100644 --- a/app/src/main/java/com/kunzisoft/keepass/view/EntryEditCustomField.java +++ b/app/src/main/java/com/kunzisoft/keepass/view/EntryEditCustomField.java @@ -86,7 +86,7 @@ public class EntryEditCustomField extends RelativeLayout { public void setFontVisibility(boolean applyFontVisibility) { if (applyFontVisibility) - Util.applyFontVisibilityTo(valueView); + Util.applyFontVisibilityTo(getContext(), valueView); } public void deleteViewFromParent() { diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 69b671a79..2a4f61099 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -105,7 +105,7 @@ true true true - false + true true true false