octoshrimpy
949f0da6ff
Merge branch 'master' into feature/mms-compression-refactor
2026-08-01 17:37:37 -04:00
octoshrimpy
2bd62f2f94
perf(mms): decode an image once per attachment instead of per attempt
...
Addresses the review feedback on #826 .
Compression searches for a size that fits under the carrier limit, so it encodes
the same image many times: a binary search over dimensions, then a quality ladder
from 90 down to 40 if nothing fit. Every one of those attempts went through
ImageUtils.getScaledImage, which re-opened the source URI and re-decoded it from
scratch. Decoding is the expensive part and it was the only part being repeated
unnecessarily; a large photo could be decoded a dozen or more times to send once.
ScaledImageEncoder decodes the source a single time, sampled down to no smaller
than the largest width the search will ask for, and re-encodes that bitmap from
memory for each attempt. The search itself is unchanged.
The decode is guarded: with no carrier cap the target size is the original image,
which on a modern camera sensor is large enough to matter, so an OutOfMemoryError
returns null and the caller falls back to Glide, which streams instead of holding
the whole bitmap.
Also fixes three edge cases raised in review:
- A bounds decode that fails leaves outWidth/outHeight at zero, making the aspect
ratio 0/0 and every derived dimension garbage. Detect it and fall back rather
than divide by it.
- searchHi was floored at 100, which raised it above the original width, and above
the carrier maximum when that was under 100. Both upscale the image and inflate
the payload. The floor is now 1 and the search starts at 1 rather than 100.
- The last-resort fallback hard-coded a width of 100, upscaling anything narrower.
It is now bounded by searchHi, so it can only shrink.
2026-08-01 17:15:23 -04:00
octoshrimpy
691ac19a9e
Add DeepWiki badge ( #824 )
...
* Add DeepWiki badge
Updated README to include DeepWiki badge for auto-updating deepwiki docs
* docs(contributing): give DeepWiki its own section with badge
The link was buried at the end of "Getting Your Pull Request Merged", a
section about PR etiquette rather than reading code. Move it under its own
heading at the top of Helpful Tips, where someone about to explore the
codebase will actually look, and add the badge to match the README.
---------
Co-authored-by: octoshrimpy <git@octo.sh >
2026-08-01 15:04:26 -04:00
Weblate (bot)
ca9640afa2
Translations update from Hosted Weblate ( #763 )
...
* Translated using Weblate (Indonesian)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/id/
* Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/zh_Hans/
* Translated using Weblate (Italian)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/it/
* Translated using Weblate (Turkish)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/tr/
* Translated using Weblate (Russian)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/ru/
* Translated using Weblate (French)
Currently translated at 99.7% (409 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fr/
* Added translation using Weblate (Breton)
* Added translation using Weblate (Breton)
* Added translation using Weblate (Breton)
* Translated using Weblate (Breton)
Currently translated at 7.5% (31 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/br/
* Translated using Weblate (Bulgarian)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/bg/
* Translated using Weblate (Tagalog)
Currently translated at 79.2% (325 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/tl/
* Translated using Weblate (Persian)
Currently translated at 97.3% (399 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fa/
* Translated using Weblate (Persian)
Currently translated at 97.3% (399 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fa/
* Translated using Weblate (Persian)
Currently translated at 98.5% (404 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fa/
* Translated using Weblate (Hungarian)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/hu/
* Translated using Weblate (Hebrew)
Currently translated at 94.3% (387 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/he/
* Translated using Weblate (Hebrew)
Currently translated at 99.0% (406 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/he/
* Translated using Weblate (Hebrew)
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/he/
---------
Co-authored-by: Arif Budiman <arifpedia@gmail.com >
Co-authored-by: Monstorix <monstorix@outlook.com >
Co-authored-by: Mic <m@micz.it >
Co-authored-by: Cabbar Hayıroğlu <halil48efe@gmail.com >
Co-authored-by: bomzhellino <adm.bomzh@gmail.com >
Co-authored-by: Antonin Del Fabbro <message@antonin.one >
Co-authored-by: Pierre Wani Alan Morvan <per.morvan.bzh29@gmail.com >
Co-authored-by: 109247019824 <109247019824@users.noreply.hosted.weblate.org >
Co-authored-by: denny m <deinosnychos@gmail.com >
Co-authored-by: oskolist <oskolist@proton.me >
Co-authored-by: Ghost of Sparta <makesocialfoss32@keemail.me >
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com >
2026-08-01 15:03:14 -04:00
Weblate (bot)
62d58d0998
Translations update from Hosted Weblate ( #773 )
...
* Added translation using Weblate (Japanese)
* Translated using Weblate (French)
Currently translated at 100.0% (14 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/fr/
* Added translation using Weblate (Breton)
* Translated using Weblate (Bulgarian)
Currently translated at 0.0% (0 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/bg/
* Added translation using Weblate (Spanish)
* Translated using Weblate (Spanish)
Currently translated at 14.2% (2 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/es/
---------
Co-authored-by: Samvid Konchada <samvid@skiff.com >
Co-authored-by: Antonin Del Fabbro <message@antonin.one >
Co-authored-by: Pierre Wani Alan Morvan <per.morvan.bzh29@gmail.com >
Co-authored-by: 109247019824 <109247019824@users.noreply.hosted.weblate.org >
Co-authored-by: ekirchman <ej.kirchman@gmail.com >
2026-08-01 15:02:54 -04:00
Khushal Majoka
7e44142b4e
compose: Fix sendAsGroup switch resetting while typing on new conversation ( #842 )
...
Fixes #841
2026-07-30 21:55:08 -04:00
Inhishonor
96fcb8841a
refactor(mms): Add an algorithm for compressing GIFs in one pass
2026-06-30 10:07:49 -07:00
octoshrimpy
b0f5107f1f
fix(mms): Replace broken compression loop with binary search
...
Scale factor algorithm became <= 0 after 4-5 attempts regardless of
image size, silently bailing and leaving images potentially over the
carrier size limit. Replace with binary search on dimensions (100px to
carrier max) plus a quality-reduction fallback (90→40) for images that
still don't fit. Adds compressAttachment dispatch for extensibility
(audio/* logged, image/* compressed, else raw). Fixes InputStream leak
in BitmapFactory dimension probe. Queries MMS_CONFIG_ALLOW_ATTACH_AUDIO
for future audio support groundwork.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-29 12:36:37 -07:00
Inhishonor
01474f09cb
refactor(utils): Split up navigator into several smaller classes
...
Move common functions into QkNavigator, and move external navigations to ExternalNavigator
2026-06-24 20:20:13 -07:00
Inhishonor
a88d5c62e0
fix(main): Get scheduled messages from view model
...
The previous behavior fetched scheduled messages directly from the conversation adaptor. This was causing memory leaks and potentially crashes. Now, the view model fetches it and provides the data through state.
2026-06-12 09:42:01 -07:00
Inhishonor
fb10b709c9
fix(main): Don't animate layout changes
...
This was causing a crash when opening the app from a lock screen notification. It doesn't cause any visual problems.
2026-06-12 09:41:26 -07:00
Ben Iofel
9200469181
chore(repo): Delete app/build/outputs/apk/debug/app-debug.apk
2026-05-19 17:30:56 -07:00
Inhishonor
6a20c9b9ff
fix(gallery): Use a dedicated dark theme
...
The app was setting gallery to black mode programmatically, and for some reason this was affecting other activities theming. We can just use a custom theme to force black mode that won't mess with other screens.
2026-05-13 14:14:19 -07:00
Inhishonor
65d7ffe7d0
chore: release v4.3.6 (2238)
v4.3.6
2026-04-19 11:43:52 -07:00
Inhishonor
afe7ccd923
fix(ci): Set permissions for release after merge
2026-04-19 11:41:39 -07:00
Inhishonor
5674e038e0
chore: release v4.3.5 (2237)
2026-04-19 11:34:43 -07:00
Inhishonor
066659b920
fix(ci): Update permissions for create pr action
2026-04-15 12:49:46 -07:00
Inhishonor
89e25f673c
fix(ci): Call generate-release-notes with write permission
2026-04-15 12:19:43 -07:00
Inhishonor
666a77cb69
fix(ci): Fix permissions for fetching release notes
...
GitHub has changed what permissions this requires, so we have to set GITHUB_TOKEN to have write access.
2026-04-15 12:04:38 -07:00
Inhishonor
2edb91c417
refactor(ci): Improve release notes cleaning process for manual release
2026-04-15 11:35:30 -07:00
ezn24
c141cd5dce
Translated using Weblate (Chinese (Traditional Han script))
...
Currently translated at 100.0% (14 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/zh_Hant/
2026-04-11 09:12:13 -06:00
ezn24
f9430fa40e
Added translation using Weblate (Chinese (Traditional Han script))
2026-04-11 09:12:13 -06:00
logmilo15
512b18d48a
Translated using Weblate (Vietnamese)
...
Currently translated at 100.0% (14 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/vi/
2026-04-11 09:12:13 -06:00
logmilo15
fa52ec6533
Added translation using Weblate (Vietnamese)
2026-04-11 09:12:13 -06:00
Niyon S V
59f507de7f
Added translation using Weblate (Malayalam)
2026-04-11 09:12:13 -06:00
bomzhellino
02c26b0a93
Translated using Weblate (Russian)
...
Currently translated at 100.0% (14 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/ru/
2026-04-11 09:12:13 -06:00
Rav Var
bb3a580633
Translated using Weblate (Polish)
...
Currently translated at 100.0% (14 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/pl/
2026-04-11 09:12:13 -06:00
Rav Var
728c962e16
Added translation using Weblate (Polish)
2026-04-11 09:12:13 -06:00
Joseph
9da7ae0eb4
Translated using Weblate (French)
...
Currently translated at 14.2% (2 of 14 strings)
Translation: QUIK/Emoji Reaction Regex
Translate-URL: https://hosted.weblate.org/projects/quik/emoji-reaction-regex/fr/
2026-04-11 09:12:13 -06:00
Joseph
82d7a2ab96
Added translation using Weblate (French)
2026-04-11 09:12:13 -06:00
Sérgio Marques
6e2c954738
Translated using Weblate (Portuguese)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/pt/
2026-04-10 21:49:23 -06:00
Cabbar Hayıroğlu
5fd80023c7
Translated using Weblate (Turkish)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/tr/
2026-04-10 21:49:23 -06:00
ezn24
c50918acfb
Translated using Weblate (Chinese (Traditional Han script))
...
Currently translated at 100.0% (1 of 1 strings)
Translation: QUIK/Short Description
Translate-URL: https://hosted.weblate.org/projects/quik/short-description/zh_Hant/
2026-04-10 21:49:23 -06:00
JSchmerling
8565364dc9
Translated using Weblate (German)
...
Currently translated at 99.5% (408 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/de/
2026-04-10 21:49:23 -06:00
ezn24
ffa77308fd
Added translation using Weblate (Chinese (Traditional Han script))
2026-04-10 21:49:23 -06:00
ezn24
2c5e59e7ec
Translated using Weblate (Chinese (Traditional Han script))
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/zh_Hant/
2026-04-10 21:49:23 -06:00
Marius Olsen-Ryum
2c17af8382
Added translation using Weblate (Norwegian Bokmål)
2026-04-10 21:49:23 -06:00
Karl Ragnar Giese
72c2060277
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 98.7% (405 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/nb_NO/
2026-04-10 21:49:23 -06:00
Marius Olsen-Ryum
2db0b52c60
Translated using Weblate (Norwegian Bokmål)
...
Currently translated at 98.7% (405 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/nb_NO/
2026-04-10 21:49:23 -06:00
Marek Polák
ebb7a9cc1f
Translated using Weblate (Czech)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/cs/
2026-04-10 21:49:23 -06:00
spearhead
ca8cbe865d
Translated using Weblate (French)
...
Currently translated at 99.7% (409 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fr/
2026-04-10 21:49:23 -06:00
Joseph
32ef44b697
Translated using Weblate (French)
...
Currently translated at 99.7% (409 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fr/
2026-04-10 21:49:23 -06:00
109247019824
f445e068ed
Translated using Weblate (Bulgarian)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/bg/
2026-04-10 21:49:23 -06:00
Joseph
25fe910e52
Translated using Weblate (French)
...
Currently translated at 99.5% (408 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/fr/
2026-04-10 21:49:23 -06:00
Станіслав Яцук
e4847786ab
Translated using Weblate (Ukrainian)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/uk/
2026-04-10 21:49:23 -06:00
ezn24
c608f51a39
Translated using Weblate (Chinese (Traditional Han script))
...
Currently translated at 99.7% (409 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/zh_Hant/
2026-04-10 21:49:23 -06:00
rehork
19cd3f73ab
Translated using Weblate (Polish)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/pl/
2026-04-10 21:49:23 -06:00
logmilo15
7c0c4a296f
Translated using Weblate (Vietnamese)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/vi/
2026-04-10 21:49:23 -06:00
Ghost of Sparta
a34c63c566
Translated using Weblate (Hungarian)
...
Currently translated at 100.0% (410 of 410 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/hu/
2026-04-10 21:49:23 -06:00
logmilo15
65b27d2d6b
Translated using Weblate (Vietnamese)
...
Currently translated at 97.0% (397 of 409 strings)
Translation: QUIK/strings
Translate-URL: https://hosted.weblate.org/projects/quik/strings/vi/
2026-04-10 21:49:23 -06:00