From 227b5fd87c43b47f8f9d2a17e560ad26c459f6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Thu, 13 Aug 2020 18:16:23 +0200 Subject: [PATCH] Improve GroupManagerActivity --- .../aegis/ui/GroupManagerActivity.java | 25 +++++++++-- .../aegis/ui/PreferencesFragment.java | 2 + .../res/drawable/ic_layers_black_24dp.xml | 9 ++++ app/src/main/res/layout/activity_groups.xml | 45 ++++++++++++++++++- app/src/main/res/values/strings.xml | 2 + 5 files changed, 77 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable/ic_layers_black_24dp.xml diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java index b612b672..b8c23ae7 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/GroupManagerActivity.java @@ -3,6 +3,7 @@ package com.beemdevelopment.aegis.ui; import android.content.Intent; import android.os.Bundle; import android.view.MenuItem; +import android.view.View; import com.beemdevelopment.aegis.R; import com.beemdevelopment.aegis.ui.views.GroupAdapter; @@ -18,6 +19,8 @@ import androidx.recyclerview.widget.RecyclerView; public class GroupManagerActivity extends AegisActivity implements GroupAdapter.Listener { private GroupAdapter _adapter; private TreeSet _groups; + private RecyclerView _slotsView; + private View _emptyStateView; @Override protected void onCreate(Bundle savedInstanceState) { @@ -35,15 +38,28 @@ public class GroupManagerActivity extends AegisActivity implements GroupAdapter. // set up the recycler view _adapter = new GroupAdapter(this); - RecyclerView slotsView = findViewById(R.id.list_slots); + _slotsView= findViewById(R.id.list_slots); LinearLayoutManager layoutManager = new LinearLayoutManager(this); - slotsView.setLayoutManager(layoutManager); - slotsView.setAdapter(_adapter); - slotsView.setNestedScrollingEnabled(false); + _slotsView.setLayoutManager(layoutManager); + _slotsView.setAdapter(_adapter); + _slotsView.setNestedScrollingEnabled(false); for (String group : _groups) { _adapter.addGroup(group); } + + _emptyStateView = findViewById(R.id.vEmptyList); + updateEmptyState(); + } + + private void updateEmptyState() { + if (_adapter.getItemCount() > 0) { + _slotsView.setVisibility(View.VISIBLE); + _emptyStateView.setVisibility(View.GONE); + } else { + _slotsView.setVisibility(View.GONE); + _emptyStateView.setVisibility(View.VISIBLE); + } } @Override @@ -54,6 +70,7 @@ public class GroupManagerActivity extends AegisActivity implements GroupAdapter. .setPositiveButton(android.R.string.yes, (dialog, whichButton) -> { _groups.remove(group); _adapter.removeGroup(group); + updateEmptyState(); }) .setNegativeButton(android.R.string.no, null) .create()); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java index 5174ed2b..943e8350 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java @@ -710,6 +710,8 @@ public class PreferencesFragment extends PreferenceFragmentCompat { entry.setGroup(null); } } + + saveVault(); } private void onSelectEntriesResult(int resultCode, Intent data) { diff --git a/app/src/main/res/drawable/ic_layers_black_24dp.xml b/app/src/main/res/drawable/ic_layers_black_24dp.xml new file mode 100644 index 00000000..84f5bb50 --- /dev/null +++ b/app/src/main/res/drawable/ic_layers_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/layout/activity_groups.xml b/app/src/main/res/layout/activity_groups.xml index 671218ab..b6f0ab12 100644 --- a/app/src/main/res/layout/activity_groups.xml +++ b/app/src/main/res/layout/activity_groups.xml @@ -23,9 +23,50 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="vertical"/> - - + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b26b2bfe..03a73e31 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -287,6 +287,8 @@ There are no codes to be shown. Start adding entries by tapping the plus sign in the bottom right corner No entries found + There are no groups to be shown. Add groups in the edit screen of an entry + No groups found Done %d / %d entry