Refactoring

This commit is contained in:
M66B 2023-11-27 17:18:39 +01:00
parent bb63fa108f
commit 14af92def0
2 changed files with 44 additions and 6 deletions

View File

@ -3166,15 +3166,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
args.putBoolean("has_amp", has_amp);
// Check for structured email
// https://structured.email/content/introduction/getting_started.html
if (BuildConfig.DEBUG)
for (Element struct : document.select("script[type=application/ld+json]"))
try {
JSONObject jstruct = new JSONObject(struct.html());
document.body()
.appendElement("pre")
.attr("style", "font-size: smaller !important;")
.text(jstruct.toString(2));
document.body().append(new StructuredEmail(struct.html()).getHtml());
} catch (Throwable ex) {
Log.w(ex);
}

View File

@ -0,0 +1,43 @@
package eu.faircode.email;
/*
This file is part of FairEmail.
FairEmail is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
FairEmail is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with FairEmail. If not, see <http://www.gnu.org/licenses/>.
Copyright 2018-2023 by Marcel Bokhorst (M66B)
*/
import org.json.JSONException;
import org.json.JSONObject;
import org.jsoup.nodes.Document;
// https://structured.email/content/introduction/getting_started.html
// https://schema.org/FlightReservation
public class StructuredEmail {
private JSONObject jroot;
public StructuredEmail(String json) throws JSONException {
jroot = new JSONObject(json);
}
public String getHtml() throws JSONException {
Document d = Document.createShell("");
d.appendElement("pre")
.attr("style", "font-size: smaller !important;")
.text(jroot.toString(2));
return d.html();
}
}