Android Open Source - VoxPopuli-Android Login Activity






From Project

Back to project page VoxPopuli-Android.

License

The source code is released under:

GNU General Public License

If you think the Android project VoxPopuli-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package fr.kyriog.android.voxpopuli;
/*w  w  w . ja v  a 2  s .  c  o m*/
import org.json.JSONException;
import org.json.JSONObject;

import android.os.Bundle;
import android.webkit.CookieManager;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;

public class LoginActivity extends Activity {
  @SuppressLint("SetJavaScriptEnabled")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    CookieManager.getInstance().removeAllCookie();
    WebView web = (WebView) findViewById(R.id.login_webview);
    WebSettings settings = web.getSettings();
    settings.setJavaScriptEnabled(true);
    web.addJavascriptInterface(new JS(), "androidjs");
    web.setWebViewClient(new Client());
    web.loadUrl("http://vox-populi.richie.fr/login");
  }

  private class Client extends WebViewClient {
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
      if("http://vox-populi.richie.fr/".equals(url))
        setContentView(R.layout.loading);
    }

    @Override
    public void onPageFinished(WebView view, String url) {
      if("http://vox-populi.richie.fr/".equals(url))
        view.loadUrl("http://vox-populi.richie.fr/getuserjson");
      else if("http://vox-populi.richie.fr/getuserjson".equals(url)) {
        view.loadUrl("javascript:window.androidjs.getHtml(document.getElementsByTagName('body')[0].innerHTML);");
      }
    }
  }

  private class JS {
    @JavascriptInterface
    public void getHtml(String rawHtml) {
      try {
        JSONObject data = new JSONObject(rawHtml);
        String userId = data.getString("user_id");
        String userSession = data.getString("user_session");

        Intent intent = new Intent();
        intent.putExtra(HomeActivity.VP_DATA_USER_ID, userId);
        intent.putExtra(HomeActivity.VP_DATA_USER_SESSION, userSession);

        setResult(Activity.RESULT_OK, intent);
        finish();
      } catch (JSONException e) {
        e.printStackTrace();
      }
    }
  }
}




Java Source Code List

fr.kyriog.android.voxpopuli.GameActivity.java
fr.kyriog.android.voxpopuli.HomeActivity.java
fr.kyriog.android.voxpopuli.LoginActivity.java
fr.kyriog.android.voxpopuli.adapter.HomeAdapter.java
fr.kyriog.android.voxpopuli.adapter.PlayerAdapter.java
fr.kyriog.android.voxpopuli.adapter.ResultPlayerAdapter.java
fr.kyriog.android.voxpopuli.adapter.VotedPlayerAdapter.java
fr.kyriog.android.voxpopuli.entity.Game.java
fr.kyriog.android.voxpopuli.entity.Player.java
fr.kyriog.android.voxpopuli.entity.Question.java
fr.kyriog.android.voxpopuli.handler.AvatarHandler.java
fr.kyriog.android.voxpopuli.handler.GameHandler.java
fr.kyriog.android.voxpopuli.handler.HomeHandler.java
fr.kyriog.android.voxpopuli.socketio.BaseCallback.java
fr.kyriog.android.voxpopuli.socketio.GameCallback.java
fr.kyriog.android.voxpopuli.socketio.HomeCallback.java
fr.kyriog.android.voxpopuli.thread.AvatarDownloader.java