AccountSetupNames.java revision 8978aac1977408b05e386ae846c30920c7faa0a6
1
2package com.android.email.activity.setup;
3
4import android.app.Activity;
5import android.content.Context;
6import android.content.Intent;
7import android.os.Bundle;
8import android.text.Editable;
9import android.text.TextWatcher;
10import android.text.method.TextKeyListener;
11import android.text.method.TextKeyListener.Capitalize;
12import android.view.View;
13import android.view.View.OnClickListener;
14import android.widget.Button;
15import android.widget.EditText;
16
17import com.android.email.Account;
18import com.android.email.Email;
19import com.android.email.Preferences;
20import com.android.email.R;
21import com.android.email.Utility;
22import com.android.email.activity.FolderMessageList;
23
24public class AccountSetupNames extends Activity implements OnClickListener {
25    private static final String EXTRA_ACCOUNT = "account";
26
27    private EditText mDescription;
28
29    private EditText mName;
30
31    private Account mAccount;
32
33    private Button mDoneButton;
34
35    public static void actionSetNames(Context context, Account account) {
36        Intent i = new Intent(context, AccountSetupNames.class);
37        i.putExtra(EXTRA_ACCOUNT, account);
38        context.startActivity(i);
39    }
40
41    @Override
42    public void onCreate(Bundle savedInstanceState) {
43        super.onCreate(savedInstanceState);
44        setContentView(R.layout.account_setup_names);
45        mDescription = (EditText)findViewById(R.id.account_description);
46        mName = (EditText)findViewById(R.id.account_name);
47        mDoneButton = (Button)findViewById(R.id.done);
48        mDoneButton.setOnClickListener(this);
49
50        TextWatcher validationTextWatcher = new TextWatcher() {
51            public void afterTextChanged(Editable s) {
52                validateFields();
53            }
54
55            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
56            }
57
58            public void onTextChanged(CharSequence s, int start, int before, int count) {
59            }
60        };
61        mName.addTextChangedListener(validationTextWatcher);
62
63        mName.setKeyListener(TextKeyListener.getInstance(false, Capitalize.WORDS));
64
65        mAccount = (Account)getIntent().getSerializableExtra(EXTRA_ACCOUNT);
66
67        /*
68         * Since this field is considered optional, we don't set this here. If
69         * the user fills in a value we'll reset the current value, otherwise we
70         * just leave the saved value alone.
71         */
72        // mDescription.setText(mAccount.getDescription());
73        if (mAccount.getName() != null) {
74            mName.setText(mAccount.getName());
75        }
76        if (!Utility.requiredFieldValid(mName)) {
77            mDoneButton.setEnabled(false);
78        }
79    }
80
81    private void validateFields() {
82        mDoneButton.setEnabled(Utility.requiredFieldValid(mName));
83        Utility.setCompoundDrawablesAlpha(mDoneButton, mDoneButton.isEnabled() ? 255 : 128);
84    }
85
86    private void onNext() {
87        if (Utility.requiredFieldValid(mDescription)) {
88            mAccount.setDescription(mDescription.getText().toString());
89        }
90        mAccount.setName(mName.getText().toString());
91        mAccount.save(Preferences.getPreferences(this));
92        FolderMessageList.actionHandleAccount(this, mAccount, Email.INBOX);
93        finish();
94    }
95
96    public void onClick(View v) {
97        switch (v.getId()) {
98            case R.id.done:
99                onNext();
100                break;
101        }
102    }
103}
104