Loading core/java/android/view/View.java +29 −12 Original line number Diff line number Diff line Loading @@ -7308,6 +7308,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return mAccessibilityPaneTitle; } private boolean isAccessibilityPane() { return !TextUtils.isEmpty(mAccessibilityPaneTitle); } /** * Sends an accessibility event of the given type. If accessibility is * not enabled this method has no effect. The default implementation calls Loading Loading @@ -11637,7 +11641,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return mode == IMPORTANT_FOR_ACCESSIBILITY_YES || isActionableForAccessibility() || hasListenersForAccessibility() || getAccessibilityNodeProvider() != null || getAccessibilityLiveRegion() != ACCESSIBILITY_LIVE_REGION_NONE || (mAccessibilityPaneTitle != null); || isAccessibilityPane(); } /** Loading Loading @@ -11734,10 +11738,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // Changes to views with a pane title count as window state changes, as the pane title // marks them as significant parts of the UI. if (!TextUtils.isEmpty(getAccessibilityPaneTitle())) { if ((changeType != AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE) && isAccessibilityPane()) { // If the pane isn't visible, content changed events are sufficient unless we're // reporting that the view just disappeared if ((getVisibility() == VISIBLE) || (changeType == AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_DISAPPEARED)) { final AccessibilityEvent event = AccessibilityEvent.obtain(); event.setEventType(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); event.setContentChangeTypes(changeType); event.setSource(this); onPopulateAccessibilityEvent(event); if (mParent != null) { try { Loading @@ -11747,6 +11757,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, + " does not fully implement ViewParent", e); } } return; } } // If this is a live region, we should send a subtree change event Loading Loading @@ -14035,6 +14047,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } if (accessibilityEnabled) { // If we're an accessibility pane and the visibility changed, we already have sent // a state change, so we really don't need to report other changes. if (isAccessibilityPane()) { changed &= ~VISIBILITY_MASK; } if ((changed & FOCUSABLE) != 0 || (changed & VISIBILITY_MASK) != 0 || (changed & CLICKABLE) != 0 || (changed & LONG_CLICKABLE) != 0 || (changed & CONTEXT_CLICKABLE) != 0) { packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +0 −4 Original line number Diff line number Diff line Loading @@ -171,8 +171,6 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene queryTiles(); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(true); announceForAccessibility(mContext.getString( R.string.accessibility_desc_quick_settings_edit)); Dependency.get(KeyguardMonitor.class).addCallback(mKeyguardCallback); updateNavColors(); } Loading Loading @@ -213,8 +211,6 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mClipper.animateCircularClip(mX, mY, false, mCollapseAnimationListener); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(false); announceForAccessibility(mContext.getString( R.string.accessibility_desc_quick_settings)); Dependency.get(KeyguardMonitor.class).removeCallback(mKeyguardCallback); updateNavColors(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +15 −22 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowInsets; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.widget.FrameLayout; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -111,6 +111,7 @@ public class NotificationPanelView extends PanelView implements } }; private final PowerManager mPowerManager; private final AccessibilityManager mAccessibilityManager; private KeyguardAffordanceHelper mAffordanceHelper; private KeyguardUserSwitcher mKeyguardUserSwitcher; Loading Loading @@ -249,6 +250,8 @@ public class NotificationPanelView extends PanelView implements setWillNotDraw(!DEBUG); mFalsingManager = FalsingManager.getInstance(context); mPowerManager = context.getSystemService(PowerManager.class); mAccessibilityManager = context.getSystemService(AccessibilityManager.class); setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } public void setStatusBar(StatusBar bar) { Loading Loading @@ -660,16 +663,6 @@ public class NotificationPanelView extends PanelView implements super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing); } @Override public boolean dispatchPopulateAccessibilityEventInternal(AccessibilityEvent event) { if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { event.getText().add(getKeyguardOrLockScreenString()); mLastAnnouncementWasQuickSettings = false; return true; } return super.dispatchPopulateAccessibilityEventInternal(event); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (mBlockTouches || mQsFullyExpanded && mQs.onInterceptTouchEvent(event)) { Loading Loading @@ -1300,10 +1293,6 @@ public class NotificationPanelView extends PanelView implements setQsExpanded(true); } else if (height <= mQsMinExpansionHeight && mQsExpanded) { setQsExpanded(false); if (mLastAnnouncementWasQuickSettings && !mTracking && !isCollapsing()) { announceForAccessibility(getKeyguardOrLockScreenString()); mLastAnnouncementWasQuickSettings = false; } } mQsExpansionHeight = height; updateQsExpansion(); Loading @@ -1329,13 +1318,10 @@ public class NotificationPanelView extends PanelView implements updateClock(mClockPositionResult.clockAlpha, mClockPositionResult.clockScale); } // Upon initialisation when we are not layouted yet we don't want to announce that we are // fully expanded, hence the != 0.0f check. if (height != 0.0f && mQsFullyExpanded && !mLastAnnouncementWasQuickSettings) { announceForAccessibility(getContext().getString( R.string.accessibility_desc_quick_settings)); mLastAnnouncementWasQuickSettings = true; if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } if (mQsFullyExpanded && mFalsingManager.shouldEnforceBouncer()) { mStatusBar.executeRunnableDismissingKeyguard(null, null /* cancelAction */, false /* dismissShade */, true /* afterKeyguardGone */, false /* deferred */); Loading @@ -1350,9 +1336,13 @@ public class NotificationPanelView extends PanelView implements mQs.setQsExpansion(getQsExpansionFraction(), getHeaderTranslation()); } private String getKeyguardOrLockScreenString() { private String determineAccessibilityPaneTitle() { if (mQs != null && mQs.isCustomizing()) { return getContext().getString(R.string.accessibility_desc_quick_settings_edit); } else if (mQsExpansionHeight != 0.0f && mQsFullyExpanded) { // Upon initialisation when we are not layouted yet we don't want to announce that we // are fully expanded, hence the != 0.0f check. return getContext().getString(R.string.accessibility_desc_quick_settings); } else if (mStatusBarState == StatusBarState.KEYGUARD) { return getContext().getString(R.string.accessibility_desc_lock_screen); } else { Loading Loading @@ -1880,6 +1870,9 @@ public class NotificationPanelView extends PanelView implements requestScrollerTopPaddingUpdate(false /* animate */); requestPanelHeightUpdate(); } if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } } @Override Loading Loading
core/java/android/view/View.java +29 −12 Original line number Diff line number Diff line Loading @@ -7308,6 +7308,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return mAccessibilityPaneTitle; } private boolean isAccessibilityPane() { return !TextUtils.isEmpty(mAccessibilityPaneTitle); } /** * Sends an accessibility event of the given type. If accessibility is * not enabled this method has no effect. The default implementation calls Loading Loading @@ -11637,7 +11641,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, return mode == IMPORTANT_FOR_ACCESSIBILITY_YES || isActionableForAccessibility() || hasListenersForAccessibility() || getAccessibilityNodeProvider() != null || getAccessibilityLiveRegion() != ACCESSIBILITY_LIVE_REGION_NONE || (mAccessibilityPaneTitle != null); || isAccessibilityPane(); } /** Loading Loading @@ -11734,10 +11738,16 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // Changes to views with a pane title count as window state changes, as the pane title // marks them as significant parts of the UI. if (!TextUtils.isEmpty(getAccessibilityPaneTitle())) { if ((changeType != AccessibilityEvent.CONTENT_CHANGE_TYPE_SUBTREE) && isAccessibilityPane()) { // If the pane isn't visible, content changed events are sufficient unless we're // reporting that the view just disappeared if ((getVisibility() == VISIBLE) || (changeType == AccessibilityEvent.CONTENT_CHANGE_TYPE_PANE_DISAPPEARED)) { final AccessibilityEvent event = AccessibilityEvent.obtain(); event.setEventType(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED); event.setContentChangeTypes(changeType); event.setSource(this); onPopulateAccessibilityEvent(event); if (mParent != null) { try { Loading @@ -11747,6 +11757,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback, + " does not fully implement ViewParent", e); } } return; } } // If this is a live region, we should send a subtree change event Loading Loading @@ -14035,6 +14047,11 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } if (accessibilityEnabled) { // If we're an accessibility pane and the visibility changed, we already have sent // a state change, so we really don't need to report other changes. if (isAccessibilityPane()) { changed &= ~VISIBILITY_MASK; } if ((changed & FOCUSABLE) != 0 || (changed & VISIBILITY_MASK) != 0 || (changed & CLICKABLE) != 0 || (changed & LONG_CLICKABLE) != 0 || (changed & CONTEXT_CLICKABLE) != 0) {
packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java +0 −4 Original line number Diff line number Diff line Loading @@ -171,8 +171,6 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene queryTiles(); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(true); announceForAccessibility(mContext.getString( R.string.accessibility_desc_quick_settings_edit)); Dependency.get(KeyguardMonitor.class).addCallback(mKeyguardCallback); updateNavColors(); } Loading Loading @@ -213,8 +211,6 @@ public class QSCustomizer extends LinearLayout implements OnMenuItemClickListene mClipper.animateCircularClip(mX, mY, false, mCollapseAnimationListener); mNotifQsContainer.setCustomizerAnimating(true); mNotifQsContainer.setCustomizerShowing(false); announceForAccessibility(mContext.getString( R.string.accessibility_desc_quick_settings)); Dependency.get(KeyguardMonitor.class).removeCallback(mKeyguardCallback); updateNavColors(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +15 −22 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.WindowInsets; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityManager; import android.widget.FrameLayout; import com.android.internal.logging.MetricsLogger; Loading Loading @@ -111,6 +111,7 @@ public class NotificationPanelView extends PanelView implements } }; private final PowerManager mPowerManager; private final AccessibilityManager mAccessibilityManager; private KeyguardAffordanceHelper mAffordanceHelper; private KeyguardUserSwitcher mKeyguardUserSwitcher; Loading Loading @@ -249,6 +250,8 @@ public class NotificationPanelView extends PanelView implements setWillNotDraw(!DEBUG); mFalsingManager = FalsingManager.getInstance(context); mPowerManager = context.getSystemService(PowerManager.class); mAccessibilityManager = context.getSystemService(AccessibilityManager.class); setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } public void setStatusBar(StatusBar bar) { Loading Loading @@ -660,16 +663,6 @@ public class NotificationPanelView extends PanelView implements super.flingToHeight(vel, expand, target, collapseSpeedUpFactor, expandBecauseOfFalsing); } @Override public boolean dispatchPopulateAccessibilityEventInternal(AccessibilityEvent event) { if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) { event.getText().add(getKeyguardOrLockScreenString()); mLastAnnouncementWasQuickSettings = false; return true; } return super.dispatchPopulateAccessibilityEventInternal(event); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (mBlockTouches || mQsFullyExpanded && mQs.onInterceptTouchEvent(event)) { Loading Loading @@ -1300,10 +1293,6 @@ public class NotificationPanelView extends PanelView implements setQsExpanded(true); } else if (height <= mQsMinExpansionHeight && mQsExpanded) { setQsExpanded(false); if (mLastAnnouncementWasQuickSettings && !mTracking && !isCollapsing()) { announceForAccessibility(getKeyguardOrLockScreenString()); mLastAnnouncementWasQuickSettings = false; } } mQsExpansionHeight = height; updateQsExpansion(); Loading @@ -1329,13 +1318,10 @@ public class NotificationPanelView extends PanelView implements updateClock(mClockPositionResult.clockAlpha, mClockPositionResult.clockScale); } // Upon initialisation when we are not layouted yet we don't want to announce that we are // fully expanded, hence the != 0.0f check. if (height != 0.0f && mQsFullyExpanded && !mLastAnnouncementWasQuickSettings) { announceForAccessibility(getContext().getString( R.string.accessibility_desc_quick_settings)); mLastAnnouncementWasQuickSettings = true; if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } if (mQsFullyExpanded && mFalsingManager.shouldEnforceBouncer()) { mStatusBar.executeRunnableDismissingKeyguard(null, null /* cancelAction */, false /* dismissShade */, true /* afterKeyguardGone */, false /* deferred */); Loading @@ -1350,9 +1336,13 @@ public class NotificationPanelView extends PanelView implements mQs.setQsExpansion(getQsExpansionFraction(), getHeaderTranslation()); } private String getKeyguardOrLockScreenString() { private String determineAccessibilityPaneTitle() { if (mQs != null && mQs.isCustomizing()) { return getContext().getString(R.string.accessibility_desc_quick_settings_edit); } else if (mQsExpansionHeight != 0.0f && mQsFullyExpanded) { // Upon initialisation when we are not layouted yet we don't want to announce that we // are fully expanded, hence the != 0.0f check. return getContext().getString(R.string.accessibility_desc_quick_settings); } else if (mStatusBarState == StatusBarState.KEYGUARD) { return getContext().getString(R.string.accessibility_desc_lock_screen); } else { Loading Loading @@ -1880,6 +1870,9 @@ public class NotificationPanelView extends PanelView implements requestScrollerTopPaddingUpdate(false /* animate */); requestPanelHeightUpdate(); } if (mAccessibilityManager.isEnabled()) { setAccessibilityPaneTitle(determineAccessibilityPaneTitle()); } } @Override Loading