mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-07 09:33:39 +02:00
Added local notes
This commit is contained in:
@@ -356,6 +356,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
private ImageView ivThread;
|
||||
private TextView tvExpand;
|
||||
private TextView tvPreview;
|
||||
private TextView tvNotes;
|
||||
private TextView tvError;
|
||||
private ImageButton ibHelp;
|
||||
|
||||
@@ -516,6 +517,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
tvKeywords = itemView.findViewById(R.id.tvKeywords);
|
||||
tvExpand = itemView.findViewById(R.id.tvExpand);
|
||||
tvPreview = itemView.findViewById(R.id.tvPreview);
|
||||
tvNotes = itemView.findViewById(R.id.tvNotes);
|
||||
tvFolder = itemView.findViewById(R.id.tvFolder);
|
||||
tvLabels = itemView.findViewById(R.id.tvLabels);
|
||||
tvCount = itemView.findViewById(R.id.tvCount);
|
||||
@@ -922,6 +924,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
tvFolder.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize * 0.9f);
|
||||
tvLabels.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize * 0.9f);
|
||||
tvPreview.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize * 0.9f);
|
||||
tvNotes.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize * 0.9f);
|
||||
}
|
||||
|
||||
// Selected / disabled
|
||||
@@ -960,6 +963,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
tvCount.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
ivThread.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
tvPreview.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
tvNotes.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
tvError.setAlpha(dim ? Helper.LOW_LIGHT : 1.0f);
|
||||
}
|
||||
|
||||
@@ -1127,6 +1131,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
tvPreview.setText(message.preview);
|
||||
tvPreview.setVisibility(preview && !TextUtils.isEmpty(message.preview) ? View.VISIBLE : View.GONE);
|
||||
|
||||
tvNotes.setText(message.notes);
|
||||
tvNotes.setVisibility(TextUtils.isEmpty(message.notes) ? View.GONE : View.VISIBLE);
|
||||
|
||||
// Error / warning
|
||||
String error = message.error;
|
||||
if (message.warning != null)
|
||||
@@ -4165,6 +4172,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
case R.id.menu_resync:
|
||||
onMenuResync(message);
|
||||
return true;
|
||||
case R.id.menu_edit_notes:
|
||||
onMenuNotes(message);
|
||||
return true;
|
||||
case R.id.menu_search_in_text:
|
||||
onMenuSearch(message);
|
||||
return true;
|
||||
@@ -4603,6 +4613,16 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
}.execute(context, owner, args, "message:resync");
|
||||
}
|
||||
|
||||
private void onMenuNotes(TupleMessageEx message) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", message.id);
|
||||
args.putString("notes", message.notes);
|
||||
|
||||
FragmentDialogNotes fragment = new FragmentDialogNotes();
|
||||
fragment.setArguments(args);
|
||||
fragment.show(parentFragment.getParentFragmentManager(), "edit:notes");
|
||||
}
|
||||
|
||||
private void onMenuSearch(TupleMessageEx message) {
|
||||
LayoutInflater inflater = LayoutInflater.from(context);
|
||||
View dview = inflater.inflate(R.layout.popup_search_in_text, null, false);
|
||||
@@ -5509,6 +5529,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
same = false;
|
||||
log("preview changed", next.id);
|
||||
}
|
||||
if (!Objects.equals(prev.notes, next.notes)) {
|
||||
same = false;
|
||||
log("preview changed", next.id);
|
||||
}
|
||||
if (!Objects.equals(prev.sent, next.sent)) {
|
||||
same = false;
|
||||
log("sent changed", next.id);
|
||||
@@ -6632,6 +6656,53 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
}
|
||||
}
|
||||
|
||||
public static class FragmentDialogNotes extends FragmentDialogBase {
|
||||
@NonNull
|
||||
@Override
|
||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||
final long id = getArguments().getLong("id");
|
||||
final String notes = getArguments().getString("notes");
|
||||
|
||||
View view = LayoutInflater.from(getContext()).inflate(R.layout.dialog_notes, null);
|
||||
final EditText etNote = view.findViewById(R.id.etNote);
|
||||
etNote.setText(notes);
|
||||
|
||||
return new AlertDialog.Builder(getContext())
|
||||
.setView(view)
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
args.putString("notes", etNote.getText().toString());
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) {
|
||||
long id = args.getLong("id");
|
||||
String notes = args.getString("notes");
|
||||
|
||||
if ("".equals(notes.trim()))
|
||||
notes = null;
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
db.message().setMessageNotes(id, notes);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||
}
|
||||
}.execute(getContext(), getActivity(), args, "message:note");
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.create();
|
||||
}
|
||||
}
|
||||
|
||||
public static class FragmentDialogKeywordManage extends FragmentDialogBase {
|
||||
@NonNull
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user