Do not start in recents tab if we do not have recent emojis

If user has not used emojis we should not bring recents emoji tab on the
first invocation of the on-screen keyboard as it is confusing to see an
empty tab.

We will still be showing recents tab even if it is empty if user
actively switched to it when using on-screen keyboard.

Bug: 24497650

Change-Id: I68b4bf64441590858d246168cc4733a2875a1357
(cherry picked from commit 24d67eba27cb23c0d3aca44236247ec12380daa5)
This commit is contained in:
Dmitry Torokhov 2015-09-25 10:25:58 -07:00
parent 1fdb8f3156
commit 28e65858d9

View file

@ -120,22 +120,29 @@ final class EmojiCategory {
mCategoryTabIconId[i] = emojiPaletteViewAttr.getResourceId( mCategoryTabIconId[i] = emojiPaletteViewAttr.getResourceId(
sCategoryTabIconAttr[i], 0); sCategoryTabIconAttr[i], 0);
} }
int defaultCategoryId = EmojiCategory.ID_SYMBOLS;
addShownCategoryId(EmojiCategory.ID_RECENTS); addShownCategoryId(EmojiCategory.ID_RECENTS);
if (BuildCompatUtils.EFFECTIVE_SDK_INT >= Build.VERSION_CODES.KITKAT) { if (BuildCompatUtils.EFFECTIVE_SDK_INT >= Build.VERSION_CODES.KITKAT) {
defaultCategoryId = EmojiCategory.ID_PEOPLE;
addShownCategoryId(EmojiCategory.ID_PEOPLE); addShownCategoryId(EmojiCategory.ID_PEOPLE);
addShownCategoryId(EmojiCategory.ID_OBJECTS); addShownCategoryId(EmojiCategory.ID_OBJECTS);
addShownCategoryId(EmojiCategory.ID_NATURE); addShownCategoryId(EmojiCategory.ID_NATURE);
addShownCategoryId(EmojiCategory.ID_PLACES); addShownCategoryId(EmojiCategory.ID_PLACES);
mCurrentCategoryId =
Settings.readLastShownEmojiCategoryId(mPrefs, EmojiCategory.ID_PEOPLE);
} else {
mCurrentCategoryId =
Settings.readLastShownEmojiCategoryId(mPrefs, EmojiCategory.ID_SYMBOLS);
} }
addShownCategoryId(EmojiCategory.ID_SYMBOLS); addShownCategoryId(EmojiCategory.ID_SYMBOLS);
addShownCategoryId(EmojiCategory.ID_EMOTICONS); addShownCategoryId(EmojiCategory.ID_EMOTICONS);
getKeyboard(EmojiCategory.ID_RECENTS, 0 /* cagetoryPageId */)
.loadRecentKeys(mCategoryKeyboardMap.values()); DynamicGridKeyboard recentsKbd =
getKeyboard(EmojiCategory.ID_RECENTS, 0 /* cagetoryPageId */);
recentsKbd.loadRecentKeys(mCategoryKeyboardMap.values());
mCurrentCategoryId = Settings.readLastShownEmojiCategoryId(mPrefs, defaultCategoryId);
if (mCurrentCategoryId == EmojiCategory.ID_RECENTS &&
recentsKbd.getSortedKeys().isEmpty()) {
Log.i(TAG, "No recent emojis found, starting in category " + mCurrentCategoryId);
mCurrentCategoryId = defaultCategoryId;
}
} }
private void addShownCategoryId(final int categoryId) { private void addShownCategoryId(final int categoryId) {