133873d2b41a5cd2597b20a4e88eb8942944c0f23Tyler Schultzpackage com.xtremelabs.robolectric.shadows; 26eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 36eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport android.database.DataSetObserver; 40b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisherimport android.widget.BaseAdapter; 522c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation; 622c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements; 7800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Roseimport com.xtremelabs.robolectric.internal.RealObject; 86eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 96eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport java.util.ArrayList; 106eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulzimport java.util.List; 116eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 120b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@SuppressWarnings({"UnusedDeclaration"}) 130b378afcde0200166e546c46a7642015accfce49Christian Williams & Ian Fisher@Implements(BaseAdapter.class) 14afe0a89d904a7fe2f5980b9deb26cc3240192459Christian Williamspublic class ShadowBaseAdapter { 15800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Rose @RealObject private BaseAdapter realBaseAdapter; 166eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz private final List<DataSetObserver> dataSetObservers = new ArrayList<DataSetObserver>(); 17a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala private boolean wasNotifyDataSetChangedCalled; 18543b80e595a9c887ee3cdc8b5073eeb2bf068efePhil Goodwin & Rick Kawala 19800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Rose @Implementation 20800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Rose public boolean isEmpty() { 21800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Rose return realBaseAdapter.getCount() == 0; 22800e363213bad2720ac3952bd84ec8a9b0142354Adam Cohen-Rose } 236eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 24fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin /** 25fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin * Just returns true 26adfaceabbda4c8c51f24a0def8926075bd7306adChristian Williams * 27fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin * @return true 28fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin */ 29de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 30a21d705bd12f5dee542471f733e37d5e33d68a2aChristian Williams & Tyler Schultz public boolean areAllItemsEnabled() { 31a21d705bd12f5dee542471f733e37d5e33d68a2aChristian Williams & Tyler Schultz return true; 32a21d705bd12f5dee542471f733e37d5e33d68a2aChristian Williams & Tyler Schultz } 33a21d705bd12f5dee542471f733e37d5e33d68a2aChristian Williams & Tyler Schultz 34fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin /** 354c1978eded4fefaae1c4118f3e8ce8ddc8dfe9f5Phil Goodwin * Registers the observer. 3640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams * 37fffbcf54817243f6192cf2443257d57198f1ea78Phil Goodwin * @param observer observer 38fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin */ 39de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 406eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void registerDataSetObserver(DataSetObserver observer) { 416eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz dataSetObservers.add(observer); 426eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 436eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 44fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin /** 45fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin * Unregisters the observer if it can be found. Nothing otherwise. 4640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams * 47fffbcf54817243f6192cf2443257d57198f1ea78Phil Goodwin * @param observer observer 48fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin */ 49de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 506eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void unregisterDataSetObserver(DataSetObserver observer) { 516eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz dataSetObservers.remove(observer); 526eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 536eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 54fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin /** 55fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin * Notifies the registered observers 56fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin */ 57de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 586eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void notifyDataSetChanged() { 59a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala wasNotifyDataSetChangedCalled = true; 606eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz for (DataSetObserver dataSetObserver : dataSetObservers) { 616eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz dataSetObserver.onChanged(); 626eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 636eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 646eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 65fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin /** 66fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin * Notifies the registered observers 67fa51ab3a5a2a5f25dfc223e8a37d0f8002d757bfPhil Goodwin */ 68de9feed5ddf1d91a3e76cbc71712c36a7652201eChristian Williams @Implementation 696eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz public void notifyDataSetInvalidated() { 706eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz for (DataSetObserver dataSetObserver : dataSetObservers) { 716eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz dataSetObserver.onInvalidated(); 726eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 736eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz } 746eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz 75a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala public void clearWasDataSetChangedCalledFlag() { 76a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala wasNotifyDataSetChangedCalled = false; 77a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala } 78a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala 79a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala public boolean wasNotifyDataSetChangedCalled() { 80a06e532eed1152692ba432cd19fa8a08e712d8caPhil Goodwin & Rick Kawala return wasNotifyDataSetChangedCalled; 81543b80e595a9c887ee3cdc8b5073eeb2bf068efePhil Goodwin & Rick Kawala } 826eedf728138e6f79fa898ff3e31bf61c9b1151dChristian Williams & Tyler Schulz} 83