public void setTypeface(@NonNull Typeface newTypeface) {
   final Typeface oldTypeface = baseTextPaint.getTypeface();
   if (oldTypeface == newTypeface) {
     return;
   }
   baseTextPaint.setTypeface(newTypeface);
   textView.setBaseTextPaint(baseTextPaint);
 }
 public void setTextSize(float textSizePxs) {
   baseTextPaint.setTextSize(textSizePxs);
   textView.setBaseTextPaint(baseTextPaint);
 }
 @Override
 protected void onDraw(Canvas canvas) {
   super.onDraw(canvas);
   textView.draw(canvas);
 }
 @NonNull
 public DirectionTextView.Text getText(@NonNull DragDirection direction) {
   return textView.getText(direction);
 }
 private void init(@Nullable AttributeSet attrs) {
   final TextView view = new TextView(getContext(), attrs);
   baseTextPaint.set(view.getPaint());
   textView.init(this, attrs, baseTextPaint);
 }