Merge "Fix bug 5237737 - ActionBar should fire an accessibility event when action mode is turned on/off"
This commit is contained in:
@@ -16,6 +16,9 @@
|
||||
|
||||
package android.inputmethodservice;
|
||||
|
||||
import com.android.internal.view.menu.MenuBuilder;
|
||||
import com.android.internal.view.menu.MenuPopupHelper;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.ActionMode;
|
||||
@@ -23,12 +26,10 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.android.internal.view.menu.MenuBuilder;
|
||||
import com.android.internal.view.menu.MenuPopupHelper;
|
||||
|
||||
/**
|
||||
* ExtractEditLayout provides an ActionMode presentation for the
|
||||
* limited screen real estate in extract mode.
|
||||
@@ -56,6 +57,7 @@ public class ExtractEditLayout extends LinearLayout {
|
||||
mExtractActionButton.setVisibility(INVISIBLE);
|
||||
mEditButton.setVisibility(VISIBLE);
|
||||
mActionMode = mode;
|
||||
sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
return mode;
|
||||
}
|
||||
return null;
|
||||
@@ -158,6 +160,8 @@ public class ExtractEditLayout extends LinearLayout {
|
||||
mExtractActionButton.setVisibility(VISIBLE);
|
||||
mEditButton.setVisibility(INVISIBLE);
|
||||
|
||||
sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
|
||||
mActionMode = null;
|
||||
}
|
||||
|
||||
|
||||
@@ -48,6 +48,7 @@ import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.widget.SpinnerAdapter;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
@@ -397,6 +398,7 @@ public class ActionBarImpl extends ActionBar {
|
||||
// TODO animate this
|
||||
mSplitView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
mContextView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
mActionMode = mode;
|
||||
return mode;
|
||||
}
|
||||
@@ -681,6 +683,7 @@ public class ActionBarImpl extends ActionBar {
|
||||
|
||||
// Clear out the context mode views after the animation finishes
|
||||
mContextView.closeMode();
|
||||
mActionView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
|
||||
mActionMode = null;
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
@@ -86,6 +87,7 @@ public class StandaloneActionMode extends ActionMode implements MenuBuilder.Call
|
||||
}
|
||||
mFinished = true;
|
||||
|
||||
mContextView.sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
mCallback.onDestroyActionMode(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ import android.view.ActionMode;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
import android.view.animation.DecelerateInterpolator;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
@@ -455,4 +456,17 @@ public class ActionBarContextView extends AbsActionBarView implements AnimatorLi
|
||||
public boolean shouldDelayChildPressedState() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
|
||||
if (event.getEventType() == AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) {
|
||||
// Action mode started
|
||||
event.setSource(this);
|
||||
event.setClassName(getClass().getName());
|
||||
event.setPackageName(getContext().getPackageName());
|
||||
event.setContentDescription(mTitle);
|
||||
} else {
|
||||
super.onInitializeAccessibilityEvent(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2171,6 +2171,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
|
||||
if (mActionModePopup != null) {
|
||||
post(mShowActionModePopup);
|
||||
}
|
||||
mActionModeView.sendAccessibilityEvent(
|
||||
AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
|
||||
} else {
|
||||
mActionMode = null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user