mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-04 15:40:02 +00:00
[Android] Prevent duplicate duplicate items from being in the game list at one time.
Previously it was possible for a game with the same path and name to be in the list as another. This is annoying because duplicates ae (obviously) no different from the initial item. This prevents duplicates from entering the list. The way this works is: 1. We get the final list of items to add to the list. 2. Loop through it using two indices, which, for this explanation I'll call [item] and [itemAfter] We compare path name at item with index [item] and the path name at item with index [itemAfter] To phrase this numerically comparison works like so: for (int i = 0; i < listSize; i++) { if (i+1 < listSize) item[i].getPath().equals(item[i+1].getPath()) } 3. For each path comparison that is true, remove item at [indexNext].
This commit is contained in:
parent
a9d634086c
commit
07d729daa2
@ -76,6 +76,21 @@ public final class GameListFragment extends Fragment
|
||||
}
|
||||
}
|
||||
Collections.sort(fls);
|
||||
|
||||
// Remove any duplicate items from the list.
|
||||
// We don't need to index these in the game list more than once.
|
||||
//
|
||||
// This works by comparing the paths of items in the file list for equality,
|
||||
// so there should be no worries about accidentally removing a valid game.
|
||||
for (int i = 0; i < fls.size(); i++)
|
||||
{
|
||||
int indexNext = i+1;
|
||||
|
||||
if (indexNext < fls.size() && fls.get(indexNext).getPath().contains(fls.get(i).getPath()))
|
||||
{
|
||||
fls.remove(indexNext);
|
||||
}
|
||||
}
|
||||
|
||||
mGameAdapter = new GameListAdapter(mMe, R.layout.gamelist_layout, fls);
|
||||
mMainList.setAdapter(mGameAdapter);
|
||||
|
Loading…
x
Reference in New Issue
Block a user