From 6480fef315eb465c8c350cec27ccb49cf4a3617d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Sat, 7 Sep 2019 01:04:03 +0200 Subject: [PATCH] Add placeholder for empty recyclerview --- .../aegis/ui/views/EntryListView.java | 18 +++++++- .../res/layout/fragment_entry_list_view.xml | 43 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 + 3 files changed, 62 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java index a385b5c0..febb6bf8 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryListView.java @@ -8,7 +8,7 @@ import android.view.View; import android.view.ViewGroup; import android.view.animation.AnimationUtils; import android.view.animation.LayoutAnimationController; -import android.widget.Toast; +import android.widget.LinearLayout; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.SortCategory; @@ -47,6 +47,7 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { private PeriodProgressBar _progressBar; private boolean _showProgress; private ViewMode _viewMode; + private LinearLayout _emptyStateView; private UiRefresher _refresher; @@ -107,6 +108,8 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { } }); + _emptyStateView = view.findViewById(R.id.vEmptyList); + return view; } @@ -218,14 +221,17 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { public void addEntry(DatabaseEntry entry) { _adapter.addEntry(entry); + updateEmptyState(); } public void addEntries(List entries) { _adapter.addEntries(entries); + updateEmptyState(); } public void removeEntry(DatabaseEntry entry) { _adapter.removeEntry(entry); + updateEmptyState(); } public void clearEntries() { @@ -267,6 +273,16 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { _recyclerView.addItemDecoration(_dividerDecoration); } + private void updateEmptyState() { + if (_adapter.getItemCount() > 0) { + _recyclerView.setVisibility(View.VISIBLE); + _emptyStateView.setVisibility(View.GONE); + } else { + _recyclerView.setVisibility(View.GONE); + _emptyStateView.setVisibility(View.VISIBLE); + } + } + public interface Listener { void onEntryClick(DatabaseEntry entry); void onEntryMove(DatabaseEntry entry1, DatabaseEntry entry2); diff --git a/app/src/main/res/layout/fragment_entry_list_view.xml b/app/src/main/res/layout/fragment_entry_list_view.xml index a9217038..6065a627 100644 --- a/app/src/main/res/layout/fragment_entry_list_view.xml +++ b/app/src/main/res/layout/fragment_entry_list_view.xml @@ -22,4 +22,47 @@ android:id="@+id/rvKeyProfiles" android:layoutAnimation="@anim/layout_animation_fall_down" android:layout_weight="1"/> + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2865d86f..b9a8eb7a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -171,4 +171,6 @@ Lock status Aegis can create a persistent notification to notify you when the vault is locked Vault is unlocked. Tap here to lock. + There are no codes to be shown. Start adding entries by tapping the plus sign in the bottom right corner + No entries found