diff -r ed1d52c5aa94 -r 763d3961400b project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ObservableTreeMapAdapter.java --- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ObservableTreeMapAdapter.java Sat Aug 18 00:22:33 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -package org.hedgewars.hedgeroid.netplay; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; - -import android.database.DataSetObserver; -import android.widget.BaseAdapter; - -public abstract class ObservableTreeMapAdapter extends BaseAdapter { - private boolean sourceChanged = true; - private List entries = new ArrayList(); - private ObservableTreeMap source; - - private DataSetObserver observer = new DataSetObserver() { - @Override - public void onChanged() { - sourceChanged = true; - notifyDataSetChanged(); - } - - @Override - public void onInvalidated() { - invalidate(); - } - }; - - abstract protected Comparator getEntryOrder(); - - protected List getEntries() { - if(sourceChanged) { - entries.clear(); - entries.addAll(source.getMap().values()); - Collections.sort(entries, getEntryOrder()); - sourceChanged = false; - } - return entries; - } - - public int getCount() { - return getEntries().size(); - } - - public void setSource(ObservableTreeMap source) { - if(this.source != null) { - this.source.unregisterObserver(observer); - } - this.source = source; - this.source.registerObserver(observer); - sourceChanged = true; - notifyDataSetChanged(); - } - - public void invalidate() { - if(source != null) { - source.unregisterObserver(observer); - } - source = null; - notifyDataSetInvalidated(); - } -} \ No newline at end of file