diff options
| author | 2018-11-15 11:30:40 -0800 | |
|---|---|---|
| committer | 2018-11-16 09:19:37 -0800 | |
| commit | 92ab3857b09c9bb16dd590fd5951993bea7f1fd6 (patch) | |
| tree | 5d1872f48ed250b9830c5554fb719a902667cedb | |
| parent | 9ca7a38d2940f86f0607b9dc317835d604708805 (diff) | |
Simplified View.onProvideContentCaptureStructure()
That method was returning a boolean to indicate whether the IntelligenceManager
should be notify, so views with virtual hierarchy could return false.
But now it returns void and always notify, which makes the API easier to
understand and use.
Bug: 117944706
Test: m -j update-api doc-comment-check-docs
Test: atest CtsAutoFillServiceTestCases
Change-Id: I216cacb6edb144239b6eabe56ab177fc2582e1aa
| -rwxr-xr-x | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 6 | ||||
| -rw-r--r-- | core/java/android/view/View.java | 18 | ||||
| -rw-r--r-- | core/java/android/webkit/WebView.java | 4 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewProvider.java | 3 | ||||
| -rw-r--r-- | core/java/android/widget/Switch.java | 23 |
6 files changed, 15 insertions, 41 deletions
diff --git a/api/current.txt b/api/current.txt index 99ea60f71926..500784eb383d 100755 --- a/api/current.txt +++ b/api/current.txt @@ -49061,7 +49061,7 @@ package android.view { method public void onPopulateAccessibilityEvent(android.view.accessibility.AccessibilityEvent); method public void onProvideAutofillStructure(android.view.ViewStructure, int); method public void onProvideAutofillVirtualStructure(android.view.ViewStructure, int); - method public boolean onProvideContentCaptureStructure(android.view.ViewStructure, int); + method public void onProvideContentCaptureStructure(android.view.ViewStructure, int); method public void onProvideStructure(android.view.ViewStructure); method public void onProvideVirtualStructure(android.view.ViewStructure); method public android.view.PointerIcon onResolvePointerIcon(android.view.MotionEvent, int); diff --git a/api/system-current.txt b/api/system-current.txt index 8eb55074e6af..f36ee8905a7e 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3645,12 +3645,9 @@ package android.net.wifi { method public int getWifiApState(); method public boolean isDeviceToApRttSupported(); method public boolean isDeviceToDeviceRttSupported(); - method public boolean isOweSupported(); method public boolean isPortableHotspotSupported(); method public boolean isWifiApEnabled(); method public boolean isWifiScannerSupported(); - method public boolean isWpa3SaeSupported(); - method public boolean isWpa3SuiteBSupported(); method public void registerNetworkRequestMatchCallback(android.net.wifi.WifiManager.NetworkRequestMatchCallback, android.os.Handler); method public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration); method public boolean startScan(android.os.WorkSource); @@ -4639,6 +4636,7 @@ package android.rolecontrollerservice { method public abstract void onAddRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); method public final android.os.IBinder onBind(android.content.Intent); method public abstract void onClearRoleHolders(java.lang.String, android.app.role.RoleManagerCallback); + method public abstract void onGrantDefaultRoles(android.app.role.RoleManagerCallback); method public abstract void onRemoveRoleHolder(java.lang.String, java.lang.String, android.app.role.RoleManagerCallback); field public static final java.lang.String SERVICE_INTERFACE = "android.rolecontrollerservice.RoleControllerService"; } @@ -7430,7 +7428,7 @@ package android.webkit { method public default void onMovedToDisplay(int, android.content.res.Configuration); method public abstract void onOverScrolled(int, int, boolean, boolean); method public default void onProvideAutofillVirtualStructure(android.view.ViewStructure, int); - method public default boolean onProvideContentCaptureStructure(android.view.ViewStructure, int); + method public default void onProvideContentCaptureStructure(android.view.ViewStructure, int); method public abstract void onProvideVirtualStructure(android.view.ViewStructure); method public abstract void onScrollChanged(int, int, int, int); method public abstract void onSizeChanged(int, int, int, int); diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index c7f25d7bb50b..15907d55d631 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -8142,6 +8142,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * the user, and the activity rendering the view is enabled for Content Capture) is laid out and * is visible. * + * <p>The populated structure is then passed to the service through + * {@link IntelligenceManager#notifyViewAppeared(ViewStructure)}. + * * <p><b>Note: </b>the following methods of the {@code structure} will be ignored: * <ul> * <li>{@link ViewStructure#setChildCount(int)} @@ -8155,16 +8158,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * <li>{@link ViewStructure#setHtmlInfo(android.view.ViewStructure.HtmlInfo)} * <li>{@link ViewStructure#setDataIsSensitive(boolean)} * </ul> - * - * @return whether the IntelligenceService should be notified that the view was added (through - * the {@link IntelligenceManager#notifyViewAppeared(ViewStructure)} method) to the view - * hierarchy. Most views should return {@code true} here, but views that contains virtual - * hierarchy might opt to return {@code false} and notify the manager independently, as the - * virtual views are rendered. */ - public boolean onProvideContentCaptureStructure(@NonNull ViewStructure structure, int flags) { + public void onProvideContentCaptureStructure(@NonNull ViewStructure structure, int flags) { onProvideStructure(structure, VIEW_STRUCTURE_FOR_CONTENT_CAPTURE, flags); - return true; } /** @hide */ @@ -8976,10 +8972,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, if (type == CONTENT_CAPTURE_NOTIFICATION_TYPE_APPEARED) { final ViewStructure structure = im.newViewStructure(this); - boolean notifyMgr = onProvideContentCaptureStructure(structure, /* flags= */ 0); - if (notifyMgr) { - im.notifyViewAppeared(structure); - } + onProvideContentCaptureStructure(structure, /* flags= */ 0); + im.notifyViewAppeared(structure); mPrivateFlags4 |= PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED; } else { if ((mPrivateFlags4 & PFLAG4_NOTIFIED_CONTENT_CAPTURE_ADDED) == 0) { diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 10937196a74f..4f1417ed23bb 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -2695,8 +2695,8 @@ public class WebView extends AbsoluteLayout } @Override - public boolean onProvideContentCaptureStructure(ViewStructure structure, int flags) { - return mProvider.getViewDelegate().onProvideContentCaptureStructure(structure, flags); + public void onProvideContentCaptureStructure(ViewStructure structure, int flags) { + mProvider.getViewDelegate().onProvideContentCaptureStructure(structure, flags); } @Override diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index ceada07c715b..95e7a986efd2 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -341,10 +341,9 @@ public interface WebViewProvider { return true; // true is the default value returned by View.isVisibleToUserForAutofill() } - default boolean onProvideContentCaptureStructure( + default void onProvideContentCaptureStructure( @SuppressWarnings("unused") android.view.ViewStructure structure, @SuppressWarnings("unused") int flags) { - return false; // WebView provides virtual views and is responsible to notify manager } public AccessibilityNodeProvider getAccessibilityNodeProvider(); diff --git a/core/java/android/widget/Switch.java b/core/java/android/widget/Switch.java index d55c09f7fcb6..79dc6708f9c3 100644 --- a/core/java/android/widget/Switch.java +++ b/core/java/android/widget/Switch.java @@ -1419,27 +1419,10 @@ public class Switch extends CompoundButton { return Switch.class.getName(); } + /** @hide */ @Override - public void onProvideStructure(ViewStructure structure) { - super.onProvideStructure(structure); - onProvideStructureForAssistOrAutofillOrViewCapture(structure); - } - - @Override - public void onProvideAutofillStructure(ViewStructure structure, int flags) { - super.onProvideAutofillStructure(structure, flags); - onProvideStructureForAssistOrAutofillOrViewCapture(structure); - } - - @Override - public boolean onProvideContentCaptureStructure(ViewStructure structure, int flags) { - final boolean notifyManager = super.onProvideContentCaptureStructure(structure, flags); - onProvideStructureForAssistOrAutofillOrViewCapture(structure); - return notifyManager; - } - - // NOTE: currently there is no difference for any type, so it doesn't take flags - private void onProvideStructureForAssistOrAutofillOrViewCapture(ViewStructure structure) { + protected void onProvideStructure(@NonNull ViewStructure structure, + @ViewStructureType int viewFor, int flags) { CharSequence switchText = isChecked() ? mTextOn : mTextOff; if (!TextUtils.isEmpty(switchText)) { CharSequence oldText = structure.getText(); |