132fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhampackage com.xtremelabs.robolectric.shadows; 232fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham 332fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhamimport android.content.Context; 432fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhamimport android.webkit.CookieSyncManager; 532fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham 632fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhamimport com.xtremelabs.robolectric.Robolectric; 732fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhamimport com.xtremelabs.robolectric.internal.Implementation; 832fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhamimport com.xtremelabs.robolectric.internal.Implements; 932fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham 1032fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham/** 1132fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham * Shadows the {@code android.webkit.CookieSyncManager} class. 1232fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham */ 1332fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham@Implements(CookieSyncManager.class) 1432fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowhampublic class ShadowCookieSyncManager { 1532fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham 1632fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham private static CookieSyncManager sRef; 177598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 1832fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham private boolean synced = false; 1932fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham 2032fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham @Implementation 217598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public static synchronized CookieSyncManager createInstance(Context ctx) { 227598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz if (sRef == null) { 237598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz sRef = Robolectric.newInstanceOf(CookieSyncManager.class); 247598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 257598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return sRef; 2632fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham } 277598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 2832fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham @Implementation 2932fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham public static CookieSyncManager getInstance() { 307598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz if (sRef == null) { 317598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz throw new IllegalStateException("createInstance must be called first"); 327598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 337598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return sRef; 3432fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham } 357598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 3632fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham @Implementation 377598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public void sync() { 387598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz synced = true; 397598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 407598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz 417598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz public boolean synced() { 427598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz return synced; 437598f0c0b1cce3bf1902772ea09139ef98083864Ryan Richard & Tyler Schultz } 44d10641d5321f5bf7d94e015fb4b7ef41c8ddd710Lenny Turetsky & Tim Labeeuw 45d10641d5321f5bf7d94e015fb4b7ef41c8ddd710Lenny Turetsky & Tim Labeeuw public void reset() { 46d10641d5321f5bf7d94e015fb4b7ef41c8ddd710Lenny Turetsky & Tim Labeeuw synced = false; 47d10641d5321f5bf7d94e015fb4b7ef41c8ddd710Lenny Turetsky & Tim Labeeuw } 4832fa4fc29ce30047ce5c3c00e3eea5cf1c27b056adriancowham} 49