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