diff --git a/F-Droid/res/layout/app_details_summary.xml b/F-Droid/res/layout/app_details_summary.xml
index 295d9064c..f4c3438fc 100644
--- a/F-Droid/res/layout/app_details_summary.xml
+++ b/F-Droid/res/layout/app_details_summary.xml
@@ -153,6 +153,18 @@ Changelog" />
android:text="@string/menu_issues"
tools:text="@string/menu_issues" />
+
+
Ignore This Update
Website
Issues
+ Changelog
Source Code
Upgrade
Donate
diff --git a/F-Droid/src/org/fdroid/fdroid/AppDetails.java b/F-Droid/src/org/fdroid/fdroid/AppDetails.java
index 43f8ae41b..15513d7c5 100644
--- a/F-Droid/src/org/fdroid/fdroid/AppDetails.java
+++ b/F-Droid/src/org/fdroid/fdroid/AppDetails.java
@@ -1206,6 +1206,13 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
else
tv.setVisibility(View.GONE);
+ // Changelog button
+ tv = (TextView) view.findViewById(R.id.changelog);
+ if (getApp().changelogURL != null)
+ tv.setOnClickListener(mOnClickListener);
+ else
+ tv.setVisibility(View.GONE);
+
// Donate button
tv = (TextView) view.findViewById(R.id.donate);
if (getApp().donateURL != null)
@@ -1314,6 +1321,10 @@ public class AppDetails extends ActionBarActivity implements ProgressListener, A
((AppDetails) getActivity()).tryOpenUri(getApp().trackerURL);
break;
+ case R.id.changelog:
+ ((AppDetails) getActivity()).tryOpenUri(getApp().changelogURL);
+ break;
+
case R.id.donate:
((AppDetails) getActivity()).tryOpenUri(getApp().donateURL);
break;
diff --git a/F-Droid/src/org/fdroid/fdroid/RepoXMLHandler.java b/F-Droid/src/org/fdroid/fdroid/RepoXMLHandler.java
index 573c526a5..3fbd3e63a 100644
--- a/F-Droid/src/org/fdroid/fdroid/RepoXMLHandler.java
+++ b/F-Droid/src/org/fdroid/fdroid/RepoXMLHandler.java
@@ -189,6 +189,9 @@ public class RepoXMLHandler extends DefaultHandler {
case "source":
curapp.sourceURL = str;
break;
+ case "changelog":
+ curapp.changelogURL = str;
+ break;
case "donate":
curapp.donateURL = str;
break;
diff --git a/F-Droid/src/org/fdroid/fdroid/data/App.java b/F-Droid/src/org/fdroid/fdroid/data/App.java
index 9427d7a3a..2be638cc1 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/App.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/App.java
@@ -46,6 +46,8 @@ public class App extends ValueObject implements Comparable {
public String sourceURL;
+ public String changelogURL;
+
public String donateURL;
public String bitcoinAddr;
@@ -140,6 +142,9 @@ public class App extends ValueObject implements Comparable {
case AppProvider.DataColumns.SOURCE_URL:
sourceURL = cursor.getString(i);
break;
+ case AppProvider.DataColumns.CHANGELOG_URL:
+ changelogURL = cursor.getString(i);
+ break;
case AppProvider.DataColumns.DONATE_URL:
donateURL = cursor.getString(i);
break;
@@ -355,6 +360,7 @@ public class App extends ValueObject implements Comparable {
values.put(AppProvider.DataColumns.WEB_URL, webURL);
values.put(AppProvider.DataColumns.TRACKER_URL, trackerURL);
values.put(AppProvider.DataColumns.SOURCE_URL, sourceURL);
+ values.put(AppProvider.DataColumns.CHANGELOG_URL, changelogURL);
values.put(AppProvider.DataColumns.DONATE_URL, donateURL);
values.put(AppProvider.DataColumns.BITCOIN_ADDR, bitcoinAddr);
values.put(AppProvider.DataColumns.LITECOIN_ADDR, litecoinAddr);
diff --git a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
index 3d333476d..652328132 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/AppProvider.java
@@ -166,6 +166,7 @@ public class AppProvider extends FDroidProvider {
String WEB_URL = "webURL";
String TRACKER_URL = "trackerURL";
String SOURCE_URL = "sourceURL";
+ String CHANGELOG_URL = "changelogURL";
String DONATE_URL = "donateURL";
String BITCOIN_ADDR = "bitcoinAddr";
String LITECOIN_ADDR = "litecoinAddr";
@@ -194,7 +195,7 @@ public class AppProvider extends FDroidProvider {
String[] ALL = {
IS_COMPATIBLE, APP_ID, NAME, SUMMARY, ICON, DESCRIPTION,
- LICENSE, WEB_URL, TRACKER_URL, SOURCE_URL, DONATE_URL,
+ LICENSE, WEB_URL, TRACKER_URL, SOURCE_URL, CHANGELOG_URL, DONATE_URL,
BITCOIN_ADDR, LITECOIN_ADDR, DOGECOIN_ADDR, FLATTR_ID,
UPSTREAM_VERSION, UPSTREAM_VERSION_CODE, ADDED, LAST_UPDATED,
CATEGORIES, ANTI_FEATURES, REQUIREMENTS, IGNORE_ALLUPDATES,
diff --git a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
index bff048a6c..2fe5adf77 100644
--- a/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
+++ b/F-Droid/src/org/fdroid/fdroid/data/DBHelper.java
@@ -71,6 +71,7 @@ public class DBHelper extends SQLiteOpenHelper {
+ "webURL text, "
+ "trackerURL text, "
+ "sourceURL text, "
+ + "changelogURL text, "
+ "suggestedVercode text,"
+ "upstreamVersion text,"
+ "upstreamVercode integer,"
@@ -99,7 +100,7 @@ public class DBHelper extends SQLiteOpenHelper {
+ InstalledAppProvider.DataColumns.APPLICATION_LABEL + " TEXT NOT NULL "
+ " );";
- private static final int DB_VERSION = 47;
+ private static final int DB_VERSION = 48;
private final Context context;
@@ -251,7 +252,7 @@ public class DBHelper extends SQLiteOpenHelper {
values.put(RepoProvider.DataColumns.VERSION, version);
values.put(RepoProvider.DataColumns.IN_USE, inUse);
values.put(RepoProvider.DataColumns.PRIORITY, priority);
- values.put(RepoProvider.DataColumns.LAST_ETAG, (String)null);
+ values.put(RepoProvider.DataColumns.LAST_ETAG, (String) null);
Log.i(TAG, "Adding repository " + name);
db.insert(TABLE_REPO, null, values);
@@ -280,6 +281,7 @@ public class DBHelper extends SQLiteOpenHelper {
if (oldVersion < 43) createInstalledApp(db);
addAppLabelToInstalledCache(db, oldVersion);
addIsSwapToRepo(db, oldVersion);
+ addChangelogToRepo(db, oldVersion);
}
/**
@@ -414,6 +416,13 @@ public class DBHelper extends SQLiteOpenHelper {
}
}
+ private void addChangelogToRepo(SQLiteDatabase db, int oldVersion) {
+ if (oldVersion < 48 && !columnExists(db, TABLE_APP, "changelogURL")) {
+ Log.i(TAG, "Adding changelogURL column to " + TABLE_APP);
+ db.execSQL("Alter table " + TABLE_APP + " add column changelogURL text");
+ }
+ }
+
private void resetTransient(SQLiteDatabase db, int oldVersion) {
// Before version 42, only transient info was stored in here. As of some time
// just before 42 (F-Droid 0.60ish) it now has "ignore this version" info which