1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-17 07:30:16 -05:00

Optional signatures on per identity basis. Original patch by jiri.tyr (thanks!) slightly modified by me.

Fixes issue 461
This commit is contained in:
cketti 2010-02-08 17:47:00 +00:00
parent 3b6cccdf7a
commit 033e0d40de
9 changed files with 1209 additions and 1063 deletions

View File

@ -48,38 +48,50 @@
android:inputType="textEmailAddress" android:inputType="textEmailAddress"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent" /> android:layout_width="fill_parent" />
<TextView <CheckBox
android:text="@string/account_settings_signature_label" android:id="@+id/account_signature_use"
android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary" />
<EditText
android:id="@+id/account_signature"
android:inputType="textMultiLine|textAutoCorrect|textCapSentences"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
<TextView
android:text="@string/account_settings_signature__location_label"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/account_settings_signature_use_label" />
<LinearLayout
android:id="@+id/account_signature_layout"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceSmall" android:layout_height="fill_parent"
android:textColor="?android:attr/textColorPrimary" /> android:orientation="vertical">
<RadioGroup <TextView
android:id="@+id/account_signature_location" android:text="@string/account_settings_signature_label"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/account_signature_location_before_quoted_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/account_settings_signature__location_before_quoted_text" /> android:layout_width="fill_parent"
<RadioButton android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/account_signature_location_after_quoted_text" android:textColor="?android:attr/textColorPrimary" />
android:layout_width="wrap_content" <EditText
android:id="@+id/account_signature"
android:inputType="textMultiLine|textAutoCorrect|textCapSentences"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/account_settings_signature__location_after_quoted_text" /> android:layout_width="fill_parent" />
</RadioGroup> <TextView
android:text="@string/account_settings_signature__location_label"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary" />
<RadioGroup
android:id="@+id/account_signature_location"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical" >
<RadioButton
android:id="@+id/account_signature_location_before_quoted_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_settings_signature__location_before_quoted_text" />
<RadioButton
android:id="@+id/account_signature_location_after_quoted_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/account_settings_signature__location_after_quoted_text" />
</RadioGroup>
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -62,18 +62,28 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent" /> android:layout_width="fill_parent" />
--> -->
<TextView <CheckBox
android:text="@string/edit_identity_signature_label" android:id="@+id/signature_use"
android:layout_height="wrap_content"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary" />
<EditText
android:id="@+id/signature"
android:singleLine="false"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="@string/account_settings_signature_use_label" />
android:hint="@string/edit_identity_signature_hint" <LinearLayout
/> android:id="@+id/signature_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TextView
android:text="@string/edit_identity_signature_label"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary" />
<EditText
android:id="@+id/signature"
android:singleLine="false"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:hint="@string/edit_identity_signature_hint"/>
</LinearLayout>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View File

@ -506,6 +506,7 @@ Willkommen zum \"K-9 Mail\"-Setup. K-9 ist eine quelloffene E-Mail-Anwendung f
<string name="edit_identity_signature_label">Signatur</string> <string name="edit_identity_signature_label">Signatur</string>
<string name="edit_identity_signature_hint">(Optional)</string> <string name="edit_identity_signature_hint">(Optional)</string>
<string name="account_settings_signature_use_label">Signatur verwenden</string>
<string name="account_settings_signature_label">Signatur</string> <string name="account_settings_signature_label">Signatur</string>
<string name="account_settings_signature_summary">Signatur an jede Nachricht anfügen</string> <string name="account_settings_signature_summary">Signatur an jede Nachricht anfügen</string>

View File

@ -540,6 +540,7 @@ Welcome to K-9 Mail setup. K-9 is an open source mail client for Android origin
<string name="edit_identity_signature_label">Signature</string> <string name="edit_identity_signature_label">Signature</string>
<string name="edit_identity_signature_hint">(Optional)</string> <string name="edit_identity_signature_hint">(Optional)</string>
<string name="account_settings_signature_use_label">Use Signature</string>
<string name="account_settings_signature_label">Signature</string> <string name="account_settings_signature_label">Signature</string>
<string name="account_settings_signature_summary">Append a signature to every message you send</string> <string name="account_settings_signature_summary">Append a signature to every message you send</string>

File diff suppressed because it is too large Load Diff

View File

