# fixed lifecycle bug in ManagedRaceListFragment

This commit is contained in:
Lukas Niemeier committed 2013-02-18 15:04:05 +01:00
1 parent 1194542724
commit a84182c32c
1 file changed
+25 -12
@@ -62,6 +62,13 @@ public class ManagedRaceListFragment extends ListFragment implements JuryFlagCli
adapter.getFilter().filter("");
}
@Override
public void onStart() {
super.onStart();
unregisterAllRaces();
registerAllRaces();
}
@Override
public void onStop() {
unregisterAllRaces();
@@ -74,14 +81,25 @@ public class ManagedRaceListFragment extends ListFragment implements JuryFlagCli
super.onDestroy();
}
public void setupOn(Collection<ManagedRace> listOfManagedRaces) {
unregisterAllRaces();
// save races
for (ManagedRace managedRace : listOfManagedRaces) {
managedRacesById.put(managedRace.getId(), managedRace);
private void registerAllRaces() {
for (ManagedRace managedRace : managedRacesById.values()) {
managedRace.getState().registerListener(this);
}
}
private void unregisterAllRaces() {
for (ManagedRace managedRace : managedRacesById.values()) {
managedRace.getState().unregisterListener(this);
}
}
public void setupOn(Collection<ManagedRace> listOfManagedRaces) {
unregisterAllRaces();
managedRacesById.clear();
for (ManagedRace managedRace : listOfManagedRaces) {
managedRacesById.put(managedRace.getId(), managedRace);
}
registerAllRaces();
// initialize view
initListElements(false);
@@ -92,13 +110,8 @@ public class ManagedRaceListFragment extends ListFragment implements JuryFlagCli
}
}
private void unregisterAllRaces() {
for (ManagedRace managedRace : managedRacesById.values()) {
managedRace.getState().unregisterListener(this);
}
}
public void onRaceStateChanged(RaceState state) {
ExLog.i("!!!!!!!!!", "State changed");
notifyDataChanged();
}