Loading core/java/android/widget/Editor.java +15 −34 Original line number Diff line number Diff line Loading @@ -290,7 +290,6 @@ public class Editor { boolean mIsInsertionActionModeStartPending = false; private final SuggestionHelper mSuggestionHelper = new SuggestionHelper(); private SuggestionInfo[] mSuggestionInfosInContextMenu; Editor(TextView textView) { mTextView = textView; Loading Loading @@ -2454,21 +2453,24 @@ public class Editor { } if (shouldOfferToShowSuggestions()) { if (mSuggestionInfosInContextMenu == null) { mSuggestionInfosInContextMenu = final SuggestionInfo[] suggestionInfoArray = new SuggestionInfo[SuggestionSpan.SUGGESTIONS_MAX_SIZE]; for (int i = 0; i < mSuggestionInfosInContextMenu.length; i++) { mSuggestionInfosInContextMenu[i] = new SuggestionInfo(); } for (int i = 0; i < suggestionInfoArray.length; i++) { suggestionInfoArray[i] = new SuggestionInfo(); } final SubMenu subMenu = menu.addSubMenu(Menu.NONE, Menu.NONE, MENU_ITEM_ORDER_REPLACE, com.android.internal.R.string.replace); mSuggestionHelper.getSuggestionInfo(mSuggestionInfosInContextMenu); int i = 0; for (final SuggestionInfo info : mSuggestionInfosInContextMenu) { info.mSuggestionEnd = info.mText.length(); subMenu.add(Menu.NONE, Menu.NONE, i++, info.mText) .setOnMenuItemClickListener(mOnContextMenuReplaceItemClickListener); final int numItems = mSuggestionHelper.getSuggestionInfo(suggestionInfoArray); for (int i = 0; i < numItems; i++) { final SuggestionInfo info = suggestionInfoArray[i]; subMenu.add(Menu.NONE, Menu.NONE, i, info.mText) .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { replaceWithSuggestion(info); return true; } }); } } Loading Loading @@ -2609,27 +2611,6 @@ public class Editor { } }; private final MenuItem.OnMenuItemClickListener mOnContextMenuReplaceItemClickListener = new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { int index = item.getOrder(); if (index < 0 || index >= mSuggestionInfosInContextMenu.length) { clear(); return false; } replaceWithSuggestion(mSuggestionInfosInContextMenu[index]); clear(); return true; } private void clear() { for (final SuggestionInfo info : mSuggestionInfosInContextMenu) { info.clear(); } } }; /** * Controls the {@link EasyEditSpan} monitoring when it is added, and when the related * pop-up should be displayed. Loading core/tests/coretests/src/android/widget/TextViewActivityMouseTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).check(hasSelection("")); onView(withId(R.id.textview)).check(hasInsertionPointerAtIndex(text.indexOf("i"))); // TODO: Add tests for suggestions } @SmallTest Loading Loading
core/java/android/widget/Editor.java +15 −34 Original line number Diff line number Diff line Loading @@ -290,7 +290,6 @@ public class Editor { boolean mIsInsertionActionModeStartPending = false; private final SuggestionHelper mSuggestionHelper = new SuggestionHelper(); private SuggestionInfo[] mSuggestionInfosInContextMenu; Editor(TextView textView) { mTextView = textView; Loading Loading @@ -2454,21 +2453,24 @@ public class Editor { } if (shouldOfferToShowSuggestions()) { if (mSuggestionInfosInContextMenu == null) { mSuggestionInfosInContextMenu = final SuggestionInfo[] suggestionInfoArray = new SuggestionInfo[SuggestionSpan.SUGGESTIONS_MAX_SIZE]; for (int i = 0; i < mSuggestionInfosInContextMenu.length; i++) { mSuggestionInfosInContextMenu[i] = new SuggestionInfo(); } for (int i = 0; i < suggestionInfoArray.length; i++) { suggestionInfoArray[i] = new SuggestionInfo(); } final SubMenu subMenu = menu.addSubMenu(Menu.NONE, Menu.NONE, MENU_ITEM_ORDER_REPLACE, com.android.internal.R.string.replace); mSuggestionHelper.getSuggestionInfo(mSuggestionInfosInContextMenu); int i = 0; for (final SuggestionInfo info : mSuggestionInfosInContextMenu) { info.mSuggestionEnd = info.mText.length(); subMenu.add(Menu.NONE, Menu.NONE, i++, info.mText) .setOnMenuItemClickListener(mOnContextMenuReplaceItemClickListener); final int numItems = mSuggestionHelper.getSuggestionInfo(suggestionInfoArray); for (int i = 0; i < numItems; i++) { final SuggestionInfo info = suggestionInfoArray[i]; subMenu.add(Menu.NONE, Menu.NONE, i, info.mText) .setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { replaceWithSuggestion(info); return true; } }); } } Loading Loading @@ -2609,27 +2611,6 @@ public class Editor { } }; private final MenuItem.OnMenuItemClickListener mOnContextMenuReplaceItemClickListener = new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { int index = item.getOrder(); if (index < 0 || index >= mSuggestionInfosInContextMenu.length) { clear(); return false; } replaceWithSuggestion(mSuggestionInfosInContextMenu[index]); clear(); return true; } private void clear() { for (final SuggestionInfo info : mSuggestionInfosInContextMenu) { info.clear(); } } }; /** * Controls the {@link EasyEditSpan} monitoring when it is added, and when the related * pop-up should be displayed. Loading
core/tests/coretests/src/android/widget/TextViewActivityMouseTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,8 @@ public class TextViewActivityMouseTest extends ActivityInstrumentationTestCase2< onView(withId(R.id.textview)).check(hasSelection("")); onView(withId(R.id.textview)).check(hasInsertionPointerAtIndex(text.indexOf("i"))); // TODO: Add tests for suggestions } @SmallTest Loading