Add ability to select all tokens

This commit is contained in:
Michael Schättgen 2023-09-24 01:03:30 +02:00
parent 92e9e047a7
commit 1c86c5fd51
5 changed files with 33 additions and 0 deletions

View file

@ -1149,6 +1149,10 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
_entryListView.setGroups(_vaultManager.getVault().getUsedGroups());
mode.finish();
});
} else if (itemId == R.id.action_select_all) {
_selectedEntries = _entryListView.selectAllEntries();
setFavoriteMenuItemVisiblity();
setIsMultipleSelected(_selectedEntries.size() > 1);
} else if (itemId == R.id.action_assign_icons) {
startAssignIconsActivity(CODE_ASSIGN_ICONS, _selectedEntries);
mode.finish();

View file

@ -693,6 +693,23 @@ public class EntryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
updateDraggableStatus();
}
public List<VaultEntry> selectAllEntries() {
_selectedEntries.clear();
for (VaultEntry entry: _shownEntries) {
for (EntryHolder holder: _holders) {
if (holder.getEntry() == entry) {
holder.setFocused(true);
}
}
_selectedEntries.add(entry);
updateDraggableStatus();
}
return new ArrayList<>(_selectedEntries);
}
public void deselectAllEntries() {
for (VaultEntry entry: _selectedEntries) {
for (EntryHolder holder : _holders) {

View file

@ -191,6 +191,10 @@ public class EntryListView extends Fragment implements EntryAdapter.Listener {
_adapter.setCopyBehavior(copyBehavior);
}
public List<VaultEntry> selectAllEntries() {
return _adapter.selectAllEntries();
}
public void setActionModeState(boolean enabled, VaultEntry entry) {
_touchCallback.setSelectedEntry(entry);
_touchCallback.setIsLongPressDragEnabled(enabled && _adapter.isDragAndDropAllowed());