From 6ea7a1405f4aa33a57ca6246f1d9e6fee2acc6ab Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 30 May 2023 21:37:47 +0800 Subject: [PATCH] Cleanup unused code --- .../client/parser/GalleryListUrlParser.kt | 3 +- .../com/hippo/ehviewer/yorozuya/IOUtils.java | 6 - .../hippo/ehviewer/yorozuya/MathUtils.java | 188 -------- .../hippo/ehviewer/yorozuya/StringUtils.java | 36 -- .../hippo/ehviewer/yorozuya/Utilities.java | 21 - .../hippo/ehviewer/yorozuya/ViewUtils.java | 420 ------------------ 6 files changed, 1 insertion(+), 673 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListUrlParser.kt b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListUrlParser.kt index 8d6350803..d0341f41d 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListUrlParser.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/parser/GalleryListUrlParser.kt @@ -20,7 +20,6 @@ import android.os.Build import android.text.TextUtils import com.hippo.ehviewer.client.EhUrl import com.hippo.ehviewer.client.data.ListUrlBuilder -import com.hippo.ehviewer.yorozuya.Utilities import java.io.UnsupportedEncodingException import java.net.MalformedURLException import java.net.URL @@ -39,7 +38,7 @@ object GalleryListUrlParser { } catch (e: MalformedURLException) { return null } - if (!Utilities.contain(VALID_HOSTS, url.host)) { + if (url.host !in VALID_HOSTS) { return null } val path = url.path ?: return null diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/IOUtils.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/IOUtils.java index 635b04c59..9a1d13a47 100644 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/IOUtils.java +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/IOUtils.java @@ -105,10 +105,4 @@ public final class IOUtils { return sb.toString(); } - - public static byte[] getAllByte(InputStream is) throws IOException { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - copy(is, baos); - return baos.toByteArray(); - } } diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/MathUtils.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/MathUtils.java index 7172b076b..104be69b4 100644 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/MathUtils.java +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/MathUtils.java @@ -21,8 +21,6 @@ import java.util.Random; // Get most code from android.util.MathUtils public final class MathUtils { private static final Random sRandom = new Random(); - private static final float DEG_TO_RAD = 3.1415926f / 180.0f; - private static final float RAD_TO_DEG = 180.0f / 3.1415926f; private MathUtils() { } @@ -35,14 +33,6 @@ public final class MathUtils { return (float) Math.log(a); } - public static float exp(float a) { - return (float) Math.exp(a); - } - - public static float pow(float a, float b) { - return (float) Math.pow(a, b); - } - public static float max(float a, float b) { return a > b ? a : b; } @@ -152,58 +142,10 @@ public final class MathUtils { return (float) Math.sqrt(x * x + y * y + z * z); } - public static boolean near(float x1, float y1, float x2, float y2, float slop) { - return dist(x1, y1, x2, y2) < slop; - } - - public static boolean near(float x1, float y1, float z1, float x2, float y2, float z2, float slop) { - return dist(x1, y1, z1, x2, y2, z2) < slop; - } - - public static float mag(float a, float b) { - return (float) Math.hypot(a, b); - } - - public static float mag(float a, float b, float c) { - return (float) Math.sqrt(a * a + b * b + c * c); - } - - public static float sq(float v) { - return v * v; - } - public static float cross(float v1x, float v1y, float v2x, float v2y) { return v1x * v2y - v1y * v2x; } - public static float radians(float degrees) { - return degrees * DEG_TO_RAD; - } - - public static float degrees(float radians) { - return radians * RAD_TO_DEG; - } - - public static float acos(float value) { - return (float) Math.acos(value); - } - - public static float asin(float value) { - return (float) Math.asin(value); - } - - public static float atan(float value) { - return (float) Math.atan(value); - } - - public static float atan2(float a, float b) { - return (float) Math.atan2(a, b); - } - - public static float tan(float angle) { - return (float) Math.tan(angle); - } - public static int lerp(int start, int stop, float amount) { return start + (int) ((stop - start) * amount); } @@ -212,26 +154,6 @@ public final class MathUtils { return start + (stop - start) * amount; } - public static float delerp(int start, int stop, int value) { - if (stop == start) { - return 1.0f; - } else { - return (float) (value - start) / (float) (stop - start); - } - } - - public static float delerp(float start, float stop, float value) { - if (stop == start) { - return 1.0f; - } else { - return (value - start) / (stop - start); - } - } - - public static float norm(float start, float stop, float value) { - return (value - start) / (stop - start); - } - public static float map(float minStart, float minStop, float maxStart, float maxStop, float value) { return maxStart + (maxStart - maxStop) * ((value - minStart) / (minStop - minStart)); } @@ -245,64 +167,6 @@ public final class MathUtils { return x; } - /** - * Returns the input value x clamped to the range [min, max]. - */ - public static float clamp(float x, float min, float max) { - if (x > max) return max; - if (x < min) return min; - return x; - } - - /** - * Returns the input value x clamped to the range [min, max]. - */ - public static long clamp(long x, long min, long max) { - if (x > max) return max; - if (x < min) return min; - return x; - } - - /** - * Returns the next power of two. - * Returns the input if it is already power of 2. - * Throws IllegalArgumentException if the input is <= 0 or - * the answer overflows. - */ - public static int nextPowerOf2(int n) { - if (n <= 0 || n > (1 << 30)) throw new IllegalArgumentException("n is invalid: " + n); - n -= 1; - n |= n >> 16; - n |= n >> 8; - n |= n >> 4; - n |= n >> 2; - n |= n >> 1; - return n + 1; - } - - /** - * Returns the previous power of two. - * Returns the input if it is already power of 2. - * Throws IllegalArgumentException if the input is <= 0 or - * the answer overflows. - */ - public static int previousPowerOf2(int n) { - if (n <= 0 || n > (1 << 30)) throw new IllegalArgumentException("n is invalid: " + n); - n |= n >> 1; - n |= n >> 2; - n |= n >> 4; - n |= n >> 8; - n |= n >> 16; - return n - (n >> 1); - } - - // http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer - public static int hammingWeight(int n) { - n = n - ((n >>> 1) & 0x55555555); - n = (n & 0x33333333) + ((n >>> 2) & 0x33333333); - return (((n + (n >>> 4)) & 0x0F0F0F0F) * 0x01010101) >>> 24; - } - /** * divide and ceil */ @@ -310,54 +174,6 @@ public final class MathUtils { return (a + b - 1) / b; } - /** - * divide and ceil - */ - public static long ceilDivide(long a, long b) { - return (a + b - 1) / b; - } - - /** - * Get coverage radius of a area - * - * @param w the width of the area - * @param h the height of the area - * @param x the x of point in area - * @param y the y of point in area - * @return the radius - */ - public static float coverageRadius(float w, float h, float x, float y) { - float x2; - float y2; - if (x > w / 2) { - x2 = 0; - } else { - x2 = w; - } - if (y > h / 2) { - y2 = 0; - } else { - y2 = h; - } - return dist(x, y, x2, y2); - } - - public static float positiveModulo(float x, float y) { - float result = x % y; - if (x < 0) { - result += y; - } - return result; - } - - public static float negativeModulo(float x, float y) { - float result = x % y; - if (x > 0) { - result -= y; - } - return result; - } - /** * [0, howbig) */ @@ -389,8 +205,4 @@ public final class MathUtils { return howsmall; return lerp(howsmall, howbig, sRandom.nextFloat()); } - - public static void randomSeed(long seed) { - sRandom.setSeed(seed); - } } diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/StringUtils.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/StringUtils.java index 42039ba85..dc7cb704f 100644 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/StringUtils.java +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/StringUtils.java @@ -124,15 +124,6 @@ public final class StringUtils { return buf.toString(); } - public static boolean endsWith(String string, String[] suffixs) { - for (int i = 0, n = suffixs.length; i < n; i++) { - if (string.endsWith(suffixs[i])) { - return true; - } - } - return false; - } - /** *

