Added FAQ about downloading Outlook contacts

pull/213/head
M66B 2 years ago
parent e04e59be1c
commit 3e4379ce75

@ -393,6 +393,7 @@ Anything on this list is in random order and *might* be added in the near future
* [(190) How do I use OpenAI (ChatGPT)?](#user-content-faq190) * [(190) How do I use OpenAI (ChatGPT)?](#user-content-faq190)
* [(191) How do I download and keep older messages on my device?](#user-content-faq191) * [(191) How do I download and keep older messages on my device?](#user-content-faq191)
* [(192) How can I resolve 'Couldn't connect to host, port: ...; timeout ...;' ?](#user-content-faq192) * [(192) How can I resolve 'Couldn't connect to host, port: ...; timeout ...;' ?](#user-content-faq192)
* [(193) How can I import Outlook contacts?](#user-content-faq193)
[I have another question.](#user-content-get-support) [I have another question.](#user-content-get-support)
@ -5371,6 +5372,23 @@ If you are using a VPN, firewall, ad blocker, or similar, please try to disable
<br> <br>
<a name="faq193"></a>
**(193) How can I import Outlook contacts?**
If there are one or more Outlook or Office 365 accounts configured,
there will be a button in the main settings screen in setup step 2 to download Outlook contacts (since version 1.2076).
After tapping on this button, you can select the account to download contacts for.
Microsoft will ask for permission to read the contacts,
and after granting this permission, the app will download the contacts with an email address into the local contacts' database.
In the message editor, type the first few letters of the email address or name in any of the email address fields, and the downloaded addresses will be suggested.
For privacy and security reasons, FairEmail doesn't have permissions to write into the Android address book, and also not to write in the address book of Outlook.
This means that contacts can be downloaded as local contacts only, and can't be synchronized two ways.
If you are looking to synchronize your Outlook contacts with the Android address book, you should look for a sync app in the Play Store which can do this.
<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)

@ -125,6 +125,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
private Button btnPermissions; private Button btnPermissions;
private TextView tvPermissionsWhy; private TextView tvPermissionsWhy;
private TextView tvImportContacts; private TextView tvImportContacts;
private ImageButton ibGraphContacts;
private Button btnGraphContacts; private Button btnGraphContacts;
private TextView tvDozeDone; private TextView tvDozeDone;
@ -154,6 +155,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
private Button btnSupport; private Button btnSupport;
private ImageButton ibExtra; private ImageButton ibExtra;
private Group grpGraphContacts;
private Group grpBackgroundRestricted; private Group grpBackgroundRestricted;
private Group grpDataSaver; private Group grpDataSaver;
private Group grpSupport; private Group grpSupport;
@ -216,6 +218,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
btnPermissions = view.findViewById(R.id.btnPermissions); btnPermissions = view.findViewById(R.id.btnPermissions);
tvPermissionsWhy = view.findViewById(R.id.tvPermissionsWhy); tvPermissionsWhy = view.findViewById(R.id.tvPermissionsWhy);
tvImportContacts = view.findViewById(R.id.tvImportContacts); tvImportContacts = view.findViewById(R.id.tvImportContacts);
ibGraphContacts = view.findViewById(R.id.ibGraphContacts);
btnGraphContacts = view.findViewById(R.id.btnGraphContacts); btnGraphContacts = view.findViewById(R.id.btnGraphContacts);
tvDozeDone = view.findViewById(R.id.tvDozeDone); tvDozeDone = view.findViewById(R.id.tvDozeDone);
@ -245,6 +248,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
btnSupport = view.findViewById(R.id.btnSupport); btnSupport = view.findViewById(R.id.btnSupport);
ibExtra = view.findViewById(R.id.ibExtra); ibExtra = view.findViewById(R.id.ibExtra);
grpGraphContacts = view.findViewById(R.id.grpGraphContacts);
grpBackgroundRestricted = view.findViewById(R.id.grpBackgroundRestricted); grpBackgroundRestricted = view.findViewById(R.id.grpBackgroundRestricted);
grpDataSaver = view.findViewById(R.id.grpDataSaver); grpDataSaver = view.findViewById(R.id.grpDataSaver);
grpSupport = view.findViewById(R.id.grpSupport); grpSupport = view.findViewById(R.id.grpSupport);
@ -586,6 +590,13 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
} }
}); });
ibGraphContacts.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Helper.viewFAQ(v.getContext(), 193);
}
});
btnGraphContacts.setOnClickListener(new View.OnClickListener() { btnGraphContacts.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
@ -846,10 +857,10 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
tvDozeDone.setCompoundDrawables(null, null, null, null); tvDozeDone.setCompoundDrawables(null, null, null, null);
btnDoze.setEnabled(false); btnDoze.setEnabled(false);
tvDoze12.setVisibility(View.GONE); tvDoze12.setVisibility(View.GONE);
btnGraphContacts.setVisibility(View.GONE);
btnInbox.setEnabled(false); btnInbox.setEnabled(false);
grpGraphContacts.setVisibility(View.GONE);
grpBackgroundRestricted.setVisibility(View.GONE); grpBackgroundRestricted.setVisibility(View.GONE);
grpDataSaver.setVisibility(View.GONE); grpDataSaver.setVisibility(View.GONE);
tvStamina.setVisibility(View.GONE); tvStamina.setVisibility(View.GONE);
@ -931,7 +942,7 @@ public class FragmentSetup extends FragmentBase implements SharedPreferences.OnS
break; break;
} }
btnGraphContacts.setVisibility(outlook ? View.VISIBLE : View.GONE); grpGraphContacts.setVisibility(outlook ? View.VISIBLE : View.GONE);
prefs.edit().putBoolean("has_accounts", done).apply(); prefs.edit().putBoolean("has_accounts", done).apply();
} }

@ -677,6 +677,17 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvPermissionsWhy" /> app:layout_constraintTop_toBottomOf="@id/tvPermissionsWhy" />
<ImageButton
android:id="@+id/ibGraphContacts"
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/tvImportContacts"
app:srcCompat="@drawable/twotone_info_24" />
<Button <Button
android:id="@+id/btnGraphContacts" android:id="@+id/btnGraphContacts"
style="?android:attr/buttonStyleSmall" style="?android:attr/buttonStyleSmall"
@ -688,6 +699,12 @@
android:text="@string/title_setup_import_graph_contact" android:text="@string/title_setup_import_graph_contact"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvImportContacts" /> app:layout_constraintTop_toBottomOf="@id/tvImportContacts" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpGraphContacts"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="ibGraphContacts,btnGraphContacts" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>

Loading…
Cancel
Save