Add support for Litecoin donations

This commit is contained in:
Daniel Martí 2013-10-09 22:49:23 +02:00
parent c9159b8bff
commit 9bf73529a7
4 changed files with 30 additions and 9 deletions

View File

@ -94,6 +94,7 @@
<string name="menu_source">Source Code</string>
<string name="menu_update">Update</string>
<string name="menu_bitcoin">Bitcoin</string>
<string name="menu_litecoin">Litecoin</string>
<string name="menu_flattr">Flattr</string>
<string name="menu_donate">Donate</string>

View File

@ -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;

View File

@ -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));

View File

@ -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")) {