AccountSetupOptions.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.view.View;
9import android.view.View.OnClickListener;
10import android.widget.ArrayAdapter;
11import android.widget.CheckBox;
12import android.widget.Spinner;
13
14import com.android.email.Account;
15import com.android.email.Email;
16import com.android.email.Preferences;
17import com.android.email.R;
18
19public class AccountSetupOptions extends Activity implements OnClickListener {
20    private static final String EXTRA_ACCOUNT = "account";
21
22    private static final String EXTRA_MAKE_DEFAULT = "makeDefault";
23
24    private Spinner mCheckFrequencyView;
25
26    private CheckBox mDefaultView;
27
28    private CheckBox mNotifyView;
29
30    private Account mAccount;
31
32    public static void actionOptions(Context context, Account account, boolean makeDefault) {
33        Intent i = new Intent(context, AccountSetupOptions.class);
34        i.putExtra(EXTRA_ACCOUNT, account);
35        i.putExtra(EXTRA_MAKE_DEFAULT, makeDefault);
36        context.startActivity(i);
37    }
38
39    @Override
40    public void onCreate(Bundle savedInstanceState) {
41        super.onCreate(savedInstanceState);
42        setContentView(R.layout.account_setup_options);
43
44        mCheckFrequencyView = (Spinner)findViewById(R.id.account_check_frequency);
45        mDefaultView = (CheckBox)findViewById(R.id.account_default);
46        mNotifyView = (CheckBox)findViewById(R.id.account_notify);
47
48        findViewById(R.id.next).setOnClickListener(this);
49
50        SpinnerOption checkFrequencies[] = {
51                new SpinnerOption(-1,
52                        getString(R.string.account_setup_options_mail_check_frequency_never)),
53                new SpinnerOption(5,
54                        getString(R.string.account_setup_options_mail_check_frequency_5min)),
55                new SpinnerOption(10,
56                        getString(R.string.account_setup_options_mail_check_frequency_10min)),
57                new SpinnerOption(15,
58                        getString(R.string.account_setup_options_mail_check_frequency_15min)),
59                new SpinnerOption(30,
60                        getString(R.string.account_setup_options_mail_check_frequency_30min)),
61                new SpinnerOption(60,
62                        getString(R.string.account_setup_options_mail_check_frequency_1hour)),
63        };
64
65        ArrayAdapter<SpinnerOption> checkFrequenciesAdapter = new ArrayAdapter<SpinnerOption>(this,
66                android.R.layout.simple_spinner_item, checkFrequencies);
67        checkFrequenciesAdapter
68                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
69        mCheckFrequencyView.setAdapter(checkFrequenciesAdapter);
70
71        mAccount = (Account)getIntent().getSerializableExtra(EXTRA_ACCOUNT);
72        boolean makeDefault = getIntent().getBooleanExtra(EXTRA_MAKE_DEFAULT, false);
73
74        if (mAccount.equals(Preferences.getPreferences(this).getDefaultAccount()) || makeDefault) {
75            mDefaultView.setChecked(true);
76        }
77        mNotifyView.setChecked(mAccount.isNotifyNewMail());
78        SpinnerOption.setSpinnerOptionValue(mCheckFrequencyView, mAccount
79                .getAutomaticCheckIntervalMinutes());
80    }
81
82    private void onDone() {
83        mAccount.setDescription(mAccount.getEmail());
84        mAccount.setNotifyNewMail(mNotifyView.isChecked());
85        mAccount.setAutomaticCheckIntervalMinutes((Integer)((SpinnerOption)mCheckFrequencyView
86                .getSelectedItem()).value);
87        mAccount.save(Preferences.getPreferences(this));
88        if (mDefaultView.isChecked()) {
89            Preferences.getPreferences(this).setDefaultAccount(mAccount);
90        }
91        Email.setServicesEnabled(this);
92        AccountSetupNames.actionSetNames(this, mAccount);
93        finish();
94    }
95
96    public void onClick(View v) {
97        switch (v.getId()) {
98            case R.id.next:
99                onDone();
100                break;
101        }
102    }
103}
104