From 2ca28ae97087b4e89b94de9610dafe15aafcd659 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=85=B5=E5=85=B5?= Date: Tue, 29 Jun 2021 15:28:14 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BetterLinkMovementMethod.java | 67 ++++++++++++++----- 1 file changed, 52 insertions(+), 15 deletions(-) diff --git a/better_link_movement_method/src/main/java/me/saket/bettermovementmethod/BetterLinkMovementMethod.java b/better_link_movement_method/src/main/java/me/saket/bettermovementmethod/BetterLinkMovementMethod.java index 348653f..7d8f8ba 100644 --- a/better_link_movement_method/src/main/java/me/saket/bettermovementmethod/BetterLinkMovementMethod.java +++ b/better_link_movement_method/src/main/java/me/saket/bettermovementmethod/BetterLinkMovementMethod.java @@ -4,10 +4,7 @@ import ohos.aafwk.ability.AbilitySlice; import ohos.agp.components.Component; import ohos.agp.components.ComponentContainer; import ohos.agp.components.Text; -import ohos.agp.text.Layout; import ohos.agp.utils.RectFloat; -import ohos.agp.window.service.Window; -import ohos.multimodalinput.event.TouchEvent; /** * Handles URL clicks on TextViews. Unlike the default implementation, this: @@ -28,15 +25,19 @@ public class BetterLinkMovementMethod{ private OnLinkLongClickListener onLinkLongClickListener; private final RectFloat touchedLineBounds = new RectFloat(); private boolean isUrlHighlighted; -// private ClickableSpan clickableSpanUnderTouchOnActionDown; private int activeTextViewHashcode; private LongPressTimer ongoingLongPressTimer; private boolean wasLongPressRegistered; + /** + * OnLinkClickListener + */ public interface OnLinkClickListener { /** + * onClick + * * @param textView The TextView on which a click was registered. - * @param url The clicked URL. + * @param url The clicked URL. * @return True if this click was handled. False to let handle the URL. */ boolean onClick(Text textView, String url); @@ -44,6 +45,8 @@ public class BetterLinkMovementMethod{ public interface OnLinkLongClickListener { /** + * onLongClick + * * @param textView The TextView on which a long-click was registered. * @param url The long-clicked URL. * @return True if this long-click was handled. False to let handle the URL (as a short-click). @@ -53,11 +56,20 @@ public class BetterLinkMovementMethod{ /** * Return a new instance of BetterLinkMovementMethod. + * + * @return BetterLinkMovementMethod */ public static BetterLinkMovementMethod newInstance() { return new BetterLinkMovementMethod(); } + /** + * linkify + * + * @param linkifyMask linkifyMask + * @param textViews Text + * @return BetterLinkMovementMethod + */ public static BetterLinkMovementMethod linkify(int linkifyMask, Text... textViews) { BetterLinkMovementMethod movementMethod = newInstance(); for (Text textView : textViews) { @@ -75,6 +87,13 @@ public class BetterLinkMovementMethod{ return linkify(LINKIFY_NONE, textViews); } + /** + * linkify + * + * @param linkifyMask linkifyMask + * @param viewGroup ComponentContainer + * @return BetterLinkMovementMethod + */ public static BetterLinkMovementMethod linkify(int linkifyMask, ComponentContainer viewGroup) { BetterLinkMovementMethod movementMethod = newInstance(); rAddLinks(linkifyMask, viewGroup, movementMethod); @@ -84,6 +103,7 @@ public class BetterLinkMovementMethod{ /** * Like {@link #linkify(int, Text...)}, but can be used for TextViews with HTML links. * + * @param viewGroup viewGroup * @return The registered {@link BetterLinkMovementMethod} on the TextViews. */ @SuppressWarnings("unused") @@ -91,8 +111,14 @@ public class BetterLinkMovementMethod{ return linkify(LINKIFY_NONE, viewGroup); } + /** + * linkify + * + * @param linkifyMask linkifyMask + * @param activity AbilitySlice + * @return BetterLinkMovementMethod + */ public static BetterLinkMovementMethod linkify(int linkifyMask, AbilitySlice activity) { - BetterLinkMovementMethod movementMethod = newInstance(); return movementMethod; } @@ -119,24 +145,28 @@ public class BetterLinkMovementMethod{ return singleInstance; } + /** + * BetterLinkMovementMethod + */ protected BetterLinkMovementMethod() { } /** * Set a listener that will get called whenever any link is clicked on the TextView. + * + * @param clickListener OnLinkClickListener + * @return BetterLinkMovementMethod */ public BetterLinkMovementMethod setOnLinkClickListener(OnLinkClickListener clickListener) { - /*if (this == singleInstance) { - throw new UnsupportedOperationException("Setting a click listener on the instance returned by getInstance() is not supported to avoid memory " + - "leaks. Please use newInstance() or any of the linkify() methods instead."); - }*/ - this.onLinkClickListener = clickListener; return this; } /** * Set a listener that will get called whenever any link is clicked on the TextView. + * + * @param longClickListener longClickListener + * @return BetterLinkMovementMethod */ public BetterLinkMovementMethod setOnLinkLongClickListener(OnLinkLongClickListener longClickListener) { if (this == singleInstance) { @@ -148,8 +178,6 @@ public class BetterLinkMovementMethod{ return this; } -// ======== PUBLIC APIs END ======== // - private static void rAddLinks(int linkifyMask, ComponentContainer viewGroup, BetterLinkMovementMethod movementMethod) { for (int i = 0; i < viewGroup.getChildCount(); i++) { Component child = viewGroup.getComponentAt(i); @@ -163,20 +191,29 @@ public class BetterLinkMovementMethod{ } } - - protected static final class LongPressTimer implements Runnable { private OnTimerReachedListener onTimerReachedListener; protected interface OnTimerReachedListener { + /** + * onTimerReached + */ void onTimerReached(); } + /** + * run + */ @Override public void run() { onTimerReachedListener.onTimerReached(); } + /** + * setOnTimerReachedListener + * + * @param listener onTimerReachedListener + */ public void setOnTimerReachedListener(OnTimerReachedListener listener) { onTimerReachedListener = listener; } -- Gitee From 123620cef5de40c3fc4da318fb0690f6a2be37b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=85=B5=E5=85=B5?= Date: Tue, 29 Jun 2021 15:56:07 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ed61ef8..db0bde2 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ allprojects { } } ``` -2.在entry模块的build.gradle文件中 +2、在entry模块的build.gradle文件中 ```gradle dependencies { implementation('com.gitee.chinasoft_ohos:Better-Link-Movement-Method:0.0.1-SNAPSHOT') -- Gitee From 5c547fd5d3100e5cea14be22f42eddfefc56749c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A7=9C=E5=85=B5=E5=85=B5?= Date: Tue, 29 Jun 2021 16:27:24 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- better_link_movement_method/src/main/config.json | 5 ----- entry/src/main/config.json | 5 ----- 2 files changed, 10 deletions(-) diff --git a/better_link_movement_method/src/main/config.json b/better_link_movement_method/src/main/config.json index 36cb140..0498d2a 100644 --- a/better_link_movement_method/src/main/config.json +++ b/better_link_movement_method/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" } }, "deviceConfig": { diff --git a/entry/src/main/config.json b/entry/src/main/config.json index 8de509b..6a7858d 100644 --- a/entry/src/main/config.json +++ b/entry/src/main/config.json @@ -5,11 +5,6 @@ "version": { "code": 1000000, "name": "1.0.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Release" } }, "deviceConfig": {}, -- Gitee