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