All Versions
6
Latest Version
Avg Release Cycle
179 days
Latest Release
2200 days ago
Changelog History
Changelog History
-
v2.4 Changes
March 19, 2019➕ Additions
- ➕ Added support for variable fonts
- Covered variable fonts in demo project
- Wrote likable label in demo project
FontFile
:- Named Typefaces:
List<Typeface> getTypefaces()
Typeface
:- Variation Axes:
List<VariationAxis> getVariationAxes()
- Variation Coordinates:
float[] getVariationCoordinates()
- Variation Instance:
Typeface getVariationInstance(float[] coordinates)
ShapingResult
:- Caret Edges:
FloatList getCaretEdges(boolean[] caretStops)
⚡️ Updates
- ➕ Added static constructors in table classes
- 👉 Used sheen figure for caret handling
- ⚡️ Updated free type to version 2.10.0
-
v2.3 Changes
December 09, 2018➕ Additions
➕ Added
@Nullable
,@NonNull
,@Size
and@ColorInt
annotations throughout the projectShapingEngine
:- OpenType Features:
setOpenTypeFeatures(Set<OpenTypeFeature> features)
,Set<OpenTypeFeature> getOpenTypeFeatures()
Typeface
:- Strikeout Properties:
int getStrikeoutPosition()
,int getStrikeoutThickness()
@IntDef
Annotations:BidiClass
:@Value
GeneralCategory
:@Value
Script
:@Value
⚡️ Updates
- Implemented character measurement based on caret range distance
- Wrote
Precondition
class and used it for checking parameter expectations - ✂ Removed custom
@Sustain
annotation in favour of androidx@Keep
annotation - Replaced array with variable args for creating primitive lists
- ⚡️ Updated SheenFigure to version 1.5
🛠 Fixes
- 🛠 Fixed an issue related to text becoming blank in
TLabel
widge - 🛠 Fixed backward mode glyph run rendering issues
- 🛠 Fixed backward mode cluster clipping issues
- 🛠 Fixed
equals(Object)
implementation ofNameTable.Record
- OpenType Features:
-
v2.2 Changes
August 21, 2018➕ Additions
BidiClass
:- Enum Values: UAX #44: Bidirectional Class Values
- ✅ Unit Testing: Literal Numbers
GeneralCategory
:- Enum Values: UAX #44: General Category Values
- ✅ Unit Testing: Literal Numbers
Script
:- Enum Values: UAX #24: PropertyValueAliases.txt
- 📄 OpenType Tag:
static int getOpenTypeTag(int script)
- ✅ Unit Testing: Literal Numbers
CodePoint
:- Bidi Class Property:
static int getBidiClass(int codePoint)
- General Category Property:
static int getGeneralCategory(int codePoint)
- Script Property:
static int getScript(int codePoint)
- Mirroring Property:
static int getMirror(int codePoint)
BidiAlgorithm
:- Bidi Classes:
IntList getCharBidiClasses()
ScriptClassifier
:- Unicode Standard: UAX #24
- Resolved Scripts:
IntList getCharScripts()
- Resolved Runs:
Iterable<ScriptRun> getScriptRuns(int charStart, int charEnd)
GlyphRun
:- Cluster Splitting:
int getStartExtraLength()
,int getEndExtraLength()
➕ Added support for cluster splitting in multiple spans
✅ Wrote an abstract class for testingIntList
implementations
✅ Used a dedicatedAndroid.mk
file for instrumentation tests⚡️ Updates
- ↔ Integrated script analysis process of UAX #24 in typesetting
- Made right-to-left glyph drawing with decreasing pen x value in
Renderer
- ⬇️ Reduced synthetic methods generation with package access
- 🚀 Enabled JNI symbols stripping in release mode
- ⬇️ Reduced property methods calling in
Renderer
- 👉 Used direct field accesses in
GlyphRun
- Shortened names of native methods with
n
prefix - 🔨 Refactored names of internal primitive collections
- ⚡️ Updated FreeType to version 2.9.1
- ⚡️ Updated SheenBidi to version 2.1
- ⚡️ Updated SheenFigure to version 1.4
🛠 Fixes
- 🛠 Fixed invalid leading and trailing index issues in
GlyphRun
- 🛠 Fixed accidental deallocation of data in primitive raw list implementations
- 🛠 Fixed character measurement of backward segments in typesetting
- 🛠 Fixed cluster map copying issue in
GlyphRun
- 🛠 Fixed redundant type casting warnings in demo project
-
v2.1 Changes
April 01, 2018➕ Additions
TypeFamily
:- 💅 Style Matching:
getTypefaceByStyle(TypeWidth, TypeWeight, TypeSlope)
TypefaceManager
:- Typeface Grouping:
getTypeFamily(String familyName)
TextAlignment
:- Natural Alignment:
INTRINSIC
,EXTRINSIC
GlyphRun
:- Character Group:
int getActualClusterStart(int charIndex)
,int getActualClusterEnd(int charIndex)
- Glyph Group:
int getLeadingGlyphIndex(int charIndex)
,int getTrailingGlyphIndex(int charIndex)
- ✅ Hit Testing:
float computeCharDistance(int charIndex)
,int computeNearestCharIndex(float distance)
ComposedLine
:- ✅ Hit Testing:
float computeCharDistance(int charIndex)
,int computeNearestCharIndex(float distance)
- Highlighting:
float[] computeVisualEdges(int charStart, int charEnd)
CompsedFrame
:- Boundary Properties:
originX
,originY
,width
,height
- ✅ Hit Testing:
int getLineIndexForChar(int charIndex)
,int getLineIndexForPosition(float x, float y)
- Highlighting:
Path generateSelectionPath(int charStart, int charEnd)
TLabel
:- Line Properties:
extraLineSpacing
,lineHeightMultiplier
- Text Properties:
composedFrame
,spanned
,typesetter
- ✅ Hit Testing:
int hitTestPosition(float x, float y)
➕ Added
FrameResolver
class for easier text layout and measurement.➕ Added support for following
CharacterStyle
spans without invokingupdateDrawState(TextPaint)
orupdateMeasureState(TextPaint)
:- ForegroundColorSpan
- AbsoluteSizeSpan
- RelativeSizeSpan
- ReplacementSpan
- ScaleXSpan
- 💅 StyleSpan
- SubscriptSpan
- SuperscriptSpan
- TextAppearanceSpan
- TypefaceSpan
➕ Added support for following
ParagraphStyle
spans:- AlignmentSpan
- BulletSpan
- LeadingMarginSpan
- LeadingMarginSpan2
- LineBackgroundSpan
- LineHeightSpan
- QuoteSpan
⚡️ Updates
- Divided functionality of
Typesetter
into various logical classes - Made
TypefaceSpan
andTypeSizeSpan
conform toMetricAffectingSpan
for easier span handling - ⚡️ Updated FreeType to version 2.9
- ⚡️ Updated SheenFigure to version 1.3
🛠 Fixes
- 🛠 Fixed
NullPointerException
caused byNameTable
on older android versions - 🛠 Fixed
gravity
attribute ofTLabel
with flag format - Prohibited offsets and advances scaling in
Renderer
- Made accidentally publicized method
createCompactLine
private inTypesetter
- 💅 Style Matching:
-
v2.0 Changes
July 30, 2017- Refined architecture of the library
- ➕ Added flexible primitive collections
- 🔦 Exposed essential SFNT tables
- Covered more APIs in demo project
-
v1.0
October 07, 2016