blob: 95a7d006211763ebed1f63d5e5778d6de1da3f19 [file] [log] [blame]
// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.ui.widget;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.text.Layout;
import android.text.style.BulletSpan;
import org.chromium.ui.R;
/**
* A wrapper around Android's BulletSpan that provides default styling and adjusts the bullet
* positioning to prevent it from being cut off.
*/
public class ChromeBulletSpan extends BulletSpan {
private int mXOffset;
/**
* Construts a new ChromeBuletSpan.
* @param context The context of the containing view, used to retrieve dimensions.
*/
public ChromeBulletSpan(Context context) {
super(context.getResources().getDimensionPixelSize(R.dimen.chrome_bullet_gap));
mXOffset =
context.getResources().getDimensionPixelSize(R.dimen.chrome_bullet_leading_offset);
}
@Override
public void drawLeadingMargin(
Canvas c,
Paint p,
int x,
int dir,
int top,
int baseline,
int bottom,
CharSequence text,
int start,
int end,
boolean first,
Layout l) {
// Android cuts off the bullet points. Adjust the x-position so that the bullets aren't
// cut off.
super.drawLeadingMargin(
c, p, x + mXOffset, dir, top, baseline, bottom, text, start, end, first, l);
}
}