The ndk abiFilters restriction was added in a333192 ("feat: add CW
decoder and linear calculator page") to accommodate Morse Expert's
32-bit-only libnativedecoderjni.so. Upstream app/build.gradle.kts
contains only the plugins block, so this is fork-specific.
With feature/cw removed, the filter no longer has a reason to exist and
it kept the app 32-bit only — which Google Play has rejected since
2019-08 (64-bit requirement).
Verified after the change:
- ./gradlew assembleDebug -> BUILD SUCCESSFUL
- APK now ships arm64-v8a, armeabi-v7a, x86, x86_64
(the only remaining .so is androidx.graphics.path, 7 KB)
- ./gradlew test -> 82 tests, 0 failures
Removes the CW decoder entirely. The feature/cw module was a verbatim
decompilation of Morse Expert 1.15 (VE3NEA, a paid Play Store app),
shipped without licence or attribution, and restricted to the armeabi-v7a
ABI only -- which blocks Google Play distribution (64-bit required since
2019-08).
Deleted:
- feature/cw: 11,519 lines of obfuscated decompiled Java,
libnativedecoderjni.so, layouts and resources
- core/domain/cw: 998 lines of unreachable Kotlin DSP plus its 300-line
test (CwStartListening and friends were never dispatched by any UI)
Cleaned up in feature/radar:
- Removed CwDecoderPanel, CwSubState, CwStatus and 6 CW actions
- Removed the CW branches and decoder plumbing from RadarViewModel
- Dropped now-unused dependencies: :feature:cw, :feature:mutual (was
declared but never imported), androidx.constraintlayout
- Removed radar_cw_* strings from en and zh
Kept deliberately: IAudioCapture, audioCapture and the RECORD_AUDIO
permission -- these are shared with SSTV and must not be removed.
CW decoding is gone until it is rewritten. See branch for the deleted
implementation if you need to reference it.