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