Skip to content

v1.0.10

Latest

Choose a tag to compare

@danascapebot danascapebot released this 02 Nov 11:30
· 2 commits to master since this release
3e5184c

Changelog

1.0.10

  • Minimum supported Android version is now 7.0 (API 24).
  • Translation updates: Polish, Estonian.

1.0.9

Highlights

  • MMS reliability overhaul. Downloads and sends retry on their own, work per SIM, and respect carrier limits.
  • SMS reliability overhaul. Messages survive reboots, temporary failures and carrier quirks without being silently dropped.
  • Emoji reactions can now be sent.
  • Search and scrolling: search shows message previews, and the home screen has a custom fast scroller.

New features

MMS

  • Tap an undownloaded MMS to download it. Pending downloads are retried when the app opens (#151).
  • Failed downloads and sends retry automatically with backoff when the cause is temporary, including an unreachable MMSC caused by no service.
  • Auto-download is decided per SIM. New settings toggle auto-download and roaming download.
  • Carrier config is loaded per SIM, with OEM overrides imported and the carrier user agent sent.
  • New carrier options are honoured:
    • Long texts and emails switch to MMS when the carrier asks.
    • Group chats start as group MMS when the carrier prefers it.
    • Groups are sent individually on carriers without group MMS.
    • Conversations stay within the carrier's recipient limit.
    • MMS size defaults to the SIM's carrier limit, and the limit is shared between images by size.
  • Outgoing MMS lay out each part separately, with the text after the media.

SMS

  • Class 0 SMS pop up so you can save or dismiss them. A "replace" SMS takes the place of the last one.
  • Characters are simplified and counted according to the carrier default. Delivery reports are requested when the carrier gives them by default, unless you turn them off.
  • Waiting SMS are sent again when service returns, when the app starts, or when an SMS arrives.
  • Delayed SMS are rescheduled after a reboot, and interrupted ones fail visibly.
  • Copying an OTP marks the conversation read.

General

  • Send outgoing emoji reactions (#77).
  • Delete a message from its notification.
  • Search results show message previews.
  • Custom fast scroller on the home screen.
  • New conversations and quick reply default to the system SMS SIM (#156).
  • The About screen shows the copyrights and licences listed in the README.

Fixes

MMS

  • Fixed crashes on malformed network data, on unreadable audio attachments, and on large MMS (#114).
  • Expired MMS are kept instead of deleted on download errors, and deleted messages are dropped from Realm (#151).
  • Repeated pushes for an MMS you already have are ignored. Blocked senders with a type suffix are recognised, and anonymous senders are stored.
  • MMS are acknowledged from the SIM they arrived on and sent from the SIM that sends them.
  • A failed send or a download that couldn't start now notifies you instead of staying stuck on "sending" or "pending".
  • Empty or unreadable downloads are left to the user, and automatic downloads stop after 20 minutes.
  • An MMS larger than the carrier accepts fails instead of retrying forever.
  • The carrier response is checked before an MMS is marked sent, and the carrier config is honoured when appending the transaction ID.
  • Simultaneous sends no longer cancel each other's results.
  • The manufacturer config lookup now matches by exact name (including Honor).

SMS

  • Incoming SMS are never dropped when parts, text or sender are missing. They are stored in the provider before anything else and stay unseen until notified.
  • Long SMS now work correctly:
    • Each part gets its own sent callback and delivery report.
    • A long SMS is only marked sent when every part succeeded.
    • Results are combined by the worst part, including across restarts.
    • Each part is sent on its own when the carrier can't join them.
  • Failed sends now report properly:
    • You're told about failures that happen before the system can send.
    • The system's failure reason is shown.
    • Failures are split into temporary (retried) and permanent.
    • Resending from a notification only works while the message is still failed.
  • Delayed SMS:
    • They are sent even without exact-alarm access.
    • They are sent even if the phone was off at the scheduled time.
    • They are never both an alarm and a job, and are not cancelled once started.
    • "Send now" sends the original message once.
  • Unsent SMS resume at boot without delaying other boot work.
  • Text to an email address goes through the carrier's email gateway, and numbers are sent without their formatting.
  • Delivery reports are read by exact status, and empty ones are ignored.
  • Incoming SMS are dated by the network when the phone clock is clearly wrong, and everything the network sent is stored.

General / UI

  • Compose attachments survive the app going to the background. They are deleted only after every send using them finishes, and only if they live in the app cache.
  • No voice note is attached when moving the recording fails.
  • New threads are created in Realm (#123), text highlight during selection is fixed (#105), and scheduled_options has a base value.
  • Fixed R8 crash in GalleryPagerAdapter (#130) and Ezvcard release-build crash.
  • Fixed registerReceiver calls (#83).
  • Settings show the delivery-report and simple-characters options as they actually apply.

Internal

  • Modularised the code into carrier, gif-encoder, otp-detector, mms-pdu and telephony modules, and dropped the android-smsmms dependency.
  • Removed the legacy MMS stack: TransactionService, OkHttp 2/Apache HTTP, the MMSC ack code and unused framework shims.
  • Added a fake MMSC with debug-only hooks and end-to-end MMS and SMS tests on the emulator.
  • The project is now REUSE compatible with SPDX headers, and a pre-commit config was added.

Full Changelog: v1.0.8...v1.0.10