Add support for changelog links

This commit is contained in:
Nico Alt 2015-06-04 11:57:16 +02:00 committed by Daniel Martí
parent a653b0156a
commit f0c00c144c
7 changed files with 46 additions and 3 deletions

View File

@ -153,6 +153,18 @@ Changelog" />
android:text="@string/menu_issues"
tools:text="@string/menu_issues" />
<TextView
android:id="@+id/changelog"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:drawableLeft="@drawable/ic_issues"
android:drawablePadding="4dp"
android:drawableStart="@drawable/ic_issues"
android:gravity="center_vertical"
android:paddingTop="4dp"
android:text="@string/menu_changelog"
tools:text="@string/menu_changelog" />
<TextView
android:id="@+id/website"
android:layout_width="wrap_content"

View File

@ -124,6 +124,7 @@
<string name="menu_ignore_this">Ignore This Update</string>
<string name="menu_website">Website</string>
<string name="menu_issues">Issues</string>
<string name="menu_changelog">Changelog</string>
<string name="menu_source">Source Code</string>
<string name="menu_upgrade">Upgrade</string>
<string name="menu_donate">Donate</string>

View File

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

View File

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

View File

@ -46,6 +46,8 @@ public class App extends ValueObject implements Comparable<App> {
public String sourceURL;
public String changelogURL;
public String donateURL;
public String bitcoinAddr;
@ -140,6 +142,9 @@ public class App extends ValueObject implements Comparable<App> {
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<App> {
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);

View File

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

View File

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