1bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard/* 2bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * Copyright (C) 2011 The Android Open Source Project 3bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * 4bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * Licensed under the Apache License, Version 2.0 (the "License"); 5bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * you may not use this file except in compliance with the License. 6bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * You may obtain a copy of the License at 7bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * 8bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * http://www.apache.org/licenses/LICENSE-2.0 9bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * 10bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * Unless required by applicable law or agreed to in writing, software 11bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * distributed under the License is distributed on an "AS IS" BASIS, 12bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * See the License for the specific language governing permissions and 14bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard * limitations under the License. 15bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard */ 16bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard 17bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalardpackage com.android.settings.inputmethod; 18bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard 19bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalardimport com.android.settings.R; 206b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard 21bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalardimport android.app.Activity; 22e17eefab87794b30bf969ba132910e3a3ba981acJean Chalardimport android.content.Intent; 23bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalardimport android.os.Bundle; 240824d31aeaf185801b6fb3ec063a5149c78d6a49Jean Chalardimport android.view.View; 25bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard 26a0868ffd5ddcb1fa23c5b6e4b1043e40611bbd34Jean Chalardpublic class UserDictionaryAddWordActivity extends Activity { 276b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard 28124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard private static final String STATE_KEY_IS_OPEN = "isOpen"; 29124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard 306b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard public static final String MODE_EDIT_ACTION = "com.android.settings.USER_DICTIONARY_EDIT"; 316b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard public static final String MODE_INSERT_ACTION = "com.android.settings.USER_DICTIONARY_INSERT"; 32e17eefab87794b30bf969ba132910e3a3ba981acJean Chalard 33be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard private UserDictionaryAddWordContents mContents; 34e17eefab87794b30bf969ba132910e3a3ba981acJean Chalard 35bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard @Override 36bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard public void onCreate(final Bundle savedInstanceState) { 37bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard super.onCreate(savedInstanceState); 38e17eefab87794b30bf969ba132910e3a3ba981acJean Chalard setContentView(R.layout.user_dictionary_add_word); 39e17eefab87794b30bf969ba132910e3a3ba981acJean Chalard final Intent intent = getIntent(); 406b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard final String action = intent.getAction(); 41be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard final int mode; 426b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard if (MODE_EDIT_ACTION.equals(action)) { 43be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard mode = UserDictionaryAddWordContents.MODE_EDIT; 446b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard } else if (MODE_INSERT_ACTION.equals(action)) { 45be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard mode = UserDictionaryAddWordContents.MODE_INSERT; 466b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard } else { 476b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard // Can never come here because we only support these two actions in the manifest 486b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard throw new RuntimeException("Unsupported action: " + action); 496b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard } 50124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard 51be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard // The following will get the EXTRA_WORD and EXTRA_LOCALE fields that are in the intent. 52be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard // We do need to add the action by hand, because UserDictionaryAddWordContents expects 53be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard // it to be in the bundle, in the EXTRA_MODE key. 54be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard final Bundle args = intent.getExtras(); 55be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard args.putInt(UserDictionaryAddWordContents.EXTRA_MODE, mode); 56be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard 57124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard if (null != savedInstanceState) { 58be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard // Override options if we have a saved state. 59be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard args.putAll(savedInstanceState); 60124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard } 61124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard 62be3f0faf526d628b578b1af6d975c19cfdf8637bJean Chalard mContents = new UserDictionaryAddWordContents(getWindow().getDecorView(), args); 63bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard } 640824d31aeaf185801b6fb3ec063a5149c78d6a49Jean Chalard 65124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard @Override 66124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard public void onSaveInstanceState(final Bundle outState) { 675642fdbf43f06f3773076e3390a6bef120adfc80Jean Chalard mContents.saveStateIntoBundle(outState); 68124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard } 69124283e83bdbaa83e01f31ff147c0ead9ce3cc90Jean Chalard 700824d31aeaf185801b6fb3ec063a5149c78d6a49Jean Chalard public void onClickCancel(final View v) { 710824d31aeaf185801b6fb3ec063a5149c78d6a49Jean Chalard finish(); 720824d31aeaf185801b6fb3ec063a5149c78d6a49Jean Chalard } 736b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard 746b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard public void onClickConfirm(final View v) { 75fbffd0c98203c63af85a3fc6d85660b21c211bfeJean Chalard mContents.apply(this); 766b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard finish(); 776b8e6585c672dfee5b69d3b5b2f1c030acf95a22Jean Chalard } 78bd44e9d399f25bc9136d9121d4c5b65daa7eeeccJean Chalard} 79