Remove use of MeasureUnit.internalGetInstance
MeasureUnit.internalGetUnit() is a method on ICU MeasureUnit which is used to construct and register MeasureUnits. Calling it from non-ICU code makes future calls to MeasureUnit.getAvailable(type) return the newly-created MeasureUnit, but that MeasureUnit will not be fully supported by ICU (no translations, ...). This code creates a MeasureUnit by calling a constructor reflectively to avoid the registration, which is a workaround. The correct long-term fix is for ICU/CLDR to support petabyte correctly (http://bugs.icu-project.org/trac/ticket/13355) and for us to just use that instead. Bug: 65632959 Test: bit CtsIcuTestCases:android.icu.dev.test.format.MeasureUnitTest Test: coretests android.text.format.FormatterTest Change-Id: I494fb59a3b3742f35cbdf6b8705817f404a2c6b0
Loading
Please register or sign in to comment