Remove TriangleLabelView (#6963)
Since we redesigned the subscriptions page, this class is unused.
This commit is contained in:
parent
68ec4e2527
commit
7c14534179
|
@ -138,10 +138,4 @@
|
||||||
website="https://github.com/kikoso/android-stackblur"
|
website="https://github.com/kikoso/android-stackblur"
|
||||||
license="Apache 2.0"
|
license="Apache 2.0"
|
||||||
licenseText="LICENSE_APACHE-2.0.txt" />
|
licenseText="LICENSE_APACHE-2.0.txt" />
|
||||||
<library
|
|
||||||
name="Triangle Label View"
|
|
||||||
author="Shota Saito"
|
|
||||||
website="https://github.com/shts/TriangleLabelView"
|
|
||||||
license="Apache 2.0"
|
|
||||||
licenseText="LICENSE_TRIANGLE_LABEL_VIEW.txt" />
|
|
||||||
</libraries>
|
</libraries>
|
||||||
|
|
|
@ -64,10 +64,6 @@
|
||||||
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
|
<Bug pattern="ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD"/>
|
||||||
<Class name="de.danoeh.antennapod.ui.home.sections.EpisodesSurpriseSection"/>
|
<Class name="de.danoeh.antennapod.ui.home.sections.EpisodesSurpriseSection"/>
|
||||||
</Match>
|
</Match>
|
||||||
<Match>
|
|
||||||
<Bug pattern="URF_UNREAD_FIELD"/>
|
|
||||||
<Class name="de.danoeh.antennapod.ui.common.TriangleLabelView$PaintHolder"/>
|
|
||||||
</Match>
|
|
||||||
<Match>
|
<Match>
|
||||||
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
|
<Bug pattern="URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD"/>
|
||||||
<Class name="de.danoeh.antennapod.playback.base.PlaybackServiceMediaPlayer"/>
|
<Class name="de.danoeh.antennapod.playback.base.PlaybackServiceMediaPlayer"/>
|
||||||
|
|
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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>
|
|
Loading…
Reference in New Issue