Skip to content

Android 0.1.2 — verified Maven Central release

Choose a tag to compare

@CodeinScrubs CodeinScrubs released this 02 Sep 09:21
· 1 commit to main since this release
Immutable release. Only release title and notes can be modified.
51dcd97

BidiLens Android 0.1.2

Native Kotlin, Android Views, and Jetpack Compose libraries for mixed RTL/LTR
text are signed and public on Maven Central. This release preserves logical
source order and keeps paragraph direction independent from physical alignment.

Install

Add google() and mavenCentral() to your Gradle repositories. Choose the
adapter your app uses; its core dependency is included transitively:

dependencies {
    implementation("io.github.codeinscrubs.bidilens:bidilens-android-compose:0.1.2")
    // For Android Views instead:
    // implementation("io.github.codeinscrubs.bidilens:bidilens-android-views:0.1.2")
    // For analysis without a UI adapter:
    // implementation("io.github.codeinscrubs.bidilens:bidilens-core:0.1.2")
}

Core and Views support API 21+; Compose supports API 23+.
See the versioned Android guide
for integration APIs and the current guide
for the post-publication status. The version-tagged guide was prepared before
publication and therefore retains its historical release-candidate wording.

What changed

  • Generated Unicode 17 combining-mark boundaries keep marked graphemes inside
    their neighboring opposite-direction isolate, matching the other BidiLens cores.
  • Views adopt observable host direction, alignment, and gravity changes while
    managed instead of later restoring stale application properties.
  • An explicit ownership handoff covers deliberate same-value application writes.
  • alignToContent = false preserves authored physical alignment while BidiLens
    still applies the paragraph's direction. Pure LTR in an LTR host remains an
    unmodified-text, no-intervention path.
  • The release gate rejects version drift between modules, sample, consumer,
    publishing workflow, and source documentation.

Verified publication

  • Exact source: 51dcd971efa5873a393b90cb6311c73f4315b8e8.
  • Release PR #79: all 24
    required CI/CodeQL contexts passed on the identical source tree, including
    native libraries, sample, isolated Maven consumer, and API 35 emulator tests.
  • Protected publication run 33610612564
    used JDK 21 and published Central deployment
    cb7febfc-1313-4b3c-8171-d8a473cb92da.
  • All 15 public primary files match retained workflow bytes; 15 OpenPGP
    signatures and 30 Central checksums verify. Public signing fingerprint:
    B635C6985216FC5DEB5DDCDD68BE2D5CE18F72C6.
  • An independent clean consumer with an empty Maven Local downloaded all three
    AARs from Central and compiled successfully: Gradle 9.5.1, AGP 9.3.1, Kotlin
    2.4.10, JDK 25.0.2, 24 actionable tasks. Consumed AAR hashes match the
    independently verified public artifacts. Normal third-party Gradle caches
    were retained; no local BidiLens publication or workspace override was used.
  • The shared corpus contains 932 cases. The release source has 31 core,
    13 Views/Robolectric, and 9 Compose JVM tests, plus separate emulator gates.

Assets and limits

The assets retain individual AARs, the sample APK, all 33 staged Maven files,
the downloaded Central files and machine-readable verification reports, public
signing key, and SHA-256 manifests. Verify SHA256SUMS.txt before using them.

The sample APK is a debug/demo app, not a production application. Maven
documentation jars are minimal compatibility artifacts, not a complete
generated API reference. Physical OEM devices, IMEs, TalkBack, native-language
review, and a real downstream pilot still require validation. Publication and
green tests do not promise perfect rendering in every host or certify company
adoption. The project remains MIT-licensed with preserved third-party notices.