add "show source dictionary" option in remove suggestion dialog when using debug apk

This commit is contained in:
Helium314 2023-08-27 18:41:13 +02:00
parent 3ca932db19
commit 5b0acd82fa

View file

@ -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();
}