From 237e6744a5b48b17b07a2da48867bafe30097994 Mon Sep 17 00:00:00 2001 From: elena Date: Tue, 1 Nov 2022 19:22:23 +0000 Subject: [PATCH] Add option to hide icons --- .../beemdevelopment/aegis/Preferences.java | 4 ++++ .../aegis/ui/MainActivity.java | 3 +++ .../AppearancePreferencesFragment.java | 6 +++++ .../aegis/ui/views/EntryAdapter.java | 23 ++++++++++++------- .../aegis/ui/views/EntryHolder.java | 12 +++++++++- .../aegis/ui/views/EntryListView.java | 4 ++++ app/src/main/res/values/strings.xml | 2 ++ .../main/res/xml/preferences_appearance.xml | 7 ++++++ 8 files changed, 52 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java index 9d7effbb..ff23c5ee 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java +++ b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java @@ -120,6 +120,10 @@ public class Preferences { return _prefs.getBoolean("pref_account_name", true); } + public boolean isIconVisible() { + return _prefs.getBoolean("pref_show_icons", true); + } + public CodeGrouping getCodeGroupSize() { String value = _prefs.getString("pref_code_group_size_string", "GROUPING_THREES"); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index 95a4419e..789a2a5d 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -129,6 +129,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene _entryListView.setListener(this); _entryListView.setCodeGroupSize(_prefs.getCodeGroupSize()); _entryListView.setShowAccountName(_prefs.isAccountNameVisible()); + _entryListView.setShowIcon(_prefs.isIconVisible()); _entryListView.setHighlightEntry(_prefs.isEntryHighlightEnabled()); _entryListView.setPauseFocused(_prefs.isPauseFocusedEnabled()); _entryListView.setTapToReveal(_prefs.isTapToRevealEnabled()); @@ -271,6 +272,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene recreate(); } else if (data.getBooleanExtra("needsRefresh", false)) { boolean showAccountName = _prefs.isAccountNameVisible(); + boolean showIcons = _prefs.isIconVisible(); Preferences.CodeGrouping codeGroupSize = _prefs.getCodeGroupSize(); boolean highlightEntry = _prefs.isEntryHighlightEnabled(); boolean pauseFocused = _prefs.isPauseFocusedEnabled(); @@ -279,6 +281,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene ViewMode viewMode = _prefs.getCurrentViewMode(); boolean copyOnTap = _prefs.isCopyOnTapEnabled(); _entryListView.setShowAccountName(showAccountName); + _entryListView.setShowIcon(showIcons); _entryListView.setCodeGroupSize(codeGroupSize); _entryListView.setHighlightEntry(highlightEntry); _entryListView.setPauseFocused(pauseFocused); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java index 1ffca8a0..22a206e2 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/fragments/preferences/AppearancePreferencesFragment.java @@ -109,5 +109,11 @@ public class AppearancePreferencesFragment extends PreferencesFragment { getResult().putExtra("needsRefresh", true); return true; }); + + Preference showIconsPreference = requirePreference("pref_show_icons"); + showIconsPreference.setOnPreferenceChangeListener((preference, newValue) -> { + getResult().putExtra("needsRefresh", true); + return true; + }); } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java index 263bbb04..87d4a39e 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java @@ -46,6 +46,7 @@ public class EntryAdapter extends RecyclerView.Adapter private VaultEntry _focusedEntry; private Preferences.CodeGrouping _codeGroupSize; private boolean _showAccountName; + private boolean _showIcon; private boolean _highlightEntry; private boolean _tempHighlightEntry; private boolean _tapToReveal; @@ -89,6 +90,10 @@ public class EntryAdapter extends RecyclerView.Adapter _showAccountName = showAccountName; } + public void setShowIcon(boolean showIcon) { + _showIcon = showIcon; + } + public void setTapToReveal(boolean tapToReveal) { _tapToReveal = tapToReveal; } @@ -274,6 +279,7 @@ public class EntryAdapter extends RecyclerView.Adapter } else { for (EntryHolder holder : _holders) { holder.refresh(); + holder.showIcon(_showIcon); } } } @@ -403,13 +409,11 @@ public class EntryAdapter extends RecyclerView.Adapter RecyclerView.ViewHolder holder; View view = inflater.inflate(viewType, parent, false); - if (viewType == R.layout.card_footer) { - holder = new FooterView(view); - } else { - EntryHolder entryHolder = new EntryHolder(view); - _view.setPreloadView(entryHolder.getIconView()); - holder = entryHolder; + holder = viewType == R.layout.card_footer ? new FooterView(view) : new EntryHolder(view); + if (_showIcon && holder instanceof EntryHolder) { + _view.setPreloadView(((EntryHolder) holder).getIconView()); } + return holder; } @@ -431,9 +435,12 @@ public class EntryAdapter extends RecyclerView.Adapter boolean paused = _pauseFocused && entry == _focusedEntry; boolean dimmed = (_highlightEntry || _tempHighlightEntry) && _focusedEntry != null && _focusedEntry != entry; boolean showProgress = entry.getInfo() instanceof TotpInfo && ((TotpInfo) entry.getInfo()).getPeriod() != getMostFrequentPeriod(); - entryHolder.setData(entry, _codeGroupSize, _showAccountName, showProgress, hidden, paused, dimmed); + entryHolder.setData(entry, _codeGroupSize, _showAccountName, _showIcon, showProgress, hidden, paused, dimmed); entryHolder.setFocused(_selectedEntries.contains(entry)); - entryHolder.loadIcon(_view); + + if (_showIcon) { + entryHolder.loadIcon(_view); + } entryHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java index f31f5e0e..6fe2418f 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryHolder.java @@ -105,7 +105,7 @@ public class EntryHolder extends RecyclerView.ViewHolder { }); } - public void setData(VaultEntry entry, Preferences.CodeGrouping groupSize, boolean showAccountName, boolean showProgress, boolean hidden, boolean paused, boolean dimmed) { + public void setData(VaultEntry entry, Preferences.CodeGrouping groupSize, boolean showAccountName, boolean showIcon, boolean showProgress, boolean hidden, boolean paused, boolean dimmed) { _entry = entry; _hidden = hidden; _paused = paused; @@ -138,6 +138,8 @@ public class EntryHolder extends RecyclerView.ViewHolder { refreshCode(); } + showIcon(showIcon); + itemView.setAlpha(dimmed ? DIMMED_ALPHA : DEFAULT_ALPHA); } @@ -298,6 +300,14 @@ public class EntryHolder extends RecyclerView.ViewHolder { _hidden = true; } + public void showIcon(boolean show) { + if (show) { + _profileDrawable.setVisibility(View.VISIBLE); + } else { + _profileDrawable.setVisibility(View.GONE); + } + } + public void setPaused(boolean paused) { _paused = paused; 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 93ef8096..dcadff33 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 @@ -300,6 +300,10 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener { _adapter.setShowAccountName(showAccountName); } + public void setShowIcon(boolean showIcon) { + _adapter.setShowIcon(showIcon); + } + public void setHighlightEntry(boolean highlightEntry) { _adapter.setHighlightEntry(highlightEntry); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c1be0058..d7bf5bb9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -38,6 +38,8 @@ Theme View mode Language + Show icons + Display icons next to each entry Code digit grouping Select number of digits to group codes by Show the account name diff --git a/app/src/main/res/xml/preferences_appearance.xml b/app/src/main/res/xml/preferences_appearance.xml index 81f3362e..ce4b72dd 100644 --- a/app/src/main/res/xml/preferences_appearance.xml +++ b/app/src/main/res/xml/preferences_appearance.xml @@ -30,6 +30,13 @@ android:title="@string/pref_view_mode_title" app:iconSpaceReserved="false"/> + +