package org.wordpress.android.ui; import java.lang.reflect.Type; import java.util.Map; import android.os.Bundle; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.justsystems.hpb.pad.R; import org.wordpress.android.WordPress; /** * Activity to view the WordPress blog in a WebView */ public class ViewSiteActivity extends AuthenticatedWebViewActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); createMenuDrawer(this.findViewById(R.id.webview_wrapper)); this.setTitle(getResources().getText(R.string.view_site)); // configure webview mWebView.setWebChromeClient(new WordPressWebChromeClient(this)); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setPluginsEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); loadSiteURL(); } private void loadSiteURL() { String siteURL = null; Gson gson = new Gson(); Type type = new TypeToken<Map<?, ?>>() { }.getType(); Map<?, ?> blogOptions = gson.fromJson(mBlog.getBlogOptions(), type); if (blogOptions != null) { Map<?, ?> homeURLMap = (Map<?, ?>) blogOptions.get("home_url"); if (homeURLMap != null) siteURL = homeURLMap.get("value").toString(); } // Try to guess the URL of the site if blogOptions is null (blog not added to the app) if (siteURL == null) { siteURL = mBlog.getUrl().replace("/xmlrpc.php", ""); } loadAuthenticatedUrl(siteURL); } @Override public void onBlogChanged() { super.onBlogChanged(); mBlog = WordPress.currentBlog; loadSiteURL(); } }