| Index: third_party/google_input_tools/src/chrome/os/inputview/config/emoji_data.js
|
| diff --git a/third_party/google_input_tools/src/chrome/os/inputview/config/emoji_data.js b/third_party/google_input_tools/src/chrome/os/inputview/config/emoji_data.js
|
| index ddc8e6b5bafc8dc03f3c865eb7c9debbbb50b9fe..3dd9311db4c90ed145f09dfef6bcbac0fafbc7d7 100644
|
| --- a/third_party/google_input_tools/src/chrome/os/inputview/config/emoji_data.js
|
| +++ b/third_party/google_input_tools/src/chrome/os/inputview/config/emoji_data.js
|
| @@ -20,14 +20,14 @@ goog.require('i18n.input.chrome.inputview.elements.ElementType');
|
| (function() {
|
|
|
| var viewIdPrefix = 'emoji-k-';
|
| - var emojiKeyAmount = 27;
|
| + var emojiKeysPerPage = 27;
|
| var util = i18n.input.chrome.inputview.content.util;
|
| var ElementType = i18n.input.chrome.inputview.elements.ElementType;
|
| var EmojiType = i18n.input.chrome.inputview.EmojiType;
|
| var SpecNodeName = i18n.input.chrome.inputview.SpecNodeName;
|
| var Css = i18n.input.chrome.inputview.Css;
|
|
|
| - var keyCharacters = [
|
| + var emojiGroups = [
|
| // Recent
|
| [''],
|
|
|
| @@ -457,91 +457,72 @@ goog.require('i18n.input.chrome.inputview.elements.ElementType');
|
| ];
|
| var keyList = [];
|
| var mapping = {};
|
| + var viewId = 0;
|
| keyList.push(util.createTabBarKey('Tabbar0', EmojiType.RECENT,
|
| Css.EMOJI_TABBAR_RECENT));
|
| + mapping['Tabbar0'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar1', EmojiType.HOT,
|
| Css.EMOJI_TABBAR_HOT));
|
| + mapping['Tabbar1'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar2', EmojiType.EMOTION,
|
| Css.EMOJI_TABBAR_EMOTION));
|
| + mapping['Tabbar2'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar3', EmojiType.ITEMS,
|
| Css.EMOJI_TABBAR_ITEMS));
|
| + mapping['Tabbar3'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar4', EmojiType.NATURE,
|
| Css.EMOJI_TABBAR_NATURE));
|
| + mapping['Tabbar4'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar5', EmojiType.PLACES_OF_INTERESTS,
|
| Css.EMOJI_TABBAR_PLACES_OF_INTERESTS));
|
| + mapping['Tabbar5'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar6',
|
| EmojiType.SPECIAL_CHARACTERS,
|
| Css.EMOJI_TABBAR_SPECIAL_CHARACTERS));
|
| + mapping['Tabbar6'] = viewIdPrefix + viewId++;
|
| keyList.push(util.createTabBarKey('Tabbar7', EmojiType.EMOTICON,
|
| Css.EMOJI_TABBAR_EMOTICON));
|
| - keyList.push(util.createBackKey());
|
| + mapping['Tabbar7'] = viewIdPrefix + viewId++;
|
|
|
| - var amount = 0;
|
| - var acturalLength = 0;
|
| - for (var i = 0, len = keyCharacters.length; i < len; i++) {
|
| - acturalLength = Math.ceil(keyCharacters[i].length / emojiKeyAmount) *
|
| - emojiKeyAmount;
|
| - for (var j = 0, lenJ = keyCharacters[i].length; j < lenJ; j++) {
|
| + // Tab bar layout has 10 keys but we only need 8 keys here, skip two keys.
|
| + viewId += 2;
|
| + for (var i = 0, count = 0; i < emojiGroups.length; i++) {
|
| + var pages = Math.ceil(emojiGroups[i].length / emojiKeysPerPage);
|
| + for (var j = 0; j < pages * emojiKeysPerPage; j++) {
|
| var spec = {};
|
| - spec[SpecNodeName.ID] = 'emojikey' + amount;
|
| + spec[SpecNodeName.ID] = 'emojikey' + count;
|
| spec[SpecNodeName.TYPE] = ElementType.EMOJI_KEY;
|
| - spec[SpecNodeName.TEXT] = keyCharacters[i][j];
|
| + spec[SpecNodeName.TEXT] =
|
| + j < emojiGroups[i].length ? emojiGroups[i][j] : '';
|
| spec[SpecNodeName.IS_EMOTICON] = (i == EmojiType.EMOTICON);
|
| var key = i18n.input.chrome.inputview.content.util.createKey(spec);
|
| + mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
| keyList.push(key);
|
| - amount++;
|
| + count++;
|
| }
|
| - for (var j = keyCharacters[i].length; j < acturalLength; j++) {
|
| - var spec = {};
|
| - spec[SpecNodeName.ID] = 'emojikey' + amount;
|
| - spec[SpecNodeName.TYPE] = ElementType.EMOJI_KEY;
|
| - spec[SpecNodeName.TEXT] = '';
|
| - spec[SpecNodeName.IS_EMOTICON] = (i == EmojiType.EMOTICON);
|
| - var key = i18n.input.chrome.inputview.content.util.createKey(spec);
|
| - keyList.push(key);
|
| - amount++;
|
| - }
|
| - }
|
| - keyList.push(util.createBackspaceKey());
|
| - keyList.push(util.createEnterKey());
|
| - keyList.push(util.createHideKeyboardKey());
|
| -
|
| - var tabbarLength = 1 + keyCharacters.length;
|
| - var key = [];
|
| -
|
| - // Map the tabbars.
|
| - for (var i = 0, len = keyCharacters.length; i < len; i++) {
|
| - key = keyList[i];
|
| - mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + i;
|
| }
|
| + var tmp = util.createBackspaceKey();
|
| + keyList.push(tmp);
|
| + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
| + tmp = util.createEnterKey();
|
| + keyList.push(tmp);
|
| + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
| + // SideKeys layout has 3 keys but we only need 2 keys here, skip one key.
|
| + viewId++;
|
|
|
| - // Map the back key.
|
| - key = keyList[keyCharacters.length];
|
| - mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + tabbarLength;
|
| -
|
| - // Map the emoji keys.
|
| - amount = 0;
|
| - var offset = tabbarLength + 1;
|
| - for (var i = 0, len = keyCharacters.length; i < len; i++) {
|
| - acturalLength = Math.ceil(keyCharacters[i].length / emojiKeyAmount) *
|
| - emojiKeyAmount;
|
| - for (var j = 0, lenJ = acturalLength; j < lenJ; j++) {
|
| - key = keyList[amount + tabbarLength];
|
| - mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix + (amount +
|
| - offset);
|
| - amount++;
|
| - }
|
| - }
|
| -
|
| - // Map the side keys
|
| - for (var i = 0; i < 3; ++i) {
|
| - key = keyList[i + amount + tabbarLength];
|
| - mapping[key['spec'][SpecNodeName.ID]] = viewIdPrefix +
|
| - (i + amount + offset);
|
| - }
|
| + //The space row.
|
| + tmp = util.createBackToKeyboardKey();
|
| + keyList.push(tmp);
|
| + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
| + tmp = util.createSpaceKey();
|
| + keyList.push(tmp);
|
| + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
| + tmp = util.createHideKeyboardKey();
|
| + keyList.push(tmp);
|
| + mapping[tmp['spec'][SpecNodeName.ID]] = viewIdPrefix + viewId++;
|
|
|
| var result = [];
|
| - result[SpecNodeName.TEXT] = keyCharacters;
|
| + result[SpecNodeName.TEXT] = emojiGroups;
|
| result[SpecNodeName.KEY_LIST] = keyList;
|
| result[SpecNodeName.MAPPING] = mapping;
|
| result[SpecNodeName.LAYOUT] = 'emoji';
|
|
|