@ -2,7 +2,12 @@ package com.fsck.k9.activity;
import android.os.Bundle; import android.os.Bundle;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.K9Activity; import com.fsck.k9.K9Activity;
import com.fsck.k9.Preferences; import com.fsck.k9.Preferences;
@ -21,7 +26,9 @@ public class EditIdentity extends K9Activity
private Account.Identity mIdentity; private Account.Identity mIdentity;
private int mIdentityIndex; private int mIdentityIndex;
private EditText mDescriptionView; private EditText mDescriptionView;
private CheckBox mSignatureUse;
private EditText mSignatureView; private EditText mSignatureView;
private LinearLayout mSignatureLayout;
private EditText mEmailView; private EditText mEmailView;
// private EditText mAlwaysBccView; // private EditText mAlwaysBccView;
private EditText mNameView; private EditText mNameView;
@ -63,8 +70,33 @@ public class EditIdentity extends K9Activity
// mAccountAlwaysBcc = (EditText)findViewById(R.id.bcc); // mAccountAlwaysBcc = (EditText)findViewById(R.id.bcc);
// mAccountAlwaysBcc.setText(mIdentity.getAlwaysBcc()); // mAccountAlwaysBcc.setText(mIdentity.getAlwaysBcc());
mSignatureLayout = (LinearLayout)findViewById(R.id.signature_layout);
mSignatureUse = (CheckBox)findViewById(R.id.signature_use);
mSignatureView = (EditText)findViewById(R.id.signature); mSignatureView = (EditText)findViewById(R.id.signature);
mSignatureView.setText(mIdentity.getSignature()); mSignatureUse.setChecked(mIdentity.getSignatureUse());
mSignatureUse.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
mSignatureLayout.setVisibility(View.VISIBLE);
mSignatureView.setText(mIdentity.getSignature());
}
else
{
mSignatureLayout.setVisibility(View.GONE);
}
}
});
if (mSignatureUse.isChecked())
{
mSignatureView.setText(mIdentity.getSignature());
}
else
{
mSignatureLayout.setVisibility(View.GONE);
}
} }
@Override @Override
@ -80,6 +112,7 @@ public class EditIdentity extends K9Activity
mIdentity.setEmail(mEmailView.getText().toString()); mIdentity.setEmail(mEmailView.getText().toString());
// mIdentity.setAlwaysBcc(mAccountAlwaysBcc.getText().toString()); // mIdentity.setAlwaysBcc(mAccountAlwaysBcc.getText().toString());
mIdentity.setName(mNameView.getText().toString()); mIdentity.setName(mNameView.getText().toString());
mIdentity.setSignatureUse(mSignatureUse.isChecked());
mIdentity.setSignature(mSignatureView.getText().toString()); mIdentity.setSignature(mSignatureView.getText().toString());
List<Account.Identity> identities = mAccount.getIdentities(); List<Account.Identity> identities = mAccount.getIdentities();

View File

@ -494,6 +494,11 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
} }
mSignatureView.addTextChangedListener(sigwatcher); mSignatureView.addTextChangedListener(sigwatcher);
if (!mIdentity.getSignatureUse())
{
mSignatureView.setVisibility(View.GONE);
}
if (!mSourceMessageProcessed) if (!mSourceMessageProcessed)
{ {
updateFrom(); updateFrom();
@ -740,11 +745,14 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
private String appendSignature(String text) private String appendSignature(String text)
{ {
String signature= mSignatureView.getText().toString(); if (mIdentity.getSignatureUse())
if (signature != null && ! signature.contentEquals(""))
{ {
text += "\n" + signature; String signature = mSignatureView.getText().toString();
if (signature != null && !signature.contentEquals(""))
{
text += "\n" + signature;
}
} }
return text; return text;
@ -1037,7 +1045,15 @@ public class MessageCompose extends K9Activity implements OnClickListener, OnFoc
private void updateSignature() private void updateSignature()
{ {
mSignatureView.setText(mIdentity.getSignature()); if (mIdentity.getSignatureUse())
{
mSignatureView.setText(mIdentity.getSignature());
mSignatureView.setVisibility(View.VISIBLE);
}
else
{
mSignatureView.setVisibility(View.GONE);
}
} }
public void onClick(View view) public void onClick(View view)

View File

@ -134,6 +134,9 @@ public class AccountSetupBasics extends K9Activity
boolean valid = Utility.requiredFieldValid(mEmailView) boolean valid = Utility.requiredFieldValid(mEmailView)
&& Utility.requiredFieldValid(mPasswordView) && Utility.requiredFieldValid(mPasswordView)
&& mEmailValidator.isValid(email); && mEmailValidator.isValid(email);
//FIXME: "foo@bar .com" will validate
/*&& email.contains("@"); */ // Not sure if this is a good idea or not /*&& email.contains("@"); */ // Not sure if this is a good idea or not
mNextButton.setEnabled(valid); mNextButton.setEnabled(valid);
mManualSetupButton.setEnabled(valid); mManualSetupButton.setEnabled(valid);

View File

@ -4,7 +4,12 @@ import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RadioButton; import android.widget.RadioButton;
import com.fsck.k9.Account; import com.fsck.k9.Account;
import com.fsck.k9.K9Activity; import com.fsck.k9.K9Activity;
@ -22,9 +27,10 @@ public class AccountSetupComposition extends K9Activity
private EditText mAccountEmail; private EditText mAccountEmail;
private EditText mAccountAlwaysBcc; private EditText mAccountAlwaysBcc;
private EditText mAccountName; private EditText mAccountName;
private CheckBox mAccountSignatureUse;
private RadioButton mAccountSignatureBeforeLocation; private RadioButton mAccountSignatureBeforeLocation;
private RadioButton mAccountSignatureAfterLocation; private RadioButton mAccountSignatureAfterLocation;
private LinearLayout mAccountSignatureLayout;
public static void actionEditCompositionSettings(Activity context, Account account) public static void actionEditCompositionSettings(Activity context, Account account)
{ {
@ -62,14 +68,46 @@ public class AccountSetupComposition extends K9Activity
mAccountAlwaysBcc = (EditText)findViewById(R.id.account_always_bcc); mAccountAlwaysBcc = (EditText)findViewById(R.id.account_always_bcc);
mAccountAlwaysBcc.setText(mAccount.getAlwaysBcc()); mAccountAlwaysBcc.setText(mAccount.getAlwaysBcc());
mAccountSignatureLayout = (LinearLayout)findViewById(R.id.account_signature_layout);
mAccountSignatureUse = (CheckBox)findViewById(R.id.account_signature_use);
boolean useSignature = mAccount.getSignatureUse();
mAccountSignatureUse.setChecked(useSignature);
mAccountSignatureUse.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
mAccountSignatureLayout.setVisibility(View.VISIBLE);
mAccountSignature.setText(mAccount.getSignature());
boolean isSignatureBeforeQuotedText = mAccount.isSignatureBeforeQuotedText();
mAccountSignatureBeforeLocation.setChecked(isSignatureBeforeQuotedText);
mAccountSignatureAfterLocation.setChecked(!isSignatureBeforeQuotedText);
}
else
{
mAccountSignatureLayout.setVisibility(View.GONE);
}
}
});
mAccountSignature = (EditText)findViewById(R.id.account_signature); mAccountSignature = (EditText)findViewById(R.id.account_signature);
mAccountSignature.setText(mAccount.getSignature());
mAccountSignatureBeforeLocation = (RadioButton)findViewById(R.id.account_signature_location_before_quoted_text); mAccountSignatureBeforeLocation = (RadioButton)findViewById(R.id.account_signature_location_before_quoted_text);
mAccountSignatureAfterLocation = (RadioButton)findViewById(R.id.account_signature_location_after_quoted_text); mAccountSignatureAfterLocation = (RadioButton)findViewById(R.id.account_signature_location_after_quoted_text);
boolean isSignatureBeforeQuotedText = mAccount.isSignatureBeforeQuotedText();
mAccountSignatureBeforeLocation.setChecked(isSignatureBeforeQuotedText); if (useSignature)
mAccountSignatureAfterLocation.setChecked(!isSignatureBeforeQuotedText); {
mAccountSignature.setText(mAccount.getSignature());
boolean isSignatureBeforeQuotedText = mAccount.isSignatureBeforeQuotedText();
mAccountSignatureBeforeLocation.setChecked(isSignatureBeforeQuotedText);
mAccountSignatureAfterLocation.setChecked(!isSignatureBeforeQuotedText);
}
else
{
mAccountSignatureLayout.setVisibility(View.GONE);
}
} }
@Override @Override
@ -84,9 +122,13 @@ public class AccountSetupComposition extends K9Activity
mAccount.setEmail(mAccountEmail.getText().toString()); mAccount.setEmail(mAccountEmail.getText().toString());
mAccount.setAlwaysBcc(mAccountAlwaysBcc.getText().toString()); mAccount.setAlwaysBcc(mAccountAlwaysBcc.getText().toString());
mAccount.setName(mAccountName.getText().toString()); mAccount.setName(mAccountName.getText().toString());
mAccount.setSignature(mAccountSignature.getText().toString()); mAccount.setSignatureUse(mAccountSignatureUse.isChecked());
boolean isSignatureBeforeQuotedText = mAccountSignatureBeforeLocation.isChecked(); if (mAccountSignatureUse.isChecked())
mAccount.setSignatureBeforeQuotedText(isSignatureBeforeQuotedText); {
mAccount.setSignature(mAccountSignature.getText().toString());
boolean isSignatureBeforeQuotedText = mAccountSignatureBeforeLocation.isChecked();
mAccount.setSignatureBeforeQuotedText(isSignatureBeforeQuotedText);
}
mAccount.save(Preferences.getPreferences(this)); mAccount.save(Preferences.getPreferences(this));
} }