package org.wordpress.android.ui.accounts; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.view.Window; import android.webkit.CookieManager; import android.webkit.CookieSyncManager; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; import com.justsystems.hpb.pad.R; import org.wordpress.android.WordPress; public class SignupActivity extends Activity { public Activity activity = this; private WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_PROGRESS); webView = new WebView(this); setContentView(webView); setTitle(getResources().getText(R.string.new_account)); setProgressBarIndeterminateVisibility(true); CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); webView.getSettings().setUserAgentString( "wp-android/" + WordPress.versionName); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webView.setWebViewClient(new WordPressWebViewClient()); webView.setWebChromeClient(new SignupWebChromeClient()); webView.loadUrl("https://en.wordpress.com/signup/?ref=wp-android"); } private class WordPressWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { if (url.startsWith("wordpress://wpcom_signup_completed")) { if (url.indexOf("username=") > 0) { String username = url.substring( url.indexOf("username=") + 9, url.length()); Bundle bundle = new Bundle(); bundle.putString("username", username); Intent mIntent = new Intent(); mIntent.putExtras(bundle); setResult(RESULT_OK, mIntent); finish(); } } view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { view.clearCache(true); } } /** * Updates progress loader */ protected class SignupWebChromeClient extends WebChromeClient { public void onProgressChanged(WebView webView, int progress) { SignupActivity.this.setProgress(progress * 100); } } @Override public void onConfigurationChanged(Configuration newConfig) { // ignore orientation change super.onConfigurationChanged(newConfig); } @Override public void onBackPressed() { if (webView.canGoBack()) webView.goBack(); else super.onBackPressed(); } }