Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-27891] Android: Add Intl.Collator support

GitHub Issuen/a
TypeNew Feature
PriorityMedium
StatusClosed
ResolutionFixed
Resolution Date2020-07-19T14:16:40.000+0000
Affected Version/sn/a
Fix Version/sRelease 9.1.0
ComponentsAndroid
LabelsCollator, Intl, android, locale, localization, parity
ReporterJoshua Quick
AssigneeJoshua Quick
Created2020-05-08T18:41:55.000+0000
Updated2020-07-27T13:43:30.000+0000

Description

*Summary:* On Android, we should add support for the JavaScript Intl.Collator class. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator A collator is used to do localized string comparisons. This allows an app to correct sort text for the current locale/language. This is already supported on iOS. We should add it to Android for parity. *Note:* To add official Intl support to V8, we would have to #if it in, but this involves adding the ICU (International Components for Unicode) C++ library which is about 20 MB per architecture. This is too big and is not mobile friendly. Especially since Google Play has a 100 MB limit on APKs. So, the most reasonable solution is to implement this ourselves in Java.

Comments

  1. Joshua Quick 2020-05-09

    PR (master): https://github.com/appcelerator/titanium_mobile/pull/11698
  2. Christopher Williams 2020-07-19

    manually rebase/merged to master, 9_1_X, 9_3_X
  3. Samir Mohammed 2020-07-27

    *Closing ticket*. Fix verified in SDK version 9.1.0.v20200724110711, 9.2.0.v20200724112452 and 9.3.0.v20200724114100. Test and other information can be found at: https://github.com/appcelerator/titanium_mobile/pull/11698 *Test Environment*
       MacOS Big Sur: 11.0 Beta
       Xcode: 12.0 Beta 
       Java Version: 1.8.0_242
       Android NDK: 21.3.6528147
       Node.js: 12.18.1
       ""NPM":"5.0.0","CLI":"8.1.0-master.5""
       iphone 8 Sim (14.0 Beta)
       API29 Pixel XL emulator
       

JSON Source