summaryrefslogtreecommitdiff
path: root/ui/common/src
diff options
context:
space:
mode:
Diffstat (limited to 'ui/common/src')
-rw-r--r--ui/common/src/main/java/de/danoeh/antennapod/ui/common/TriangleLabelView.java215
-rw-r--r--ui/common/src/main/res/values/attrs.xml18
2 files changed, 0 insertions, 233 deletions
diff --git a/ui/common/src/main/java/de/danoeh/antennapod/ui/common/TriangleLabelView.java b/ui/common/src/main/java/de/danoeh/antennapod/ui/common/TriangleLabelView.java
deleted file mode 100644
index 97bcede2f..000000000
--- a/ui/common/src/main/java/de/danoeh/antennapod/ui/common/TriangleLabelView.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (C) 2016 Shota Saito
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Source: https://github.com/shts/TriangleLabelView
- * Modified for our need; see AntennaPod #5925 for context
- */
-
-package de.danoeh.antennapod.ui.common;
-
-import android.annotation.SuppressLint;
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Rect;
-import android.graphics.Typeface;
-import android.util.AttributeSet;
-import android.view.View;
-
-public class TriangleLabelView extends View {
-
- private static final int DEGREES_LEFT = -45;
- private static final int DEGREES_RIGHT = 45;
- private final PaintHolder primary = new PaintHolder();
- private float topPadding;
- private float bottomPadding;
- private float centerPadding;
- private Paint trianglePaint;
- private int width;
- private int height;
- private Corner corner;
-
- public TriangleLabelView(final Context context) {
- this(context, null);
- }
-
- public TriangleLabelView(final Context context, final AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public TriangleLabelView(final Context context, final AttributeSet attrs,
- final int defStyleAttr) {
- super(context, attrs, defStyleAttr);
- init(context, attrs);
- }
-
- public TriangleLabelView(final Context context, final AttributeSet attrs,
- final int defStyleAttr, final int defStyleRes) {
- super(context, attrs, defStyleAttr, defStyleRes);
- init(context, attrs);
- }
-
- private void init(final Context context, final AttributeSet attrs) {
- final TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.TriangleLabelView);
-
- this.topPadding = ta.getDimension(R.styleable.TriangleLabelView_labelTopPadding, dp2px(7));
- this.centerPadding = ta.getDimension(R.styleable.TriangleLabelView_labelCenterPadding, dp2px(3));
- this.bottomPadding = ta.getDimension(R.styleable.TriangleLabelView_labelBottomPadding, dp2px(3));
-
- final int backgroundColor = ta.getColor(R.styleable.TriangleLabelView_backgroundColor,
- Color.parseColor("#66000000"));
- this.primary.color = ta.getColor(R.styleable.TriangleLabelView_primaryTextColor, Color.WHITE);
-
- this.primary.size = ta.getDimension(R.styleable.TriangleLabelView_primaryTextSize, sp2px(11));
-
- final String primary = ta.getString(R.styleable.TriangleLabelView_primaryText);
- if (primary != null) {
- this.primary.text = primary;
- }
-
- this.corner = Corner.from(ta.getInt(R.styleable.TriangleLabelView_corner, 1));
-
- ta.recycle();
-
- this.primary.initPaint();
-
- trianglePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
- trianglePaint.setColor(backgroundColor);
-
- this.primary.resetStatus();
- }
-
- public void setPrimaryText(final String text) {
- primary.text = text;
- primary.resetStatus();
- relayout();
- }
-
- public Corner getCorner() {
- return corner;
- }
-
- public void setCorner(final Corner corner) {
- this.corner = corner;
- relayout();
- }
-
- @Override
- protected void onDraw(final Canvas canvas) {
- super.onDraw(canvas);
- canvas.save();
-
- // translate
- canvas.translate(0, (float) ((height * Math.sqrt(2)) - height));
-
- // rotate
- if (corner.left()) {
- canvas.rotate(DEGREES_LEFT, 0, height);
- } else {
- canvas.rotate(DEGREES_RIGHT, width, height);
- }
-
- // draw triangle
- @SuppressLint("DrawAllocation")
- final Path path = new Path();
- path.moveTo(0, height);
- path.lineTo(width / 2f, 0);
- path.lineTo(width, height);
- path.close();
- canvas.drawPath(path, trianglePaint);
-
- // draw primaryText
- canvas.drawText(primary.text, (width) / 2f,
- (topPadding + centerPadding + primary.height), primary.paint);
- canvas.restore();
- }
-
- @Override
- protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- height = (int) (topPadding + centerPadding + bottomPadding + primary.height);
- width = 2 * height;
- final int realHeight = (int) (height * Math.sqrt(2));
- setMeasuredDimension(width, realHeight);
- }
-
- public int dp2px(final float dpValue) {
- final float scale = getContext().getResources().getDisplayMetrics().density;
- return (int) (dpValue * scale + 0.5f);
- }
-
- public float sp2px(final float spValue) {
- final float scale = getContext().getResources().getDisplayMetrics().scaledDensity;
- return spValue * scale;
- }
-
- /**
- * Should be called whenever what we're displaying could have changed.
- */
- private void relayout() {
- invalidate();
- requestLayout();
- }
-
- public enum Corner {
- TOP_LEFT(1),
- TOP_RIGHT(2);
- private final int type;
-
- Corner(final int type) {
- this.type = type;
- }
-
- private static Corner from(final int type) {
- for (final Corner c : values()) {
- if (c.type == type) {
- return c;
- }
- }
- return Corner.TOP_LEFT;
- }
-
- private boolean left() {
- return this == TOP_LEFT;
- }
- }
-
- private static class PaintHolder {
- String text = "";
- Paint paint;
- int color;
- float size;
- float height;
- float width;
-
- void initPaint() {
- paint = new Paint(Paint.ANTI_ALIAS_FLAG);
- paint.setColor(color);
- paint.setTextAlign(Paint.Align.CENTER);
- paint.setTextSize(size);
- paint.setTypeface(Typeface.DEFAULT_BOLD);
- }
-
- void resetStatus() {
- final Rect rectText = new Rect();
- paint.getTextBounds(text, 0, text.length(), rectText);
- width = rectText.width();
- height = rectText.height();
- }
- }
-}
diff --git a/ui/common/src/main/res/values/attrs.xml b/ui/common/src/main/res/values/attrs.xml
deleted file mode 100644
index f3334fe77..000000000
--- a/ui/common/src/main/res/values/attrs.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <declare-styleable name="TriangleLabelView">
- <attr name="backgroundColor" format="color" />
- <attr name="primaryTextColor" format="color" />
- <attr name="primaryText" format="string" />
- <attr name="primaryTextSize" format="dimension" />
-
- <attr name="labelTopPadding" format="dimension" />
- <attr name="labelCenterPadding" format="dimension" />
- <attr name="labelBottomPadding" format="dimension" />
-
- <attr name="corner">
- <enum name="leftTop" value="1" />
- <enum name="rightTop" value="2" />
- </attr>
- </declare-styleable>
-</resources>