summaryrefslogtreecommitdiff
path: root/org.fox.ttrss
diff options
context:
space:
mode:
Diffstat (limited to 'org.fox.ttrss')
-rwxr-xr-xorg.fox.ttrss/build.gradle1
-rw-r--r--org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/TextDrawable.java316
-rw-r--r--org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/util/ColorGenerator.java48
3 files changed, 1 insertions, 364 deletions
diff --git a/org.fox.ttrss/build.gradle b/org.fox.ttrss/build.gradle
index d2adfb51..2354165f 100755
--- a/org.fox.ttrss/build.gradle
+++ b/org.fox.ttrss/build.gradle
@@ -44,5 +44,6 @@ dependencies {
compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
compile 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'
compile 'com.nineoldandroids:library:2.4.0'
+ compile 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1'
compile files('libs/YouTubeAndroidPlayerApi.jar')
}
diff --git a/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/TextDrawable.java b/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/TextDrawable.java
deleted file mode 100644
index db42f8b7..00000000
--- a/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/TextDrawable.java
+++ /dev/null
@@ -1,316 +0,0 @@
-package com.amulyakhare.textdrawable;
-
-import android.graphics.*;
-import android.graphics.drawable.ShapeDrawable;
-import android.graphics.drawable.shapes.OvalShape;
-import android.graphics.drawable.shapes.RectShape;
-import android.graphics.drawable.shapes.RoundRectShape;
-
-/**
- * @author amulya
- * @datetime 14 Oct 2014, 3:53 PM
- */
-public class TextDrawable extends ShapeDrawable {
-
- private final Paint textPaint;
- private final Paint borderPaint;
- private static final float SHADE_FACTOR = 0.9f;
- private final String text;
- private final int color;
- private final RectShape shape;
- private final int height;
- private final int width;
- private final int fontSize;
- private final float radius;
- private final int borderThickness;
-
- private TextDrawable(Builder builder) {
- super(builder.shape);
-
- // shape properties
- shape = builder.shape;
- height = builder.height;
- width = builder.width;
- radius = builder.radius;
-
- // text and color
- text = builder.toUpperCase ? builder.text.toUpperCase() : builder.text;
- color = builder.color;
-
- // text paint settings
- fontSize = builder.fontSize;
- textPaint = new Paint();
- textPaint.setColor(builder.textColor);
- textPaint.setAntiAlias(true);
- textPaint.setFakeBoldText(builder.isBold);
- textPaint.setStyle(Paint.Style.FILL);
- textPaint.setTypeface(builder.font);
- textPaint.setTextAlign(Paint.Align.CENTER);
- textPaint.setStrokeWidth(builder.borderThickness);
-
- // border paint settings
- borderThickness = builder.borderThickness;
- borderPaint = new Paint();
- borderPaint.setColor(getDarkerShade(color));
- borderPaint.setStyle(Paint.Style.STROKE);
- borderPaint.setStrokeWidth(borderThickness);
-
- // drawable paint color
- Paint paint = getPaint();
- paint.setColor(color);
-
- }
-
- private int getDarkerShade(int color) {
- return Color.rgb((int)(SHADE_FACTOR * Color.red(color)),
- (int)(SHADE_FACTOR * Color.green(color)),
- (int)(SHADE_FACTOR * Color.blue(color)));
- }
-
- @Override
- public void draw(Canvas canvas) {
- super.draw(canvas);
- Rect r = getBounds();
-
-
- // draw border
- if (borderThickness > 0) {
- drawBorder(canvas);
- }
-
- int count = canvas.save();
- canvas.translate(r.left, r.top);
-
- // draw text
- int width = this.width < 0 ? r.width() : this.width;
- int height = this.height < 0 ? r.height() : this.height;
- int fontSize = this.fontSize < 0 ? (Math.min(width, height) / 2) : this.fontSize;
- textPaint.setTextSize(fontSize);
- canvas.drawText(text, width / 2, height / 2 - ((textPaint.descent() + textPaint.ascent()) / 2), textPaint);
-
- canvas.restoreToCount(count);
-
- }
-
- private void drawBorder(Canvas canvas) {
- RectF rect = new RectF(getBounds());
- rect.inset(borderThickness/2, borderThickness/2);
-
- if (shape instanceof OvalShape) {
- canvas.drawOval(rect, borderPaint);
- }
- else if (shape instanceof RoundRectShape) {
- canvas.drawRoundRect(rect, radius, radius, borderPaint);
- }
- else {
- canvas.drawRect(rect, borderPaint);
- }
- }
-
- @Override
- public void setAlpha(int alpha) {
- textPaint.setAlpha(alpha);
- }
-
- @Override
- public void setColorFilter(ColorFilter cf) {
- textPaint.setColorFilter(cf);
- }
-
- @Override
- public int getOpacity() {
- return PixelFormat.TRANSLUCENT;
- }
-
- @Override
- public int getIntrinsicWidth() {
- return width;
- }
-
- @Override
- public int getIntrinsicHeight() {
- return height;
- }
-
- public static IShapeBuilder builder() {
- return new Builder();
- }
-
- public static class Builder implements IConfigBuilder, IShapeBuilder, IBuilder {
-
- private String text;
-
- private int color;
-
- private int borderThickness;
-
- private int width;
-
- private int height;
-
- private Typeface font;
-
- private RectShape shape;
-
- public int textColor;
-
- private int fontSize;
-
- private boolean isBold;
-
- private boolean toUpperCase;
-
- public float radius;
-
- private Builder() {
- text = "";
- color = Color.GRAY;
- textColor = Color.WHITE;
- borderThickness = 0;
- width = -1;
- height = -1;
- shape = new RectShape();
- font = Typeface.create("sans-serif-light", Typeface.NORMAL);
- fontSize = -1;
- isBold = false;
- toUpperCase = false;
- }
-
- public IConfigBuilder width(int width) {
- this.width = width;
- return this;
- }
-
- public IConfigBuilder height(int height) {
- this.height = height;
- return this;
- }
-
- public IConfigBuilder textColor(int color) {
- this.textColor = color;
- return this;
- }
-
- public IConfigBuilder withBorder(int thickness) {
- this.borderThickness = thickness;
- return this;
- }
-
- public IConfigBuilder useFont(Typeface font) {
- this.font = font;
- return this;
- }
-
- public IConfigBuilder fontSize(int size) {
- this.fontSize = size;
- return this;
- }
-
- public IConfigBuilder bold() {
- this.isBold = true;
- return this;
- }
-
- public IConfigBuilder toUpperCase() {
- this.toUpperCase = true;
- return this;
- }
-
- @Override
- public IConfigBuilder beginConfig() {
- return this;
- }
-
- @Override
- public IShapeBuilder endConfig() {
- return this;
- }
-
- @Override
- public IBuilder rect() {
- this.shape = new RectShape();
- return this;
- }
-
- @Override
- public IBuilder round() {
- this.shape = new OvalShape();
- return this;
- }
-
- @Override
- public IBuilder roundRect(int radius) {
- this.radius = radius;
- float[] radii = {radius, radius, radius, radius, radius, radius, radius, radius};
- this.shape = new RoundRectShape(radii, null, null);
- return this;
- }
-
- @Override
- public TextDrawable buildRect(String text, int color) {
- rect();
- return build(text, color);
- }
-
- @Override
- public TextDrawable buildRoundRect(String text, int color, int radius) {
- roundRect(radius);
- return build(text, color);
- }
-
- @Override
- public TextDrawable buildRound(String text, int color) {
- round();
- return build(text, color);
- }
-
- @Override
- public TextDrawable build(String text, int color) {
- this.color = color;
- this.text = text;
- return new TextDrawable(this);
- }
- }
-
- public interface IConfigBuilder {
- public IConfigBuilder width(int width);
-
- public IConfigBuilder height(int height);
-
- public IConfigBuilder textColor(int color);
-
- public IConfigBuilder withBorder(int thickness);
-
- public IConfigBuilder useFont(Typeface font);
-
- public IConfigBuilder fontSize(int size);
-
- public IConfigBuilder bold();
-
- public IConfigBuilder toUpperCase();
-
- public IShapeBuilder endConfig();
- }
-
- public static interface IBuilder {
-
- public TextDrawable build(String text, int color);
- }
-
- public static interface IShapeBuilder {
-
- public IConfigBuilder beginConfig();
-
- public IBuilder rect();
-
- public IBuilder round();
-
- public IBuilder roundRect(int radius);
-
- public TextDrawable buildRect(String text, int color);
-
- public TextDrawable buildRoundRect(String text, int color, int radius);
-
- public TextDrawable buildRound(String text, int color);
- }
-} \ No newline at end of file
diff --git a/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/util/ColorGenerator.java b/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/util/ColorGenerator.java
deleted file mode 100644
index 99e7467f..00000000
--- a/org.fox.ttrss/src/main/java/com/amulyakhare/textdrawable/util/ColorGenerator.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.amulyakhare.textdrawable.util;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Random;
-
-/**
- * @author amulya
- * @datetime 14 Oct 2014, 5:20 PM
- */
-public class ColorGenerator {
-
- public static ColorGenerator DEFAULT;
-
- static {
- DEFAULT = create(Arrays.asList(
- 0xfff16364,
- 0xfff58559,
- 0xfff9a43e,
- 0xffe4c62e,
- 0xff67bf74,
- 0xff59a2be,
- 0xff2093cd,
- 0xffad62a7,
- 0xff805781
- ));
- }
-
- private final List<Integer> mColors;
- private final Random mRandom;
-
- public static ColorGenerator create(List<Integer> colorList) {
- return new ColorGenerator(colorList);
- }
-
- private ColorGenerator(List<Integer> colorList) {
- mColors = colorList;
- mRandom = new Random(System.currentTimeMillis());
- }
-
- public int getRandomColor() {
- return mColors.get(mRandom.nextInt(mColors.size()));
- }
-
- public int getColor(Object key) {
- return mColors.get(Math.abs(key.hashCode()) % mColors.size());
- }
-}