mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-09 02:23:38 +02:00
Toggle original / formatted message
This commit is contained in:
@@ -75,6 +75,7 @@ import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.widget.ToggleButton;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -174,7 +175,9 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
));
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder implements
|
||||
View.OnClickListener, View.OnLongClickListener, BottomNavigationView.OnNavigationItemSelectedListener {
|
||||
View.OnClickListener, View.OnLongClickListener,
|
||||
CompoundButton.OnCheckedChangeListener,
|
||||
BottomNavigationView.OnNavigationItemSelectedListener {
|
||||
private View view;
|
||||
private View vwColor;
|
||||
private View vwStatus;
|
||||
@@ -239,7 +242,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
private BottomNavigationView bnvActions;
|
||||
|
||||
private Button btnHtml;
|
||||
private ToggleButton tbHtml;
|
||||
private ImageButton ibQuotes;
|
||||
private ImageButton ibImages;
|
||||
private ImageButton ibFull;
|
||||
@@ -333,7 +336,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
bnvActions = itemView.findViewById(R.id.bnvActions);
|
||||
|
||||
btnHtml = itemView.findViewById(R.id.btnHtml);
|
||||
tbHtml = itemView.findViewById(R.id.tbHtml);
|
||||
ibQuotes = itemView.findViewById(R.id.ibQuotes);
|
||||
ibImages = itemView.findViewById(R.id.ibImages);
|
||||
ibFull = itemView.findViewById(R.id.ibFull);
|
||||
@@ -390,7 +393,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
btnDownloadAttachments.setOnClickListener(this);
|
||||
btnSaveAttachments.setOnClickListener(this);
|
||||
|
||||
btnHtml.setOnClickListener(this);
|
||||
tbHtml.setOnCheckedChangeListener(this);
|
||||
ibQuotes.setOnClickListener(this);
|
||||
ibImages.setOnClickListener(this);
|
||||
ibFull.setOnClickListener(this);
|
||||
@@ -413,7 +416,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
ivAddContact.setOnClickListener(null);
|
||||
btnDownloadAttachments.setOnClickListener(null);
|
||||
btnSaveAttachments.setOnClickListener(null);
|
||||
btnHtml.setOnClickListener(null);
|
||||
tbHtml.setOnCheckedChangeListener(null);
|
||||
ibQuotes.setOnClickListener(null);
|
||||
ibImages.setOnClickListener(null);
|
||||
ibFull.setOnClickListener(null);
|
||||
@@ -713,7 +716,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
btnSaveAttachments.setVisibility(View.GONE);
|
||||
tvNoInternetAttachments.setVisibility(View.GONE);
|
||||
|
||||
btnHtml.setVisibility(View.GONE);
|
||||
tbHtml.setVisibility(View.GONE);
|
||||
ibQuotes.setVisibility(View.GONE);
|
||||
ibImages.setVisibility(View.GONE);
|
||||
ibFull.setVisibility(View.GONE);
|
||||
@@ -770,7 +773,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
for (int i = 0; i < bnvActions.getMenu().size(); i++)
|
||||
bnvActions.getMenu().getItem(i).setVisible(false);
|
||||
|
||||
btnHtml.setVisibility(!show_html ? View.INVISIBLE : View.GONE);
|
||||
tbHtml.setChecked(show_html);
|
||||
tbHtml.setVisibility(hasWebView ? View.INVISIBLE : View.GONE);
|
||||
ibQuotes.setVisibility(!show_html ? View.INVISIBLE : View.GONE);
|
||||
ibImages.setVisibility(!show_html ? View.INVISIBLE : View.GONE);
|
||||
ibFull.setVisibility(show_html ? View.INVISIBLE : View.GONE);
|
||||
@@ -1064,8 +1068,6 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
onDownloadAttachments(message);
|
||||
else if (view.getId() == R.id.btnSaveAttachments)
|
||||
onSaveAttachments(message);
|
||||
else if (view.getId() == R.id.btnHtml)
|
||||
onShowHtml(message);
|
||||
else if (view.getId() == R.id.ibQuotes)
|
||||
onShowQuotes(message);
|
||||
else if (view.getId() == R.id.ibImages)
|
||||
@@ -1105,6 +1107,18 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
||||
TupleMessageEx message = getMessage();
|
||||
if (message == null)
|
||||
return;
|
||||
|
||||
if (isChecked)
|
||||
onShowHtml(message);
|
||||
else
|
||||
onHideHtml(message);
|
||||
}
|
||||
|
||||
private void onShowSnoozed(TupleMessageEx message) {
|
||||
if (message.ui_snoozed != null) {
|
||||
DateFormat df = SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.MEDIUM, SimpleDateFormat.SHORT);
|
||||
@@ -1358,7 +1372,8 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
private void onShowHtml(final TupleMessageEx message) {
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
if (prefs.getBoolean("show_html_confirmed", false)) {
|
||||
if (properties.getValue("confirmed", message.id) ||
|
||||
prefs.getBoolean("show_html_confirmed", false)) {
|
||||
onShowHtmlConfirmed(message);
|
||||
return;
|
||||
}
|
||||
@@ -1374,12 +1389,24 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
properties.setValue("confirmed", message.id, true);
|
||||
if (cbNotAgain.isChecked())
|
||||
prefs.edit().putBoolean("show_html_confirmed", true).apply();
|
||||
onShowHtmlConfirmed(message);
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
tbHtml.setChecked(false);
|
||||
}
|
||||
})
|
||||
.setOnCancelListener(new DialogInterface.OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
tbHtml.setChecked(false);
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
@@ -1389,7 +1416,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
|
||||
boolean show_images = properties.getValue("images", message.id);
|
||||
|
||||
btnHtml.setVisibility(View.GONE);
|
||||
tbHtml.setVisibility(View.VISIBLE);
|
||||
ibQuotes.setVisibility(View.GONE);
|
||||
ibImages.setVisibility(show_images ? View.GONE : View.INVISIBLE);
|
||||
ibFull.setVisibility(View.INVISIBLE);
|
||||
@@ -1491,8 +1518,25 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
tvBody.setVisibility(View.GONE);
|
||||
webView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
|
||||
rvImage.setVisibility(adapterImage.getItemCount() > 0 ? View.VISIBLE : View.GONE);
|
||||
private void onHideHtml(TupleMessageEx message) {
|
||||
properties.setValue("html", message.id, false);
|
||||
|
||||
ibQuotes.setVisibility(View.INVISIBLE);
|
||||
ibImages.setVisibility(View.INVISIBLE);
|
||||
ibFull.setVisibility(View.GONE);
|
||||
|
||||
tvBody.setVisibility(View.INVISIBLE);
|
||||
vwBody.setVisibility(View.GONE);
|
||||
|
||||
Spanned body = properties.getBody(message.id);
|
||||
tvBody.setText(body);
|
||||
tvBody.setMovementMethod(null);
|
||||
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("message", message);
|
||||
bodyTask.execute(context, owner, args, "message:body");
|
||||
}
|
||||
|
||||
private class OriginalMessage {
|
||||
@@ -1724,7 +1768,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
||||
boolean show_quotes = properties.getValue("quotes", message.id);
|
||||
boolean show_images = properties.getValue("images", message.id);
|
||||
|
||||
btnHtml.setVisibility(hasWebView ? View.VISIBLE : View.GONE);
|
||||
tbHtml.setVisibility(hasWebView ? View.VISIBLE : View.GONE);
|
||||
ibQuotes.setVisibility(has_quotes && !show_quotes ? View.VISIBLE : View.GONE);
|
||||
ibImages.setVisibility(has_images && !show_images ? View.VISIBLE : View.GONE);
|
||||
tvBody.setText(body);
|
||||
|
||||
Reference in New Issue
Block a user