Stop using modifiable Key array

Change-Id: I0f3e96672da4261ae5628d2d5ea39d60e6287ac0
main
Tadashi G. Takaoka 2014-04-21 13:52:00 -07:00
parent 121cbd77b6
commit 064af5c0fc
1 changed files with 7 additions and 5 deletions

View File

@ -25,6 +25,9 @@ import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.utils.CollectionUtils; import com.android.inputmethod.latin.utils.CollectionUtils;
import com.android.inputmethod.latin.utils.CoordinateUtils; import com.android.inputmethod.latin.utils.CoordinateUtils;
import java.util.Collections;
import java.util.List;
/** /**
* Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard * Loads an XML description of a keyboard and stores the attributes of the keys. A keyboard
* consists of rows of keys. * consists of rows of keys.
@ -76,8 +79,8 @@ public class Keyboard {
/** Array of keys and icons in this keyboard */ /** Array of keys and icons in this keyboard */
private final Key[] mKeys; private final Key[] mKeys;
public final Key[] mShiftKeys; public final List<Key> mShiftKeys;
public final Key[] mAltCodeKeysWhileTyping; public final List<Key> mAltCodeKeysWhileTyping;
public final KeyboardIconsSet mIconsSet; public final KeyboardIconsSet mIconsSet;
private final SparseArray<Key> mKeyCache = CollectionUtils.newSparseArray(); private final SparseArray<Key> mKeyCache = CollectionUtils.newSparseArray();
@ -101,9 +104,8 @@ public class Keyboard {
mVerticalGap = params.mVerticalGap; mVerticalGap = params.mVerticalGap;
mKeys = params.mKeys.toArray(new Key[params.mKeys.size()]); mKeys = params.mKeys.toArray(new Key[params.mKeys.size()]);
mShiftKeys = params.mShiftKeys.toArray(new Key[params.mShiftKeys.size()]); mShiftKeys = Collections.unmodifiableList(params.mShiftKeys);
mAltCodeKeysWhileTyping = params.mAltCodeKeysWhileTyping.toArray( mAltCodeKeysWhileTyping = Collections.unmodifiableList(params.mAltCodeKeysWhileTyping);
new Key[params.mAltCodeKeysWhileTyping.size()]);
mIconsSet = params.mIconsSet; mIconsSet = params.mIconsSet;
mProximityInfo = new ProximityInfo(params.mId.mLocale.toString(), mProximityInfo = new ProximityInfo(params.mId.mLocale.toString(),