package com.socialize.demo;
//begin-snippet-0
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.socialize.Socialize;
import com.socialize.UserUtils;
import com.socialize.entity.User;
import com.socialize.error.SocializeException;
import com.socialize.listener.user.UserGetListener;
import com.socialize.listener.user.UserSaveListener;
import com.socialize.ui.dialog.SafeProgressDialog;
/**
* Example of a custom UI implementation for user profile.
*/
public class CustomProfileViewActivity extends Activity {
private User user;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Socialize.onCreate(this, savedInstanceState);
setContentView(R.layout.custom_profile_view);
// Locate the fields
final EditText firstName = (EditText) findViewById(R.id.txtFirstName);
final EditText lastName = (EditText) findViewById(R.id.txtLastName);
final EditText meta = (EditText) findViewById(R.id.txtMeta);
Button btnSave = (Button) findViewById(R.id.btnSave);
Button btnCancel = (Button) findViewById(R.id.btnCancel);
// Load the profile
// Use Socialize's SafeProgressDialog to avoid unexpected crashes when the user hits back.
final SafeProgressDialog progress = SafeProgressDialog.show(this);
// Get the user profile from Socialize
UserUtils.getCurrentUserAsync(this, new UserGetListener() {
@Override
public void onGet(User user) {
// Store a reference
CustomProfileViewActivity.this.user = user;
progress.dismiss();
firstName.setText(user.getFirstName());
lastName.setText(user.getLastName());
meta.setText(user.getMetaData());
}
@Override
public void onError(SocializeException error) {
// Some sort of error.. handle accordingly
progress.dismiss();
Toast.makeText(CustomProfileViewActivity.this, "An error occurred retrieving the user", Toast.LENGTH_LONG).show();
error.printStackTrace();
finish();
}
});
// Setup user actions
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
//begin-snippet-1
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Get the locally stored reference to the user
User user = CustomProfileViewActivity.this.user;
user.setFirstName(firstName.getText().toString());
user.setLargeImageUri(lastName.getText().toString());
user.setMetaData(meta.getText().toString());
// Clear the reference
CustomProfileViewActivity.this.user = null;
final SafeProgressDialog progress = SafeProgressDialog.show(CustomProfileViewActivity.this);
// Save the user
UserUtils.saveUserAsync(CustomProfileViewActivity.this, user, new UserSaveListener() {
@Override
public void onUpdate(User result) {
progress.dismiss();
Toast.makeText(CustomProfileViewActivity.this, "User saved", Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onError(SocializeException error) {
// Some sort of error.. handle accordingly
progress.dismiss();
Toast.makeText(CustomProfileViewActivity.this, "An error occurred saving the user", Toast.LENGTH_LONG).show();
error.printStackTrace();
finish();
}
});
}
});
//end-snippet-1
}
@Override
protected void onDestroy() {
Socialize.onDestroy(this);
super.onDestroy();
}
@Override
protected void onPause() {
Socialize.onPause(this);
super.onPause();
}
@Override
protected void onResume() {
Socialize.onResume(this);
super.onResume();
}
@Override
protected void onStart() {
Socialize.onStart(this);
super.onStart();
}
@Override
protected void onStop() {
Socialize.onStop(this);
super.onStop();
}
}
//end-snippet-0