diff options
| author | Tadashi G. Takaoka <takaoka@google.com> | 2014-04-21 14:13:51 -0700 |
|---|---|---|
| committer | Tadashi G. Takaoka <takaoka@google.com> | 2014-04-21 14:31:27 -0700 |
| commit | 5326dcfb7dbdc1a3fc9cfb94046805f18bf3d3d7 (patch) | |
| tree | 741b090d416e15c7d3164f05982be4937884b029 /java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java | |
| parent | 58d4e610ac705fbfb49d8ec8d893a35ac416668e (diff) | |
Use unmodifiable list to return keys from Keyboard
Change-Id: I85a0b18d2d78632e9a9f074eda1de9225001f876
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java')
| -rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java b/java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java index ac7df30d5..dd5ec1def 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/internal/DynamicGridKeyboard.java @@ -31,6 +31,7 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.List; /** @@ -51,7 +52,7 @@ public class DynamicGridKeyboard extends Keyboard { private final ArrayDeque<GridKey> mGridKeys = CollectionUtils.newArrayDeque(); private final ArrayDeque<Key> mPendingKeys = CollectionUtils.newArrayDeque(); - private Key[] mCachedGridKeys; + private List<Key> mCachedGridKeys; public DynamicGridKeyboard(final SharedPreferences prefs, final Keyboard templateKeyboard, final int maxKeyCount, final int categoryId) { @@ -206,12 +207,14 @@ public class DynamicGridKeyboard extends Keyboard { } @Override - public Key[] getKeys() { + public List<Key> getKeys() { synchronized (mLock) { if (mCachedGridKeys != null) { return mCachedGridKeys; } - mCachedGridKeys = mGridKeys.toArray(new Key[mGridKeys.size()]); + final ArrayList<Key> cachedKeys = CollectionUtils.newArrayList(mGridKeys.size()); + cachedKeys.addAll(mGridKeys); + mCachedGridKeys = Collections.unmodifiableList(cachedKeys); return mCachedGridKeys; } } @@ -219,7 +222,7 @@ public class DynamicGridKeyboard extends Keyboard { @Override public List<Key> getNearestKeys(final int x, final int y) { // TODO: Calculate the nearest key index in mGridKeys from x and y. - return Arrays.asList(getKeys()); + return getKeys(); } static final class GridKey extends Key { |
