package com.oc.mobilsecurity.personinfo; import com.oc.mobilsecurity.*; import com.oc.mobilsecurity.data.UserData; import com.oc.mobilsecurity.decorator.CustomButton; import com.oc.mobilsecurity.decorator.CustomButtonArrow; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.annotation.TargetApi; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Build; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class PersonInfoLook extends Activity { private Button back; private View mEditFormView; private View mEditStatusView; private TextView mEditStatusMessageView; private ModifyTask mModifyTask = null; private int type = 0; // TODO: Delete private String username; private String passwd; private String email; private String realname; private String ID; private String mobile; private Button userHeaderButton; private CustomButtonArrow userNameButton; private CustomButtonArrow emailButton; private Button passwordButton; private CustomButton realNameButton; private CustomButton IDButton; private CustomButton mobileButton; private Run run = new Run(this); private UserData userData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.personinfo_look); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar_back); userData = UserData.getInstance(); username = userData.getUserInformation().getUAcot(); passwd = userData.getUserInformation().getUPswd(); email = userData.getUserInformation().getUMail(); realname = userData.getUserInformation().getUName(); ID = userData.getUserInformation().getUCard(); mobile = userData.getUserInformation().getUMobi(); final Bundle bundle = new Bundle(); final Intent intent = new Intent(PersonInfoLook.this, PersonInfoEdit.class); mEditFormView = findViewById(R.id.edit_form); mEditStatusView = findViewById(R.id.edit_status); mEditStatusMessageView = (TextView) findViewById(R.id.edit_status_message); userHeaderButton = (Button) findViewById(R.id.personinfoHeader); userHeaderButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bundle.putString("hint", "******"); intent.putExtras(bundle); startActivityForResult(intent, PreferenceValue.MODIFYTYPEHEADER); } }); userNameButton = (CustomButtonArrow) findViewById(R.id.personinfoUsername); userNameButton.setTitleText(getResources().getString( R.string.editUsername)); userNameButton.setContentText(username); userNameButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bundle.putString("hint", username); bundle.putInt("type", PreferenceValue.MODIFYTYPEUSERNAME); intent.putExtras(bundle); startActivityForResult(intent, PreferenceValue.MODIFYTYPEUSERNAME); } }); emailButton = (CustomButtonArrow) findViewById(R.id.personinfoEmail); emailButton.setTitleText(getResources().getString(R.string.editEmail)); emailButton.setContentText(email); emailButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bundle.putString("hint", email); bundle.putInt("type", PreferenceValue.MODIFYTYPEEMAIL); intent.putExtras(bundle); startActivityForResult(intent, PreferenceValue.MODIFYTYPEEMAIL); } }); passwordButton = (Button) findViewById(R.id.personinfoPassword); passwordButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { bundle.putString("hint", ""); bundle.putInt("type", PreferenceValue.MODIFYTYPEPASSWORD); intent.putExtras(bundle); startActivityForResult(intent, PreferenceValue.MODIFYTYPEPASSWORD); } }); realNameButton = (CustomButton) findViewById(R.id.personinfoName); realNameButton .setTitleText(getResources().getString(R.string.RealName)); realNameButton.setContentText(realname); IDButton = (CustomButton) findViewById(R.id.personinfoID); IDButton.setTitleText(getResources().getString(R.string.ID)); IDButton.setContentText(ID); mobileButton = (CustomButton) findViewById(R.id.personinfoMobile); mobileButton.setTitleText(getResources().getString(R.string.Mobile)); mobileButton.setContentText(mobile); back = (Button) findViewById(R.id.TitleBarBack); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } /** * Shows the progress UI and hides the login form. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2) private void showProgress(final boolean show) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) { int shortAnimTime = getResources().getInteger( android.R.integer.config_shortAnimTime); mEditStatusView.setVisibility(View.VISIBLE); mEditStatusView.animate().setDuration(shortAnimTime) .alpha(show ? 1 : 0) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mEditStatusView.setVisibility(show ? View.VISIBLE : View.GONE); } }); mEditFormView.setVisibility(View.VISIBLE); mEditFormView.animate().setDuration(shortAnimTime) .alpha(show ? 0 : 1) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mEditFormView.setVisibility(show ? View.GONE : View.VISIBLE); } }); } else { // The ViewPropertyAnimator APIs are not available, so simply show // and hide the relevant UI components. mEditStatusView.setVisibility(show ? View.VISIBLE : View.GONE); mEditFormView.setVisibility(show ? View.GONE : View.VISIBLE); } } /** * Deal with the result from login, find back and register. */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case PreferenceValue.MODIFYTYPEUSERNAME: switch (resultCode) { case RESULT_OK: type = PreferenceValue.MODIFYTYPEUSERNAME; Bundle bundle = data.getExtras(); username = bundle.getString("info"); if (mModifyTask != null) { return; } mEditStatusMessageView.setText(R.string.edit_progress); showProgress(true); mModifyTask = new ModifyTask(); mModifyTask.execute((Void) null); break; case RESULT_CANCELED: Toast.makeText(getBaseContext(), "ȡ���޸�", Toast.LENGTH_SHORT) .show(); break; } break; case PreferenceValue.MODIFYTYPEPASSWORD: switch (resultCode) { case RESULT_OK: type = PreferenceValue.MODIFYTYPEPASSWORD; Bundle bundle = data.getExtras(); passwd = bundle.getString("info"); if (mModifyTask != null) { return; } mEditStatusMessageView.setText(R.string.edit_progress); showProgress(true); mModifyTask = new ModifyTask(); mModifyTask.execute((Void) null); break; case RESULT_CANCELED: Toast.makeText(getBaseContext(), "ȡ���޸�", Toast.LENGTH_SHORT) .show(); break; } break; case PreferenceValue.MODIFYTYPEEMAIL: switch (resultCode) { case RESULT_OK: type = PreferenceValue.MODIFYTYPEEMAIL; Bundle bundle = data.getExtras(); email = bundle.getString("info"); if (mModifyTask != null) { return; } mEditStatusMessageView.setText(R.string.edit_progress); showProgress(true); mModifyTask = new ModifyTask(); mModifyTask.execute((Void) null); break; case RESULT_CANCELED: Toast.makeText(getBaseContext(), "ȡ���޸�", Toast.LENGTH_SHORT) .show(); break; } break; } } private class ModifyTask extends AsyncTask<Void, Void, Boolean> { @Override protected Boolean doInBackground(Void... params) { boolean result = false; switch (type) { case PreferenceValue.MODIFYTYPEUSERNAME: result = run.changeAccount(username); break; case PreferenceValue.MODIFYTYPEPASSWORD: result = run.changePasswd(passwd); break; case PreferenceValue.MODIFYTYPEEMAIL: result = run.changeMail(email); break; } return result; } @Override protected void onPostExecute(final Boolean success) { mModifyTask = null; showProgress(false); if (success) { switch (type) { case PreferenceValue.MODIFYTYPEUSERNAME: userNameButton.setContentText(username); break; case PreferenceValue.MODIFYTYPEPASSWORD: break; case PreferenceValue.MODIFYTYPEEMAIL: emailButton.setContentText(email); break; } Toast.makeText(getBaseContext(), R.string.edit_success, Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getBaseContext(), R.string.edit_failure, Toast.LENGTH_SHORT).show(); } username = userData.getUserInformation().getUAcot(); email = userData.getUserInformation().getUMail(); } @Override protected void onCancelled() { mModifyTask = null; showProgress(false); } } }