From f0c00c144c0eff50fc4c634eebe9524f20187d2a Mon Sep 17 00:00:00 2001 From: Nico Alt Date: Thu, 4 Jun 2015 11:57:16 +0200 Subject: [PATCH] Add support for changelog links --- F-Droid/res/layout/app_details_summary.xml | 12 ++++++++++++ F-Droid/res/values/strings.xml | 1 + F-Droid/src/org/fdroid/fdroid/AppDetails.java | 11 +++++++++++ F-Droid/src/org/fdroid/fdroid/RepoXMLHandler.java | 3 +++ F-Droid/src/org/fdroid/fdroid/data/App.java | 6 ++++++ F-Droid/src/org/fdroid/fdroid/data/AppProvider.java | 3 ++- F-Droid/src/org/fdroid/fdroid/data/DBHelper.java | 13 +++++++++++-- 7 files changed, 46 insertions(+), 3 deletions(-) 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