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; 1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 1996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport com.android.email.mail.Store; 2096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.content.Context; 2296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.content.SharedPreferences; 2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport android.net.Uri; 2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.Arrays; 2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectimport java.util.UUID; 2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/** 2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Account stores all of the settings for a single account defined by the user. It is able to save 3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * and delete itself given a Preferences to work with. Each account is defined by a UUID. 3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 325e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadlerpublic class Account { 3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final int DELETE_POLICY_NEVER = 0; 3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final int DELETE_POLICY_7DAYS = 1; 3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public static final int DELETE_POLICY_ON_DELETE = 2; 3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 37ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler public static final int CHECK_INTERVAL_NEVER = -1; 38ea6fea9bb22368c10083d5dce52adae86e51a243Andy Stadler public static final int CHECK_INTERVAL_PUSH = -2; 399197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler 409197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_USER = -1; 419197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_1_DAY = 1; 429197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_3_DAYS = 2; 439197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_1_WEEK = 3; 449197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_2_WEEKS = 4; 459197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_1_MONTH = 5; 469197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public static final int SYNC_WINDOW_ALL = 6; 47cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler 485e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler // These flags will never be seen in a "real" (legacy) account 495e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler public static final int BACKUP_FLAGS_IS_BACKUP = 1; 505e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler public static final int BACKUP_FLAGS_SYNC_CONTACTS = 2; 515e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler public static final int BACKUP_FLAGS_IS_DEFAULT = 4; 52f3fcb8929e3690bc092aec0d4d643b346f079acdMarc Blank public static final int BACKUP_FLAGS_SYNC_CALENDAR = 8; 535e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler 54cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler // transient values - do not serialize 55cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler private transient Preferences mPreferences; 5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 57cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler // serialized values 5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mUuid; 5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mStoreUri; 6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mLocalStoreUri; 6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mSenderUri; 6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mDescription; 6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mName; 6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mEmail; 6596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int mAutomaticCheckIntervalMinutes; 6696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project long mLastAutomaticCheckTime; 6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project boolean mNotifyNewMail; 6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mDraftsFolderName; 6996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mSentFolderName; 7096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mTrashFolderName; 7196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mOutboxFolderName; 7296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int mAccountNumber; 739e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma boolean mVibrate; // true: Always vibrate. false: Only when mVibrateWhenSilent. 749e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma boolean mVibrateWhenSilent; // true: Vibrate even if !mVibrate. False: Require mVibrate. 7596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project String mRingtoneUri; 769197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler int mSyncWindow; 775e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler int mBackupFlags; // for account backups only 785e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler String mProtocolVersion; // for account backups only 79fc8d943a828cd79ff71c703ced37001bd5482173Andrew Stadler int mSecurityFlags; // for account backups only 80345fb8b737c1632fb2a7e69ac44b8612be6237edAndrew Stadler String mSignature; // for account backups only 8196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 8296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 8396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * <pre> 8496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 0 Never 8596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 1 After 7 days 8696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * 2 When I delete from inbox 8796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * </pre> 8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project int mDeletePolicy; 9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 919197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler /** 929197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler * All new fields should have named keys 939197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler */ 94550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_SYNC_WINDOW = ".syncWindow"; 95550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_BACKUP_FLAGS = ".backupFlags"; 96550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_PROTOCOL_VERSION = ".protocolVersion"; 97550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_SECURITY_FLAGS = ".securityFlags"; 98550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_SIGNATURE = ".signature"; 99550aa6163fdb9681d6adee018a313d5f82629b34Makoto Onuki private static final String KEY_VIBRATE_WHEN_SILENT = ".vibrateWhenSilent"; 1009197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler 10196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public Account(Context context) { 10296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project // TODO Change local store path to something readable / recognizable 10396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mUuid = UUID.randomUUID().toString(); 10496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mLocalStoreUri = "local://localhost/" + context.getDatabasePath(mUuid + ".db"); 10596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAutomaticCheckIntervalMinutes = -1; 10696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mAccountNumber = -1; 10796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mNotifyNewMail = true; 10896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mVibrate = false; 1099e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma mVibrateWhenSilent = false; 11096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mRingtoneUri = "content://settings/system/notification_sound"; 1119197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler mSyncWindow = SYNC_WINDOW_USER; // IMAP & POP3 1125e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler mBackupFlags = 0; 1135e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler mProtocolVersion = null; 114fc8d943a828cd79ff71c703ced37001bd5482173Andrew Stadler mSecurityFlags = 0; 115345fb8b737c1632fb2a7e69ac44b8612be6237edAndrew Stadler mSignature = null; 11696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 11796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 11896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project Account(Preferences preferences, String uuid) { 11996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mUuid = uuid; 12096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project refresh(preferences); 12196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 12296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 12396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 12496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Refresh the account from the stored settings. 12596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 12696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void refresh(Preferences preferences) { 127cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler mPreferences = preferences; 1285293030ba0433c06ba3af371b809ab8586d775b4Andy Stadler 129c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mStoreUri = Utility.base64Decode(preferences.mSharedPreferences.getString(mUuid 130c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler + ".storeUri", null)); 131c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mLocalStoreUri = preferences.mSharedPreferences.getString(mUuid + ".localStoreUri", null); 132c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 133c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler String senderText = preferences.mSharedPreferences.getString(mUuid + ".senderUri", null); 134c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (senderText == null) { 135c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // Preference ".senderUri" was called ".transportUri" in earlier versions, so we'll 136c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // do a simple upgrade here when necessary. 137c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler senderText = preferences.mSharedPreferences.getString(mUuid + ".transportUri", null); 138c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler } 139c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mSenderUri = Utility.base64Decode(senderText); 140c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 141c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mDescription = preferences.mSharedPreferences.getString(mUuid + ".description", null); 142c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mName = preferences.mSharedPreferences.getString(mUuid + ".name", mName); 143c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mEmail = preferences.mSharedPreferences.getString(mUuid + ".email", mEmail); 144c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mAutomaticCheckIntervalMinutes = preferences.mSharedPreferences.getInt(mUuid 145c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler + ".automaticCheckIntervalMinutes", -1); 146c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mLastAutomaticCheckTime = preferences.mSharedPreferences.getLong(mUuid 147c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler + ".lastAutomaticCheckTime", 0); 148c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mNotifyNewMail = preferences.mSharedPreferences.getBoolean(mUuid + ".notifyNewMail", 149c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler false); 150c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 151c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // delete policy was incorrectly set on earlier versions, so we'll upgrade it here. 152c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // rule: if IMAP account and policy = 0 ("never"), change policy to 2 ("on delete") 153c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mDeletePolicy = preferences.mSharedPreferences.getInt(mUuid + ".deletePolicy", 0); 154c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (mDeletePolicy == DELETE_POLICY_NEVER && 155c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mStoreUri != null && mStoreUri.toString().startsWith(Store.STORE_SCHEME_IMAP)) { 156c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mDeletePolicy = DELETE_POLICY_ON_DELETE; 15796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 158c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 159c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mDraftsFolderName = preferences.mSharedPreferences.getString(mUuid + ".draftsFolderName", 160c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler "Drafts"); 161c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mSentFolderName = preferences.mSharedPreferences.getString(mUuid + ".sentFolderName", 162c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler "Sent"); 163c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mTrashFolderName = preferences.mSharedPreferences.getString(mUuid + ".trashFolderName", 164c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler "Trash"); 165c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mOutboxFolderName = preferences.mSharedPreferences.getString(mUuid + ".outboxFolderName", 166c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler "Outbox"); 167c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mAccountNumber = preferences.mSharedPreferences.getInt(mUuid + ".accountNumber", 0); 168c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mVibrate = preferences.mSharedPreferences.getBoolean(mUuid + ".vibrate", false); 1699e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma mVibrateWhenSilent = preferences.mSharedPreferences.getBoolean(mUuid + 1709e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma KEY_VIBRATE_WHEN_SILENT, false); 171c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mRingtoneUri = preferences.mSharedPreferences.getString(mUuid + ".ringtone", 172c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler "content://settings/system/notification_sound"); 173c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 174c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mSyncWindow = preferences.mSharedPreferences.getInt(mUuid + KEY_SYNC_WINDOW, 175c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler SYNC_WINDOW_USER); 1765e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler 1775e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler mBackupFlags = preferences.mSharedPreferences.getInt(mUuid + KEY_BACKUP_FLAGS, 0); 1785e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler mProtocolVersion = preferences.mSharedPreferences.getString(mUuid + KEY_PROTOCOL_VERSION, 1795e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler null); 180fc8d943a828cd79ff71c703ced37001bd5482173Andrew Stadler mSecurityFlags = preferences.mSharedPreferences.getInt(mUuid + KEY_SECURITY_FLAGS, 0); 181345fb8b737c1632fb2a7e69ac44b8612be6237edAndrew Stadler mSignature = preferences.mSharedPreferences.getString(mUuid + KEY_SIGNATURE, null); 18296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 18496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getUuid() { 18596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mUuid; 18696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 18796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 18896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getStoreUri() { 18996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mStoreUri; 19096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 19196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 19296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setStoreUri(String storeUri) { 19396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mStoreUri = storeUri; 19496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 19596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 19696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getSenderUri() { 19796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mSenderUri; 19896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 19996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 20096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setSenderUri(String senderUri) { 20196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mSenderUri = senderUri; 20296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 20396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 20496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getDescription() { 20596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mDescription; 20696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 20796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 20896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setDescription(String description) { 20996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mDescription = description; 21096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 21196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 21296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getName() { 21396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mName; 21496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 21596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 21696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setName(String name) { 21796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mName = name; 21896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 21996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 22096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getEmail() { 22196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mEmail; 22296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 22396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 22496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setEmail(String email) { 22596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mEmail = email; 22696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 22796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 22896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public boolean isVibrate() { 22996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mVibrate; 23096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 23196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 23296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setVibrate(boolean vibrate) { 23396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mVibrate = vibrate; 23496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 23596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 2369e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma public boolean isVibrateWhenSilent() { 2379e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma return mVibrateWhenSilent; 2389e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma } 2399e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma 2409e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma public void setVibrateWhenSilent(boolean vibrateWhenSilent) { 2419e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma mVibrateWhenSilent = vibrateWhenSilent; 2429e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma } 2439e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma 24496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getRingtone() { 24596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mRingtoneUri; 24696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 24796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 24896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setRingtone(String ringtoneUri) { 24996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mRingtoneUri = ringtoneUri; 25096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 25196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 25296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void delete(Preferences preferences) { 253c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler String[] uuids = preferences.mSharedPreferences.getString("accountUuids", "").split(","); 254c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler StringBuffer sb = new StringBuffer(); 255c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler for (int i = 0, length = uuids.length; i < length; i++) { 256c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (!uuids[i].equals(mUuid)) { 257c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (sb.length() > 0) { 258c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler sb.append(','); 25996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 260c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler sb.append(uuids[i]); 26196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 26296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 263c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler String accountUuids = sb.toString(); 264c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler SharedPreferences.Editor editor = preferences.mSharedPreferences.edit(); 265c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString("accountUuids", accountUuids); 266c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 267c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".storeUri"); 268c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".localStoreUri"); 269c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".senderUri"); 270c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".description"); 271c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".name"); 272c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".email"); 273c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".automaticCheckIntervalMinutes"); 274c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".lastAutomaticCheckTime"); 275c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".notifyNewMail"); 276c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".deletePolicy"); 277c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".draftsFolderName"); 278c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".sentFolderName"); 279c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".trashFolderName"); 280c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".outboxFolderName"); 281c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".accountNumber"); 282c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".vibrate"); 2839e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma editor.remove(mUuid + KEY_VIBRATE_WHEN_SILENT); 284c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".ringtone"); 285c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + KEY_SYNC_WINDOW); 2865e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler editor.remove(mUuid + KEY_BACKUP_FLAGS); 2875e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler editor.remove(mUuid + KEY_PROTOCOL_VERSION); 288fc8d943a828cd79ff71c703ced37001bd5482173Andrew Stadler editor.remove(mUuid + KEY_SECURITY_FLAGS); 289345fb8b737c1632fb2a7e69ac44b8612be6237edAndrew Stadler editor.remove(mUuid + KEY_SIGNATURE); 290c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 291c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // also delete any deprecated fields 292c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".transportUri"); 293c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 294c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.commit(); 29596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 29696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 29796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void save(Preferences preferences) { 298cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler mPreferences = preferences; 299cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler 300c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (!preferences.mSharedPreferences.getString("accountUuids", "").contains(mUuid)) { 301c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler /* 302c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * When the account is first created we assign it a unique account number. The 303c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * account number will be unique to that account for the lifetime of the account. 304c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * So, we get all the existing account numbers, sort them ascending, loop through 305c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * the list and check if the number is greater than 1 + the previous number. If so 306c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * we use the previous number + 1 as the account number. This refills gaps. 307c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * mAccountNumber starts as -1 on a newly created account. It must be -1 for this 308c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * algorithm to work. 309c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * 310c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler * I bet there is a much smarter way to do this. Anyone like to suggest it? 311c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler */ 312c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler Account[] accounts = preferences.getAccounts(); 313c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler int[] accountNumbers = new int[accounts.length]; 314c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler for (int i = 0; i < accounts.length; i++) { 315c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler accountNumbers[i] = accounts[i].getAccountNumber(); 316c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler } 317c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler Arrays.sort(accountNumbers); 318c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler for (int accountNumber : accountNumbers) { 319c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler if (accountNumber > mAccountNumber + 1) { 320c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler break; 32196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 322c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mAccountNumber = accountNumber; 32396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 324c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler mAccountNumber++; 325c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 326c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler String accountUuids = preferences.mSharedPreferences.getString("accountUuids", ""); 327c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler accountUuids += (accountUuids.length() != 0 ? "," : "") + mUuid; 3285293030ba0433c06ba3af371b809ab8586d775b4Andy Stadler SharedPreferences.Editor editor = preferences.mSharedPreferences.edit(); 329c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString("accountUuids", accountUuids); 3305293030ba0433c06ba3af371b809ab8586d775b4Andy Stadler editor.commit(); 3315293030ba0433c06ba3af371b809ab8586d775b4Andy Stadler } 332c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 333c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler SharedPreferences.Editor editor = preferences.mSharedPreferences.edit(); 334c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 335c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".storeUri", Utility.base64Encode(mStoreUri)); 336c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".localStoreUri", mLocalStoreUri); 337c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".senderUri", Utility.base64Encode(mSenderUri)); 338c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".description", mDescription); 339c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".name", mName); 340c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".email", mEmail); 341c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putInt(mUuid + ".automaticCheckIntervalMinutes", mAutomaticCheckIntervalMinutes); 342c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putLong(mUuid + ".lastAutomaticCheckTime", mLastAutomaticCheckTime); 343c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putBoolean(mUuid + ".notifyNewMail", mNotifyNewMail); 344c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putInt(mUuid + ".deletePolicy", mDeletePolicy); 345c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".draftsFolderName", mDraftsFolderName); 346c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".sentFolderName", mSentFolderName); 347c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".trashFolderName", mTrashFolderName); 348c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".outboxFolderName", mOutboxFolderName); 349c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putInt(mUuid + ".accountNumber", mAccountNumber); 350c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putBoolean(mUuid + ".vibrate", mVibrate); 3519e2ddca59d048fc9ac55278b193ee36b330a7981Jim Shuma editor.putBoolean(mUuid + KEY_VIBRATE_WHEN_SILENT, mVibrateWhenSilent); 352c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putString(mUuid + ".ringtone", mRingtoneUri); 353c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.putInt(mUuid + KEY_SYNC_WINDOW, mSyncWindow); 3545e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler editor.putInt(mUuid + KEY_BACKUP_FLAGS, mBackupFlags); 3555e91cccd4b530eb2aeace5c5bf4f3328a5b5d69dAndrew Stadler editor.putString(mUuid + KEY_PROTOCOL_VERSION, mProtocolVersion); 356fc8d943a828cd79ff71c703ced37001bd5482173Andrew Stadler editor.putInt(mUuid + KEY_SECURITY_FLAGS, mSecurityFlags); 357345fb8b737c1632fb2a7e69ac44b8612be6237edAndrew Stadler editor.putString(mUuid + KEY_SIGNATURE, mSignature); 358c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 359c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // The following fields are *not* written because they need to be more fine-grained 360c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // and not risk rewriting with old data. 361c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // editor.putString(mUuid + PREF_TAG_STORE_PERSISTENT, mStorePersistent); 362c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 363c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler // also delete any deprecated fields 364c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.remove(mUuid + ".transportUri"); 365c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler 366c2887cd81de8867092136e69a19c1e771a35a66aAndy Stadler editor.commit(); 36796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 36896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 369cd7e5664f9de81dbe3ba8e57941ca6aa6c1dc3d7Andy Stadler @Override 37096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String toString() { 37196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mDescription; 37296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 37396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 37496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public Uri getContentUri() { 37596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return Uri.parse("content://accounts/" + getUuid()); 37696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 37796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 37896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getLocalStoreUri() { 37996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mLocalStoreUri; 38096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 38196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 38296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setLocalStoreUri(String localStoreUri) { 38396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mLocalStoreUri = localStoreUri; 38496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 38596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 38696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 38796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Returns -1 for never. 38896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 38996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public int getAutomaticCheckIntervalMinutes() { 39096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mAutomaticCheckIntervalMinutes; 39196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 39296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 39396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project /** 39496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * @param automaticCheckIntervalMinutes or -1 for never. 39596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */ 39696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setAutomaticCheckIntervalMinutes(int automaticCheckIntervalMinutes) { 39796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mAutomaticCheckIntervalMinutes = automaticCheckIntervalMinutes; 39896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 39996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 40096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public long getLastAutomaticCheckTime() { 40196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mLastAutomaticCheckTime; 40296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 40396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 40496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setLastAutomaticCheckTime(long lastAutomaticCheckTime) { 40596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mLastAutomaticCheckTime = lastAutomaticCheckTime; 40696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 40796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 40896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public boolean isNotifyNewMail() { 40996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mNotifyNewMail; 41096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 41196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 41296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setNotifyNewMail(boolean notifyNewMail) { 41396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mNotifyNewMail = notifyNewMail; 41496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 41596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 41696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public int getDeletePolicy() { 41796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mDeletePolicy; 41896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 41996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 42096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setDeletePolicy(int deletePolicy) { 42196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project this.mDeletePolicy = deletePolicy; 42296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 42396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 42496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getDraftsFolderName() { 42596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mDraftsFolderName; 42696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 42796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 42896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setDraftsFolderName(String draftsFolderName) { 42996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mDraftsFolderName = draftsFolderName; 43096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 43196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 43296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getSentFolderName() { 43396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mSentFolderName; 43496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 43596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 43696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setSentFolderName(String sentFolderName) { 43796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mSentFolderName = sentFolderName; 43896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 43996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 44096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getTrashFolderName() { 44196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mTrashFolderName; 44296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 44396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 44496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setTrashFolderName(String trashFolderName) { 44596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mTrashFolderName = trashFolderName; 44696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 44796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 44896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public String getOutboxFolderName() { 44996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mOutboxFolderName; 45096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 45196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 45296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public void setOutboxFolderName(String outboxFolderName) { 45396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project mOutboxFolderName = outboxFolderName; 45496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 45596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 45696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public int getAccountNumber() { 45796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return mAccountNumber; 45896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 45996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project 4609197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public int getSyncWindow() { 4619197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler return mSyncWindow; 4629197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler } 4639197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler 4649197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler public void setSyncWindow(int window) { 4659197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler mSyncWindow = window; 4669197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler } 4679197f428946d5c77613b64a50c93a46e2acf62dcAndy Stadler 468842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler public int getBackupFlags() { 469842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler return mBackupFlags; 470842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler } 471842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler 472842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler public void setBackupFlags(int flags) { 473842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler mBackupFlags = flags; 474842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler } 475842ac048287480e438a4049e95d6cbe116d9f31fAndrew Stadler 47696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project @Override 47796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project public boolean equals(Object o) { 47896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project if (o instanceof Account) { 47996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return ((Account)o).mUuid.equals(mUuid); 48096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 48196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project return super.equals(o); 48296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project } 48396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project} 484