From 9bf73529a749d1af69a1392b1a4182103bfd524e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Wed, 9 Oct 2013 22:49:23 +0200 Subject: [PATCH] Add support for Litecoin donations --- res/values/strings.xml | 1 + src/org/fdroid/fdroid/AppDetails.java | 17 +++++++++++++---- src/org/fdroid/fdroid/DB.java | 19 ++++++++++++++----- src/org/fdroid/fdroid/RepoXMLHandler.java | 2 ++ 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 360004ffd..6720fb625 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -94,6 +94,7 @@ Source Code Update Bitcoin + Litecoin Flattr Donate diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 593f6d740..0bc9b4292 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -170,8 +170,9 @@ public class AppDetails extends ListActivity { private static final int SHARE = Menu.FIRST + 7; private static final int DONATE = Menu.FIRST + 8; private static final int BITCOIN = Menu.FIRST + 9; - private static final int FLATTR = Menu.FIRST + 10; - private static final int DONATE_URL = Menu.FIRST + 11; + private static final int LITECOIN = Menu.FIRST + 10; + private static final int FLATTR = Menu.FIRST + 11; + private static final int DONATE_URL = Menu.FIRST + 12; private DB.App app; private int app_currentvercode; @@ -660,8 +661,8 @@ public class AppDetails extends ListActivity { android.R.drawable.ic_menu_view); } - if (app.detail_bitcoinAddr != null && app.detail_flattrID != null && - app.detail_donateURL != null) { + if (app.detail_bitcoinAddr != null && app.detail_litecoinAddr != null && + app.detail_flattrID != null && app.detail_donateURL != null) { SubMenu donate = menu.addSubMenu(Menu.NONE, DONATE, 7, R.string.menu_donate).setIcon( android.R.drawable.ic_menu_view); @@ -669,6 +670,10 @@ public class AppDetails extends ListActivity { donate.add(Menu.NONE, BITCOIN, 8, R.string.menu_bitcoin).setIcon( android.R.drawable.ic_menu_view); } + if (app.detail_litecoinAddr != null) { + donate.add(Menu.NONE, LITECOIN, 8, R.string.menu_litecoin).setIcon( + android.R.drawable.ic_menu_view); + } if (app.detail_flattrID != null) { donate.add(Menu.NONE, FLATTR, 9, R.string.menu_flattr).setIcon( android.R.drawable.ic_menu_view); @@ -739,6 +744,10 @@ public class AppDetails extends ListActivity { tryOpenUri("bitcoin:" + app.detail_bitcoinAddr); return true; + case LITECOIN: + tryOpenUri("litecoin:" + app.detail_litecoinAddr); + return true; + case FLATTR: tryOpenUri("https://flattr.com/thing/" + app.detail_flattrID); return true; diff --git a/src/org/fdroid/fdroid/DB.java b/src/org/fdroid/fdroid/DB.java index 8a7525dee..6bb4808d1 100644 --- a/src/org/fdroid/fdroid/DB.java +++ b/src/org/fdroid/fdroid/DB.java @@ -94,8 +94,9 @@ public class DB { + "webURL text, " + "trackerURL text, " + "sourceURL text, " + "curVersion text," + "curVercode integer," + "antiFeatures string," + "donateURL string," - + "bitcoinAddr string," + "flattrID string," - + "requirements string," + "category string," + "added string," + + "bitcoinAddr string," + "litecoinAddr string," + + "flattrID string," + "requirements string," + + "category string," + "added string," + "lastUpdated string," + "compatible int not null," + "ignoreUpdates int not null," + "primary key(id));"; @@ -112,6 +113,7 @@ public class DB { detail_sourceURL = null; detail_donateURL = null; detail_bitcoinAddr = null; + detail_litecoinAddr = null; detail_webURL = null; antiFeatures = null; requirements = null; @@ -162,6 +164,10 @@ public class DB { // Null when !detail_Populated public String detail_bitcoinAddr; + // Litecoin donate address, or null + // Null when !detail_Populated + public String detail_litecoinAddr; + // Flattr donate ID, or null // Null when !detail_Populated public String detail_flattrID; @@ -430,7 +436,7 @@ public class DB { public String lastetag; // last etag we updated from, null forces update } - private final int DBVersion = 24; + private final int DBVersion = 25; private static void createAppApk(SQLiteDatabase db) { db.execSQL(CREATE_TABLE_APP); @@ -640,8 +646,9 @@ public class DB { return result; } - private static final String[] POPULATE_APP_COLS = new String[] {"description", "webURL", - "trackerURL", "sourceURL", "donateURL", "bitcoinAddr", "flattrID" }; + private static final String[] POPULATE_APP_COLS = new String[] { + "description", "webURL", "trackerURL", "sourceURL", + "donateURL", "bitcoinAddr", "flattrID", "litecoinAddr" }; private void populateAppDetails(App app) { Cursor cursor = null; @@ -656,6 +663,7 @@ public class DB { app.detail_donateURL = cursor.getString(4); app.detail_bitcoinAddr = cursor.getString(5); app.detail_flattrID = cursor.getString(6); + app.detail_litecoinAddr = cursor.getString(7); app.detail_Populated = true; } catch (Exception e) { Log.d("FDroid", "Error populating app details " + app.id ); @@ -1123,6 +1131,7 @@ public class DB { values.put("sourceURL", upapp.detail_sourceURL); values.put("donateURL", upapp.detail_donateURL); values.put("bitcoinAddr", upapp.detail_bitcoinAddr); + values.put("litecoinAddr", upapp.detail_litecoinAddr); values.put("flattrID", upapp.detail_flattrID); values.put("added", upapp.added == null ? "" : mDateFormat.format(upapp.added)); diff --git a/src/org/fdroid/fdroid/RepoXMLHandler.java b/src/org/fdroid/fdroid/RepoXMLHandler.java index 0d0729d58..e8a34f588 100644 --- a/src/org/fdroid/fdroid/RepoXMLHandler.java +++ b/src/org/fdroid/fdroid/RepoXMLHandler.java @@ -206,6 +206,8 @@ public class RepoXMLHandler extends DefaultHandler { curapp.detail_donateURL = str; } else if (curel.equals("bitcoin")) { curapp.detail_bitcoinAddr = str; + } else if (curel.equals("litecoin")) { + curapp.detail_litecoinAddr = str; } else if (curel.equals("flattr")) { curapp.detail_flattrID = str; } else if (curel.equals("web")) {