diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2017-12-08 15:07:24 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2017-12-08 16:09:45 -0800 |
commit | d0030b05f591cbadb21f51b7c87f2d8813f35627 (patch) | |
tree | f690494af4d5942b02fb2ef2caffa18c77c0f85b /src/com | |
parent | fcb1dd183cc81208ec4d6498b12e7e969a3e3e9a (diff) | |
download | android_packages_apps_Trebuchet-d0030b05f591cbadb21f51b7c87f2d8813f35627.tar.gz android_packages_apps_Trebuchet-d0030b05f591cbadb21f51b7c87f2d8813f35627.tar.bz2 android_packages_apps_Trebuchet-d0030b05f591cbadb21f51b7c87f2d8813f35627.zip |
Adding placeholder method for compat implementations for Accessibility manager
> Moving some utility methods to the compat class
Bug: 69611105
Change-Id: Ide0cab0b926d7bc03617fc568d2a2b429ee00cd9
Diffstat (limited to 'src/com')
10 files changed, 70 insertions, 51 deletions
diff --git a/src/com/android/launcher3/DropTargetBar.java b/src/com/android/launcher3/DropTargetBar.java index 3eca5cd44..106671f74 100644 --- a/src/com/android/launcher3/DropTargetBar.java +++ b/src/com/android/launcher3/DropTargetBar.java @@ -17,7 +17,7 @@ package com.android.launcher3; import static com.android.launcher3.AlphaUpdateListener.updateVisibility; -import static com.android.launcher3.Utilities.isAccessibilityEnabled; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; import android.animation.TimeInterpolator; import android.content.Context; diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index b23568e9e..d6b56564e 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -16,6 +16,9 @@ package com.android.launcher3; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isObservedEventType; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.LayoutTransition; @@ -41,7 +44,6 @@ import android.view.ViewDebug; import android.view.ViewGroup; import android.view.ViewParent; import android.view.accessibility.AccessibilityEvent; -import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.Interpolator; @@ -521,9 +523,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } private void sendScrollAccessibilityEvent() { - AccessibilityManager am = - (AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); - if (am.isEnabled()) { + if (isObservedEventType(getContext(), AccessibilityEvent.TYPE_VIEW_SCROLLED)) { if (mCurrentPage != getNextPage()) { AccessibilityEvent ev = AccessibilityEvent.obtain(AccessibilityEvent.TYPE_VIEW_SCROLLED); @@ -572,9 +572,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc } onPostReorderingAnimationCompleted(); - AccessibilityManager am = (AccessibilityManager) - getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); - if (am.isEnabled()) { + if (isAccessibilityEnabled(getContext())) { // Notify the user when the page changes announceForAccessibility(getCurrentPageDescription()); } diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index e6bc77066..ca235eb01 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -47,8 +47,6 @@ import android.util.Pair; import android.util.SparseArray; import android.util.TypedValue; import android.view.View; -import android.view.accessibility.AccessibilityEvent; -import android.view.accessibility.AccessibilityManager; import com.android.launcher3.config.FeatureFlags; @@ -614,23 +612,6 @@ public final class Utilities { return c == null || c.isEmpty(); } - public static boolean isAccessibilityEnabled(Context context) { - AccessibilityManager accessibilityManager = (AccessibilityManager) - context.getSystemService(Context.ACCESSIBILITY_SERVICE); - return accessibilityManager.isEnabled(); - } - - public static void sendCustomAccessibilityEvent(View target, int type, String text) { - AccessibilityManager accessibilityManager = (AccessibilityManager) - target.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); - if (accessibilityManager.isEnabled()) { - AccessibilityEvent event = AccessibilityEvent.obtain(type); - target.onInitializeAccessibilityEvent(event); - event.getText().add(text); - accessibilityManager.sendAccessibilityEvent(event); - } - } - public static boolean isBinderSizeError(Exception e) { return e.getCause() instanceof TransactionTooLargeException || e.getCause() instanceof DeadObjectException; diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 9dc8bb7a0..417366d18 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -22,7 +22,7 @@ import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_TRANSITION_M import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.SPRING_LOADED; -import static com.android.launcher3.Utilities.isAccessibilityEnabled; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java index abc140d7d..9f76b6f96 100644 --- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java +++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java @@ -18,16 +18,15 @@ package com.android.launcher3; import static com.android.launcher3.LauncherAnimUtils.DRAWABLE_ALPHA; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.animation.ValueAnimator; -import android.content.Context; import android.util.Property; import android.view.View; -import android.view.accessibility.AccessibilityManager; import com.android.launcher3.LauncherState.PageAlphaProvider; import com.android.launcher3.LauncherStateManager.AnimationConfig; @@ -165,7 +164,7 @@ public class WorkspaceStateTransitionAnimation { return; } view.setAlpha(alpha); - AlphaUpdateListener.updateVisibility(view, isAccessibilityEnabled(view)); + AlphaUpdateListener.updateVisibility(view, isAccessibilityEnabled(view.getContext())); } public <T> void setFloat(T target, Property<T, Float> property, float value, @@ -177,12 +176,6 @@ public class WorkspaceStateTransitionAnimation { TimeInterpolator interpolator) { property.set(target, value); } - - protected boolean isAccessibilityEnabled(View v) { - AccessibilityManager am = (AccessibilityManager) - v.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE); - return am.isEnabled(); - } } public static class AnimatedPropertySetter extends PropertySetter { @@ -202,7 +195,8 @@ public class WorkspaceStateTransitionAnimation { return; } anim = ObjectAnimator.ofFloat(view, View.ALPHA, alpha); - anim.addListener(new AlphaUpdateListener(view, isAccessibilityEnabled(view))); + anim.addListener(new AlphaUpdateListener(view, + isAccessibilityEnabled(view.getContext()))); } anim.setDuration(mDuration).setInterpolator(getFadeInterpolator(alpha)); diff --git a/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java b/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java index 99deb7b1c..fdf2786f6 100644 --- a/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java +++ b/src/com/android/launcher3/accessibility/DragViewStateAnnouncer.java @@ -16,10 +16,10 @@ package com.android.launcher3.accessibility; -import android.content.Context; +import static com.android.launcher3.compat.AccessibilityManagerCompat.isAccessibilityEnabled; + import android.view.View; import android.view.accessibility.AccessibilityEvent; -import android.view.accessibility.AccessibilityManager; import com.android.launcher3.Launcher; @@ -59,11 +59,6 @@ public class DragViewStateAnnouncer implements Runnable { } public static DragViewStateAnnouncer createFor(View v) { - if (((AccessibilityManager) v.getContext().getSystemService(Context.ACCESSIBILITY_SERVICE)) - .isEnabled()) { - return new DragViewStateAnnouncer(v); - } else { - return null; - } + return isAccessibilityEnabled(v.getContext()) ? new DragViewStateAnnouncer(v) : null; } } diff --git a/src/com/android/launcher3/compat/AccessibilityManagerCompat.java b/src/com/android/launcher3/compat/AccessibilityManagerCompat.java new file mode 100644 index 000000000..0c78381ea --- /dev/null +++ b/src/com/android/launcher3/compat/AccessibilityManagerCompat.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.launcher3.compat; + +import android.content.Context; +import android.view.View; +import android.view.accessibility.AccessibilityEvent; +import android.view.accessibility.AccessibilityManager; + +public class AccessibilityManagerCompat { + + public static boolean isAccessibilityEnabled(Context context) { + return getManager(context).isEnabled(); + } + + public static boolean isObservedEventType(Context context, int eventType) { + // TODO: Use new API once available + return isAccessibilityEnabled(context); + } + + public static void sendCustomAccessibilityEvent(View target, int type, String text) { + if (isObservedEventType(target.getContext(), type)) { + AccessibilityEvent event = AccessibilityEvent.obtain(type); + target.onInitializeAccessibilityEvent(event); + event.getText().add(text); + getManager(target.getContext()).sendAccessibilityEvent(event); + } + } + + private static AccessibilityManager getManager(Context context) { + return (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE); + } +} diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index cf76e2ec9..27d6b896a 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -16,6 +16,8 @@ package com.android.launcher3.dragndrop; +import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; + import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.TimeInterpolator; @@ -222,7 +224,7 @@ public class DragLayer extends InsettableFrameLayout { private void sendTapOutsideFolderAccessibilityEvent(boolean isEditingName) { int stringId = isEditingName ? R.string.folder_tap_to_rename : R.string.folder_tap_to_close; - Utilities.sendCustomAccessibilityEvent( + sendCustomAccessibilityEvent( this, AccessibilityEvent.TYPE_VIEW_FOCUSED, getContext().getString(stringId)); } diff --git a/src/com/android/launcher3/folder/Folder.java b/src/com/android/launcher3/folder/Folder.java index 2168001ca..b78e47037 100644 --- a/src/com/android/launcher3/folder/Folder.java +++ b/src/com/android/launcher3/folder/Folder.java @@ -18,6 +18,7 @@ package com.android.launcher3.folder; import static com.android.launcher3.LauncherAnimUtils.SPRING_LOADED_EXIT_DELAY; import static com.android.launcher3.LauncherState.NORMAL; +import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -346,7 +347,7 @@ public class Folder extends AbstractFloatingView implements DragSource, View.OnC mFolderName.setHint(sDefaultFolderName.contentEquals(newTitle) ? sHintText : null); - Utilities.sendCustomAccessibilityEvent( + sendCustomAccessibilityEvent( this, AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED, getContext().getString(R.string.folder_renamed, newTitle)); @@ -540,7 +541,7 @@ public class Folder extends AbstractFloatingView implements DragSource, View.OnC mFolderIcon.setBackgroundVisible(false); mFolderIcon.drawLeaveBehindIfExists(); - Utilities.sendCustomAccessibilityEvent( + sendCustomAccessibilityEvent( Folder.this, AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED, mContent.getAccessibilityDescription()); @@ -654,7 +655,7 @@ public class Folder extends AbstractFloatingView implements DragSource, View.OnC } @Override public void onAnimationStart(Animator animation) { - Utilities.sendCustomAccessibilityEvent( + sendCustomAccessibilityEvent( Folder.this, AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED, getContext().getString(R.string.folder_closed)); diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java index 3dc58a1f2..a166dff0f 100644 --- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java +++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java @@ -85,6 +85,7 @@ import java.util.List; import java.util.Map; import java.util.Set; +import static com.android.launcher3.compat.AccessibilityManagerCompat.sendCustomAccessibilityEvent; import static com.android.launcher3.notification.NotificationMainView.NOTIFICATION_ITEM_INFO; import static com.android.launcher3.popup.PopupPopulator.MAX_SHORTCUTS; import static com.android.launcher3.popup.PopupPopulator.MAX_SHORTCUTS_IF_NOTIFICATIONS; @@ -573,7 +574,7 @@ public class PopupContainerWithArrow extends AbstractFloatingView implements Dra @Override public void onAnimationEnd(Animator animation) { mOpenCloseAnimator = null; - Utilities.sendCustomAccessibilityEvent( + sendCustomAccessibilityEvent( PopupContainerWithArrow.this, AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED, getContext().getString(R.string.action_deep_shortcut)); |