Splits the provided text into an array, separator specified. * This is an alternative to using StringTokenizer.

@@ -217,20 +208,6 @@ public final class StringUtils { return value == null ? defaultValue : value; } - public static boolean isAllDigit(String str) { - if (TextUtils.isEmpty(str)) { - return false; - } else { - for (int i = 0, n = str.length(); i < n; i++) { - char ch = str.charAt(i); - if (ch < '0' || ch > '9') { - return false; - } - } - return true; - } - } - public static int length(String str) { return null == str ? 0 : str.length(); } @@ -243,19 +220,6 @@ public final class StringUtils { (!TextUtils.isEmpty(str1) && !TextUtils.isEmpty(str2) && str1.equals(str2)); } - public static int ordinalIndexOf(String str, char c, int n) { - if (null == str || n < 0) { - return -1; - } - - int pos = -1; - do { - pos = str.indexOf(c, pos + 1); - } while (n-- > 0 && pos != -1); - - return pos; - } - /** * Works like {@link String#trim()}, but more white space is excluded. * The white space characters is {@link #WHITE_SPACE_ARRAY}. diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/Utilities.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/Utilities.java index e3c40c77b..f90f9b9df 100644 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/Utilities.java +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/Utilities.java @@ -19,27 +19,6 @@ package com.hippo.ehviewer.yorozuya; import androidx.annotation.Nullable; public final class Utilities { - - /** - * Whether the array contain the element - * - * @param array the array - * @param obj the element - * @return true for the array contain the element - */ - public static boolean contain(@Nullable Object[] array, @Nullable Object obj) { - if (null == array) { - return false; - } - - for (Object o : array) { - if (ObjectUtils.equal(o, obj)) { - return true; - } - } - return false; - } - /** * Whether the array contain the element * diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java index 181e326f3..8d17e49b9 100644 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java @@ -16,22 +16,15 @@ package com.hippo.ehviewer.yorozuya; -import android.annotation.TargetApi; import android.app.Activity; import android.app.Dialog; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.os.Build; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; -import android.view.ViewTreeObserver; import androidx.annotation.IdRes; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import java.io.PrintWriter; import java.util.concurrent.atomic.AtomicInteger; public final class ViewUtils { @@ -41,201 +34,6 @@ public final class ViewUtils { private ViewUtils() { } - /** - * Get view center location in window - * - * @param view the view to check - * @param location an array of two integers in which to hold the coordinates - */ - public static void getCenterInWindows(View view, int[] location) { - getLocationInWindow(view, location); - location[0] += view.getWidth() / 2; - location[1] += view.getHeight() / 2; - } - - /** - * Get view location in window - * - * @param view the view to check - * @param location an array of two integers in which to hold the coordinates - */ - public static void getLocationInWindow(View view, int[] location) { - getLocationInAncestor(view, location, android.R.id.content); - } - - /** - * Get view center in ths ancestor - * - * @param view the view to start with - * @param location the container of result - * @param ancestorId the ancestor id - */ - public static void getCenterInAncestor(View view, int[] location, int ancestorId) { - getLocationInAncestor(view, location, ancestorId); - location[0] += view.getWidth() / 2; - location[1] += view.getHeight() / 2; - } - - /** - * Get view location in ths ancestor - * - * @param view the view to start with - * @param location the container of result - * @param ancestorId the ancestor id - */ - public static void getLocationInAncestor(View view, int[] location, int ancestorId) { - if (location == null || location.length < 2) { - throw new IllegalArgumentException( - "location must be an array of two integers"); - } - - float[] position = new float[2]; - - position[0] = view.getLeft(); - position[1] = view.getTop(); - - ViewParent viewParent = view.getParent(); - while (viewParent instanceof View) { - view = (View) viewParent; - if (view.getId() == ancestorId) { - break; - } - - position[0] -= view.getScrollX(); - position[1] -= view.getScrollY(); - - position[0] += view.getLeft(); - position[1] += view.getTop(); - - viewParent = view.getParent(); - } - - location[0] = (int) (position[0] + 0.5f); - location[1] = (int) (position[1] + 0.5f); - } - - /** - * Get view center in ths ancestor - * - * @param view the view to start with - * @param location the container of result - * @param ancestor the ancestor - */ - public static void getCenterInAncestor(View view, int[] location, View ancestor) { - getLocationInAncestor(view, location, ancestor); - location[0] += view.getWidth() / 2; - location[1] += view.getHeight() / 2; - } - - /** - * Get view location in ths ancestor - * - * @param view the view to start with - * @param location the container of result - * @param ancestor the ancestor - */ - public static void getLocationInAncestor(View view, int[] location, View ancestor) { - if (location == null || location.length < 2) { - throw new IllegalArgumentException( - "location must be an array of two integers"); - } - - float[] position = new float[2]; - - position[0] = view.getLeft(); - position[1] = view.getTop(); - - ViewParent viewParent = view.getParent(); - while (viewParent instanceof View) { - view = (View) viewParent; - if (viewParent == ancestor) { - break; - } - - position[0] -= view.getScrollX(); - position[1] -= view.getScrollY(); - - position[0] += view.getLeft(); - position[1] += view.getTop(); - - viewParent = view.getParent(); - } - - location[0] = (int) (position[0] + 0.5f); - location[1] = (int) (position[1] + 0.5f); - } - - /** - * Look for a ancestor view with the given id. If this view has the given - * id, return this view. - * - * @param view the view to start with - * @param id The id to search for. - * @return The view that has the given id in the hierarchy or null - */ - public static View getAncestor(View view, int id) { - if (view.getId() == id) { - return view; - } - - ViewParent viewParent = view.getParent(); - while (viewParent instanceof View) { - view = (View) viewParent; - if (view.getId() == id) { - return view; - } - viewParent = view.getParent(); - } - return null; - } - - /** - * Look for a child view with the given id. If this view has the given - * id, return this view. - * - * @param view the view to start with - * @param id the id to search for - * @return the view that has the given id in the hierarchy or null - */ - public static View getChild(View view, int id) { - if (view.getId() == id) { - return view; - } - - if (view instanceof ViewGroup viewGroup) { - for (int i = 0, n = viewGroup.getChildCount(); i < n; i++) { - View child = viewGroup.getChildAt(i); - View result = getChild(child, id); - if (result != null) { - return result; - } - } - } - - return null; - } - - /** - * Returns a bitmap showing a screenshot of the view passed in. - * - * @param v The view to get screenshot - * @return The screenshot - */ - public static Bitmap getBitmapFromView(View v) { - int width = v.getWidth(); - int height = v.getHeight(); - if (width == 0 && height == 0) { - width = v.getMeasuredWidth(); - height = v.getMeasuredHeight(); - } - Bitmap bitmap = Bitmap.createBitmap(width, height, - Bitmap.Config.ARGB_8888); - Canvas canvas = new Canvas(bitmap); - canvas.translate(-v.getScrollX(), -v.getScrollY()); - v.draw(canvas); - return bitmap; - } - /** * Remove view from its parent * @@ -247,188 +45,6 @@ public final class ViewUtils { ((ViewGroup) vp).removeView(view); } - /** - * Method that removes the support for HardwareAcceleration from a - * {@link View}.
- *
- * Check AOSP notice:
- * - *
-     * 'ComposeShader can only contain shaders of different types (a BitmapShader and a
-     * LinearGradient for instance, but not two instances of BitmapShader)'. But, 'If your
-     * application is affected by any of these missing features or limitations, you can turn
-     * off hardware acceleration for just the affected portion of your application by calling
-     * setLayerType(View.LAYER_TYPE_SOFTWARE, null).'
-     * 
- * - * @param v The view - */ - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static void removeHardwareAccelerationSupport(View v) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) { - if (v.getLayerType() != View.LAYER_TYPE_SOFTWARE) { - v.setLayerType(View.LAYER_TYPE_SOFTWARE, null); - } - } - } - - @TargetApi(Build.VERSION_CODES.HONEYCOMB) - public static void addHardwareAccelerationSupport(View v) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) { - if (v.getLayerType() != View.LAYER_TYPE_HARDWARE) { - v.setLayerType(View.LAYER_TYPE_HARDWARE, null); - } - } - } - - public static void measureView(View v, int width, int height) { - int widthMeasureSpec; - int heightMeasureSpec; - if (width == ViewGroup.LayoutParams.WRAP_CONTENT) - widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, - View.MeasureSpec.UNSPECIFIED); - else - widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(Math.max(width, 0), - View.MeasureSpec.EXACTLY); - if (height == ViewGroup.LayoutParams.WRAP_CONTENT) - heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, - View.MeasureSpec.UNSPECIFIED); - else - heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(Math.max(height, 0), - View.MeasureSpec.EXACTLY); - - v.measure(widthMeasureSpec, heightMeasureSpec); - } - - /** - * Determine if the supplied view is under the given point in the - * parent view's coordinate system. - * - * @param view Child view of the parent to hit test - * @param x X position to test in the parent's coordinate system - * @param y Y position to test in the parent's coordinate system - * @param slop the slop out of the view, or negative for inside - * @return true if the supplied view is under the given point, false otherwise - */ - public static boolean isViewUnder(@Nullable View view, int x, int y, int slop) { - if (view == null) { - return false; - } else { - float translationX = 0.0f; - float translationY = 0.0f; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { - translationX = view.getTranslationX(); - translationY = view.getTranslationY(); - } - return x >= view.getLeft() + translationX - slop && - x < view.getRight() + translationX + slop && - y >= view.getTop() + translationY - slop && - y < view.getBottom() + translationY + slop; - } - } - - /** - * Utility to return a default size. Uses the supplied size if the - * MeasureSpec imposed no constraints. Will get suitable if allowed - * by the MeasureSpec. - * - * @param size Default size for this view - * @param measureSpec Constraints imposed by the parent - * @return The size this view should be. - */ - public static int getSuitableSize(int size, int measureSpec) { - int result = size; - int specMode = View.MeasureSpec.getMode(measureSpec); - int specSize = View.MeasureSpec.getSize(measureSpec); - - switch (specMode) { - case View.MeasureSpec.UNSPECIFIED: - result = size; - break; - case View.MeasureSpec.EXACTLY: - result = specSize; - break; - case View.MeasureSpec.AT_MOST: - return size == 0 ? specSize : Math.min(size, specSize); - } - return result; - } - - /** - * removeOnGlobalLayoutListener - * - * @param viewTreeObserver the ViewTreeObserver - * @param l the OnGlobalLayoutListener - */ - @SuppressWarnings("deprecation") - public static void removeOnGlobalLayoutListener(ViewTreeObserver viewTreeObserver, - ViewTreeObserver.OnGlobalLayoutListener l) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { - viewTreeObserver.removeGlobalOnLayoutListener(l); - } else { - viewTreeObserver.removeOnGlobalLayoutListener(l); - } - } - - /** - * Get index in parent - * - * @param view The view - * @return The index - */ - public static int getIndexInParent(View view) { - ViewParent parent = view.getParent(); - if (parent instanceof ViewGroup viewParent) { - int count = viewParent.getChildCount(); - for (int i = 0; i < count; i++) { - View v = viewParent.getChildAt(i); - if (v == view) { - return i; - } - } - } - return -1; - } - - /** - * Transform point from parent to child - * - * @param point the point - * @param parent the parent - * @param child the child - */ - public static void transformPointToViewLocal(float[] point, View parent, View child) { - point[0] += parent.getScrollX() - child.getLeft(); - point[1] += parent.getScrollY() - child.getTop(); - } - - public static void setEnabledRecursively(View view, boolean enabled) { - if (view instanceof ViewGroup viewGroup) { - for (int i = 0, n = viewGroup.getChildCount(); i < n; i++) { - setEnabledRecursively(viewGroup.getChildAt(i), enabled); - } - } - view.setEnabled(enabled); - } - - public static void dumpViewHierarchy(View view, PrintWriter writer) { - dumpViewHierarchy(view, writer, ""); - } - - private static void dumpViewHierarchy(View view, PrintWriter writer, String prefix) { - writer.write(prefix); - writer.write(view.getClass().getName()); - writer.write('\n'); - if (view instanceof ViewGroup viewGroup) { - String newPrefix = prefix + " "; - for (int i = 0, count = viewGroup.getChildCount(); i < count; i++) { - View child = viewGroup.getChildAt(i); - dumpViewHierarchy(child, writer, newPrefix); - } - } - writer.flush(); - } - /** * Generate a value suitable for use in {@link View#setId(int)}. * This value will not collide with ID values generated at build time by aapt for R.id. @@ -447,42 +63,6 @@ public final class ViewUtils { } } - /** - * Offset this view translationX - */ - public static void translationXBy(View view, float offset) { - view.setTranslationX(view.getTranslationX() + offset); - } - - /** - * Offset this view translationY - */ - public static void translationYBy(View view, float offset) { - view.setTranslationY(view.getTranslationY() + offset); - } - - /** - * The visual right position of this view, in pixels. This is equivalent to the - * {@link View#setTranslationX(float) translationX} property plus the current - * {@link View#getRight() right} property. - * - * @return The visual right position of this view, in pixels. - */ - public static float getX2(View view) { - return view.getRight() + view.getTranslationX(); - } - - /** - * The visual bottom position of this view, in pixels. This is equivalent to the - * {@link View#setTranslationY(float) translationY} property plus the current - * {@link View#getBottom()} () bottom} property. - * - * @return The visual bottom position of this view, in pixels. - */ - public static float getY2(View view) { - return view.getBottom() + view.getTranslationY(); - } - @NonNull public static View $$(Activity activity, @IdRes int id) { View result = activity.findViewById(id);