From a7e1101c87204d052765aeb153ac37f6cc7db061 Mon Sep 17 00:00:00 2001 From: seven332 Date: Wed, 19 Sep 2018 19:58:40 +0800 Subject: [PATCH] Statement about about donation --- .../ehviewer/ui/fragment/AboutFragment.java | 60 ++++++++--- app/src/main/res/layout/dialog_donate.xml | 101 ++++++++++++++++++ app/src/main/res/values-de/strings.xml | 3 - app/src/main/res/values-es/strings.xml | 3 - app/src/main/res/values-fr/strings.xml | 3 - app/src/main/res/values-ja/strings.xml | 3 - app/src/main/res/values-ko/strings.xml | 2 - app/src/main/res/values-zh-rCN/strings.xml | 9 +- app/src/main/res/values-zh-rHK/strings.xml | 9 +- app/src/main/res/values-zh-rTW/strings.xml | 9 +- app/src/main/res/values/strings.xml | 9 +- 11 files changed, 172 insertions(+), 39 deletions(-) create mode 100644 app/src/main/res/layout/dialog_donate.xml diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java index c5f689a6f..a0eb28b65 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/AboutFragment.java @@ -19,18 +19,20 @@ package com.hippo.ehviewer.ui.fragment; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; +import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.support.v7.app.AlertDialog; +import android.util.Base64; +import android.widget.TextView; import android.widget.Toast; - -import com.hippo.ehviewer.Analytics; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; -import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.ui.CommonOperations; import com.hippo.util.AppHelper; +import java.io.UnsupportedEncodingException; public class AboutFragment extends PreferenceFragment implements Preference.OnPreferenceClickListener { @@ -49,14 +51,12 @@ public class AboutFragment extends PreferenceFragment Preference checkForUpdate = findPreference(KEY_CHECK_FOR_UPDATES); author.setSummary(getString(R.string.settings_about_author_summary).replace('$', '@')); - donate.setSummary(getString(R.string.settings_about_donate_summary).replace('$', '@')); author.setOnPreferenceClickListener(this); donate.setOnPreferenceClickListener(this); checkForUpdate.setOnPreferenceClickListener(this); } - @Override public boolean onPreferenceClick(Preference preference) { String key = preference.getKey(); @@ -64,17 +64,51 @@ public class AboutFragment extends PreferenceFragment AppHelper.sendEmail(getActivity(), EhApplication.getDeveloperEmail(), "About EhViewer", null); } else if (KEY_DONATE.equals(key)) { - ClipboardManager cmb = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - cmb.setPrimaryClip(ClipData.newPlainText(null, "seven332$163.com".replace('$', '@'))); - Toast.makeText(getActivity(), R.string.settings_about_donate_toast, Toast.LENGTH_SHORT).show(); - - new AlertDialog.Builder(getActivity()) - .setTitle(R.string.settings_about_donate) - .setMessage(getString(R.string.settings_about_donate_message).replace('$', '@')) - .show(); + showDonationDialog(); } else if (KEY_CHECK_FOR_UPDATES.equals(key)) { CommonOperations.checkUpdate(getActivity(), true); } return true; } + + private void showDonationDialog() { + AlertDialog dialog = new AlertDialog.Builder(getActivity()) + .setView(R.layout.dialog_donate) + .show(); + + String alipayStr = base64Decode("c2V2ZW4zMzJAMTYzLmNvbQ=="); + TextView alipayText = dialog.findViewById(R.id.alipay_text); + alipayText.setText(alipayStr); + dialog.findViewById(R.id.alipay_copy).setOnClickListener(v -> copyToClipboard(alipayStr)); + + String paypalStr = base64Decode("aHR0cHM6Ly9wYXlwYWwubWUvc2V2ZW4zMzI="); + TextView paypalText = dialog.findViewById(R.id.paypal_text); + paypalText.setText(paypalStr); + dialog.findViewById(R.id.paypal_open).setOnClickListener(v -> openUrl(paypalStr)); + dialog.findViewById(R.id.paypal_copy).setOnClickListener(v -> copyToClipboard(paypalStr)); + } + + private static String base64Decode(String encoded) { + byte[] bytes = Base64.decode(encoded, Base64.DEFAULT); + try { + return new String(bytes, "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException(e); + } + } + + private void copyToClipboard(String text) { + ClipboardManager cmb = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); + if (cmb != null) { + cmb.setPrimaryClip(ClipData.newPlainText(null, text)); + Toast.makeText(getActivity(), R.string.settings_about_donate_copied, Toast.LENGTH_SHORT).show(); + } + } + + private void openUrl(String url) { + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(url)); + Intent chooser = Intent.createChooser(intent, ""); + startActivity(chooser); + } } diff --git a/app/src/main/res/layout/dialog_donate.xml b/app/src/main/res/layout/dialog_donate.xml new file mode 100644 index 000000000..668390965 --- /dev/null +++ b/app/src/main/res/layout/dialog_donate.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + +