From 3b1cfbb7433d215414363aa5c9dba814a9b7559a Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 5 May 2019 11:45:41 +0200 Subject: [PATCH] Added error FABs --- .../eu/faircode/email/FragmentFolders.java | 18 +++++++++++++++ .../eu/faircode/email/FragmentMessages.java | 22 +++++++++++++------ app/src/main/res/layout/fragment_folders.xml | 11 ++++++++++ app/src/main/res/layout/fragment_messages.xml | 11 ++++++++++ app/src/main/res/values/strings.xml | 1 - 5 files changed, 55 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java index fc80ef569f..2701f361ca 100644 --- a/app/src/main/java/eu/faircode/email/FragmentFolders.java +++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java @@ -66,6 +66,7 @@ public class FragmentFolders extends FragmentBase { private Group grpHintSync; private Group grpReady; private FloatingActionButton fab; + private FloatingActionButton fabError; private long account; private boolean show_hidden = false; @@ -100,6 +101,7 @@ public class FragmentFolders extends FragmentBase { grpHintSync = view.findViewById(R.id.grpHintSync); grpReady = view.findViewById(R.id.grpReady); fab = view.findViewById(R.id.fab); + fabError = view.findViewById(R.id.fabError); // Wire controls @@ -181,6 +183,15 @@ public class FragmentFolders extends FragmentBase { } }); + fabError.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction(); + fragmentTransaction.replace(R.id.content_frame, new FragmentAccounts()).addToBackStack("accounts"); + fragmentTransaction.commit(); + } + }); + if (account < 0) fab.setOnLongClickListener(new View.OnLongClickListener() { @Override @@ -214,6 +225,7 @@ public class FragmentFolders extends FragmentBase { grpReady.setVisibility(View.GONE); pbWait.setVisibility(View.VISIBLE); fab.hide(); + fabError.hide(); return view; } @@ -276,6 +288,12 @@ public class FragmentFolders extends FragmentBase { @Override public void onChanged(@Nullable EntityAccount account) { setSubtitle(account == null ? null : account.name); + + if (account != null && account.error != null) + fabError.show(); + else + fabError.hide(); + if (account == null) fab.hide(); else diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 597dd4fadf..2d7c0ac98f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -124,6 +124,7 @@ public class FragmentMessages extends FragmentBase { private Group grpReady; private FloatingActionButton fab; private FloatingActionButton fabMore; + private FloatingActionButton fabError; private long account; private long folder; @@ -271,6 +272,7 @@ public class FragmentMessages extends FragmentBase { grpReady = view.findViewById(R.id.grpReady); fab = view.findViewById(R.id.fab); fabMore = view.findViewById(R.id.fabMore); + fabError = view.findViewById(R.id.fabError); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); @@ -516,6 +518,13 @@ public class FragmentMessages extends FragmentBase { } }); + fabError.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onMenuFolders(account); + } + }); + addBackPressedListener(onBackPressedListener); // Initialize @@ -531,6 +540,7 @@ public class FragmentMessages extends FragmentBase { fab.hide(); fabMore.hide(); + fabError.hide(); if (viewType == AdapterMessage.ViewType.THREAD) { ViewModelMessages model = ViewModelProviders.of(getActivity()).get(ViewModelMessages.class); @@ -2195,6 +2205,11 @@ public class FragmentMessages extends FragmentBase { else setSubtitle(getString(R.string.title_name_count, name, nf.format(unseen))); + if (errors) + fabError.show(); + else + fabError.hide(); + // Auto scroll if (lastUnseen == null || lastUnseen != unseen) { if ((!refreshing && manual) || @@ -2204,13 +2219,6 @@ public class FragmentMessages extends FragmentBase { lastUnseen = unseen; } - // Show errors - if (errors && !refreshing && swipeRefresh.isRefreshing()) - if (folders.size() == 1) - Snackbar.make(view, folders.get(0).error, Snackbar.LENGTH_LONG).show(); - else - Snackbar.make(view, R.string.title_sync_errors, Snackbar.LENGTH_LONG).show(); - refresh = sync; swipeRefresh.setEnabled(pull && refresh); swipeRefresh.setRefreshing(refreshing); diff --git a/app/src/main/res/layout/fragment_folders.xml b/app/src/main/res/layout/fragment_folders.xml index 083e181b50..d9299e57b3 100644 --- a/app/src/main/res/layout/fragment_folders.xml +++ b/app/src/main/res/layout/fragment_folders.xml @@ -137,4 +137,15 @@ android:tint="@color/colorActionForeground" android:tooltipText="@string/title_add" app:backgroundTint="?attr/colorAccent" /> + + diff --git a/app/src/main/res/layout/fragment_messages.xml b/app/src/main/res/layout/fragment_messages.xml index ed099fe1a4..f5fdda1cb7 100644 --- a/app/src/main/res/layout/fragment_messages.xml +++ b/app/src/main/res/layout/fragment_messages.xml @@ -238,4 +238,15 @@ android:tint="@color/colorActionForeground" android:tooltipText="@string/title_compose" app:backgroundTint="?attr/colorAccent" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6a22e93849..cbf8b269cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -294,7 +294,6 @@ This provider does not support push messages. This will delay reception of new messages and increase battery usage. This provider does not support UTF-8 Synchronization errors since %1$s - Synchronizing some folders failed An identity is required to send messages A drafts folder is required to send messages Delete this account permanently?