package theintelligentminds.messenger;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import at.intelligentminds.client.ConnectionProvider;
import at.intelligentminds.client.User;
/**
* Created by Chris_1909 on 06.05.2015.
*/
public class EditProfile extends ActionBarActivity {
private Button save;
private Button back;
private EditText firstName;
private TextView gender;
private EditText lastName;
private TextView email;
private EditText aboutMe;
private ConnectionProvider provider = ConnectionProvider.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.editprofile);
save = (Button) findViewById(R.id.buttonSave);
back = (Button) findViewById(R.id.buttonBack);
firstName = (EditText) findViewById(R.id.editTextFirstname);
gender = (TextView) findViewById(R.id.viewTextGender);
lastName = (EditText) findViewById(R.id.editTextLastname);
email = (TextView) findViewById(R.id.viewTextMail);
aboutMe = (EditText) findViewById(R.id.editTextAbout_Me);
AsyncProfileInformation asyncProInfos = new AsyncProfileInformation();
asyncProInfos.execute();
back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(EditProfile.this, Profile.class));
}
});
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AsyncUdpateProfileInformation asyncUdpateProfileInformation = new AsyncUdpateProfileInformation();
User user = new User();
user.setLastName(lastName.getText().toString());
user.setFirstName(firstName.getText().toString());
user.setAboutMe(aboutMe.getText().toString());
asyncUdpateProfileInformation.execute(user);
}
});
}
@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_editprofile, menu);
return super.onCreateOptionsMenu(menu);
}
@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.
Intent intent = null;
switch (item.getItemId()) {
case R.id.options:
intent = new Intent(EditProfile.this, Options.class);
break;
default:
intent = null;
}
startActivity(intent);
return super.onOptionsItemSelected(item);
}
class AsyncProfileInformation extends AsyncTask<String, Void, User> {
@Override
protected User doInBackground(String... strings) {
User user = provider.getUserInformation();
return user;
}
@Override
protected void onPostExecute(User user) {
super.onPostExecute(user);
lastName.setText(user.getLastName());
firstName.setText(user.getFirstName());
email.setText(user.getEmail());
gender.setText(user.getGender());
aboutMe.setText(user.getAboutMe());
}
}
class AsyncUdpateProfileInformation extends AsyncTask<User, Void, Boolean> {
@Override
protected Boolean doInBackground(User... users) {
User user = users[0];
boolean succesful = provider.updateUser(user.getFirstName(), user.getLastName(), user.getAboutMe());
return succesful;
}
@Override
protected void onPostExecute(Boolean succesful) {
super.onPostExecute(succesful);
if (succesful) {
new AlertDialog.Builder(EditProfile.this).setTitle("Edit Profile").setMessage("Edit Profile successful")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Intent intent = new Intent(EditProfile.this, Profile.class);
startActivity(intent);
}
}).show();
}
else {
new AlertDialog.Builder(EditProfile.this).setTitle("Edit Profile").setMessage("Edit Profile failed")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
}
}
}
}