summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJarrettV <jarrettv@gmail.com>2010-04-13 19:17:22 -0500
committerJarrettV <jarrettv@gmail.com>2010-04-13 19:17:22 -0500
commit8ce3f85d847cb90afa1b2a5f9d859e25df9e1f22 (patch)
treed79af2e93110fc73570dec912f42523bf27123f3 /src
parent939d28f0d7587a0b1f96758213e38472ba5eb177 (diff)
downloadandroid_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.java12
-rw-r--r--src/com/android/email/activity/MessageCompose.java6
-rw-r--r--src/com/android/email/activity/setup/AccountSettings.java17
-rw-r--r--src/com/android/email/activity/setup/AccountSettingsUtils.java1
-rw-r--r--src/com/android/email/provider/EmailContent.java27
-rw-r--r--src/com/android/email/provider/EmailProvider.java14
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