diff options
| -rw-r--r-- | api/current.txt | 4 | ||||
| -rw-r--r-- | api/system-current.txt | 4 | ||||
| -rw-r--r-- | api/test-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/app/assist/AssistStructure.java | 4 | ||||
| -rw-r--r-- | core/java/android/view/View.java | 3 | ||||
| -rw-r--r-- | core/java/android/view/ViewStructure.java | 20 | ||||
| -rw-r--r-- | core/java/android/widget/CompoundButton.java | 2 | ||||
| -rw-r--r-- | core/java/android/widget/RadioGroup.java | 2 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 2 |
9 files changed, 27 insertions, 18 deletions
diff --git a/api/current.txt b/api/current.txt index 4981c432efc8..3b69804a2022 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25193,8 +25193,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated void setNetworkPreference(int); @@ -46248,6 +46248,7 @@ package android.view { method public abstract void setClickable(boolean); method public abstract void setContentDescription(java.lang.CharSequence); method public abstract void setContextClickable(boolean); + method public abstract void setDataIsSensitive(boolean); method public abstract void setDimens(int, int, int, int, int, int); method public abstract void setElevation(float); method public abstract void setEnabled(boolean); @@ -46258,7 +46259,6 @@ package android.view { method public abstract void setInputType(int); method public abstract void setLongClickable(boolean); method public abstract void setOpaque(boolean); - method public abstract void setSanitized(boolean); method public abstract void setSelected(boolean); method public abstract void setText(java.lang.CharSequence); method public abstract void setText(java.lang.CharSequence, int, int); diff --git a/api/system-current.txt b/api/system-current.txt index fbfee83e67cd..da0d0e31ba1c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -27312,8 +27312,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated void setNetworkPreference(int); @@ -49707,6 +49707,7 @@ package android.view { method public abstract void setClickable(boolean); method public abstract void setContentDescription(java.lang.CharSequence); method public abstract void setContextClickable(boolean); + method public abstract void setDataIsSensitive(boolean); method public abstract void setDimens(int, int, int, int, int, int); method public abstract void setElevation(float); method public abstract void setEnabled(boolean); @@ -49717,7 +49718,6 @@ package android.view { method public abstract void setInputType(int); method public abstract void setLongClickable(boolean); method public abstract void setOpaque(boolean); - method public abstract void setSanitized(boolean); method public abstract void setSelected(boolean); method public abstract void setText(java.lang.CharSequence); method public abstract void setText(java.lang.CharSequence, int, int); diff --git a/api/test-current.txt b/api/test-current.txt index 3be7f6793001..0ebcefc06866 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -25294,8 +25294,8 @@ package android.net { method public void reportNetworkConnectivity(android.net.Network, boolean); method public boolean requestBandwidthUpdate(android.net.Network); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback); - method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); + method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback); method public void requestNetwork(android.net.NetworkRequest, int, android.net.ConnectivityManager.NetworkCallback, android.os.Handler); method public void requestNetwork(android.net.NetworkRequest, android.app.PendingIntent); method public deprecated void setNetworkPreference(int); @@ -46615,6 +46615,7 @@ package android.view { method public abstract void setClickable(boolean); method public abstract void setContentDescription(java.lang.CharSequence); method public abstract void setContextClickable(boolean); + method public abstract void setDataIsSensitive(boolean); method public abstract void setDimens(int, int, int, int, int, int); method public abstract void setElevation(float); method public abstract void setEnabled(boolean); @@ -46625,7 +46626,6 @@ package android.view { method public abstract void setInputType(int); method public abstract void setLongClickable(boolean); method public abstract void setOpaque(boolean); - method public abstract void setSanitized(boolean); method public abstract void setSelected(boolean); method public abstract void setText(java.lang.CharSequence); method public abstract void setText(java.lang.CharSequence, int, int); diff --git a/core/java/android/app/assist/AssistStructure.java b/core/java/android/app/assist/AssistStructure.java index 1f2ed00fa79d..bb37aad71c89 100644 --- a/core/java/android/app/assist/AssistStructure.java +++ b/core/java/android/app/assist/AssistStructure.java @@ -1683,8 +1683,8 @@ public class AssistStructure implements Parcelable { } @Override - public void setSanitized(boolean sanitized) { - mNode.mSanitized = sanitized; + public void setDataIsSensitive(boolean sensitive) { + mNode.mSanitized = !sensitive; } @Override diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 029caf918665..62d52c397f2a 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -7257,9 +7257,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * Called when assist structure is being retrieved from a view as part of an autofill request. * * <p>This method already provides most of what's needed for autofill, but should be overridden + * when: * <ol> * <li>The view contents does not include PII (Personally Identifiable Information), so it - * can call {@link ViewStructure#setSanitized(boolean)} passing {@code true}. + * can call {@link ViewStructure#setDataIsSensitive(boolean)} passing {@code false}. * <li>It must set fields such {@link ViewStructure#setText(CharSequence)}, * {@link ViewStructure#setAutofillOptions(String[])}, or {@link ViewStructure#setUrl(String)}. * </ol> diff --git a/core/java/android/view/ViewStructure.java b/core/java/android/view/ViewStructure.java index bccaca2c8baa..7762e92f20c6 100644 --- a/core/java/android/view/ViewStructure.java +++ b/core/java/android/view/ViewStructure.java @@ -346,19 +346,27 @@ public abstract class ViewStructure { public abstract void setInputType(int inputType); /** - * Marks this node as sanitized so its content are sent on {@link + * Sets whether the data on this node is sensitive; if it is, then its content (text, autofill + * value, etc..) is striped before calls to {@link * android.service.autofill.AutofillService#onFillRequest(android.app.assist.AssistStructure, * Bundle, android.os.CancellationSignal, android.service.autofill.FillCallback)}. * - * <p>Only nodes that does not have PII (Personally Identifiable Information - sensitive data - * such as email addresses, credit card numbers, passwords, etc...) should be marked - * as sanitized; a good rule of thumb is to mark as sanitized nodes whose value were statically - * set from resources. + * <p>By default, all nodes are assumed to be sensitive, and only nodes that does not have PII + * (Personally Identifiable Information - sensitive data such as email addresses, credit card + * numbers, passwords, etc...) should be marked as non-sensitive; a good rule of thumb is to + * mark as non-sensitive nodes whose value were statically set from resources. + * + * <p>Notice that the content of even sensitive nodes are sent to the service (through the + * {@link + * android.service.autofill.AutofillService#onSaveRequest(android.app.assist.AssistStructure, + * Bundle, android.service.autofill.SaveCallback)} call) when the user consented to save the + * data, so it is important to set the content of sensitive nodes as well, but mark them as + * sensitive. * * <p>Should only be set when the node is used for autofill purposes - it will be ignored * when used for Assist. */ - public abstract void setSanitized(boolean sanitized); + public abstract void setDataIsSensitive(boolean sensitive); /** * Call when done populating a {@link ViewStructure} returned by diff --git a/core/java/android/widget/CompoundButton.java b/core/java/android/widget/CompoundButton.java index d2464052e68f..08d8081f31f6 100644 --- a/core/java/android/widget/CompoundButton.java +++ b/core/java/android/widget/CompoundButton.java @@ -578,7 +578,7 @@ public abstract class CompoundButton extends Button implements Checkable { public void onProvideAutofillStructure(ViewStructure structure, int flags) { super.onProvideAutofillStructure(structure, flags); - structure.setSanitized(mCheckedFromResource); + structure.setDataIsSensitive(!mCheckedFromResource); } @Override diff --git a/core/java/android/widget/RadioGroup.java b/core/java/android/widget/RadioGroup.java index dc9976d436ae..d37a94609638 100644 --- a/core/java/android/widget/RadioGroup.java +++ b/core/java/android/widget/RadioGroup.java @@ -421,7 +421,7 @@ public class RadioGroup extends LinearLayout { @Override public void onProvideAutofillStructure(ViewStructure structure, int flags) { super.onProvideAutofillStructure(structure, flags); - structure.setSanitized(mCheckedId == mInitialCheckedId); + structure.setDataIsSensitive(mCheckedId != mInitialCheckedId); } @Override diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index d591316f5f2d..90781b428917 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -9900,7 +9900,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener final boolean isPassword = hasPasswordTransformationMethod() || isPasswordInputType(getInputType()); if (forAutofill) { - structure.setSanitized(mTextFromResource); + structure.setDataIsSensitive(!mTextFromResource); } if (!isPassword || forAutofill) { |