package iWish_Activity;
/**Alessandro*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.progect.iwish.R;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.Toast;
public class ForgotPswActivity extends Activity implements OnItemSelectedListener{
private EditText edt_eMail=null;
private EditText edt_answer=null;
private String eMail=null;
private String answer=null;
private Spinner sp_questions=null;
private String question;
private Button oksend;
private String jsonResult;
private String url = "http://www.iwishapp.eu/iwishapp/forgot.php";
private ProgressBar attPass;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.forgotpsw);
sp_questions =(Spinner) findViewById(R.id.spinnerQuestion);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.question, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_questions.setAdapter(adapter);
sp_questions.setOnItemSelectedListener(this);
edt_eMail = (EditText) findViewById(R.id.editTextForgotMail);
edt_answer =(EditText) findViewById(R.id.editTextForgotAnswer);
attPass = (ProgressBar) findViewById(R.id.att_pass);
attPass.setVisibility(View.INVISIBLE);
oksend = (Button)findViewById(R.id.bt_oksend);
oksend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(edt_eMail.getText().toString().equals("") || edt_answer.getText().toString().equals("")){
CharSequence eMail= "eMail or answer missing!!!";
Toast.makeText(getApplicationContext(), eMail, Toast.LENGTH_LONG).show();
}
else{
eMail = edt_eMail.getText().toString();
answer = edt_answer.getText().toString();
accessWebService();
}
//startActivity(new Intent(ForgotPswActivity.this,LoginRegActivity.class ));
}
});
}
//utilizzato per prendere il dato dello spinner
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
//prendo il valore dell'elemento selezionato
question = parent.getItemAtPosition(pos).toString();
//visualizzo l'elemento selezionato
// Toast.makeText(parent.getContext(), item, Toast.LENGTH_LONG).show();
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
// Async Task to access the web
private class JsonReadTask extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute(){
attPass.setVisibility(View.VISIBLE);
}
@Override
protected String doInBackground(String... params) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(params[0]);
try {
JSONObject json = new JSONObject();;
json.put("eMail", params[1]);
json.put("question", params[2]);
json.put("answer", params[3]);
List<NameValuePair> nameValuePairs;
Map<String, String> user = new HashMap<String, String>();
user.put("User", json.toString());
nameValuePairs= new ArrayList<NameValuePair>(user.size());
String k,v;
Iterator<String> itKeys= user.keySet().iterator();
while (itKeys.hasNext()){
k=itKeys.next();
v=user.get(k);
nameValuePairs.add(new BasicNameValuePair(k,v));
}
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
System.out.println(nameValuePairs);
HttpResponse response = httpclient.execute(httppost);
jsonResult = inputStreamToString(
response.getEntity().getContent()).toString();
}
catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
cancel(true);
return null;
}
catch (JSONException e) {
e.printStackTrace();
return null;
}
return null;
}
private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
try {
while ((rLine = rd.readLine()) != null) {
answer.append(rLine);
}
}
catch (IOException e) {
// e.printStackTrace();
Toast.makeText(getApplicationContext(),
"Error..." + e.toString(), Toast.LENGTH_LONG).show();
}
return answer;
}
protected void onCancelled(){
super.onCancelled();
attPass.setVisibility(View.INVISIBLE);
CharSequence pass= "Not connected to the internet or server error";
Toast.makeText(getApplicationContext(), pass, Toast.LENGTH_LONG).show();
}
@Override
protected void onPostExecute(String result) {
System.out.println(jsonResult);
attPass.setVisibility(View.INVISIBLE);
if(jsonResult.equals("[]")){
CharSequence pass= "eMail or answer error";
Toast.makeText(getApplicationContext(), pass, Toast.LENGTH_LONG).show();
}
else{
try {
JSONObject jsonResponse = new JSONObject(jsonResult);
JSONArray jsonMainNode = jsonResponse.optJSONArray("User");
JSONObject jsonChildNode = jsonMainNode.getJSONObject(0);
String password = jsonChildNode.optString("password");
CharSequence pass= "Your Password is: " + password;
Toast.makeText(getApplicationContext(), pass, Toast.LENGTH_LONG).show();
}
catch (JSONException e) {
Toast.makeText(getApplicationContext(), "Error" + e.toString(),Toast.LENGTH_SHORT).show();
}
}
}
}// end async task
public void accessWebService(){
JsonReadTask task = new JsonReadTask();
// passes values for the urls string array
task.execute(new String[] { url, eMail, question, answer});
}
}