19ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzpackage com.xtremelabs.robolectric.shadows;
29ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
39ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.content.Context;
49ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.util.AttributeSet;
5258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Graftonimport android.webkit.WebChromeClient;
622ae9206e660fd187ff79a529452dbe2bab504fdRich Humphreyimport android.webkit.WebSettings;
7f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesiimport android.webkit.TestWebSettings;
89ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzimport android.webkit.WebView;
9fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphreyimport android.webkit.WebViewClient;
1022ae9206e660fd187ff79a529452dbe2bab504fdRich Humphreyimport com.xtremelabs.robolectric.Robolectric;
1122c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implementation;
1222c22c9aa4ca68c2deac6164edc1d82bc9645310Christian Williams & Phil Goodwinimport com.xtremelabs.robolectric.internal.Implements;
139ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
1440c6251719cccc0a84ae99c976d2836b14374ce6Christian Williamsimport java.util.HashMap;
1540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
169ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz@SuppressWarnings({"UnusedDeclaration"})
179ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz@Implements(WebView.class)
189ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultzpublic class ShadowWebView extends ShadowAbsoluteLayout {
199ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz
206cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    private String lastUrl;
2140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    private HashMap<String, Object> javascriptInterfaces = new HashMap<String, Object>();
22f99fa781cfd614512c48db52387c825d4f167f31Michael Portuesi    private WebSettings webSettings = new TestWebSettings();
23fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    private WebViewClient webViewClient = null;
2437c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    private boolean runFlag = false;
258455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    private boolean clearCacheCalled = false;
268455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    private boolean clearCacheIncludeDiskFiles = false;
279677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearFormDataCalled = false;
289677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearHistoryCalled = false;
299677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean clearViewCalled = false;
309677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    private boolean destroyCalled = false;
31258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    private WebChromeClient webChromeClient;
323892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    private boolean canGoBack;
333892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    private int goBackInvocations = 0;
344972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    private ShadowWebView.LoadData lastLoadData;
354972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    private LoadDataWithBaseURL lastLoadDataWithBaseURL;
369b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    private WebView.PictureListener pictureListener;
376cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
383892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Override
393892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void __constructor__(Context context, AttributeSet attributeSet) {
409ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz        super.__constructor__(context, attributeSet);
419ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz    }
426cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz
436cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    @Implementation
446cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public void loadUrl(String url) {
456cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        lastUrl = url;
466cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
4740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
48e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    @Implementation
494972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) {
504972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        lastLoadDataWithBaseURL = new LoadDataWithBaseURL(baseUrl, data, mimeType, encoding, historyUrl);
514972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    }
524972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
534972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    @Implementation
54e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    public void loadData(String data, String mimeType, String encoding) {
554972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        lastLoadData = new LoadData(data, mimeType, encoding);
56e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
57e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
5831811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz    /**
5931811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     * Non-Android accessor.
6031811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     *
6131811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     * @return the last loaded url
6231811e1435d6c72ee6c324ca49769159e80fcd93Tyler Schultz     */
636cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    public String getLastLoadedUrl() {
646cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz        return lastUrl;
656cf9d6f657e61d727afc221dd157ae6ca41714baTyler Schultz    }
6640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
672da690d2d6881bf346550347b71e6ad0d7755597Farand Koo    public void clearLastLoadedUrl() {
682da690d2d6881bf346550347b71e6ad0d7755597Farand Koo        lastUrl = null;
692da690d2d6881bf346550347b71e6ad0d7755597Farand Koo    }
702da690d2d6881bf346550347b71e6ad0d7755597Farand Koo
7140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    @Implementation
72fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public WebSettings getSettings() {
7340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return webSettings;
74fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
75fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey
76fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    @Implementation
77fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public void setWebViewClient(WebViewClient client) {
7840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        webViewClient = client;
79fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
8040c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
81258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    @Implementation
82258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    public void setWebChromeClient(WebChromeClient client) {
83258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton        webChromeClient = client;
84258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    }
85258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton
86fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public WebViewClient getWebViewClient() {
8740c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return webViewClient;
88fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
899b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi
909b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    @Implementation
919b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    public void setPictureListener(WebView.PictureListener listener) {
929b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    	pictureListener = listener;
939b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    }
949b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi
959b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    public WebView.PictureListener getPictureListener() {
969b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    	return pictureListener;
979b01bc1fb0b241eafdbe239f56b95a2690aca727Michael Portuesi    }
9840c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
99fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    @Implementation
100fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public void addJavascriptInterface(Object obj, String interfaceName) {
10140c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        javascriptInterfaces.put(interfaceName, obj);
102fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    }
10340c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams
104fbdac5127ba5b6b879408a0a6ae4ac30e2456d8cRich Humphrey    public Object getJavascriptInterface(String interfaceName) {
10540c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams        return javascriptInterfaces.get(interfaceName);
10640c6251719cccc0a84ae99c976d2836b14374ce6Christian Williams    }
1073892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
10837c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    @Implementation
1099677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearCache(boolean includeDiskFiles) {
1103892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearCacheCalled = true;
1113892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearCacheIncludeDiskFiles = includeDiskFiles;
1128455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
1133892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1148455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    public boolean wasClearCacheCalled() {
1153892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearCacheCalled;
1168455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
1173892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1188455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    public boolean didClearCacheIncludeDiskFiles() {
1193892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearCacheIncludeDiskFiles;
1208455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    }
1213892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1228455cc9031f98a53ad469ebe4b9d92511af8b54fRich Humphrey    @Implementation
1239677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearFormData() {
1243892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearFormDataCalled = true;
1259677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1263892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1279677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearFormDataCalled() {
1283892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearFormDataCalled;
1299677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1303892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1319677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1329677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearHistory() {
1333892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearHistoryCalled = true;
1349677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1353892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1369677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearHistoryCalled() {
1373892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearHistoryCalled;
1389677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1393892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1409677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1419677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void clearView() {
1423892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        clearViewCalled = true;
1439677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1443892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1459677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasClearViewCalled() {
1463892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return clearViewCalled;
1473892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1483892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1499677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    @Implementation
1509677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public void destroy() {
1513892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        destroyCalled = true;
1529677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    }
1533892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1549677b3a80b929a57a7ee1d4301d5e9ffb51f3182Rich Humphrey    public boolean wasDestroyCalled() {
1553892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return destroyCalled;
1563892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1573892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1583892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
15937c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    public void post(Runnable action) {
1603892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        action.run();
1613892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        runFlag = true;
16237c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    }
1633892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
16437c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    public boolean getRunFlag() {
1653892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return runFlag;
16637c667d06608e4bebd0f45ffbf1555ce5bd30493Zoodles    }
167258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton
1683892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1693892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
1703892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android accessor.
1713892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1723892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @return webChromeClient
1733892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
174258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    public WebChromeClient getWebChromeClient() {
175258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton        return webChromeClient;
176258aab42887fa7a6d29fe862eb883c62deafde0cGreg Choi & Mike Grafton    }
1773892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1783892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
1793892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public boolean canGoBack() {
1803892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return canGoBack;
1813892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1823892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1833892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    @Implementation
1843892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void goBack() {
1853892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        goBackInvocations++;
1863892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1873892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1883892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1893892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
1903892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android accessor.
1913892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
1923892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @return goBackInvocations the number of times {@code android.webkit.WebView#goBack()}
1933892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * was invoked
1943892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
1953892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public int getGoBackInvocations() {
1963892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        return goBackInvocations;
1973892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
1983892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz
1993892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    /**
2003892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Non-Android setter.
2013892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
2023892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * Sets the value to return from {@code android.webkit.WebView#canGoBack()}
2033892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     *
2043892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     * @param canGoBack
2053892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz     */
2063892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    public void setCanGoBack(boolean canGoBack) {
2073892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz        this.canGoBack = canGoBack;
2083892868c17d4ed48ccf77e25c2cef9bf3b1c82dcMike Mazur & Tyler Schultz    }
209e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
2104972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public LoadData getLastLoadData() {
2114972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        return lastLoadData;
212e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
213e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
2144972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public LoadDataWithBaseURL getLastLoadDataWithBaseURL() {
2154972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        return lastLoadDataWithBaseURL;
216e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
217e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz
2184972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public class LoadDataWithBaseURL {
2194972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String baseUrl;
2204972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String data;
2214972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String mimeType;
2224972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String encoding;
2234972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String historyUrl;
2244972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2254972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public LoadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) {
2264972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.baseUrl = baseUrl;
2274972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.data = data;
2284972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.mimeType = mimeType;
2294972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.encoding = encoding;
2304972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.historyUrl = historyUrl;
2314972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        }
2324972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    }
2334972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2344972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz    public class LoadData {
2354972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String data;
2364972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String mimeType;
2374972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public final String encoding;
2384972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz
2394972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        public LoadData(String data, String mimeType, String encoding) {
2404972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.data = data;
2414972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.mimeType = mimeType;
2424972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz            this.encoding = encoding;
2434972836088ee1b2369abd4a668552c6b594f0436Mike Mazur & Tyler Schultz        }
244e73ede4e90af0ae4f76bdbcd54a170b4bba52b39Tyler Schultz    }
2459ef88bf39bff29cb39dee4d84542c8f5a6178748Tyler Schultz}
246