Statistics
| Branch: | Tag: | Revision:

notecipher / app / src / info / guardianproject / notepadbot / LinedEditText.java @ 7018009a

History | View | Annotate | Download (1.26 KB)

1
package info.guardianproject.notepadbot;
2

    
3
import android.content.Context;
4
import android.graphics.Canvas;
5
import android.graphics.Paint;
6
import android.graphics.Rect;
7
import android.util.AttributeSet;
8
import android.widget.EditText;
9

    
10
/**
11
 * A custom EditText that draws lines between each line of text that is displayed.
12
 */
13
public class LinedEditText extends EditText {
14
    private Rect mRect;
15
    private Paint mPaint;
16
    private boolean showLines;
17
    
18
    // we need this constructor for LayoutInflater
19
    public LinedEditText(Context context, AttributeSet attrs) {
20
        super(context, attrs);
21
        
22
        mRect = new Rect();
23
        mPaint = new Paint();
24
        mPaint.setStyle(Paint.Style.STROKE);
25
        mPaint.setColor(getResources().getColor(R.color.gray));
26
        
27
        showLines = Settings.getNoteLinesOption(context);
28
    }
29
    
30
    @Override
31
    protected void onDraw(Canvas canvas) {
32
        int height = canvas.getHeight();
33
        int curHeight = 0;
34
        int baseline = getLineBounds(0, mRect);
35
        if(showLines) {
36
                for (curHeight = baseline + 3; curHeight < height; curHeight += getLineHeight()) {
37
                    canvas.drawLine(mRect.left, curHeight, mRect.right, curHeight, mPaint);
38
                }
39
        }
40
        super.onDraw(canvas);
41
    }
42
}