diff --git a/res/layout/user_dictionary_add_word_fullscreen.xml b/res/layout/user_dictionary_add_word_fullscreen.xml new file mode 100644 index 00000000000..9e2617b9860 --- /dev/null +++ b/res/layout/user_dictionary_add_word_fullscreen.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index b119f2abd08..92a3a9de899 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2664,6 +2664,8 @@ Add Add to dictionary + + Phrase More options diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java index 0b93a6a4685..756c592b42a 100644 --- a/src/com/android/settings/UserDictionarySettings.java +++ b/src/com/android/settings/UserDictionarySettings.java @@ -183,13 +183,17 @@ public class UserDictionarySettings extends ListFragment { * @param editingWord the word to edit, or null if it's an add. */ private void showAddOrEditDialog(final String editingWord) { - final Intent intent = new Intent(null == editingWord + final Bundle args = new Bundle(); + args.putString(UserDictionaryAddWordActivity.EXTRA_MODE, null == editingWord ? UserDictionaryAddWordActivity.MODE_INSERT_ACTION : UserDictionaryAddWordActivity.MODE_EDIT_ACTION); - // The following are fine if they are null - intent.putExtra(UserDictionaryAddWordActivity.EXTRA_WORD, editingWord); - intent.putExtra(UserDictionaryAddWordActivity.EXTRA_LOCALE, mLocale); - startActivity(intent); + args.putString(UserDictionaryAddWordActivity.EXTRA_WORD, editingWord); + args.putString(UserDictionaryAddWordActivity.EXTRA_LOCALE, mLocale); + android.preference.PreferenceActivity pa = + (android.preference.PreferenceActivity)getActivity(); + pa.startPreferencePanel( + com.android.settings.inputmethod.UserDictionaryAddWordFragment.class.getName(), + args, R.string.details_title, null, null, 0); } private String getWord(int position) { diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java index 13c226fcd42..b58f2582d4d 100644 --- a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java +++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java @@ -41,6 +41,7 @@ import android.widget.Spinner; public class UserDictionaryAddWordActivity extends Activity implements AdapterView.OnItemSelectedListener { + public static final String EXTRA_MODE = "mode"; public static final String EXTRA_WORD = "word"; public static final String EXTRA_LOCALE = "locale"; private static final int FREQUENCY_FOR_USER_DICTIONARY_ADDS = 250; diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java new file mode 100644 index 00000000000..9f3bad9f632 --- /dev/null +++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordFragment.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.settings.inputmethod; + +import android.app.Fragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; + +import com.android.settings.R; + +/** + * Fragment to add a word/shortcut to the user dictionary. + * + * As opposed to the UserDictionaryActivity, this is only invoked within Settings + * from the UserDictionarySettings. + */ +public class UserDictionaryAddWordFragment extends Fragment { + + private static final int OPTIONS_MENU_DELETE = Menu.FIRST; + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + setHasOptionsMenu(true); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedState) { + return inflater.inflate(R.layout.user_dictionary_add_word_fullscreen, null); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + MenuItem actionItem = menu.add(0, OPTIONS_MENU_DELETE, 0, R.string.delete) + .setIcon(android.R.drawable.ic_menu_delete); + actionItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | + MenuItem.SHOW_AS_ACTION_WITH_TEXT); + } + + @Override + public void onResume() { + super.onResume(); + // We are being shown: display the word + } + + @Override + public void onPause() { + super.onPause(); + // We are being hidden: commit changes to the user dictionary + } +}