This fork of Megalodon contains a lot of patches on top of upstream Megalodon. Despite continuing its version codes, this project is not intended to be a continuation of the Megalodon app. It is merely a personal fork with changes I wanted for myself that I'm releasing in case anyone else wants to use it. For this reason, you should not expect it to be regularly updated or well maintained. The app has a separate ID from upstream Megalodon meaning that it can be installed on the side and is treated by Android as a separate app
Changes in this fork include:
- Lots of improvements on both Iceshrimp-JS and Iceshrimp.NET, see sk22#1000
- Option to replace either the bookmark or share button with a new reaction button
- Fixes related to displaying quotes
- Fix previewing posts on Akkoma
- Emojis are no longer forced to fit a square
- Fix icon sizes and placement in pop-up menus
- Fix for performance issues in home timeline that caused custom emoji animations to stutter
- Only use the system file picker
- Previously the app would ask to choose between media and file picker which were basically identical
- Show if account has sent a follow request in profile view
- Requires support from server
- Load more than 40 follow requests
- Added setting to disable link cards
- Display emoji from reaction notification in a better way
- Show account migration notifications and unknown notification types
- Fix some images being too small in the photo viewer
- Merge inline avatar pull requests from upstream Megalodon
- Lots of improvements to the unread notifications marker
- Uses theme color instead of always being red
- Notifications are only marked as read when manually refreshing
- The top is no longer cut off on devices where that previously happened
- The count is no longer limited to 40+
- It will be fully accurate on Akkoma
- It will go up to 100+ on Mastodon v4.3.0+ until more notifications are loaded by scrolling through them
- It will now only show 20+ on other server software but it will also increase when loading more by scrolling through them
- Fixed a bug where the count would show 40 despite having nowhere near that amount
- Fixed an issue where the marker wouldn't disappear after marking notifications as read
- Other small fixes and improvements
- Cherry-picked some changes from Mastodon for Android
- Don't auto-refresh notifications if the user scrolled too far (ac1e5e991)
- Don't include crappy alt text from gboard (mastodon#722)
- Improved link cards (a200701e4)
- Muting conversations (ff7948ad8)
- Better media layout (36f4770ca)
- Media info sheet (5d7c37262)
- Redesigned extended footer from thread view (not merged directly)
- Fixed custom emojis on GoToSocial (mastodon#948)
- Various crash fixes
- Fixed memory leak issues on some devices that caused slowdowns until crash
As for the weird things in this repository: it was originially used for contributing to upstream Megalodon which is why the branch called main only has one of these changes. Since GitHub doesn't allow having multiple forks of the "same" repository (different forks count as the same), this repository also hosts things like Shrimped Moshidon. All releases that are for Megalodon Patches will simply have the version name as the release name while everything with special names will be other things that I'm forced to host in this repository like Shrimped Moshidon. In other words, any release which name isn't just the version code is not a release of Megalodon Patches but is something else
A fork of the Mastodon Android app adding important features that are missing in the official app, focusing on Glitch compatibility, a pretty UI and adding new features that I feel make using the Fediverse a more pleasant experience.
Allows you to post publicly without having your post show up in trends, hashtags or public timelines (i.e., in the tabs “Community”, “Federated” and “Posts”).
When posting with Unlisted visibility, your posts will still be publicly accessible in your profile. They will also be shown in people’s Home timelines, but only if they follow you or someone they follow reblogged/replied to your post.
The Mastodon documentation has some more information about Unlisted posting and Public timelines.
This allows you to chronologically see all Public posts from people on all other Fediverse neighborhoods your home instance is connected to.
Despite being one of the main features of federated social media, the Federated timeline wasn’t included in the official Mastodon app – supposedly, because this conflicts with Google’s safety requirements for apps on the Play Store.
That’s one of the reasons why choosing a small, well-moderated instance is important. Instance admins and moderators should always make sure to ban abusive users and stop federating with instances who platform them. On well-moderated instances, the Federated timeline can be a welcoming place to meet new people!
You can customize Megalodon’s home tab and not only add local and federated timelines, but also pin lists and hashtags.
Even better: You can rename every timeline however you please and pick a distinct icon for each timeline. This way, you can pin the hashtag “#Caturday”, rename your timeline to “CUTENESS OVERLOAD” and set as its icon. :3 You can find the timelines editor by opening your home tab, tapping the ⋮
button in the top right and going to “Edit timelines”.
Allows to prepare a post and schedule it to send it automatically at a specific time.
You can create drafts, edit them, send them manually later or set a scheduled date. Drafts are technically saved as scheduled posts, so you can view and edit them from other apps that support scheduled posts. Scheduled posts are handled by your home instance, so they'll work even if you uninstall Megalodon.
https://play.google.com/store/apps/details?id=org.joinmastodon.android.sk
https://apt.izzysoft.de/fdroid/index/apk/org.joinmastodon.android.sk
Note that you'll need to add Izzy's F-Droid repository to your F-Droid app first:
https://apt.izzysoft.de/fdroid/repo
F-Droid.org? Not yet, sorry!
If you want, you can help me figure out if something's missing in the Issue #47: F-Droid.org
Press the download button to download the APK. Open the downloaded file on your Android device to install it. Megalodon will automatically notify you about new updates inside the app.
You might have to accept installing APK files from your browser when trying to install it. You can also take a look at all releases on the Releases page.
Megalodon makes use of Mastodon for Android’s automatic update checker. Megalodon will check for new updates available on GitHub and offer to download and install them. You can also manually press “Check for updates” at the bottom of the settings page!
All downloads can be found on the Releases page. When downloading a pre-release, expect to see unfinished features and bugs. If you don’t want that, just download the latest full release.
megalodon.apk
Variant with an integrated updater. If you download Megalodon from here (and not from an app store), just download the regular megalodon.apk
.
upstream-1234abc.apk
This is an unmodified version of the official Mastodon for Android app the respective Megalodon release is based on. Should you find any bugs in Megalodon (which you will), try to see if it occurs with this variant, too. The last 7 digits of the file name are important to know which version of the official app you're using.
The translation for the base of the app is sourced from the upstream Mastodon for Android project, which you can contribute to on its Crowdin project: https://crowdin.com/project/mastodon-for-android
There's also a bunch of custom strings exclusive to this project that need to be translated. You can help translate Megalodon on Weblate: https://translate.codeberg.org/projects/megalodon
- Add “Unlisted” as a post visibility option (Pull request)
- Add “Federation” tab and change Discover tab order (Closes issue)
- Add image description button and viewer (Pull request)
- Implement pinning posts and displaying pinned posts (Pull request)
- Implement deleting and re-drafting (Closes issue)
- Implement a bookmark button and list (Closes issue)
- Add “Check for update” button in addition to integrated update checker
- Add “Mark media as sensitive” option
- Add settings to hide replies and reblogs from the timeline (Pull request)
- Follow and unfollow hashtags (Closes issue)
- Notification bell for posts (Closes issue)
- Viewing lists and adding/removing users from lists based on @obstsalatschuessel's Pull request
- List favorited posts
- Accept/reject follow requests
- Display content warning title above text
- Add notifications tab for posts
- Show visibility of original post when replying
- Clickable reply/boost line above posts
- Add push notification setting for post notifications
- Add option to allow voting for multiple options on polls
- Add translate function
- Add language selector
- Implement deleting notifications (disabled by default)
- Long-click boost button to "quote" a post
- Draft and schedule posts
- Display original post when replying
- Display server announcements
- Create, edit and delete lists
- Soft-blocking (by blocking and immediately unblocking)
- Pinnable custom timelines
- Support for local-only posts
- Support for copying the URL to posts/accounts/… in Pixel launcher’s Recent apps view
- Compatibility for Akkoma Bubble timeline
- Listings of followers/following/favorites/boosts can be loaded from the origin instance (there’s an option to disable this in in the settings)
- Allow opening posts/accounts in-app by sharing a URL/handle to Megalodon (Originally implemented in Moshidon, PR)
- Make back button return to the home tab before exiting the app (Closes issue)
- Always preserve content warnings when replying (Closes issue)
- Display full image when adding image description (Pull request)
- Set spoiler height independently to content height (Closes issue)
- Option to hide interaction numbers
- Option to always reveal content warnings
- Option to disable scrolling title bars
- No ellipsis for long poll answers
- Show poll vote button for multiple and single answer polls
- Show own vote after voting (Closes issue)
- Make inline emoji search case-insensitive and don't only search from start of emoji names (Pull request)
- Include subject line when sharing e.g. a website to Megalodon
- Improve semantics for voting on polls (radio buttons and checkboxes)
- Copy post URL when long-pressing share button
- Add option to disable swiping between tabs
- Resolve Fediverse links in the app
- Preserve whitespaces in HTML
- Long-click to copy links
- Improved filtering using Mastodon 4.0 API: #202, #212, #255 by @thiagojedi
- Support admin notifications and notifications for edited reblogged posts
- Android file opener added back in addition to image picker
- Replies are inserted below the replied-to post in thread view
- Option to auto-reveal equal content warnings in threads
- Custom extended footer redesign
- Improvements to the true black mode
- Profile header tweaks
- Custom color themes by @LucasGGamerM
- Custom "megalodon" text logo by @LucasGGamerM
- Custom login screen
- More distinct filled boost icon
- Material You color theme by @LucasGGamerM
- Animations for interaction buttons
- Dedicated icons for different notification types by @florian-obernberger
- Scale text according to system settings
- Header in timeline for followed hashtags
- Indicator for missing alt texts
- Visually grouped (by removing divider lines and reducing padding) threaded replies in thread view
As this app is using Java 17 features, you need JDK 17 or newer to build it. Other than that, everything is pretty standard. You can either import the project into Android Studio and build it from there, or run the following command in the project directory:
./gradlew assembleRelease
Note that Megalodon might be depending on an in-development version of AppKit – a library by Mastodon for Android’s developer. In case the used AppKit version isn’t published to Maven Central yet, you might have to clone, build and publish it to your local Maven repository. For more information, see this GitHub issue.
This project is released under the GPL-3 License.