@@ -282,6 +282,8 @@ private void initializeGroups() {
282
282
GroupPlaceholderType placeholderType = GroupPlaceholderType .NO_GROUP ;
283
283
addChipTo (_groupChip , new VaultGroupModel (this , placeholderType ));
284
284
addSaveChip (_groupChip );
285
+
286
+ _groupChip .setSingleSelection (!_prefs .isGroupMultiselectEnabled ());
285
287
}
286
288
287
289
private Set <UUID > cleanGroupFilter (Set <UUID > groupFilter ) {
@@ -313,29 +315,20 @@ private void addChipTo(ChipGroup chipGroup, VaultGroupModel group) {
313
315
}
314
316
315
317
chip .setOnCheckedChangeListener ((group1 , isChecked ) -> {
316
- Set <UUID > groupFilter = new HashSet <>();
317
- if (_actionMode != null ) {
318
- _actionMode .finish ();
319
- }
320
-
321
318
setSaveChipVisibility (true );
322
319
323
- if (!isChecked ) {
320
+ // Reset group filter if last checked group gets unchecked
321
+ if (!isChecked && _groupFilter .size () == 1 ) {
322
+ Set <UUID > groupFilter = new HashSet <>();
323
+
324
324
group1 .setChecked (false );
325
325
_groupFilter = groupFilter ;
326
326
_entryListView .setGroupFilter (groupFilter );
327
327
return ;
328
328
}
329
329
330
- Object chipTag = group1 .getTag ();
331
- if (chipTag == GroupPlaceholderType .NO_GROUP ) {
332
- groupFilter .add (null );
333
- } else {
334
- groupFilter = getGroupFilter (chipGroup );
335
- }
336
-
337
- _groupFilter = groupFilter ;
338
- _entryListView .setGroupFilter (groupFilter );
330
+ _groupFilter = getGroupFilter (chipGroup );
331
+ _entryListView .setGroupFilter (_groupFilter );
339
332
});
340
333
341
334
chipGroup .addView (chip );
@@ -368,6 +361,7 @@ private void setSaveChipVisibility(boolean visible) {
368
361
369
362
private static Set <UUID > getGroupFilter (ChipGroup chipGroup ) {
370
363
return chipGroup .getCheckedChipIds ().stream ()
364
+ .filter (Objects ::nonNull )
371
365
.map (i -> {
372
366
Chip chip = chipGroup .findViewById (i );
373
367
if (chip .getTag () instanceof VaultGroupModel ) {
@@ -377,7 +371,6 @@ private static Set<UUID> getGroupFilter(ChipGroup chipGroup) {
377
371
378
372
return null ;
379
373
})
380
- .filter (Objects ::nonNull )
381
374
.collect (Collectors .toSet ());
382
375
}
383
376
0 commit comments