diff options
| author | JarrettV <jarrettv@gmail.com> | 2010-04-13 19:17:22 -0500 |
|---|---|---|
| committer | JarrettV <jarrettv@gmail.com> | 2010-04-13 19:17:22 -0500 |
| commit | 8ce3f85d847cb90afa1b2a5f9d859e25df9e1f22 (patch) | |
| tree | d79af2e93110fc73570dec912f42523bf27123f3 /src | |
| parent | 939d28f0d7587a0b1f96758213e38472ba5eb177 (diff) | |
| download | android_packages_apps_Email-8ce3f85d847cb90afa1b2a5f9d859e25df9e1f22.tar.gz android_packages_apps_Email-8ce3f85d847cb90afa1b2a5f9d859e25df9e1f22.tar.bz2 android_packages_apps_Email-8ce3f85d847cb90afa1b2a5f9d859e25df9e1f22.zip | |
Added email signature to email account
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/email/Account.java | 12 | ||||
| -rw-r--r-- | src/com/android/email/activity/MessageCompose.java | 6 | ||||
| -rw-r--r-- | src/com/android/email/activity/setup/AccountSettings.java | 17 | ||||
| -rw-r--r-- | src/com/android/email/activity/setup/AccountSettingsUtils.java | 1 | ||||
| -rw-r--r-- | src/com/android/email/provider/EmailContent.java | 27 | ||||
| -rw-r--r-- | src/com/android/email/provider/EmailProvider.java | 14 |
6 files changed, 74 insertions, 3 deletions
diff --git a/src/com/android/email/Account.java b/src/com/android/email/Account.java index 236db1a4c..2683d8e35 100644 --- a/src/com/android/email/Account.java +++ b/src/com/android/email/Account.java @@ -61,6 +61,7 @@ public class Account { String mDescription; String mName; String mEmail; + String mSignature; int mAutomaticCheckIntervalMinutes; long mLastAutomaticCheckTime; boolean mNotifyNewMail; @@ -131,6 +132,7 @@ public class Account { mDescription = preferences.mSharedPreferences.getString(mUuid + ".description", null); mName = preferences.mSharedPreferences.getString(mUuid + ".name", mName); mEmail = preferences.mSharedPreferences.getString(mUuid + ".email", mEmail); + mSignature = preferences.mSharedPreferences.getString(mUuid + ".signature", mSignature); mAutomaticCheckIntervalMinutes = preferences.mSharedPreferences.getInt(mUuid + ".automaticCheckIntervalMinutes", -1); mLastAutomaticCheckTime = preferences.mSharedPreferences.getLong(mUuid @@ -211,6 +213,14 @@ public class Account { this.mEmail = email; } + public String getSignature() { + return mSignature; + } + + public void setSignature(String signature) { + this.mSignature = signature; + } + public boolean isVibrate() { return mVibrate; } @@ -248,6 +258,7 @@ public class Account { editor.remove(mUuid + ".description"); editor.remove(mUuid + ".name"); editor.remove(mUuid + ".email"); + editor.remove(mUuid + ".signature"); editor.remove(mUuid + ".automaticCheckIntervalMinutes"); editor.remove(mUuid + ".lastAutomaticCheckTime"); editor.remove(mUuid + ".notifyNewMail"); @@ -313,6 +324,7 @@ public class Account { editor.putString(mUuid + ".description", mDescription); editor.putString(mUuid + ".name", mName); editor.putString(mUuid + ".email", mEmail); + editor.putString(mUuid + ".signature", mSignature); editor.putInt(mUuid + ".automaticCheckIntervalMinutes", mAutomaticCheckIntervalMinutes); editor.putLong(mUuid + ".lastAutomaticCheckTime", mLastAutomaticCheckTime); editor.putBoolean(mUuid + ".notifyNewMail", mNotifyNewMail); diff --git a/src/com/android/email/activity/MessageCompose.java b/src/com/android/email/activity/MessageCompose.java index e8837e746..8ec0f481e 100644 --- a/src/com/android/email/activity/MessageCompose.java +++ b/src/com/android/email/activity/MessageCompose.java @@ -321,6 +321,12 @@ public class MessageCompose extends Activity implements OnClickListener, OnFocus // But we DO need to set mMessageLoaded to indicate the message can be sent mMessageLoaded = true; mSourceMessageProcessed = true; + + // Add the signature to the new message + final String sig = mAccount.getSignature(); + if (sig != null && sig.length() > 0) { + mMessageContentView.setText("\n\n" + sig); + } } } diff --git a/src/com/android/email/activity/setup/AccountSettings.java b/src/com/android/email/activity/setup/AccountSettings.java index 17d7b9c8e..693c324c0 100644 --- a/src/com/android/email/activity/setup/AccountSettings.java +++ b/src/com/android/email/activity/setup/AccountSettings.java @@ -47,6 +47,7 @@ public class AccountSettings extends PreferenceActivity { private static final String PREFERENCE_TOP_CATEGORY = "account_settings"; private static final String PREFERENCE_DESCRIPTION = "account_description"; private static final String PREFERENCE_NAME = "account_name"; + private static final String PREFERENCE_SIGNATURE = "account_signature"; private static final String PREFERENCE_FREQUENCY = "account_check_frequency"; private static final String PREFERENCE_DEFAULT = "account_default"; private static final String PREFERENCE_NOTIFY = "account_notify"; @@ -74,6 +75,7 @@ public class AccountSettings extends PreferenceActivity { private ListPreference mCheckFrequency; private ListPreference mSyncWindow; private CheckBoxPreference mAccountDefault; + private EditTextPreference mSignature; private CheckBoxPreference mAccountNotify; private CheckBoxPreference mAccountVibrate; private RingtonePreference mAccountRingtone; @@ -196,7 +198,19 @@ public class AccountSettings extends PreferenceActivity { mAccountDefault = (CheckBoxPreference) findPreference(PREFERENCE_DEFAULT); mAccountDefault.setChecked(mAccount.mId == Account.getDefaultAccountId(this)); - + + mSignature = (EditTextPreference) findPreference(PREFERENCE_SIGNATURE); + mSignature.setSummary(mAccount.getSignature()); + mSignature.setText(mAccount.getSignature()); + mSignature.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + public boolean onPreferenceChange(Preference preference, Object newValue) { + final String summary = newValue.toString(); + mSignature.setSummary(summary); + mSignature.setText(summary); + return false; + } + }); + mAccountNotify = (CheckBoxPreference) findPreference(PREFERENCE_NOTIFY); mAccountNotify.setChecked(0 != (mAccount.getFlags() & Account.FLAGS_NOTIFY_NEW_MAIL)); @@ -307,6 +321,7 @@ public class AccountSettings extends PreferenceActivity { mAccount.setDefaultAccount(mAccountDefault.isChecked()); mAccount.setDisplayName(mAccountDescription.getText()); mAccount.setSenderName(mAccountName.getText()); + mAccount.setSignature(mSignature.getText()); newFlags |= mAccountNotify.isChecked() ? Account.FLAGS_NOTIFY_NEW_MAIL : 0; mAccount.setSyncInterval(Integer.parseInt(mCheckFrequency.getValue())); if (mSyncWindow != null) { diff --git a/src/com/android/email/activity/setup/AccountSettingsUtils.java b/src/com/android/email/activity/setup/AccountSettingsUtils.java index 57f1cac00..e6def643e 100644 --- a/src/com/android/email/activity/setup/AccountSettingsUtils.java +++ b/src/com/android/email/activity/setup/AccountSettingsUtils.java @@ -44,6 +44,7 @@ public class AccountSettingsUtils { cv.put(AccountColumns.RINGTONE_URI, account.mRingtoneUri); cv.put(AccountColumns.FLAGS, account.mFlags); cv.put(AccountColumns.SYNC_LOOKBACK, account.mSyncLookback); + cv.put(AccountColumns.SIGNATURE, account.mSignature); account.update(context, cv); } // Update the backup (side copy) of the accounts diff --git a/src/com/android/email/provider/EmailContent.java b/src/com/android/email/provider/EmailContent.java index cc060c72d..8a97937f0 100644 --- a/src/com/android/email/provider/EmailContent.java +++ b/src/com/android/email/provider/EmailContent.java @@ -766,6 +766,8 @@ public abstract class EmailContent { public static final String PROTOCOL_VERSION = "protocolVersion"; // The number of new messages (reported by the sync/download engines public static final String NEW_MESSAGE_COUNT = "newMessageCount"; + // The signature to append to each email + public static final String SIGNATURE = "signature"; } public static final class Account extends EmailContent implements AccountColumns, Parcelable { @@ -803,6 +805,7 @@ public abstract class EmailContent { public String mRingtoneUri; public String mProtocolVersion; public int mNewMessageCount; + public String mSignature; // Convenience for creating an account public transient HostAuth mHostAuthRecv; @@ -823,6 +826,7 @@ public abstract class EmailContent { public static final int CONTENT_RINGTONE_URI_COLUMN = 12; public static final int CONTENT_PROTOCOL_VERSION_COLUMN = 13; public static final int CONTENT_NEW_MESSAGE_COUNT_COLUMN = 14; + public static final int CONTENT_SIGNATURE_COLUMN = 15; public static final String[] CONTENT_PROJECTION = new String[] { RECORD_ID, AccountColumns.DISPLAY_NAME, @@ -831,7 +835,7 @@ public abstract class EmailContent { AccountColumns.HOST_AUTH_KEY_SEND, AccountColumns.FLAGS, AccountColumns.IS_DEFAULT, AccountColumns.COMPATIBILITY_UUID, AccountColumns.SENDER_NAME, AccountColumns.RINGTONE_URI, AccountColumns.PROTOCOL_VERSION, - AccountColumns.NEW_MESSAGE_COUNT + AccountColumns.NEW_MESSAGE_COUNT, AccountColumns.SIGNATURE }; public static final int CONTENT_MAILBOX_TYPE_COLUMN = 1; @@ -922,6 +926,8 @@ public abstract class EmailContent { mRingtoneUri = cursor.getString(CONTENT_RINGTONE_URI_COLUMN); mProtocolVersion = cursor.getString(CONTENT_PROTOCOL_VERSION_COLUMN); mNewMessageCount = cursor.getInt(CONTENT_NEW_MESSAGE_COUNT_COLUMN); + if (cursor.getColumnCount() > CONTENT_SIGNATURE_COLUMN) + mSignature = cursor.getString(CONTENT_SIGNATURE_COLUMN); return this; } @@ -960,6 +966,20 @@ public abstract class EmailContent { } /** + * @return the signature for this account + */ + public String getSignature() { + return mSignature; + } + + /** + * Set the signature for this account. Be sure to call save() to commit to database. + * @param signature the signature for this account + */ + public void setSignature(String signature) { + mSignature = signature; + } + /** * @return the sender's name for this account */ public String getSenderName() { @@ -1341,6 +1361,7 @@ public abstract class EmailContent { values.put(AccountColumns.RINGTONE_URI, mRingtoneUri); values.put(AccountColumns.PROTOCOL_VERSION, mProtocolVersion); values.put(AccountColumns.NEW_MESSAGE_COUNT, mNewMessageCount); + values.put(AccountColumns.SIGNATURE, mSignature); return values; } @@ -1399,6 +1420,8 @@ public abstract class EmailContent { } else { dest.writeByte((byte)0); } + + dest.writeString(mSignature); } /** @@ -1431,6 +1454,8 @@ public abstract class EmailContent { if (in.readByte() == 1) { mHostAuthSend = new EmailContent.HostAuth(in); } + + mSignature = in.readString(); } /** diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index e77dc2237..57ba0761e 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -62,7 +62,8 @@ public class EmailProvider extends ContentProvider { // Version 4: Database wipe required; changing AccountManager interface w/Exchange // Version 5: Database wipe required; changing AccountManager interface w/Exchange // Version 6: Adding Message.mServerTimeStamp column - public static final int DATABASE_VERSION = 6; + // Version 7: Adding Account.mSignature column + public static final int DATABASE_VERSION = 7; // Any changes to the database format *must* include update-in-place code. // Original version: 2 @@ -384,6 +385,7 @@ public class EmailProvider extends ContentProvider { + AccountColumns.RINGTONE_URI + " text, " + AccountColumns.PROTOCOL_VERSION + " text, " + AccountColumns.NEW_MESSAGE_COUNT + " integer" + + AccountColumns.SIGNATURE + " text, " + ");"; db.execSQL("create table " + Account.TABLE_NAME + s); // Deleting an account deletes associated Mailboxes and HostAuth's @@ -614,6 +616,16 @@ public class EmailProvider extends ContentProvider { } oldVersion = 6; } + if (oldVersion == 6) { + try { + db.execSQL("alter table " + Account.TABLE_NAME + + " add column " + AccountColumns.SIGNATURE + " text" + ";"); + } catch (SQLException e) { + // Shouldn't be needed unless we're debugging and interrupt the process + Log.w(TAG, "Exception upgrading EmailProvider.db from v6 to v7", e); + } + oldVersion = 7; + } } @Override |
