Release 0.4.1

One fix, reported from a Xiaomi on Android 16: the font weight control did
nothing. Both bundled faces carry a single variable axis, wght, and the app was
asking for two — a font with no italic axis may refuse the whole request rather
than the part it cannot honour, and on a platform that does, every weight drew
at Regular with no error to show for it. The same declaration had quietly broken
the heavier weights on Android 7.0 and 7.1 as well.

A patch release, not a minor one: nothing else changed.

README.md and releases/README.md were written by tools/update_release_docs.py
rather than by hand, which is what it is for — and ReleaseDocsTest now has
something real to check, since the version, the archived APK and the checksum
all moved together.

The 0.4.0 row also gets its real commit in place of HEAD.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
anas 2026-10-08 00:34:07 +02:00
parent b6f103dc73
commit 38996943b5
7 changed files with 35 additions and 5 deletions

View File

@ -13,9 +13,9 @@ An Android reader for [Ganjoor](https://ganjoor.net), the open archive of Persia
240 poets and ~135,000 poems, laid out for comfortable long-form reading in Persian, Urdu
and Arabic script, online or fully offline.
### ⬇ [Download ganjoor-0.4.0.apk](releases/ganjoor-0.4.0.apk)
### ⬇ [Download ganjoor-0.4.1.apk](releases/ganjoor-0.4.1.apk)
Android 7.0 and up · 31.7 MB · [older releases](releases/) · `sha256 1c64cefa…fb863ab9fc7`
Android 7.0 and up · 31.7 MB · [older releases](releases/) · `sha256 6c85da41…ce357615daa`
Android will call the developer unknown and offer to install anyway — it says that about every
app installed outside a store. Allow installs from your browser once and it will go through.

View File

@ -17,7 +17,7 @@ val keystoreProperties = Properties().apply {
// A delivered file should say what it is without being opened.
base {
archivesName = "ganjoor-0.4.0"
archivesName = "ganjoor-0.4.1"
}
android {
@ -33,8 +33,8 @@ android {
// Pre-1.0 while the app is still being shaped. versionCode only ever climbs: F-Droid
// refuses an update that does not, and one changelog file per code lives in
// fastlane/metadata/android/*/changelogs/.
versionCode = 6
versionName = "0.4.0"
versionCode = 7
versionName = "0.4.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

View File

@ -0,0 +1,10 @@
The font weight control now works on every device.
Both bundled faces carry one variable axis, wght, and nothing else — but the app
asked for two, sending an italic axis alongside it. A font with no italic axis
may refuse the whole request rather than the part it cannot honour, and on a
platform that does, every weight drew at Regular with nothing to show for it.
Reported on Android 16.
On Android 7.0 and 7.1, where variable fonts do not exist at all, the heavier
weights were unreachable for a related reason. They now work there too.

View File

@ -0,0 +1,9 @@
تنظیم ضخامت قلم اکنون روی همهٔ دستگاه‌ها کار می‌کند.
هر دو قلم همراه برنامه تنها یک محور متغیر دارند، wght، و بس — اما برنامه دو
محور می‌خواست و محور ایتالیک را هم می‌فرستاد. قلمی که محور ایتالیک ندارد می‌تواند
کل درخواست را نپذیرد، نه فقط بخشی را که از عهده‌اش برنمی‌آید؛ روی چنین سیستمی هر
ضخامتی با همان حالت معمولی کشیده می‌شد. این مورد روی اندروید ۱۶ گزارش شد.
روی اندروید ۷٫۰ و ۷٫۱ که اصلاً قلم متغیر ندارند، ضخامت‌های بیشتر به دلیلی
نزدیک به همین در دسترس نبودند. آنجا هم درست شد.

View File

@ -0,0 +1,9 @@
فونٹ کی موٹائی کا انتخاب اب ہر آلے پر کام کرتا ہے۔
ایپ کے ساتھ آنے والے دونوں فونٹس میں صرف ایک متغیر محور ہے، wght، اور بس — مگر
ایپ دو مانگ رہی تھی اور ساتھ اٹالک محور بھی بھیج رہی تھی۔ جس فونٹ میں اٹالک محور
نہ ہو وہ پورا مطالبہ رد کر سکتا ہے، نہ کہ صرف وہ حصہ جو وہ پورا نہیں کر سکتا؛ ایسے
نظام پر ہر موٹائی عام ہی کی طرح بنتی رہی۔ یہ اینڈرائیڈ ۱۶ پر رپورٹ ہوا۔
اینڈرائیڈ ۷٫۰ اور ۷٫۱ پر، جہاں متغیر فونٹ ہوتے ہی نہیں، زیادہ موٹائیاں اسی سے
ملتی جلتی وجہ سے ناقابلِ رسائی تھیں۔ وہاں بھی اب درست ہے۔

View File

@ -14,6 +14,7 @@ from source and signs with its own key, so these are for direct installation onl
| 0.2.2 | 4 | `d7568d1` | Credits Material Symbols for the glyphs, and states the terms around the optional assistant. |
| 0.3.0 | 5 | `5d12a1c` | Pin poets to the home screen: three views (pinned, Ganjoor's order, alphabetical), as cards or a list, with a download control on each row. |
| 0.4.0 | 6 | `270c28c` | Columns on tablets and unfolded foldables; the dictionary and reading settings beside the poem rather than over it; couplets in cards, two hemistichs to a line where there is room; skeletons while pages load; a seek bar on recitations. |
| 0.4.1 | 7 | `HEAD` | The font weight control works on every device: the app was asking the bundled faces for an italic axis they do not have, and a font may refuse the whole request rather than the part it cannot honour. |
## Checksums
@ -24,6 +25,7 @@ from source and signs with its own key, so these are for direct installation onl
e473269044710813d2cf4119de663fe180f887239df7bdb1ccee0239ef84fd3e ganjoor-0.2.2.apk
9c38d5cacf9e809c2189ba581f8aa6eb4072d4fa0316f00d66434461cf4b1459 ganjoor-0.3.0.apk
1c64cefa0fb2b51bf73386460ec1b88bda3e20832fa6926c2f7f1fb863ab9fc7 ganjoor-0.4.0.apk
6c85da41bf1416e34d6cb9c9eda9b4867e01b6793f21e476a6e3ece357615daa ganjoor-0.4.1.apk
```
Installing: `adb install -r releases/ganjoor-<version>.apk`. A phone holding a *debug* build has

BIN
releases/ganjoor-0.4.1.apk Normal file

Binary file not shown.