Added VirusTotal info button

pull/209/head
M66B 2 years ago
parent 1aec924211
commit fd6b9b101f

@ -383,6 +383,7 @@ Fonts, sizes, colors, etc should be material design whenever possible.
* [(178) Why are widgets not updating?](#user-content-faq178) * [(178) Why are widgets not updating?](#user-content-faq178)
* [(179) What are reply templates?](#user-content-faq179) * [(179) What are reply templates?](#user-content-faq179)
* [(180) How do I use LanguageTool?](#user-content-faq180) * [(180) How do I use LanguageTool?](#user-content-faq180)
* [(181) How do I use VirusTotal?](#user-content-faq181)
[I have another question.](#user-content-get-support) [I have another question.](#user-content-get-support)
@ -4845,7 +4846,7 @@ Templates can have the following options:
<a name="faq180"></a> <a name="faq180"></a>
**(180) How do I use LanguageTool?** **(180) How do I use LanguageTool?**
LanguageTool need to be enabled in the miscellaneous settings. LanguageTool integration needs to be enabled in the miscellaneous settings.
After writing some text, you can long press on the save draft button to perform a grammar, style, and spell check via [LanguageTool](https://languagetool.org/). After writing some text, you can long press on the save draft button to perform a grammar, style, and spell check via [LanguageTool](https://languagetool.org/).
Texts with suggestions will be marked and if you tap on a marked suggestion, Texts with suggestions will be marked and if you tap on a marked suggestion,
@ -4854,6 +4855,24 @@ else you can double tap or long press the marked text to show suggestions.
<br /> <br />
<a name="faq181"></a>
**(181) How do I use VirusTotal?**
VirusTotal integration needs to be enabled in the miscellaneous settings.
This will show a *scan* icon button for each attachment.
Without entering an API key, tapping on the scan button will calculate the SHA-256 hash of the attached file and open the corresponding file report on the VirusTotal website.
If the file is not known by VirusTotal ("*Item not found*"), it is probably okay, unless it contains a new virus not being detected by virus scanners yet.
With entering an API key, there will be a dialog showing the number of virus scanners detecting the file.
Tapping on the info button will open the corresponding file report on the VirusTotal website.
To get an API key, you'll need to register on the VirusTotal website.
This feature was added in version 1.1941 and is available in non Play store versions only.
<br />
<h2><a name="get-support"></a>Get support</h2> <h2><a name="get-support"></a>Get support</h2>
&#x1F30E; [Google Translate](https://translate.google.com/translate?sl=en&u=https://github.com/M66B/FairEmail/blob/master/FAQ.md%23user-content-get-support) &#x1F30E; [Google Translate](https://translate.google.com/translate?sl=en&u=https://github.com/M66B/FairEmail/blob/master/FAQ.md%23user-content-get-support)

@ -124,6 +124,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private ImageButton ibDeepL; private ImageButton ibDeepL;
private SwitchCompat swVirusTotal; private SwitchCompat swVirusTotal;
private TextView tvVirusTotalPrivacy; private TextView tvVirusTotalPrivacy;
private ImageButton ibVirusTotal;
private EditText etVirusTotal; private EditText etVirusTotal;
private SwitchCompat swUpdates; private SwitchCompat swUpdates;
private ImageButton ibChannelUpdated; private ImageButton ibChannelUpdated;
@ -314,6 +315,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
ibDeepL = view.findViewById(R.id.ibDeepL); ibDeepL = view.findViewById(R.id.ibDeepL);
swVirusTotal = view.findViewById(R.id.swVirusTotal); swVirusTotal = view.findViewById(R.id.swVirusTotal);
tvVirusTotalPrivacy = view.findViewById(R.id.tvVirusTotalPrivacy); tvVirusTotalPrivacy = view.findViewById(R.id.tvVirusTotalPrivacy);
ibVirusTotal = view.findViewById(R.id.ibVirusTotal);
etVirusTotal = view.findViewById(R.id.etVirusTotal); etVirusTotal = view.findViewById(R.id.etVirusTotal);
swUpdates = view.findViewById(R.id.swUpdates); swUpdates = view.findViewById(R.id.swUpdates);
ibChannelUpdated = view.findViewById(R.id.ibChannelUpdated); ibChannelUpdated = view.findViewById(R.id.ibChannelUpdated);
@ -659,6 +661,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
} }
}); });
ibVirusTotal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.viewFAQ(v.getContext(), 181);
}
});
etVirusTotal.addTextChangedListener(new TextWatcher() { etVirusTotal.addTextChangedListener(new TextWatcher() {
@Override @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { public void beforeTextChanged(CharSequence s, int start, int count, int after) {

@ -416,6 +416,17 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swVirusTotal" /> app:layout_constraintTop_toBottomOf="@id/swVirusTotal" />
<ImageButton
android:id="@+id/ibVirusTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:contentDescription="@string/title_info"
android:tooltipText="@string/title_info"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvVirusTotalPrivacy"
app:srcCompat="@drawable/twotone_info_24" />
<EditText <EditText
android:id="@+id/etVirusTotal" android:id="@+id/etVirusTotal"
android:layout_width="0dp" android:layout_width="0dp"
@ -426,7 +437,7 @@
android:textAppearance="@style/TextAppearance.AppCompat.Small" android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvVirusTotalPrivacy" /> app:layout_constraintTop_toBottomOf="@id/ibVirusTotal" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/swUpdates" android:id="@+id/swUpdates"
@ -587,7 +598,7 @@
android:id="@+id/grpVirusTotal" android:id="@+id/grpVirusTotal"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="swVirusTotal,tvVirusTotalPrivacy,etVirusTotal" /> app:constraint_referenced_ids="swVirusTotal,tvVirusTotalPrivacy,ibVirusTotal,etVirusTotal" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpUpdates" android:id="@+id/grpUpdates"

Loading…
Cancel
Save