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 3621ef33e..307fd7959 100644 --- a/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java +++ b/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java @@ -173,6 +173,27 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{ } } + public String getChangelog(){ + String changelog = null; + Request req=new Request.Builder() + .url("https://api.github.com/repos/LucasGGamerM/moshidon/releases/latest") + .build(); + Call call=MastodonAPIController.getHttpClient().newCall(req); + try(Response resp=call.execute()){ + JsonObject obj=JsonParser.parseReader(resp.body().charStream()).getAsJsonObject(); + changelog=obj.get("body").getAsString(); + if(changelog == null){ + Log.w(TAG, "No changelog available"); + return null; + } + return changelog; + }catch(Exception x){ + Log.w(TAG, "getChangelog: ", x); + } + return changelog; + } + + private void setState(UpdateState state){ this.state=state; E.post(new SelfUpdateStateChangedEvent(state)); 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 3f5fa9941..4eb709099 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java @@ -49,6 +49,7 @@ import org.joinmastodon.android.ui.M3AlertDialogBuilder; import org.joinmastodon.android.ui.OutlineProviders; import org.joinmastodon.android.ui.utils.UiUtils; import org.joinmastodon.android.updater.GithubSelfUpdater; +import org.w3c.dom.Text; import java.util.ArrayList; import java.util.function.Consumer; @@ -185,6 +186,9 @@ public class SettingsFragment extends MastodonToolbarFragment{ checkForUpdateItem = new TextItem(R.string.sk_check_for_update, GithubSelfUpdater.getInstance()::checkForUpdates); items.add(checkForUpdateItem); } +// TODO fix this up tomorrow, by probably just making another method for chacking and displaying the new changelog + items.add(new TextItem(R.string.get_changelog, GithubSelfUpdater.getInstance()::getChangelog); + items.add(new TextItem(R.string.sk_settings_contribute, ()->UiUtils.launchWebBrowser(getActivity(), "https://github.com/LucasGGamerM/moshidon"))); items.add(new TextItem(R.string.settings_clear_cache, this::clearImageCache)); items.add(new TextItem(R.string.sk_clear_recent_languages, ()->UiUtils.showConfirmationAlert(getActivity(), R.string.sk_clear_recent_languages, R.string.sk_confirm_clear_recent_languages, R.string.clear, ()->{ 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..0cb5d88ee 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java +++ b/mastodon/src/main/java/org/joinmastodon/android/updater/GithubSelfUpdater.java @@ -39,6 +39,8 @@ public abstract class GithubSelfUpdater{ public abstract void cancelDownload(); + public abstract String getChangelog(); + public abstract void handleIntentFromInstaller(Intent intent, Activity activity); public enum UpdateState{