AccountSetupOptions.java revision ea6fea9bb22368c10083d5dce52adae86e51a243
196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/* 296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * you may not use this file except in compliance with the License. 696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * You may obtain a copy of the License at 796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 1096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 1196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 1296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * See the License for the specific language governing permissions and 1496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * limitations under the License. 1596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 1696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpackage com.android.email.activity.setup; 1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 192b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadlerimport com.android.email.Account; 202b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadlerimport com.android.email.Email; 212b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadlerimport com.android.email.Preferences; 222b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadlerimport com.android.email.R; 23ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadlerimport com.android.email.mail.Store; 242b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadler 2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.app.Activity; 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.content.Intent; 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.os.Bundle; 2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.view.View; 2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.view.View.OnClickListener; 3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.widget.ArrayAdapter; 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.widget.CheckBox; 3296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.widget.Spinner; 3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpublic class AccountSetupOptions extends Activity implements OnClickListener { 3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private static final String EXTRA_ACCOUNT = "account"; 3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 3796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private static final String EXTRA_MAKE_DEFAULT = "makeDefault"; 3896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 3996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private Spinner mCheckFrequencyView; 4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private CheckBox mDefaultView; 4296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private CheckBox mNotifyView; 4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private Account mAccount; 4696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 472b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadler public static void actionOptions(Activity fromActivity, Account account, boolean makeDefault) { 482b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadler Intent i = new Intent(fromActivity, AccountSetupOptions.class); 4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project i.putExtra(EXTRA_ACCOUNT, account); 5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project i.putExtra(EXTRA_MAKE_DEFAULT, makeDefault); 512b0c619f1edd9fd89dc06bf35d99ece91f415f1eAndy Stadler fromActivity.startActivity(i); 5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 5496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project @Override 5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void onCreate(Bundle savedInstanceState) { 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project super.onCreate(savedInstanceState); 5796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project setContentView(R.layout.account_setup_options); 5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mCheckFrequencyView = (Spinner)findViewById(R.id.account_check_frequency); 6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mDefaultView = (CheckBox)findViewById(R.id.account_default); 6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mNotifyView = (CheckBox)findViewById(R.id.account_notify); 6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project findViewById(R.id.next).setOnClickListener(this); 6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 65ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler mAccount = (Account)getIntent().getSerializableExtra(EXTRA_ACCOUNT); 66ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler boolean makeDefault = getIntent().getBooleanExtra(EXTRA_MAKE_DEFAULT, false); 67ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler 68ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler // Generate spinner entries using XML arrays used by the preferences 69ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler int frequencyValuesId; 70ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler int frequencyEntriesId; 71ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler Store.StoreInfo info = Store.StoreInfo.getStoreInfo(mAccount.getStoreUri(), this); 72ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler if (info.mPushSupported) { 73ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler frequencyValuesId = R.array.account_settings_check_frequency_values_push; 74ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler frequencyEntriesId = R.array.account_settings_check_frequency_entries_push; 75ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler } else { 76ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler frequencyValuesId = R.array.account_settings_check_frequency_values; 77ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler frequencyEntriesId = R.array.account_settings_check_frequency_entries; 78ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler } 79ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler CharSequence[] frequencyValues = getResources().getTextArray(frequencyValuesId); 80ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler CharSequence[] frequencyEntries = getResources().getTextArray(frequencyEntriesId); 81ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler 82ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler // Now create the array used by the Spinner 83ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler SpinnerOption[] checkFrequencies = new SpinnerOption[frequencyEntries.length]; 84ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler for (int i = 0; i < frequencyEntries.length; i++) { 85ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler checkFrequencies[i] = new SpinnerOption( 86ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler Integer.valueOf(frequencyValues[i].toString()), frequencyEntries[i].toString()); 87ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler } 8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project ArrayAdapter<SpinnerOption> checkFrequenciesAdapter = new ArrayAdapter<SpinnerOption>(this, 9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project android.R.layout.simple_spinner_item, checkFrequencies); 9196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project checkFrequenciesAdapter 9296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 9396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mCheckFrequencyView.setAdapter(checkFrequenciesAdapter); 9496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 9596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (mAccount.equals(Preferences.getPreferences(this).getDefaultAccount()) || makeDefault) { 9696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mDefaultView.setChecked(true); 9796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 9896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mNotifyView.setChecked(mAccount.isNotifyNewMail()); 9996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project SpinnerOption.setSpinnerOptionValue(mCheckFrequencyView, mAccount 10096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project .getAutomaticCheckIntervalMinutes()); 10196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 10296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 10396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project private void onDone() { 10496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAccount.setDescription(mAccount.getEmail()); 10596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAccount.setNotifyNewMail(mNotifyView.isChecked()); 10696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAccount.setAutomaticCheckIntervalMinutes((Integer)((SpinnerOption)mCheckFrequencyView 10796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project .getSelectedItem()).value); 10896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAccount.save(Preferences.getPreferences(this)); 10996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (mDefaultView.isChecked()) { 11096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Preferences.getPreferences(this).setDefaultAccount(mAccount); 11196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Email.setServicesEnabled(this); 11396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project AccountSetupNames.actionSetNames(this, mAccount); 11496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project finish(); 11596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 11796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void onClick(View v) { 11896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project switch (v.getId()) { 11996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project case R.id.next: 12096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project onDone(); 12196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project break; 12296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 12396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 12496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 125