From 86c0638fa065fd74deff028a5f70ffa39f154ab0 Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 27 Jul 2019 18:37:29 +0200 Subject: [PATCH] Small behavior improvement --- .../faircode/email/FragmentDialogFolder.java | 62 ++++++++++++------- .../main/res/layout/dialog_folder_select.xml | 12 ++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 51 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogFolder.java b/app/src/main/java/eu/faircode/email/FragmentDialogFolder.java index 8600f4cf40..2372929776 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogFolder.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogFolder.java @@ -24,6 +24,7 @@ import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -43,6 +44,7 @@ public class FragmentDialogFolder extends DialogFragmentEx { String title = getArguments().getString("title"); final View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_folder_select, null); + final TextView tvNoFolder = dview.findViewById(R.id.tvNoFolder); final RecyclerView rvFolder = dview.findViewById(R.id.rvFolder); final ContentLoadingProgressBar pbWait = dview.findViewById(R.id.pbWait); @@ -50,15 +52,24 @@ public class FragmentDialogFolder extends DialogFragmentEx { LinearLayoutManager llm = new LinearLayoutManager(getContext()); rvFolder.setLayoutManager(llm); - rvFolder.setVisibility(View.GONE); - pbWait.setVisibility(View.VISIBLE); - Bundle args = new Bundle(); args.putLong("account", getArguments().getLong("account")); new SimpleTask>() { @Override - protected List onExecute(Context context, Bundle args) { + protected void onPreExecute(Bundle args) { + tvNoFolder.setVisibility(View.GONE); + rvFolder.setVisibility(View.GONE); + pbWait.setVisibility(View.VISIBLE); + } + + @Override + protected void onPostExecute(Bundle args) { + pbWait.setVisibility(View.GONE); + } + + @Override + protected List onExecute(Context context, Bundle args) throws Throwable { long account = args.getLong("account"); DB db = DB.getInstance(context); @@ -70,26 +81,29 @@ public class FragmentDialogFolder extends DialogFragmentEx { if (folders == null) folders = new ArrayList<>(); - long account = args.getLong("account"); - AdapterFolder adapter = new AdapterFolder(getContext(), getActivity(), - account, false, new AdapterFolder.IFolderSelectedListener() { - @Override - public void onFolderSelected(TupleFolderEx folder) { - Bundle args = getArguments(); - args.putLong("folder", folder.id); - - sendResult(RESULT_OK); - dismiss(); - } - }); - - rvFolder.setAdapter(adapter); - - adapter.setDisabled(Helper.fromLongArray(getArguments().getLongArray("disabled"))); - adapter.set(folders); - - pbWait.setVisibility(View.GONE); - rvFolder.setVisibility(View.VISIBLE); + if (folders.size() == 0) + tvNoFolder.setVisibility(View.VISIBLE); + else { + long account = args.getLong("account"); + AdapterFolder adapter = new AdapterFolder(getContext(), getActivity(), + account, false, new AdapterFolder.IFolderSelectedListener() { + @Override + public void onFolderSelected(TupleFolderEx folder) { + Bundle args = getArguments(); + args.putLong("folder", folder.id); + + sendResult(RESULT_OK); + dismiss(); + } + }); + + rvFolder.setAdapter(adapter); + + adapter.setDisabled(Helper.fromLongArray(getArguments().getLongArray("disabled"))); + adapter.set(folders); + + rvFolder.setVisibility(View.VISIBLE); + } } @Override diff --git a/app/src/main/res/layout/dialog_folder_select.xml b/app/src/main/res/layout/dialog_folder_select.xml index a7af617d18..dac0b2965d 100644 --- a/app/src/main/res/layout/dialog_folder_select.xml +++ b/app/src/main/res/layout/dialog_folder_select.xml @@ -4,6 +4,18 @@ android:layout_width="match_parent" android:layout_height="match_parent"> + + Conversation %1$s Unified inbox folders No messages + No folders Re: %1$s Fwd: %1$s