Developing a system to log in and log out of an Android application (and with any future versions of 21st Century Polling, such as Browser or iOS) requires an implementation of an SQL database hosted online. Today, the first bit of success came my way in terms of implementing this system. Unfortunately, the code presented below runs on the UI thread. The next step (and my current project) will be converting this code and slimming it down to run as an AsyncTask.
import java.util.ArrayList; import java.util.List; import org.apache.http.NameValuePair; import org.apache.http.message.BasicNameValuePair; import org.json.JSONObject; import android.content.Context; public class UserFunctions { private JSONParser jsonParser; private static String loginURL = "http://davidjkelley.net/android_api/"; private static String registerURL = "http://davidjkelley.net/android_api/"; private static String login_tag = "login"; private static String register_tag = "register"; // constructor public UserFunctions(){ jsonParser = new JSONParser(); } //login with user provided email/pass public JSONObject loginUser(String email, String password){ // Building Parameters List params = new ArrayList(); params.add(new BasicNameValuePair("tag", login_tag)); params.add(new BasicNameValuePair("email", email)); params.add(new BasicNameValuePair("password", password)); JSONObject json = jsonParser.getJSONFromUrl(loginURL, params); // return json return json; } //register a new user with name/email/pass public JSONObject registerUser(String name, String email, String password){ // Building Parameters List params = new ArrayList(); params.add(new BasicNameValuePair("tag", register_tag)); params.add(new BasicNameValuePair("name", name)); params.add(new BasicNameValuePair("email", email)); params.add(new BasicNameValuePair("password", password)); // getting JSON Object JSONObject json = jsonParser.getJSONFromUrl(registerURL, params); // return json return json; } //determine if the user is logged in public boolean isUserLoggedIn(Context context){ DatabaseHandler db = new DatabaseHandler(context); int count = db.getRowCount(); if(count > 0){ // user logged in return true; } return false; } //logout the user public boolean logoutUser(Context context){ DatabaseHandler db = new DatabaseHandler(context); db.resetTables(); return true; } }
