blob: 98c3f82a793652b51da0b7881dc9ca1c43f4c18c [file] [log] [blame]
package com.xtremelabs.robolectric.shadows;
import android.database.DataSetObserver;
import android.widget.BaseAdapter;
import com.xtremelabs.robolectric.internal.Implementation;
import com.xtremelabs.robolectric.internal.Implements;
import com.xtremelabs.robolectric.internal.RealObject;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings({"UnusedDeclaration"})
@Implements(BaseAdapter.class)
public class ShadowBaseAdapter {
@RealObject private BaseAdapter realBaseAdapter;
private final List<DataSetObserver> dataSetObservers = new ArrayList<DataSetObserver>();
private boolean wasNotifyDataSetChangedCalled;
@Implementation
public boolean isEmpty() {
return realBaseAdapter.getCount() == 0;
}
/**
* Just returns true
*
* @return true
*/
@Implementation
public boolean areAllItemsEnabled() {
return true;
}
/**
* Registers the observer.
*
* @param observer observer
*/
@Implementation
public void registerDataSetObserver(DataSetObserver observer) {
dataSetObservers.add(observer);
}
/**
* Unregisters the observer if it can be found. Nothing otherwise.
*
* @param observer observer
*/
@Implementation
public void unregisterDataSetObserver(DataSetObserver observer) {
dataSetObservers.remove(observer);
}
/**
* Notifies the registered observers
*/
@Implementation
public void notifyDataSetChanged() {
wasNotifyDataSetChangedCalled = true;
for (DataSetObserver dataSetObserver : dataSetObservers) {
dataSetObserver.onChanged();
}
}
/**
* Notifies the registered observers
*/
@Implementation
public void notifyDataSetInvalidated() {
for (DataSetObserver dataSetObserver : dataSetObservers) {
dataSetObserver.onInvalidated();
}
}
public void clearWasDataSetChangedCalledFlag() {
wasNotifyDataSetChangedCalled = false;
}
public boolean wasNotifyDataSetChangedCalled() {
return wasNotifyDataSetChangedCalled;
}
}