diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java index cd54822bf..3df454cdb 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/suggestions/SuggestionStripView.java @@ -28,6 +28,7 @@ import android.util.AttributeSet; import android.util.TypedValue; import android.view.GestureDetector; import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; @@ -40,12 +41,14 @@ import android.widget.ImageButton; import android.widget.PopupMenu; import android.widget.RelativeLayout; import android.widget.TextView; +import android.widget.Toast; import org.dslul.openboard.inputmethod.accessibility.AccessibilityUtils; import org.dslul.openboard.inputmethod.keyboard.Keyboard; import org.dslul.openboard.inputmethod.keyboard.MainKeyboardView; import org.dslul.openboard.inputmethod.keyboard.MoreKeysPanel; import org.dslul.openboard.inputmethod.latin.AudioAndHapticFeedbackManager; +import org.dslul.openboard.inputmethod.latin.BuildConfig; import org.dslul.openboard.inputmethod.latin.R; import org.dslul.openboard.inputmethod.latin.SuggestedWords; import org.dslul.openboard.inputmethod.latin.SuggestedWords.SuggestedWordInfo; @@ -329,40 +332,49 @@ public final class SuggestionStripView extends RelativeLayout implements OnClick final String word = wordView.getText().toString(); final PopupMenu menu = new PopupMenu(DialogUtils.getPlatformDialogThemeContext(getContext()), wordView); - menu.getMenu().add(R.string.remove_suggestions); - menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem menuItem) { - mListener.removeSuggestion(word); - mMoreSuggestionsView.dismissMoreKeysPanel(); - // show suggestions, but without the removed word - final ArrayList sw = new ArrayList(); + menu.getMenu().add(Menu.NONE, 1, Menu.NONE, R.string.remove_suggestions); + if (BuildConfig.DEBUG) + menu.getMenu().add(Menu.NONE, 2, Menu.NONE, "Show source dictionary"); + menu.setOnMenuItemClickListener(menuItem -> { + if (menuItem.getItemId() == 2) { for (int i = 0; i < mSuggestedWords.size(); i ++) { final SuggestedWordInfo info = mSuggestedWords.getInfo(i); - if (!info.getWord().equals(word)) - sw.add(info); - } - ArrayList rs = null; - if (mSuggestedWords.mRawSuggestions != null) { - rs = mSuggestedWords.mRawSuggestions; - for (int i = 0; i < rs.size(); i ++) { - if (rs.get(i).getWord().equals(word)) { - rs.remove(i); - break; - } + if (info.getWord().equals(word)) { + final String text = info.mSourceDict.mDictType + ":" + info.mSourceDict.mLocale; + Toast.makeText(getContext(), text, Toast.LENGTH_LONG).show(); } } - // copied code from setSuggestions, but without the Rtl part - clear(); - mSuggestedWords = new SuggestedWords(sw, rs, mSuggestedWords.getTypedWordInfo(), - mSuggestedWords.mTypedWordValid, mSuggestedWords.mWillAutoCorrect, - mSuggestedWords.mIsObsoleteSuggestions, mSuggestedWords.mInputStyle, - mSuggestedWords.mSequenceNumber); - mStartIndexOfMoreSuggestions = mLayoutHelper.layoutAndReturnStartIndexOfMoreSuggestions( - getContext(), mSuggestedWords, mSuggestionsStrip, SuggestionStripView.this); - mStripVisibilityGroup.showSuggestionsStrip(); return true; } + mListener.removeSuggestion(word); + mMoreSuggestionsView.dismissMoreKeysPanel(); + // show suggestions, but without the removed word + final ArrayList sw = new ArrayList<>(); + for (int i = 0; i < mSuggestedWords.size(); i ++) { + final SuggestedWordInfo info = mSuggestedWords.getInfo(i); + if (!info.getWord().equals(word)) + sw.add(info); + } + ArrayList rs = null; + if (mSuggestedWords.mRawSuggestions != null) { + rs = mSuggestedWords.mRawSuggestions; + for (int i = 0; i < rs.size(); i ++) { + if (rs.get(i).getWord().equals(word)) { + rs.remove(i); + break; + } + } + } + // copied code from setSuggestions, but without the Rtl part + clear(); + mSuggestedWords = new SuggestedWords(sw, rs, mSuggestedWords.getTypedWordInfo(), + mSuggestedWords.mTypedWordValid, mSuggestedWords.mWillAutoCorrect, + mSuggestedWords.mIsObsoleteSuggestions, mSuggestedWords.mInputStyle, + mSuggestedWords.mSequenceNumber); + mStartIndexOfMoreSuggestions = mLayoutHelper.layoutAndReturnStartIndexOfMoreSuggestions( + getContext(), mSuggestedWords, mSuggestionsStrip, SuggestionStripView.this); + mStripVisibilityGroup.showSuggestionsStrip(); + return true; }); menu.show(); }