package jaangari.opensoft.iitkgp.jaankari;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.LoaderManager;
import android.content.Intent;
import android.content.Loader;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.AsyncTask;
import android.os.Build;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.apache.http.HttpEntity;
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.w3c.dom.Text;
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.List;
import jaangari.opensoft.iitkgp.jaangari.R;
public class PasswordChangeActivity extends ActionBarActivity{
private EditText mEditTextCurrent;
private EditText mEditTextNew;
private EditText mEditTextRetype;
private Button mButton;
private UserLoginTask mAuthTask = null;
public void changePassword(View view){
SharedPreferences sp1 = this.getSharedPreferences("Login", 0);
String old_password = sp1.getString("password", null);
String email = sp1.getString("emailId",null);
mEditTextCurrent = (EditText)findViewById(R.id.old_password_editText);
mEditTextNew = (EditText)findViewById(R.id.new_password_editText);
mEditTextRetype = (EditText)findViewById(R.id.retype_new_password_editText);
View focusView = null;
boolean cancel = false;
if(TextUtils.isEmpty(mEditTextCurrent.getText().toString())){
mEditTextCurrent.setError("Cannot be empty!");
focusView = mEditTextCurrent;
cancel = true;
}
if(TextUtils.isEmpty(mEditTextNew.getText().toString())){
mEditTextNew.setError("Cannot be empty!");
focusView = mEditTextNew;
cancel = true;
}
if(TextUtils.isEmpty(mEditTextRetype.getText().toString())){
mEditTextRetype.setError("Cannot be empty!");
focusView = mEditTextRetype;
cancel = true;
}
if(!old_password.equals(mEditTextCurrent.getText().toString())){
mEditTextCurrent.setError("Please Enter the correct password!");
focusView = mEditTextCurrent;
cancel = true;
}
if(!mEditTextRetype.getText().toString().equals(mEditTextNew.getText().toString())){
mEditTextRetype.setError("Passwords do not match!");
focusView = mEditTextRetype;
cancel = true;
}
if(cancel){
focusView.requestFocus();
}
else{
mAuthTask = new UserLoginTask(email,mEditTextNew.getText().toString());
mAuthTask.execute((Void) null);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_password_change);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_password_change, menu);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
SharedPreferences sp1 = this.getSharedPreferences("Login", 0);
String emailAddress = sp1.getString("emailId",null);
actionBar.setTitle(emailAddress.substring(0,emailAddress.indexOf("@")));
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.logout_update_password_screen) {
SharedPreferences sp=getSharedPreferences("Login", 0);
SharedPreferences.Editor Ed=sp.edit();
Ed.putString("sLogin",null);
Ed.putString("emailId",null);
Ed.putString("proPic",null);
Ed.commit();
Intent intent = new Intent(getApplicationContext(),LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
}
return super.onOptionsItemSelected(item);
}
public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
private final String mPassword;
private final String mEmail;
UserLoginTask(String email,String password) {
mEmail = email;
mPassword = password;
}
@Override
protected Boolean doInBackground(Void... params) {
try {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost("http://"+getString(R.string.ip_address)+"changePassword.php");
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(2);
nameValuePair.add(new BasicNameValuePair("email", mEmail));
nameValuePair.add(new BasicNameValuePair("password",mPassword));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
HttpResponse response = httpClient.execute(httpPost);
HttpEntity entity = response.getEntity();
InputStream inputStream = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
if("true\n".equals(sb.toString())){
return true;
}
else{
return false;
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return false;
} catch (ClientProtocolException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
if (success) {
SharedPreferences sp=getSharedPreferences("Login", 0);
SharedPreferences.Editor Ed=sp.edit();
Ed.putString("password",mPassword);
Ed.commit();
Intent intent = new Intent(getApplicationContext(),HomeScreen.class);
startActivity(intent);
finishActivity(0);
} else {
finishActivity(1);
// mPasswordView.setError(getString(R.string.error_incorrect_password));
// mPasswordView.requestFocus();
// Log.i("Login", "Incorrect Password");
}
}
}
}