diff options
author | 2013-07-25 16:33:13 +0900 | |
---|---|---|
committer | 2013-07-25 16:33:13 +0900 | |
commit | 23a3fd5bfacc54fd3841bb080460c91be4006051 (patch) | |
tree | abc2ffbbb5b6a75368bd2739f01e05203afef1b7 /java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java | |
parent | 289df0ecadb5b6320d8e1f484bf9decc1b726e53 (diff) | |
download | latinime-23a3fd5bfacc54fd3841bb080460c91be4006051.tar.gz latinime-23a3fd5bfacc54fd3841bb080460c91be4006051.tar.xz latinime-23a3fd5bfacc54fd3841bb080460c91be4006051.zip |
Fix a bug with multiple word insertion.
This is a port of I5202bc52
Bug: 7903831
Change-Id: I3eb526de01a1f5b51212166e39b98de1d71e9eaf
Diffstat (limited to 'java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java index 58c8f266c..8b8bd5e03 100644 --- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java +++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordFragment.java @@ -57,23 +57,36 @@ public class UserDictionaryAddWordFragment extends Fragment private boolean mIsDeleting = false; @Override - public void onActivityCreated(Bundle savedInstanceState) { + public void onActivityCreated(final Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setHasOptionsMenu(true); + // Keep the instance so that we remember mContents when configuration changes (eg rotation) + setRetainInstance(true); } @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) { + public View onCreateView(final LayoutInflater inflater, final ViewGroup container, + final Bundle savedState) { mRootView = inflater.inflate(R.layout.user_dictionary_add_word_fullscreen, null); mIsDeleting = false; + // If we have a non-null mContents object, it's the old value before a configuration + // change (eg rotation) so we need to use its values. Otherwise, read from the arguments. if (null == mContents) { mContents = new UserDictionaryAddWordContents(mRootView, getArguments()); + } else { + // We create a new mContents object to account for the new situation : a word has + // been added to the user dictionary when we started rotating, and we are now editing + // it. That means in particular if the word undergoes any change, the old version should + // be updated, so the mContents object needs to switch to EDIT mode if it was in + // INSERT mode. + mContents = new UserDictionaryAddWordContents(mRootView, + mContents /* oldInstanceToBeEdited */); } return mRootView; } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { final MenuItem actionItemAdd = menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title).setIcon(R.drawable.ic_menu_add); actionItemAdd.setShowAsAction( |