From 774ca02d22469fca776aca72afa013c5f95d43ed Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 30 Nov 2016 22:28:12 +1100 Subject: [PATCH] Use correct URIs when attempting to show donate links. This extracts the functionality from the old AppDetails which prefixes donation links with the relevant scheme (bitcoin: or litecoin:) or URL (https://flattr.com/thing/) into the App class. --- .../java/org/fdroid/fdroid/AppDetails.java | 6 +++--- .../main/java/org/fdroid/fdroid/data/App.java | 16 ++++++++++++++++ .../views/AppDetailsRecyclerViewAdapter.java | 18 +++++++++--------- 3 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/AppDetails.java b/app/src/main/java/org/fdroid/fdroid/AppDetails.java index 1def0e6ed..feb08f10c 100644 --- a/app/src/main/java/org/fdroid/fdroid/AppDetails.java +++ b/app/src/main/java/org/fdroid/fdroid/AppDetails.java @@ -1182,13 +1182,13 @@ public class AppDetails extends AppCompatActivity { url = app.donateURL; break; case R.id.bitcoin: - url = "bitcoin:" + app.bitcoinAddr; + url = app.getBitcoinUri(); break; case R.id.litecoin: - url = "litecoin:" + app.litecoinAddr; + url = app.getLitecoinUri(); break; case R.id.flattr: - url = "https://flattr.com/thing/" + app.flattrID; + url = app.getFlattrUri(); break; } if (url != null) { diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java index 671fca3cd..60e5cfd44 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -12,6 +12,7 @@ import android.database.Cursor; import android.os.Environment; import android.os.Parcel; import android.os.Parcelable; +import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Log; @@ -552,6 +553,21 @@ public class App extends ValueObject implements Comparable, Parcelable { return new AppFilter().filter(this); } + @Nullable + public String getBitcoinUri() { + return TextUtils.isEmpty(bitcoinAddr) ? null : "bitcoin:" + bitcoinAddr; + } + + @Nullable + public String getLitecoinUri() { + return TextUtils.isEmpty(litecoinAddr) ? null : "litecoin:" + litecoinAddr; + } + + @Nullable + public String getFlattrUri() { + return TextUtils.isEmpty(flattrID) ? null : "https://flattr.com/thing/" + flattrID; + } + public String getSuggestedVersionName() { return suggestedVersionName; } diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java index 075c69b4f..9168951ce 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -158,9 +158,9 @@ public class AppDetailsRecyclerViewAdapter private boolean shouldShowDonate() { return uriIsSetAndCanBeOpened(mApp.donateURL) || - uriIsSetAndCanBeOpened(mApp.bitcoinAddr) || - uriIsSetAndCanBeOpened(mApp.litecoinAddr) || - uriIsSetAndCanBeOpened(mApp.flattrID); + uriIsSetAndCanBeOpened(mApp.getBitcoinUri()) || + uriIsSetAndCanBeOpened(mApp.getLitecoinUri()) || + uriIsSetAndCanBeOpened(mApp.getFlattrUri()); } public void clearProgress() { @@ -333,18 +333,18 @@ public class AppDetailsRecyclerViewAdapter } // Bitcoin - if (uriIsSetAndCanBeOpened(mApp.bitcoinAddr)) { - addLinkItemView(vh.contentView, R.string.menu_bitcoin, R.drawable.ic_bitcoin, "bitcoin:" + mApp.bitcoinAddr); + if (uriIsSetAndCanBeOpened(mApp.getBitcoinUri())) { + addLinkItemView(vh.contentView, R.string.menu_bitcoin, R.drawable.ic_bitcoin, mApp.getBitcoinUri()); } // Litecoin - if (uriIsSetAndCanBeOpened(mApp.litecoinAddr)) { - addLinkItemView(vh.contentView, R.string.menu_litecoin, R.drawable.ic_litecoin, "litecoin:" + mApp.litecoinAddr); + if (uriIsSetAndCanBeOpened(mApp.getLitecoinUri())) { + addLinkItemView(vh.contentView, R.string.menu_litecoin, R.drawable.ic_litecoin, mApp.getLitecoinUri()); } // Flattr - if (uriIsSetAndCanBeOpened(mApp.flattrID)) { - addLinkItemView(vh.contentView, R.string.menu_flattr, R.drawable.ic_flattr, "https://flattr.com/thing/" + mApp.flattrID); + if (uriIsSetAndCanBeOpened(mApp.getFlattrUri())) { + addLinkItemView(vh.contentView, R.string.menu_flattr, R.drawable.ic_flattr, mApp.getFlattrUri()); } } else if (viewType == VIEWTYPE_LINKS) { final ExpandableLinearLayoutViewHolder vh = (ExpandableLinearLayoutViewHolder) holder;