From 2b8b1af8d15b190af2cdf49e694324231f1a502a Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Fri, 29 Dec 2023 19:19:53 +0530 Subject: [PATCH] view: Drop unused custom views Signed-off-by: Aayush Gupta --- .../view/custom/CubicBezierInterpolator.java | 94 ----- .../custom/progress/AuroraProgressView.java | 386 ------------------ .../progress/indicators/BallPulseIndicator.kt | 50 --- .../custom/progress/indicators/Indicator.java | 192 --------- .../main/res/layout/view_action_button.xml | 12 - 5 files changed, 734 deletions(-) delete mode 100644 app/src/main/java/com/aurora/store/view/custom/CubicBezierInterpolator.java delete mode 100644 app/src/main/java/com/aurora/store/view/custom/progress/AuroraProgressView.java delete mode 100644 app/src/main/java/com/aurora/store/view/custom/progress/indicators/BallPulseIndicator.kt delete mode 100644 app/src/main/java/com/aurora/store/view/custom/progress/indicators/Indicator.java diff --git a/app/src/main/java/com/aurora/store/view/custom/CubicBezierInterpolator.java b/app/src/main/java/com/aurora/store/view/custom/CubicBezierInterpolator.java deleted file mode 100644 index ad993a9df..000000000 --- a/app/src/main/java/com/aurora/store/view/custom/CubicBezierInterpolator.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Aurora Store - * Copyright (C) 2021, Rahul Kumar Patel - * - * Aurora Store is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * Aurora Store is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Aurora Store. If not, see . - * - */ - -package com.aurora.store.view.custom; - -import android.graphics.PointF; -import android.view.animation.Interpolator; - -public class CubicBezierInterpolator implements Interpolator { - - public static final CubicBezierInterpolator DEFAULT = new CubicBezierInterpolator(0.25, 0.1, 0.25, 1); - public static final CubicBezierInterpolator EASE_OUT = new CubicBezierInterpolator(0, 0, .58, 1); - public static final CubicBezierInterpolator EASE_OUT_QUINT = new CubicBezierInterpolator(.23, 1, .32, 1); - public static final CubicBezierInterpolator EASE_IN = new CubicBezierInterpolator(.42, 0, 1, 1); - public static final CubicBezierInterpolator EASE_BOTH = new CubicBezierInterpolator(.42, 0, .58, 1); - public static final CubicBezierInterpolator EASE_IN_OUT_QUAD = new CubicBezierInterpolator(0.455, 0.03, 0.515, 0.955); - - protected PointF start; - protected PointF end; - protected PointF a = new PointF(); - protected PointF b = new PointF(); - protected PointF c = new PointF(); - - public CubicBezierInterpolator(PointF start, PointF end) throws IllegalArgumentException { - if (start.x < 0 || start.x > 1) { - throw new IllegalArgumentException("startX value must be in the range [0, 1]"); - } - if (end.x < 0 || end.x > 1) { - throw new IllegalArgumentException("endX value must be in the range [0, 1]"); - } - this.start = start; - this.end = end; - } - - public CubicBezierInterpolator(float startX, float startY, float endX, float endY) { - this(new PointF(startX, startY), new PointF(endX, endY)); - } - - public CubicBezierInterpolator(double startX, double startY, double endX, double endY) { - this((float) startX, (float) startY, (float) endX, (float) endY); - } - - @Override - public float getInterpolation(float time) { - return getBezierCoordinateY(getXForTime(time)); - } - - protected float getBezierCoordinateY(float time) { - c.y = 3 * start.y; - b.y = 3 * (end.y - start.y) - c.y; - a.y = 1 - c.y - b.y; - return time * (c.y + time * (b.y + time * a.y)); - } - - protected float getXForTime(float time) { - float x = time; - float z; - for (int i = 1; i < 14; i++) { - z = getBezierCoordinateX(x) - time; - if (Math.abs(z) < 1e-3) { - break; - } - x -= z / getXDerivate(x); - } - return x; - } - - private float getXDerivate(float t) { - return c.x + t * (2 * b.x + 3 * a.x * t); - } - - private float getBezierCoordinateX(float time) { - c.x = 3 * start.x; - b.x = 3 * (end.x - start.x) - c.x; - a.x = 1 - c.x - b.x; - return time * (c.x + time * (b.x + time * a.x)); - } -} diff --git a/app/src/main/java/com/aurora/store/view/custom/progress/AuroraProgressView.java b/app/src/main/java/com/aurora/store/view/custom/progress/AuroraProgressView.java deleted file mode 100644 index c9620d29a..000000000 --- a/app/src/main/java/com/aurora/store/view/custom/progress/AuroraProgressView.java +++ /dev/null @@ -1,386 +0,0 @@ -package com.aurora.store.view.custom.progress; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.drawable.Animatable; -import android.graphics.drawable.Drawable; -import android.text.TextUtils; -import android.util.AttributeSet; -import android.util.Log; -import android.view.View; -import android.view.animation.AnimationUtils; - -import com.aurora.store.R; -import com.aurora.store.view.custom.progress.indicators.BallPulseIndicator; -import com.aurora.store.view.custom.progress.indicators.Indicator; - - -public class AuroraProgressView extends View { - - private static final String TAG = "AuroraProgressView"; - - private static final BallPulseIndicator DEFAULT_INDICATOR = new BallPulseIndicator(); - - private static final int MIN_SHOW_TIME = 500; // ms - private static final int MIN_DELAY = 500; // ms - - private long startTime = -1; - - private boolean postedHide = false; - private boolean postedShow = false; - private boolean dismissed = false; - - private final Runnable mDelayedHide = new Runnable() { - - @Override - public void run() { - postedHide = false; - startTime = -1; - setVisibility(View.GONE); - } - }; - - private final Runnable mDelayedShow = new Runnable() { - - @Override - public void run() { - postedShow = false; - if (!dismissed) { - startTime = System.currentTimeMillis(); - setVisibility(View.VISIBLE); - } - } - }; - - int minWidth; - int maxWidth; - int minHeight; - int maxHeight; - - private Indicator indicator; - private int indicatorColor; - - private boolean mShouldStartAnimationDrawable; - - public AuroraProgressView(Context context) { - super(context); - init(context, null, 0, 0); - } - - public AuroraProgressView(Context context, AttributeSet attrs) { - super(context, attrs); - init(context, attrs, 0, R.style.AuroraProgressView); - } - - public AuroraProgressView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context, attrs, defStyleAttr, R.style.AuroraProgressView); - } - - public AuroraProgressView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - init(context, attrs, defStyleAttr, R.style.AuroraProgressView); - } - - private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - minWidth = 24; - maxWidth = 48; - minHeight = 24; - maxHeight = 48; - - final TypedArray a = context.obtainStyledAttributes( - attrs, R.styleable.AuroraProgressView, defStyleAttr, defStyleRes); - - minWidth = a.getDimensionPixelSize(R.styleable.AuroraProgressView_minWidth, minWidth); - maxWidth = a.getDimensionPixelSize(R.styleable.AuroraProgressView_maxWidth, maxWidth); - minHeight = a.getDimensionPixelSize(R.styleable.AuroraProgressView_minHeight, minHeight); - maxHeight = a.getDimensionPixelSize(R.styleable.AuroraProgressView_maxHeight, maxHeight); - String indicatorName = a.getString(R.styleable.AuroraProgressView_indicatorName); - indicatorColor = a.getColor(R.styleable.AuroraProgressView_indicatorColor, Color.WHITE); - setIndicator(indicatorName); - - if (indicator == null) { - setIndicator(DEFAULT_INDICATOR); - } - - a.recycle(); - } - - public Indicator getIndicator() { - return indicator; - } - - public void setIndicator(Indicator d) { - if (indicator != d) { - if (indicator != null) { - indicator.setCallback(null); - unscheduleDrawable(indicator); - } - - indicator = d; - //need to set indicator color again if you didn't specified when you update the indicator . - setIndicatorColor(indicatorColor); - if (d != null) { - d.setCallback(this); - } - postInvalidate(); - } - } - - public void setIndicatorColor(int color) { - this.indicatorColor = color; - indicator.setColor(color); - } - - public void setIndicator(String indicatorName) { - if (TextUtils.isEmpty(indicatorName)) { - return; - } - StringBuilder drawableClassName = new StringBuilder(); - if (!indicatorName.contains(".")) { - String defaultPackageName = getClass().getPackage().getName(); - drawableClassName.append(defaultPackageName) - .append(".indicators") - .append("."); - } - drawableClassName.append(indicatorName); - try { - Class drawableClass = Class.forName(drawableClassName.toString()); - Indicator indicator = (Indicator) drawableClass.getDeclaredConstructor().newInstance(); - setIndicator(indicator); - } catch (Exception exception) { - Log.e(TAG, "Failed to set indicator!", exception); - } - } - - public void smoothToShow() { - startAnimation(AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_in)); - setVisibility(VISIBLE); - } - - public void smoothToHide() { - startAnimation(AnimationUtils.loadAnimation(getContext(), android.R.anim.fade_out)); - setVisibility(GONE); - } - - public void hide() { - dismissed = true; - removeCallbacks(mDelayedShow); - long diff = System.currentTimeMillis() - startTime; - if (diff >= MIN_SHOW_TIME || startTime == -1) { - // The progress spinner has been shown long enough - // OR was not shown yet. If it wasn't shown yet, - // it will just never be shown. - setVisibility(View.GONE); - } else { - // The progress spinner is shown, but not long enough, - // so put a delayed message in to hide it when its been - // shown long enough. - if (!postedHide) { - postDelayed(mDelayedHide, MIN_SHOW_TIME - diff); - postedHide = true; - } - } - } - - public void show() { - // Reset the start time. - startTime = -1; - dismissed = false; - removeCallbacks(mDelayedHide); - if (!postedShow) { - postDelayed(mDelayedShow, MIN_DELAY); - postedShow = true; - } - } - - @Override - protected boolean verifyDrawable(Drawable who) { - return who == indicator - || super.verifyDrawable(who); - } - - void startAnimation() { - if (getVisibility() != VISIBLE) { - return; - } - - if (indicator != null) { - mShouldStartAnimationDrawable = true; - } - postInvalidate(); - } - - void stopAnimation() { - if (indicator != null) { - indicator.stop(); - mShouldStartAnimationDrawable = false; - } - postInvalidate(); - } - - @Override - public void setVisibility(int v) { - if (getVisibility() != v) { - super.setVisibility(v); - if (v == GONE || v == INVISIBLE) { - stopAnimation(); - } else { - startAnimation(); - } - } - } - - @Override - protected void onVisibilityChanged(View changedView, int visibility) { - super.onVisibilityChanged(changedView, visibility); - if (visibility == GONE || visibility == INVISIBLE) { - stopAnimation(); - } else { - startAnimation(); - } - } - - @Override - public void invalidateDrawable(Drawable dr) { - if (verifyDrawable(dr)) { - invalidate(); - } else { - super.invalidateDrawable(dr); - } - } - - @Override - protected void onSizeChanged(int w, int h, int oldw, int oldh) { - updateDrawableBounds(w, h); - } - - private void updateDrawableBounds(int w, int h) { - // onDraw will translate the canvas so we draw starting at 0,0. - // Subtract out padding for the purposes of the calculations below. - w -= getPaddingRight() + getPaddingLeft(); - h -= getPaddingTop() + getPaddingBottom(); - - int right = w; - int bottom = h; - int top = 0; - int left = 0; - - if (indicator != null) { - // Maintain aspect ratio. Certain kinds of animated drawables - // get very confused otherwise. - final int intrinsicWidth = indicator.getIntrinsicWidth(); - final int intrinsicHeight = indicator.getIntrinsicHeight(); - final float intrinsicAspect = (float) intrinsicWidth / intrinsicHeight; - final float boundAspect = (float) w / h; - if (intrinsicAspect != boundAspect) { - if (boundAspect > intrinsicAspect) { - // New width is larger. Make it smaller to match height. - final int width = (int) (h * intrinsicAspect); - left = (w - width) / 2; - right = left + width; - } else { - // New height is larger. Make it smaller to match width. - final int height = (int) (w * (1 / intrinsicAspect)); - top = (h - height) / 2; - bottom = top + height; - } - } - indicator.setBounds(left, top, right, bottom); - } - } - - @Override - protected synchronized void onDraw(Canvas canvas) { - super.onDraw(canvas); - drawTrack(canvas); - } - - void drawTrack(Canvas canvas) { - final Drawable d = indicator; - if (d != null) { - // Translate canvas so a indeterminate circular progress bar with padding - // rotates properly in its animation - final int saveCount = canvas.save(); - - canvas.translate(getPaddingLeft(), getPaddingTop()); - - d.draw(canvas); - canvas.restoreToCount(saveCount); - - if (mShouldStartAnimationDrawable && d instanceof Animatable) { - ((Animatable) d).start(); - mShouldStartAnimationDrawable = false; - } - } - } - - @Override - protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - int dw = 0; - int dh = 0; - - final Drawable d = indicator; - if (d != null) { - dw = Math.max(minWidth, Math.min(maxWidth, d.getIntrinsicWidth())); - dh = Math.max(minHeight, Math.min(maxHeight, d.getIntrinsicHeight())); - } - - updateDrawableState(); - - dw += getPaddingLeft() + getPaddingRight(); - dh += getPaddingTop() + getPaddingBottom(); - - final int measuredWidth = resolveSizeAndState(dw, widthMeasureSpec, 0); - final int measuredHeight = resolveSizeAndState(dh, heightMeasureSpec, 0); - setMeasuredDimension(measuredWidth, measuredHeight); - } - - @Override - protected void drawableStateChanged() { - super.drawableStateChanged(); - updateDrawableState(); - } - - private void updateDrawableState() { - final int[] state = getDrawableState(); - if (indicator != null && indicator.isStateful()) { - indicator.setState(state); - } - } - - @Override - public void drawableHotspotChanged(float x, float y) { - super.drawableHotspotChanged(x, y); - - if (indicator != null) { - indicator.setHotspot(x, y); - } - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - startAnimation(); - removeCallbacks(); - } - - @Override - protected void onDetachedFromWindow() { - stopAnimation(); - // This should come after stopAnimation(), otherwise an invalidate message remains in the - // queue, which can prevent the entire view hierarchy from being GC'ed during a rotation - super.onDetachedFromWindow(); - removeCallbacks(); - } - - private void removeCallbacks() { - removeCallbacks(mDelayedHide); - removeCallbacks(mDelayedShow); - } - - -} - diff --git a/app/src/main/java/com/aurora/store/view/custom/progress/indicators/BallPulseIndicator.kt b/app/src/main/java/com/aurora/store/view/custom/progress/indicators/BallPulseIndicator.kt deleted file mode 100644 index bd0b5aeb1..000000000 --- a/app/src/main/java/com/aurora/store/view/custom/progress/indicators/BallPulseIndicator.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.aurora.store.view.custom.progress.indicators - -import android.animation.ValueAnimator -import android.graphics.Canvas -import android.graphics.Paint - -class BallPulseIndicator : Indicator() { - - private val scaleFloats = floatArrayOf( - 0.75f, - 1.0f, - 0.75f - ) - - override fun draw(canvas: Canvas, paint: Paint) { - val circleSpacing = 4f - val radius = (width.coerceAtMost(height) - circleSpacing * 2) / 6 - val x = width / 2f - (radius * 2 + circleSpacing) - val y = height / 2f - - for (i in 0..2) { - canvas.save() - val translateX = x + radius * 2 * i + circleSpacing * i - canvas.translate(translateX, y) - canvas.scale(scaleFloats[i], scaleFloats[i]) - canvas.drawCircle(0f, 0f, radius, paint) - canvas.restore() - } - } - - override fun onCreateAnimators(): ArrayList { - val animators = ArrayList() - val delays = intArrayOf(120, 240, 360) - - for (i in 0..2) { - val scaleAnim = ValueAnimator.ofFloat(1f, 0.3f, 1f) - scaleAnim.duration = 1000 - scaleAnim.repeatCount = -1 - scaleAnim.startDelay = delays[i].toLong() - - addUpdateListener(scaleAnim) { - scaleFloats[i] = it.animatedValue as Float - postInvalidate() - } - - animators.add(scaleAnim) - } - return animators - } -} \ No newline at end of file diff --git a/app/src/main/java/com/aurora/store/view/custom/progress/indicators/Indicator.java b/app/src/main/java/com/aurora/store/view/custom/progress/indicators/Indicator.java deleted file mode 100644 index c9d85ad70..000000000 --- a/app/src/main/java/com/aurora/store/view/custom/progress/indicators/Indicator.java +++ /dev/null @@ -1,192 +0,0 @@ -package com.aurora.store.view.custom.progress.indicators; - -import android.animation.ValueAnimator; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.ColorFilter; -import android.graphics.Paint; -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.graphics.drawable.Animatable; -import android.graphics.drawable.Drawable; - -import java.util.ArrayList; -import java.util.HashMap; - -public abstract class Indicator extends Drawable implements Animatable { - - private static final Rect ZERO_BOUNDS_RECT = new Rect(); - - private final HashMap updateListenerHashMap = new HashMap<>(); - private final Paint paint = new Paint(); - - private int alpha = 255; - private ArrayList animators; - private boolean hasAnimators; - - protected Rect drawBounds = ZERO_BOUNDS_RECT; - - public Indicator() { - paint.setColor(Color.WHITE); - paint.setStyle(Paint.Style.FILL); - paint.setAntiAlias(true); - } - - public int getColor() { - return paint.getColor(); - } - - public void setColor(int color) { - paint.setColor(color); - } - - @Override - public void setAlpha(int alpha) { - this.alpha = alpha; - } - - @Override - public int getAlpha() { - return alpha; - } - - @Override - @SuppressWarnings({"RedundantSuppression", "deprecation"}) - public int getOpacity() { - return PixelFormat.OPAQUE; - } - - @Override - public void setColorFilter(ColorFilter colorFilter) { - - } - - @Override - public void draw(Canvas canvas) { - draw(canvas, paint); - } - - public abstract void draw(Canvas canvas, Paint paint); - - public abstract ArrayList onCreateAnimators(); - - @Override - public void start() { - ensureAnimators(); - - if (animators == null) { - return; - } - - // If the animators has not ended, do nothing. - if (isStarted()) { - return; - } - startAnimators(); - invalidateSelf(); - } - - private void startAnimators() { - for (int i = 0; i < animators.size(); i++) { - ValueAnimator animator = animators.get(i); - - //when the animator restart , add the updateListener again because they - // was removed by animator stop . - ValueAnimator.AnimatorUpdateListener updateListener = updateListenerHashMap.get(animator); - if (updateListener != null) { - animator.addUpdateListener(updateListener); - } - - animator.start(); - } - } - - private void stopAnimators() { - if (animators != null) { - for (ValueAnimator animator : animators) { - if (animator != null && animator.isStarted()) { - animator.removeAllUpdateListeners(); - animator.end(); - } - } - } - } - - private void ensureAnimators() { - if (!hasAnimators) { - animators = onCreateAnimators(); - hasAnimators = true; - } - } - - @Override - public void stop() { - stopAnimators(); - } - - private boolean isStarted() { - for (ValueAnimator animator : animators) { - return animator.isStarted(); - } - return false; - } - - @Override - public boolean isRunning() { - for (ValueAnimator animator : animators) { - return animator.isRunning(); - } - return false; - } - - public void addUpdateListener(ValueAnimator animator, ValueAnimator.AnimatorUpdateListener updateListener) { - updateListenerHashMap.put(animator, updateListener); - } - - @Override - protected void onBoundsChange(Rect bounds) { - super.onBoundsChange(bounds); - setDrawBounds(bounds); - } - - public void setDrawBounds(Rect drawBounds) { - setDrawBounds(drawBounds.left, drawBounds.top, drawBounds.right, drawBounds.bottom); - } - - public void setDrawBounds(int left, int top, int right, int bottom) { - this.drawBounds = new Rect(left, top, right, bottom); - } - - public void postInvalidate() { - invalidateSelf(); - } - - public Rect getDrawBounds() { - return drawBounds; - } - - public int getWidth() { - return drawBounds.width(); - } - - public int getHeight() { - return drawBounds.height(); - } - - public int centerX() { - return drawBounds.centerX(); - } - - public int centerY() { - return drawBounds.centerY(); - } - - public float exactCenterX() { - return drawBounds.exactCenterX(); - } - - public float exactCenterY() { - return drawBounds.exactCenterY(); - } - -} diff --git a/app/src/main/res/layout/view_action_button.xml b/app/src/main/res/layout/view_action_button.xml index 440ad3085..f7e48269e 100644 --- a/app/src/main/res/layout/view_action_button.xml +++ b/app/src/main/res/layout/view_action_button.xml @@ -49,18 +49,6 @@ tools:text="Install" /> - - - - -