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 89b0c4235..9ca406ff9 100644
--- a/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java
+++ b/mastodon/src/github/java/org/joinmastodon/android/updater/GithubSelfUpdaterImpl.java
@@ -40,6 +40,7 @@ import okhttp3.Response;
public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
private static final long CHECK_PERIOD=6*3600*1000L;
private static final String TAG="GithubSelfUpdater";
+ private static String changelog;
private UpdateState state=UpdateState.NO_UPDATE;
private UpdateInfo info;
@@ -109,6 +110,11 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
MastodonAPIController.runInBackground(this::actuallyCheckForUpdates);
}
+ @Override
+ public void getChangelog(){
+ MastodonAPIController.runInBackground(this::actuallyGetChangelog);
+ }
+
private void actuallyCheckForUpdates(){
Request req=new Request.Builder()
.url("https://api.github.com/repos/LucasGGamerM/moshidon/releases/latest")
@@ -175,6 +181,35 @@ public class GithubSelfUpdaterImpl extends GithubSelfUpdater{
}
}
+ public void actuallyGetChangelog(){
+ 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;
+ }
+ }catch(Exception x){
+ Log.w(TAG, "getChangelog: ", x);
+ }finally{
+// setState(changelog==null ? UpdateState.NO_UPDATE : UpdateState.UPDATE_AVAILABLE);
+ setChangelog(changelog);
+ }
+ }
+
+ private void setChangelog(String changelog){
+ this.changelog = changelog;
+ }
+
+ public String getChangelogText(){
+ 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..29051c15c 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/SettingsFragment.java
@@ -3,6 +3,7 @@ package org.joinmastodon.android.fragments;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Activity;
+import android.app.AlertDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Canvas;
@@ -49,6 +50,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 +187,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.sk_get_changelog, this::onGetChangelogClick));
+
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, ()->{
@@ -262,6 +267,12 @@ public class SettingsFragment extends MastodonToolbarFragment{
E.unregister(this);
}
+ private void onGetChangelogClick(){
+ AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
+ alertDialogBuilder.setTitle("Something TODO remove this");
+ alertDialogBuilder.setMessage(GithubSelfUpdater.getInstance().getChangelog());
+ }
+
private void onThemePreferenceClick(GlobalUserPreferences.ThemePreference theme){
GlobalUserPreferences.theme=theme;
GlobalUserPreferences.save();
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 90a20e815..181e18e4f 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{
diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml
index 1011dc6b7..b385de830 100644
--- a/mastodon/src/main/res/values/strings_sk.xml
+++ b/mastodon/src/main/res/values/strings_sk.xml
@@ -89,4 +89,5 @@
Reblog with visibility
Post about this
Hashtags you follow
+ Get changelog
\ No newline at end of file