From 1bb803ef0a8a62f1948de97331d0c6f122430c3d Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Fri, 14 Apr 2023 21:14:37 +0200 Subject: [PATCH] Add donation link on non-Google installs Inspired by https://git.zx2c4.com/wireguard-android/commit/?id=dc1860c74dd67e18a66fe9e243eeffa689bef043 --- .../protect/card_locker/AboutActivity.java | 10 +++++++ .../main/java/protect/card_locker/Utils.java | 15 ++++++++++ app/src/main/res/layout/about_activity.xml | 30 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 56 insertions(+) diff --git a/app/src/main/java/protect/card_locker/AboutActivity.java b/app/src/main/java/protect/card_locker/AboutActivity.java index f7adc5dac..6decf1a22 100644 --- a/app/src/main/java/protect/card_locker/AboutActivity.java +++ b/app/src/main/java/protect/card_locker/AboutActivity.java @@ -39,6 +39,13 @@ public class AboutActivity extends CatimaAppCompatActivity { binding.privacy.setTag("https://catima.app/privacy-policy/"); binding.reportError.setTag("https://github.com/CatimaLoyalty/Android/issues"); binding.rate.setTag("https://play.google.com/store/apps/details?id=me.hackerchick.catima"); + binding.donate.setTag("https://catima.app/contribute/#donating"); + + boolean installedFromGooglePlay = Utils.installedFromGooglePlay(this); + // Hide Google Play rate button if not on Google Play + binding.rate.setVisibility(installedFromGooglePlay ? View.VISIBLE : View.GONE); + // Hide donate button on Google Play (Google Play doesn't allow donation links) + binding.donate.setVisibility(installedFromGooglePlay ? View.GONE : View.VISIBLE); bindClickListeners(); } @@ -74,6 +81,7 @@ public class AboutActivity extends CatimaAppCompatActivity { binding.privacy.setOnClickListener(openExternalBrowser); binding.reportError.setOnClickListener(openExternalBrowser); binding.rate.setOnClickListener(openExternalBrowser); + binding.donate.setOnClickListener(openExternalBrowser); binding.credits.setOnClickListener(view -> showCredits()); } @@ -86,6 +94,8 @@ public class AboutActivity extends CatimaAppCompatActivity { binding.privacy.setOnClickListener(null); binding.reportError.setOnClickListener(null); binding.rate.setOnClickListener(null); + binding.donate.setOnClickListener(null); + binding.credits.setOnClickListener(null); } diff --git a/app/src/main/java/protect/card_locker/Utils.java b/app/src/main/java/protect/card_locker/Utils.java index e99873707..024e0ea6e 100644 --- a/app/src/main/java/protect/card_locker/Utils.java +++ b/app/src/main/java/protect/card_locker/Utils.java @@ -622,4 +622,19 @@ public class Utils { textWhenNoImage.setTextColor(Utils.needsDarkForeground(headerColor) ? Color.BLACK : Color.WHITE); } } + + public static boolean installedFromGooglePlay(Context context) { + try { + String packageName = context.getPackageName(); + String installer; + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + installer = context.getPackageManager().getInstallSourceInfo(packageName).getInstallingPackageName(); + } else { + installer = context.getPackageManager().getInstallerPackageName(packageName); + } + return installer.equals("com.android.vending"); + } catch (Throwable ignored) { + return false; + } + } } diff --git a/app/src/main/res/layout/about_activity.xml b/app/src/main/res/layout/about_activity.xml index f5a05fe34..c01d03046 100644 --- a/app/src/main/res/layout/about_activity.xml +++ b/app/src/main/res/layout/about_activity.xml @@ -271,6 +271,36 @@ app:layout_constraintTop_toTopOf="parent" /> + + + + + + + Open front image in gallery app Open back image in gallery app Set barcode height + Donate