Java tutorial
/* Copyright by Stefan Lischke a.k.a Mister Schtief started in 2010 in Berlin Germany This file is part of PartyBolle. PartyBolle is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. PartyBolle is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with PartyBolle. If not, see <http://www.gnu.org/licenses/>. */ package org.schtief.partybolle.uffjaben; import java.io.InputStream; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.schtief.util.json.JSONObject; import org.schtief.util.json.JSONTokener; import android.app.ProgressDialog; import android.location.Location; import android.os.Handler; import android.util.Log; import android.widget.Toast; public class UffjabenManager { private Handler handler; private PartyBolleUffjaben app; JSONObject o; ProgressDialog dialog; public UffjabenManager(PartyBolleUffjaben a, Handler h) { this.app = a; this.handler = h; } public void getUffjaben(String name) { dialog = ProgressDialog.show(app, "", "Ick dieUffjaben, dit dauert", true); new GetUffjabenThread(name).start(); } public void checkUffjabe(String name, long challengeId, String qr, Location location) { dialog = ProgressDialog.show(app, "", "Ick checke mal die Uffjabe, dit dauert", true); new CheckUffjabenThread(dialog, name, challengeId, qr, location).start(); } private class GetUffjabenThread extends Thread { String name; public GetUffjabenThread(String name) { super(); this.name = name; } @Override public void run() { DefaultHttpClient httpclient = new DefaultHttpClient(); String uri = "http://partybolle.appspot.com/json?action=getChallenges&name=" + name; Log.i(PartyBolleUffjaben.LOG_TAG, "request " + uri); HttpGet httget = new HttpGet(uri); HttpResponse response; try { response = httpclient.execute(httget); HttpEntity responseEntity = response.getEntity(); InputStream is = responseEntity.getContent(); o = new JSONObject(new JSONTokener(new InputStreamReader(is, "utf8"))); Log.i(PartyBolleUffjaben.LOG_TAG, "recieved uffjaben "); handler.post(new Runnable() { public void run() { Toast.makeText(app, "list Transaction", Toast.LENGTH_SHORT).show(); app.update(o); } }); } catch (Exception e) { Log.e(PartyBolleUffjaben.LOG_TAG, "Fehler " + e.getMessage()); } finally { dialog.dismiss(); } } } private class CheckUffjabenThread extends Thread { String name; long challengeId; String qr; ProgressDialog dialog; Location location; public CheckUffjabenThread(ProgressDialog dialog, String name, long challengeId, String qr, Location location) { super(); this.name = name; this.challengeId = challengeId; this.qr = qr; this.dialog = dialog; this.location = location; } @Override public void run() { DefaultHttpClient httpclient = new DefaultHttpClient(); String uri = "http://partybolle.appspot.com/json?action=checkChallenge&name=" + name + "&challengeId=" + challengeId + "&qr=" + qr + "&lat=" + Double.toString(location.getLatitude()) + "&lon=" + Double.toString(location.getLongitude()); Log.i(PartyBolleUffjaben.LOG_TAG, "request " + uri); HttpGet httget = new HttpGet(uri); HttpResponse response; try { response = httpclient.execute(httget); HttpEntity responseEntity = response.getEntity(); InputStream is = responseEntity.getContent(); o = new JSONObject(new JSONTokener(new InputStreamReader(is, "utf8"))); Log.i(PartyBolleUffjaben.LOG_TAG, "recieved checkChallenge"); handler.post(new Runnable() { public void run() { Toast.makeText(app, "checked Challenge", Toast.LENGTH_SHORT).show(); app.challengeResponse(o); } }); } catch (Exception e) { Log.e(PartyBolleUffjaben.LOG_TAG, "Fehler " + e.getMessage()); } finally { this.dialog.dismiss(); } } } }