Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,10 @@ public boolean isShowingStripContainer() {
return mStripContainer.isShown();
}

public EmojiPalettesView getEmojiPalettesView() {
return mEmojiPalettesView;
}

public View getVisibleKeyboardView() {
if (isShowingEmojiPalettes()) {
return mEmojiPalettesView;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,20 +233,24 @@ public void loadRecentKeys(final Collection<DynamicGridKeyboard> keyboards) {
final String str = mPrefs.getString(Settings.PREF_EMOJI_RECENT_KEYS, Defaults.PREF_EMOJI_RECENT_KEYS);
final List<Object> keys = JsonUtils.jsonStrToList(str);
for (final Object o : keys) {
final Key key;
if (o instanceof Integer) {
final int code = (Integer)o;
key = getKeyByCode(keyboards, code);
} else if (o instanceof final String outputText) {
key = getKeyByOutputText(keyboards, outputText);
} else {
Log.w(TAG, "Invalid object: " + o);
continue;
final Key key = getKey(keyboards, o);
if (key != null) {
addKeyLast(key);
}
addKeyLast(key);
}
}

Key getKey(Collection<DynamicGridKeyboard> keyboards, Object o) {
if (o instanceof Integer code) {
return getKeyByCode(keyboards, code);
}
if (o instanceof final String outputText) {
return getKeyByOutputText(keyboards, outputText);
}
Log.w(TAG, "Invalid object: " + o);
return null;
}

private int getKeyX0(final int index) {
final int column = index % mColumnsNum;
return column * mHorizontalStep + mHorizontalGap / 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import helium314.keyboard.latin.utils.ResourceUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
Expand Down Expand Up @@ -296,7 +297,7 @@ public DynamicGridKeyboard getKeyboard(final int categoryId, final int id) {
mLayoutSet.getKeyboard(KeyboardId.ELEMENT_EMOJI_RECENTS),
mMaxRecentsKeyCount, categoryId, currentWidth);
mCategoryKeyboardMap.put(categoryKeyboardMapKey, kbd);
kbd.loadRecentKeys(mCategoryKeyboardMap.values());
kbd.loadRecentKeys(getKeyboards());
return kbd;
}

Expand All @@ -320,6 +321,10 @@ public DynamicGridKeyboard getKeyboard(final int categoryId, final int id) {
}
}

Collection<DynamicGridKeyboard> getKeyboards() {
return mCategoryKeyboardMap.values();
}

private int computeMaxKeyCountPerPage() {
final DynamicGridKeyboard tempKeyboard = new DynamicGridKeyboard(mPrefs,
mLayoutSet.getKeyboard(KeyboardId.ELEMENT_EMOJI_RECENTS),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -341,12 +341,17 @@ public void startEmojiPalettes(final KeyVisualAttributes keyVisualAttr,
initDictionaryFacilitator();
}

public void addRecent(String emoji) {
initialize();
addRecentKey(getRecentsKeyboard().getKey(mEmojiCategory.getKeyboards(), emoji));
}

private void addRecentKey(final Key key) {
if (Settings.getValues().mIncognitoModeEnabled) {
// We do not want to log recent keys while being in incognito
return;
}
if (mEmojiCategory.isInRecentTab()) {
if (getVisibility() == VISIBLE && mEmojiCategory.isInRecentTab()) {
getRecentsKeyboard().addPendingKey(key);
return;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -311,6 +311,11 @@ public InputTransaction onPickSuggestionManually(final SettingsValues settingsVa
mConnection.endBatchEdit();
// Don't allow cancellation of manual pick
mLastComposedWord.deactivate();

if (suggestionInfo.isEmoji()) {
KeyboardSwitcher.getInstance().getEmojiPalettesView().addRecent(suggestion);
}

// Space state must be updated before calling updateShiftState
if (settingsValues.mAutospaceAfterSuggestion)
mSpaceState = SpaceState.PHANTOM;
Expand Down
Loading