544f7befe0
* basic bumps * more tweaking * fix rn patch * fix crop picker patch * fix media library patch * rm unnecessary patch * fix notifications patch * update bottomsheet * Update withAppDelegateReferrer.js * Delete withNoBundleCompression.js * rm withNoBundleCompression plugin * rm findLast shim * metro package exports is enabled by default * update react/react-dom/react-compiler * fix reanimated issue * vendor expo-ized emoji popup * fix types * hackfix view full thread * Update EmojiPickerModule.podspec * more upgrades * fix multiformats package version * add baseurl * bump mmkv * bumps * update react-keyed-flatten-children * bump locale packages * fix emoji picker dark mode * rn upgrades * Revert "bump locale packages" This reverts commitfc82f0f173. * upgrade testing-library * rm test renderer * update patch name minors * rm findNodeHandle from tabbar * only do scrollview tag thing on ios * disable package exports * update expo notifications handler * memoize emoji picker styles * fix tests, mock multiformats * bump some dev deps with RC versions * completely rearchitect toasts * rm logs * layout animation config for composer footer * disable autolinking for patched libs * undo lingui changes * version bump from release candidate to 0.1 * update atproto deps * rm @did-plc/server * fix key issue (maybe) * move URL polyfill to the polyfill file * fix yarn lock * upgrade to 53.0.3 * reanimated layout anim bug patch * workletize a function that wasn't getting autoworkletized anymore (#8309) * bump to expo 53.0.4 * bump RN to 0.79.2 * fix yarn lock ci * Revert "completely rearchitect toasts" This reverts commit2e2fcaeeed. * final upgrades * chore: cleanup yarn lock * prettier --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
58 lines
1.7 KiB
Diff
58 lines
1.7 KiB
Diff
diff --git a/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java b/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
|
|
index 06829bd..1b15818 100644
|
|
--- a/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
|
|
+++ b/node_modules/react-native-svg/android/src/main/java/com/horcrux/svg/PathView.java
|
|
@@ -14,17 +14,33 @@ import android.graphics.Paint;
|
|
import android.graphics.Path;
|
|
import com.facebook.react.bridge.ReactContext;
|
|
|
|
+import java.util.ArrayList;
|
|
+import java.util.HashMap;
|
|
+
|
|
+class ParsedPath {
|
|
+ final Path path;
|
|
+ final ArrayList<PathElement> elements;
|
|
+
|
|
+ ParsedPath(Path path, ArrayList<PathElement> elements) {
|
|
+ this.path = path;
|
|
+ this.elements = elements;
|
|
+ }
|
|
+}
|
|
+
|
|
@SuppressLint("ViewConstructor")
|
|
class PathView extends RenderableView {
|
|
private Path mPath;
|
|
|
|
+ // This grows forever but for our use case (static icons) it's ok.
|
|
+ private static final HashMap<String, ParsedPath> sPathCache = new HashMap<>();
|
|
+
|
|
public PathView(ReactContext reactContext) {
|
|
super(reactContext);
|
|
PathParser.mScale = mScale;
|
|
mPath = new Path();
|
|
}
|
|
|
|
- public void setD(String d) {
|
|
+ void setDByParsing(String d) {
|
|
mPath = PathParser.parse(d);
|
|
elements = PathParser.elements;
|
|
for (PathElement elem : elements) {
|
|
@@ -33,6 +49,17 @@ class PathView extends RenderableView {
|
|
point.y *= mScale;
|
|
}
|
|
}
|
|
+ }
|
|
+
|
|
+ public void setD(String d) {
|
|
+ ParsedPath cached = sPathCache.get(d);
|
|
+ if (cached != null) {
|
|
+ mPath = cached.path;
|
|
+ elements = cached.elements;
|
|
+ } else {
|
|
+ setDByParsing(d);
|
|
+ sPathCache.put(d, new ParsedPath(mPath, elements));
|
|
+ }
|
|
invalidate();
|
|
}
|
|
|