Merge commit '34c1780399ab2e1d2116f4caf42c81b346acd4b8' into eclair-mr2-plus-aosp * commit '34c1780399ab2e1d2116f4caf42c81b346acd4b8': Fix 2241848 - 3D apps folder does not send accessibility events
This commit is contained in:
@@ -88,6 +88,12 @@
|
||||
<!-- Title of dialog when user is selecting live folder to add to homescreen -->
|
||||
<string name="title_select_live_folder">Select folder</string>
|
||||
|
||||
<!-- All applications label for accessibilty (spoken when the button gets focus). -->
|
||||
<string name="all_apps_button_label">All applications</string>
|
||||
<!-- Label for button in all applications label to go back home (to the workspace / desktop)
|
||||
for accessibilty (spoken when the button gets focus). -->
|
||||
<string name="all_apps_home_button_label">Home</string>
|
||||
|
||||
<!-- Menus items: -->
|
||||
<skip />
|
||||
<!-- Verb, menu item used to add an item on the desktop -->
|
||||
|
||||
@@ -46,6 +46,7 @@ import android.view.SurfaceHolder;
|
||||
import android.view.VelocityTracker;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.view.accessibility.AccessibilityEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -565,6 +566,44 @@ public class AllAppsView extends RSSurfaceView
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchPopulateAccessibilityEvent(AccessibilityEvent event) {
|
||||
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SELECTED) {
|
||||
if (!isVisible()) {
|
||||
return false;
|
||||
}
|
||||
String text = null;
|
||||
int index;
|
||||
int count = mAllAppsList.size() + 1; // +1 is home
|
||||
int pos = -1;
|
||||
switch (mLastSelection) {
|
||||
case SELECTION_ICONS:
|
||||
index = mRollo.mState.selectedIconIndex;
|
||||
if (index >= 0) {
|
||||
ApplicationInfo info = mAllAppsList.get(index);
|
||||
if (info.title != null) {
|
||||
text = info.title.toString();
|
||||
pos = index;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SELECTION_HOME:
|
||||
text = getContext().getString(R.string.all_apps_home_button_label);
|
||||
pos = count;
|
||||
break;
|
||||
}
|
||||
if (text != null) {
|
||||
Log.d(TAG, "dispatchPopulateAccessibilityEvent setting text=" + text);
|
||||
event.setEnabled(true);
|
||||
event.getText().add(text);
|
||||
//event.setContentDescription(text);
|
||||
event.setItemCount(count);
|
||||
event.setCurrentItemIndex(pos);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setDragController(DragController dragger) {
|
||||
mDragController = dragger;
|
||||
}
|
||||
@@ -1286,19 +1325,28 @@ public class AllAppsView extends RSSurfaceView
|
||||
mLastSelection = SELECTION_ICONS;
|
||||
}
|
||||
|
||||
int prev = mState.selectedIconIndex;
|
||||
mState.selectedIconIndex = index;
|
||||
|
||||
ApplicationInfo info = mAllAppsList.get(index);
|
||||
Bitmap selectionBitmap = mSelectionBitmap;
|
||||
|
||||
Utilities.drawSelectedAllAppsBitmap(mSelectionCanvas,
|
||||
selectionBitmap.getWidth(), selectionBitmap.getHeight(),
|
||||
pressed == SELECTED_PRESSED,
|
||||
mAllAppsList.get(index).iconBitmap);
|
||||
pressed == SELECTED_PRESSED, info.iconBitmap);
|
||||
|
||||
mSelectedIcon = Allocation.createFromBitmap(mRS, selectionBitmap,
|
||||
Element.RGBA_8888(mRS), false);
|
||||
mSelectedIcon.uploadToTexture(0);
|
||||
mState.selectedIconTexture = mSelectedIcon.getID();
|
||||
|
||||
if (prev != index) {
|
||||
if (info.title != null && info.title.length() > 0) {
|
||||
Log.d(TAG, "sendAccessibilityEvent SELECTION_ICONS " + info.title);
|
||||
//setContentDescription(info.title);
|
||||
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1310,6 +1358,7 @@ public class AllAppsView extends RSSurfaceView
|
||||
}
|
||||
|
||||
void setHomeSelected(int mode) {
|
||||
final int prev = mLastSelection;
|
||||
switch (mode) {
|
||||
case SELECTED_NONE:
|
||||
mState.homeButtonId = mHomeButtonNormal.getID();
|
||||
@@ -1317,6 +1366,10 @@ public class AllAppsView extends RSSurfaceView
|
||||
case SELECTED_FOCUSED:
|
||||
mLastSelection = SELECTION_HOME;
|
||||
mState.homeButtonId = mHomeButtonFocused.getID();
|
||||
if (prev != SELECTION_HOME) {
|
||||
Log.d(TAG, "sendAccessibilityEvent SELECTION_HOME");
|
||||
sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_SELECTED);
|
||||
}
|
||||
break;
|
||||
case SELECTED_PRESSED:
|
||||
mState.homeButtonId = mHomeButtonPressed.getID();
|
||||
|
||||
@@ -45,6 +45,8 @@ public class HandleView extends ImageView {
|
||||
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.HandleView, defStyle, 0);
|
||||
mOrientation = a.getInt(R.styleable.HandleView_direction, ORIENTATION_HORIZONTAL);
|
||||
a.recycle();
|
||||
|
||||
setContentDescription(context.getString(R.string.all_apps_button_label));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user