diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..7f541d404f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,38 @@ +## Changelog + +### [Yaverlandia](https://en.wikipedia.org/wiki/Yaverlandia) + +### 1.1725 + +* Added in-app changelog + +### 1.1724 + +* Added display option for fixed date header +* Moved navigation folders under accounts in the navigation menu + +### 1.1723 + +* Fixed polling sometimes stopping + +### 1.1722 + +* Added sort folders on unread messages option +* Added Outlook .msg file decoder + +### 1.1721 + +* Added decoding of Sophos Email Appliance links +* Updated libraries + +### 1.1720 + +* Moved outbox to unified folders in navigation menu +* Added connection option to connect via VPN only +* Added sqlite checkpoint after processing operations + +### [Xiyunykus](https://en.wikipedia.org/wiki/Xiyunykus) + +### 1.1719 + +* Added tap on folder name to go to folder (conversation/message view only) diff --git a/app/build.gradle b/app/build.gradle index fb2c47b489..0fb1f781b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -133,22 +133,22 @@ android { productFlavors { github { dimension "all" + buildConfigField "String", "REVISION", "\"a\"" buildConfigField "boolean", "BETA_RELEASE", "true" buildConfigField "boolean", "PLAY_STORE_RELEASE", "false" buildConfigField "boolean", "AMAZON_RELEASE", "false" buildConfigField "String", "PRO_FEATURES_URI", "\"https://email.faircode.eu/donate/\"" - buildConfigField "String", "CHANGELOG", "\"https://github.com/M66B/FairEmail/releases/\"" buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/FairEmail/releases/latest\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"https://github.com/M66B/FairEmail/releases\"" buildConfigField "String", "GRAVATAR_URI", "\"https://www.gravatar.com/avatar/\"" } fdroid { dimension "all" + buildConfigField "String", "REVISION", "\"a\"" buildConfigField "boolean", "BETA_RELEASE", "true" buildConfigField "boolean", "PLAY_STORE_RELEASE", "false" buildConfigField "boolean", "AMAZON_RELEASE", "false" buildConfigField "String", "PRO_FEATURES_URI", "\"https://email.faircode.eu/donate/\"" - buildConfigField "String", "CHANGELOG", "\"https://github.com/M66B/FairEmail/releases/\"" buildConfigField "String", "GITHUB_LATEST_API", "\"https://api.github.com/repos/M66B/FairEmail/releases/latest\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"https://github.com/M66B/FairEmail/releases\"" buildConfigField "String", "GRAVATAR_URI", "\"https://www.gravatar.com/avatar/\"" @@ -156,11 +156,11 @@ android { play { dimension "all" //minSdkVersion 23 + buildConfigField "String", "REVISION", "\"a\"" buildConfigField "boolean", "BETA_RELEASE", "true" buildConfigField "boolean", "PLAY_STORE_RELEASE", "true" buildConfigField "boolean", "AMAZON_RELEASE", "false" buildConfigField "String", "PRO_FEATURES_URI", "\"https://email.faircode.eu/#pro\"" - buildConfigField "String", "CHANGELOG", "\"\"" buildConfigField "String", "GITHUB_LATEST_API", "\"\"" buildConfigField "String", "GITHUB_LATEST_URI", "\"\"" buildConfigField "String", "GRAVATAR_URI", "\"\"" @@ -231,6 +231,7 @@ android { task copyMarkdown(type: Copy) { from "${rootDir}" into "src/main/assets" + include "CHANGELOG.md" include "SETUP.md" include "ATTRIBUTION.md" } diff --git a/app/src/main/assets/CHANGELOG.md b/app/src/main/assets/CHANGELOG.md new file mode 100644 index 0000000000..7f541d404f --- /dev/null +++ b/app/src/main/assets/CHANGELOG.md @@ -0,0 +1,38 @@ +## Changelog + +### [Yaverlandia](https://en.wikipedia.org/wiki/Yaverlandia) + +### 1.1725 + +* Added in-app changelog + +### 1.1724 + +* Added display option for fixed date header +* Moved navigation folders under accounts in the navigation menu + +### 1.1723 + +* Fixed polling sometimes stopping + +### 1.1722 + +* Added sort folders on unread messages option +* Added Outlook .msg file decoder + +### 1.1721 + +* Added decoding of Sophos Email Appliance links +* Updated libraries + +### 1.1720 + +* Moved outbox to unified folders in navigation menu +* Added connection option to connect via VPN only +* Added sqlite checkpoint after processing operations + +### [Xiyunykus](https://en.wikipedia.org/wiki/Xiyunykus) + +### 1.1719 + +* Added tap on folder name to go to folder (conversation/message view only) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index a43ee9d79c..44aadf3ed3 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -87,6 +87,7 @@ import java.net.URL; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; import javax.net.ssl.HttpsURLConnection; @@ -1105,6 +1106,19 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); if (prefs.getBoolean("first", true)) new FragmentDialogFirst().show(getSupportFragmentManager(), "first"); + else if (!BuildConfig.PLAY_STORE_RELEASE) { + String current = BuildConfig.VERSION_NAME + "-" + BuildConfig.REVISION; + String last = prefs.getString("changelog", current); + if (!Objects.equals(current, last)) { + prefs.edit().putString("changelog", current).apply(); + + Bundle args = new Bundle(); + args.putString("name", "CHANGELOG.md"); + FragmentDialogMarkdown fragment = new FragmentDialogMarkdown(); + fragment.setArguments(args); + fragment.show(getSupportFragmentManager(), "changelog"); + } + } } private void checkBanner() { diff --git a/app/src/main/java/eu/faircode/email/FragmentAbout.java b/app/src/main/java/eu/faircode/email/FragmentAbout.java index d3d27a01ef..12f20db464 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAbout.java +++ b/app/src/main/java/eu/faircode/email/FragmentAbout.java @@ -120,12 +120,6 @@ public class FragmentAbout extends FragmentBase { super.onCreateOptionsMenu(menu, inflater); } - @Override - public void onPrepareOptionsMenu(Menu menu) { - menu.findItem(R.id.menu_changelog).setVisible(!TextUtils.isEmpty(BuildConfig.CHANGELOG)); - super.onPrepareOptionsMenu(menu); - } - @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); @@ -140,7 +134,11 @@ public class FragmentAbout extends FragmentBase { } private void onMenuChangelog() { - Helper.view(getContext(), Uri.parse(BuildConfig.CHANGELOG), false); + Bundle args = new Bundle(); + args.putString("name", "CHANGELOG.md"); + FragmentDialogMarkdown fragment = new FragmentDialogMarkdown(); + fragment.setArguments(args); + fragment.show(getParentFragmentManager(), "changelog"); } private void onMenuAttribution() { @@ -148,6 +146,6 @@ public class FragmentAbout extends FragmentBase { args.putString("name", "ATTRIBUTION.md"); FragmentDialogMarkdown fragment = new FragmentDialogMarkdown(); fragment.setArguments(args); - fragment.show(getParentFragmentManager(), "privacy"); + fragment.show(getParentFragmentManager(), "attribution"); } }