mardi 24 mars 2015

check whether variable is null does not pass - android java

I have a small problem that I don't understand:


When an activity of mine initializes is creates a variable like this:



Thread thread = null;


Then, somewhere later in an click event of my activity it checks:



if (thread == null) { }


this check however, does not pass.


This is my full code:



package com.example.cheese.digiticsdomainchecker;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;


public class login extends Activity {
ArrayList<String> domains = new ArrayList<String>();
ArrayList<String> availables = new ArrayList<String>();
ArrayList<String> selected = new ArrayList<String>();
ArrayList<String> prices = new ArrayList<String>();
String success;
Thread thread = null;
EditText etEmail;
EditText etPassword;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Intent intent = getIntent();
domains = intent.getStringArrayListExtra("domainList");
prices = intent.getStringArrayListExtra("priceList");
availables = intent.getStringArrayListExtra("availableList");
selected = intent.getStringArrayListExtra("selectedList");
etEmail = (EditText) findViewById(R.id.etEmail);
etPassword = (EditText) findViewById(R.id.etPassword);
}

public void btRegister_Click(View v) {
Intent registerView = new Intent(this, register.class);
startActivity(registerView);
}

public void btLogin_click(View v) {
if (etEmail.getText().toString() != "" && etPassword.getText().toString() != "") {
if (thread == null) {
thread = new Thread(new Runnable() {
@Override
public void run() {
try {
LoginJSON();
} catch (Exception e) {
login.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(login.this, "ik ben niet zomaar een haas, ik ben een vis.", Toast.LENGTH_SHORT).show();
}
});
e.printStackTrace();
}
}
});
} else {
Toast.makeText(login.this, thread.toString(), Toast.LENGTH_SHORT).show();
}
}
}

public String md5(String s) {
try {
// Create MD5 Hash
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();

// Create Hex String
StringBuffer hexString = new StringBuffer();
for (int i=0; i<messageDigest.length; i++)
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
return hexString.toString();

} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}

public void LoginJSON() {
Boolean bok = false;
String email = etEmail.getText().toString();
String password = etPassword.getText().toString();
try {
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://ift.tt/1EMkKix"+email+"&password="+md5(password));
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
login.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(login.this, "Verbinden met server mislukt.", Toast.LENGTH_SHORT).show();
}
});
}

String rawJsonData = builder.toString();
JSONObject jsonObject = new JSONObject(rawJsonData); // CONVERT TO JSON OBJECT
JSONArray resultArray = jsonObject.getJSONArray("LOGIN"); //GET MAIN JSON ITEM
for (int i = 0; i < resultArray.length(); i++){ //LOOP THROUGH MAIN JSON ITEM
JSONObject jsonSubResult = resultArray.getJSONObject(i); //GET ITEM AT SPECIFIC INDEX
success = jsonSubResult.getString("COMPLETED");
}
} catch(Exception e) {
bok = true;
}

if(bok == false) {
thread = null;
switch(success){
case "YES":
//LOCAL STORAGE
SharedPreferences prefs = this.getSharedPreferences("com.example.rubenurresti.digiticsdomainchecker", Context.MODE_PRIVATE);
prefs.edit().putString("email", email).apply();
prefs.edit().putString("password", md5(password)).apply();

//Intent registerView = new Intent(this, order.class);
//registerView.putExtra("domainList", domains);
//registerView.putExtra("priceList", prices);
//registerView.putExtra("availableList", availables);
//registerView.putExtra("selectedList", selected);
//startActivity(registerView);
login.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(login.this, "ik ben een haas.", Toast.LENGTH_SHORT).show();
}
});
break;
default:
login.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(login.this, "Foute gegevens.", Toast.LENGTH_SHORT).show();
}
});
break;
}
} else {
thread = null;
login.this.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(login.this, "Onverwachte fout.", Toast.LENGTH_SHORT).show();
}
});
}
}
}

Aucun commentaire:

Enregistrer un commentaire