mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-26 01:26:35 +00:00
add "show source dictionary" option in remove suggestion dialog when using debug apk
This commit is contained in:
parent
3ca932db19
commit
5b0acd82fa
1 changed files with 40 additions and 28 deletions
|
@ -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<SuggestedWordInfo> sw = new ArrayList<SuggestedWordInfo>();
|
||||
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<SuggestedWordInfo> 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<SuggestedWordInfo> 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<SuggestedWordInfo> 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();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue