mirror of https://github.com/M66B/FairEmail.git
Added option to copy names from received messages
This commit is contained in:
parent
e0efd0b0e9
commit
41997e080f
File diff suppressed because it is too large
Load Diff
|
@ -68,7 +68,7 @@ import javax.mail.internet.InternetAddress;
|
|||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 264,
|
||||
version = 265,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
|
@ -2710,6 +2710,13 @@ public abstract class DB extends RoomDatabase {
|
|||
db.execSQL("ALTER TABLE `account` ADD COLUMN `raw_fetch` INTEGER NOT NULL DEFAULT 0");
|
||||
createTriggers(db);
|
||||
}
|
||||
}).addMigrations(new Migration(264, 265) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
db.execSQL("ALTER TABLE `identity` ADD COLUMN `reply_extra_name` INTEGER NOT NULL DEFAULT 0");
|
||||
createTriggers(db);
|
||||
}
|
||||
}).addMigrations(new Migration(998, 999) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
|
|
|
@ -101,6 +101,8 @@ public class EntityIdentity {
|
|||
public Boolean sender_extra = false;
|
||||
@NonNull
|
||||
public Boolean sender_extra_name = false;
|
||||
@NonNull
|
||||
public Boolean reply_extra_name = false;
|
||||
public String sender_extra_regex;
|
||||
public String replyto;
|
||||
public String cc;
|
||||
|
|
|
@ -4984,7 +4984,8 @@ public class FragmentCompose extends FragmentBase {
|
|||
EntityLog.log(context, "Preferred=" + name + " <" + from + ">");
|
||||
if (TextUtils.isEmpty(from) || from.equals(recognized.email))
|
||||
from = null;
|
||||
if (TextUtils.isEmpty(name) || name.equals(recognized.name))
|
||||
if (!recognized.reply_extra_name ||
|
||||
TextUtils.isEmpty(name) || name.equals(recognized.name))
|
||||
name = null;
|
||||
String username = UriHelper.getEmailUser(from);
|
||||
String extra = (name == null ? "" : name + ", ") +
|
||||
|
|
|
@ -115,6 +115,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
private CheckBox cbSenderExtra;
|
||||
private CheckBox cbSenderExtraName;
|
||||
private CheckBox cbReplyExtraName;
|
||||
private TextView etSenderExtra;
|
||||
private ImageButton ibSenderExtra;
|
||||
private EditText etReplyTo;
|
||||
|
@ -214,6 +215,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
cbSenderExtra = view.findViewById(R.id.cbSenderExtra);
|
||||
cbSenderExtraName = view.findViewById(R.id.cbSenderExtraName);
|
||||
cbReplyExtraName = view.findViewById(R.id.cbReplyExtraName);
|
||||
etSenderExtra = view.findViewById(R.id.etSenderExtra);
|
||||
ibSenderExtra = view.findViewById(R.id.ibSenderExtra);
|
||||
etReplyTo = view.findViewById(R.id.etReplyTo);
|
||||
|
@ -396,6 +398,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
cbSenderExtraName.setEnabled(isChecked);
|
||||
cbReplyExtraName.setEnabled(isChecked);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -661,6 +664,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
args.putInt("color", btnColor.getColor());
|
||||
args.putBoolean("sender_extra", cbSenderExtra.isChecked());
|
||||
args.putBoolean("sender_extra_name", cbSenderExtraName.isChecked());
|
||||
args.putBoolean("reply_extra_name", cbReplyExtraName.isChecked());
|
||||
args.putString("sender_extra_regex", etSenderExtra.getText().toString());
|
||||
args.putString("replyto", etReplyTo.getText().toString().trim());
|
||||
args.putString("cc", etCc.getText().toString().trim());
|
||||
|
@ -748,6 +752,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
boolean sender_extra = args.getBoolean("sender_extra");
|
||||
boolean sender_extra_name = args.getBoolean("sender_extra_name");
|
||||
boolean reply_extra_name = args.getBoolean("reply_extra_name");
|
||||
String sender_extra_regex = args.getString("sender_extra_regex");
|
||||
String replyto = args.getString("replyto");
|
||||
String cc = args.getString("cc");
|
||||
|
@ -896,6 +901,8 @@ public class FragmentIdentity extends FragmentBase {
|
|||
return true;
|
||||
if (!Objects.equals(identity.sender_extra_name, sender_extra_name))
|
||||
return true;
|
||||
if (!Objects.equals(identity.reply_extra_name, reply_extra_name))
|
||||
return true;
|
||||
if (!Objects.equals(identity.sender_extra_regex, sender_extra_regex))
|
||||
return true;
|
||||
if (!Objects.equals(identity.replyto, replyto))
|
||||
|
@ -1003,6 +1010,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
identity.sender_extra = sender_extra;
|
||||
identity.sender_extra_name = sender_extra_name;
|
||||
identity.reply_extra_name = reply_extra_name;
|
||||
identity.sender_extra_regex = sender_extra_regex;
|
||||
identity.replyto = replyto;
|
||||
identity.cc = cc;
|
||||
|
@ -1188,6 +1196,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
cbSenderExtra.setChecked(identity != null && identity.sender_extra);
|
||||
cbSenderExtraName.setChecked(identity != null && identity.sender_extra_name);
|
||||
cbReplyExtraName.setChecked(identity != null && identity.reply_extra_name);
|
||||
etSenderExtra.setText(identity == null ? null : identity.sender_extra_regex);
|
||||
etReplyTo.setText(identity == null ? null : identity.replyto);
|
||||
etCc.setText(identity == null ? null : identity.cc);
|
||||
|
@ -1273,6 +1282,7 @@ public class FragmentIdentity extends FragmentBase {
|
|||
|
||||
cbPrimary.setEnabled(cbSynchronize.isChecked());
|
||||
cbSenderExtraName.setEnabled(cbSenderExtra.isChecked());
|
||||
cbReplyExtraName.setEnabled(cbSenderExtra.isChecked());
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
boolean sign_default = prefs.getBoolean("sign_default", false);
|
||||
|
|
|
@ -594,11 +594,23 @@
|
|||
android:id="@+id/cbSenderExtraName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:checked="true"
|
||||
android:text="@string/title_advanced_sender_name"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cbSenderExtra" />
|
||||
|
||||
<CheckBox
|
||||
android:id="@+id/cbReplyExtraName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="24dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/title_advanced_reply_name"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cbSenderExtraName" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvSenderExtra"
|
||||
android:layout_width="wrap_content"
|
||||
|
@ -607,7 +619,7 @@
|
|||
android:text="@string/title_advanced_sender_regex"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Small"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/cbSenderExtraName" />
|
||||
app:layout_constraintTop_toBottomOf="@id/cbReplyExtraName" />
|
||||
|
||||
<eu.faircode.email.EditTextPlain
|
||||
android:id="@+id/etSenderExtra"
|
||||
|
@ -971,7 +983,7 @@
|
|||
tvRealm,etRealm,
|
||||
cbUseIp,tvUseIpHint,tvEhlo,etEhlo,
|
||||
cbSynchronize,cbPrimary,cbSelf,tvSelfHint,
|
||||
cbSenderExtra,cbSenderExtraName,tvSenderExtra,etSenderExtra,ibSenderExtra,tvSenderExtraHint,
|
||||
cbSenderExtra,cbSenderExtraName,cbReplyExtraName,tvSenderExtra,etSenderExtra,ibSenderExtra,tvSenderExtraHint,
|
||||
tvReplyTo,etReplyTo,tvCc,etCc,tvCcHint,tvBcc,etBcc,tvBccHint,
|
||||
tvInternal,etInternal,tvInternalHint,
|
||||
tvE2Encryption,cbSignDefault,cbEncryptDefault,
|
||||
|
|
|
@ -1032,6 +1032,7 @@
|
|||
<string name="title_identity_color_hint">Identity colors take precedence over folder and account colors</string>
|
||||
<string name="title_advanced_sender">Allow editing sender address</string>
|
||||
<string name="title_advanced_sender_name">Use name when sender address has been edited</string>
|
||||
<string name="title_advanced_reply_name">Copy the name from the received message</string>
|
||||
<string name="title_advanced_sender_regex">Regex to match username of incoming email addresses</string>
|
||||
<string name="title_identity_reply_to">Reply to address</string>
|
||||
<string name="title_identity_internal">Internal domain names (comma separated)</string>
|
||||
|
|
Loading…
Reference in New Issue