From 25f378d0be8bc2d11c7ef69e8262e6165a1aa2ea Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 23 Aug 2022 19:01:35 +0200 Subject: [PATCH] DonateFragment: handle ActivityNotFoundException when clicking on bitcoin URI --- .../schildbach/oeffi/preference/DonateFragment.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/oeffi/src/de/schildbach/oeffi/preference/DonateFragment.java b/oeffi/src/de/schildbach/oeffi/preference/DonateFragment.java index 2362e20..4b29fc6 100644 --- a/oeffi/src/de/schildbach/oeffi/preference/DonateFragment.java +++ b/oeffi/src/de/schildbach/oeffi/preference/DonateFragment.java @@ -17,15 +17,28 @@ package de.schildbach.oeffi.preference; +import android.content.ActivityNotFoundException; import android.os.Bundle; +import android.preference.Preference; import android.preference.PreferenceFragment; import androidx.annotation.Nullable; import de.schildbach.oeffi.R; public class DonateFragment extends PreferenceFragment { + private static final String KEY_ABOUT_DONATE_BITCOIN = "about_donate_bitcoin"; + @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preference_donate); + final Preference donateBitcoinPreference = findPreference(KEY_ABOUT_DONATE_BITCOIN); + donateBitcoinPreference.setOnPreferenceClickListener(preference -> { + try { + startActivity(donateBitcoinPreference.getIntent()); + } catch (final ActivityNotFoundException x) { + donateBitcoinPreference.setEnabled(false); + } + return true; + }); } }