diff --git a/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java b/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java index f0ac674c0..4adaa4c59 100644 --- a/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java +++ b/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java @@ -61,6 +61,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{ info=new UpdateInfo(); info.version=prefs.getString("version", null); info.size=prefs.getLong("apkSize", 0); + info.changelog=prefs.getString("changelog", null); downloadID=prefs.getLong("downloadID", 0); if(downloadID==0 || !getUpdateApkFile().exists()){ state=UpdateState.UPDATE_AVAILABLE; @@ -84,6 +85,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{ .remove("apkURL") .remove("checkedByBuild") .remove("downloadID") + .remove("changelog") .apply(); } } @@ -117,6 +119,7 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{ try(Response resp=call.execute()){ JsonObject obj=JsonParser.parseReader(resp.body().charStream()).getAsJsonObject(); String tag=obj.get("tag_name").getAsString(); + String changelog=obj.get("body").getAsString(); Pattern pattern=Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)\\+fork\\.(\\d+)"); Matcher matcher=pattern.matcher(tag); if(!matcher.find()){ @@ -151,12 +154,14 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{ UpdateInfo info=new UpdateInfo(); info.size=size; info.version=version; + info.changelog=changelog; this.info=info; getPrefs().edit() .putLong("apkSize", size) .putString("version", version) .putString("apkURL", url) + .putString("changelog", changelog) .putInt("checkedByBuild", BuildConfig.VERSION_CODE) .remove("downloadID") .apply(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java index 2aa40c1bb..b039172cf 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -959,7 +959,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ private class UpdateViewHolder extends BindableViewHolder{ - private final TextView text; + private final TextView text, changelog; private final Button button; private final ImageButton cancelBtn; private final ProgressBar progress; @@ -970,6 +970,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ public UpdateViewHolder(){ super(getActivity(), R.layout.item_settings_update, list); text=findViewById(R.id.text); + changelog=findViewById(R.id.changelog); button=findViewById(R.id.button); cancelBtn=findViewById(R.id.cancel_btn); progress=findViewById(R.id.progress); @@ -1013,6 +1014,7 @@ public class SettingsFragment extends MastodonToolbarFragment{ progress.setVisibility(View.GONE); progress.removeCallbacks(progressUpdater); } + changelog.setText(info.changelog); } private void updateProgress(){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java b/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java index 459d7e35d..7577dcc5f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java +++ b/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java @@ -51,6 +51,7 @@ public abstract class GithubSelfUpdater{ public static class UpdateInfo{ public String version; + public String changelog; public long size; } } diff --git a/mastodon/src/main/res/layout/item_settings_update.xml b/mastodon/src/main/res/layout/item_settings_update.xml index 5ebf8c7c9..8ea7b9e31 100644 --- a/mastodon/src/main/res/layout/item_settings_update.xml +++ b/mastodon/src/main/res/layout/item_settings_update.xml @@ -8,67 +8,83 @@ + android:orientation="vertical" + android:background="@drawable/bg_settings_update"> - + android:minHeight="64dp" + android:gravity="center_vertical" + android:orientation="horizontal"> - + -