diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/app/assist/AssistStructure.java | 38 | ||||
| -rw-r--r-- | core/java/android/view/ViewStructure.java | 13 | 
5 files changed, 55 insertions, 2 deletions
diff --git a/api/current.txt b/api/current.txt index 5ecef52dee27..b00628d1566f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -6568,6 +6568,7 @@ package android.app.assist {      method public int getTextStyle();      method public int getTop();      method public android.graphics.Matrix getTransformation(); +    method public java.lang.String getUrl();      method public int getVisibility();      method public int getWidth();      method public boolean isAccessibilityFocused(); @@ -45657,6 +45658,7 @@ package android.view {      method public abstract void setTextLines(int[], int[]);      method public abstract void setTextStyle(float, int, int, int);      method public abstract void setTransformation(android.graphics.Matrix); +    method public abstract void setUrl(java.lang.String);      method public abstract void setVisibility(int);      field public static final int AUTO_FILL_FLAG_SANITIZED = 1; // 0x1    } diff --git a/api/system-current.txt b/api/system-current.txt index e89c25cb48d1..2a3327ee16cc 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6805,6 +6805,7 @@ package android.app.assist {      method public int getTextStyle();      method public int getTop();      method public android.graphics.Matrix getTransformation(); +    method public java.lang.String getUrl();      method public int getVisibility();      method public int getWidth();      method public boolean isAccessibilityFocused(); @@ -49095,6 +49096,7 @@ package android.view {      method public abstract void setTextLines(int[], int[]);      method public abstract void setTextStyle(float, int, int, int);      method public abstract void setTransformation(android.graphics.Matrix); +    method public abstract void setUrl(java.lang.String);      method public abstract void setVisibility(int);      field public static final int AUTO_FILL_FLAG_SANITIZED = 1; // 0x1    } diff --git a/api/test-current.txt b/api/test-current.txt index b38e2b2069f5..5bf2f6bf6dac 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -6591,6 +6591,7 @@ package android.app.assist {      method public int getTextStyle();      method public int getTop();      method public android.graphics.Matrix getTransformation(); +    method public java.lang.String getUrl();      method public int getVisibility();      method public int getWidth();      method public boolean isAccessibilityFocused(); @@ -45969,6 +45970,7 @@ package android.view {      method public abstract void setTextLines(int[], int[]);      method public abstract void setTextStyle(float, int, int, int);      method public abstract void setTransformation(android.graphics.Matrix); +    method public abstract void setUrl(java.lang.String);      method public abstract void setVisibility(int);      field public static final int AUTO_FILL_FLAG_SANITIZED = 1; // 0x1    } diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index 6591fc9671f5..8d385db263df 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -17,13 +17,13 @@ import android.os.SystemClock;  import android.text.TextUtils;  import android.util.Log;  import android.view.View; -import android.view.ViewStructure;  import android.view.ViewRootImpl; +import android.view.ViewStructure;  import android.view.WindowManager;  import android.view.WindowManagerGlobal; +import android.view.autofill.AutoFillId;  import android.view.autofill.AutoFillType;  import android.view.autofill.AutoFillValue; -import android.view.autofill.AutoFillId;  import java.util.ArrayList; @@ -579,6 +579,7 @@ public class AssistStructure implements Parcelable {          static final int FLAGS_HAS_EXTRAS = 0x00400000;          static final int FLAGS_HAS_ID = 0x00200000;          static final int FLAGS_HAS_CHILDREN = 0x00100000; +        static final int FLAGS_HAS_URL = 0x00080000;          static final int FLAGS_ALL_CONTROL = 0xfff00000;          int mFlags; @@ -587,6 +588,7 @@ public class AssistStructure implements Parcelable {          CharSequence mContentDescription;          ViewNodeText mText; +        String mUrl;          Bundle mExtras;          ViewNode[] mChildren; @@ -651,6 +653,9 @@ public class AssistStructure implements Parcelable {              if ((flags&FLAGS_HAS_TEXT) != 0) {                  mText = new ViewNodeText(in, (flags&FLAGS_HAS_COMPLEX_TEXT) == 0);              } +            if ((flags&FLAGS_HAS_URL) != 0) { +                mUrl = in.readString(); +            }              if ((flags&FLAGS_HAS_EXTRAS) != 0) {                  mExtras = in.readBundle();              } @@ -704,6 +709,9 @@ public class AssistStructure implements Parcelable {                      flags |= FLAGS_HAS_COMPLEX_TEXT;                  }              } +            if (mUrl != null) { +                flags |= FLAGS_HAS_URL; +            }              if (mExtras != null) {                  flags |= FLAGS_HAS_EXTRAS;              } @@ -760,6 +768,9 @@ public class AssistStructure implements Parcelable {              if ((flags&FLAGS_HAS_TEXT) != 0) {                  mText.writeToParcel(out, (flags&FLAGS_HAS_COMPLEX_TEXT) == 0, writeSensitive);              } +            if ((flags&FLAGS_HAS_URL) != 0) { +                out.writeString(mUrl); +            }              if ((flags&FLAGS_HAS_EXTRAS) != 0) {                  out.writeBundle(mExtras);              } @@ -1040,6 +1051,20 @@ public class AssistStructure implements Parcelable {          }          /** +         * Returns the URL represented by this node. +         * +         * <p>Typically used in 2 categories of nodes: +         * +         * <ol> +         * <li>Root node (containing the URL of the HTML page) +         * <li>Child nodes that represent hyperlinks (contains the hyperlink URL). +         * </ol> +         */ +        public String getUrl() { +            return mUrl; +        } + +        /**           * Returns any text associated with the node that is displayed to the user, or null           * if there is none.           */ @@ -1486,6 +1511,11 @@ public class AssistStructure implements Parcelable {          public void setSanitized(boolean sanitized) {              mNode.mSanitized = sanitized;          } + +        @Override +        public void setUrl(String url) { +            mNode.mUrl = url; +        }      }      /** @hide */ @@ -1583,6 +1613,10 @@ public class AssistStructure implements Parcelable {              Log.i(TAG, prefix + "  Text color fg: #" + Integer.toHexString(node.getTextColor())                      + ", bg: #" + Integer.toHexString(node.getTextBackgroundColor()));          } +        CharSequence url = node.getUrl(); +        if (url != null) { +            Log.i(TAG, prefix + "  URL: " + url); +        }          String hint = node.getHint();          if (hint != null) {              Log.i(TAG, prefix + "  Hint: " + hint); diff --git a/core/java/android/view/ViewStructure.java b/core/java/android/view/ViewStructure.java index cc19539b0e51..d195c885dc6f 100644 --- a/core/java/android/view/ViewStructure.java +++ b/core/java/android/view/ViewStructure.java @@ -335,4 +335,17 @@ public abstract class ViewStructure {      /** @hide */      public abstract AutoFillId getAutoFillId(); + +    /** +     * Sets the URL represented by this node. +     * +     * <p>Typically used in the following situations: +     * +     * <ol> +     * <li>In a {@link android.app.assist.AssistStructure.WindowNode#getRootViewNode()}, to set up +     * the main URL of an HTML page. +     * <li>On child nodes represening hyperlinks. +     * </ol> +     */ +    public abstract void setUrl(String url);  }  |