package com.oc.mobilsecurity.personinfo; import java.util.regex.Pattern; import com.oc.mobilsecurity.PreferenceValue; import com.oc.mobilsecurity.R; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.InputFilter; import android.text.InputType; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.TextView; public class PersonInfoEdit extends Activity { private TextView edit; private Button back; private Button Ok; private int type = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.personinfo_edit); getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar_ok); edit = (TextView) findViewById(R.id.Edit); Bundle bundle = getIntent().getExtras(); edit.setHint(bundle.getString("hint")); type = bundle.getInt("type"); Log.v("TAG", type + ""); switch (type) { case PreferenceValue.MODIFYTYPEUSERNAME: edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PERSON_NAME); edit.setFilters(new InputFilter[] { new InputFilter.LengthFilter( PreferenceValue.USERNAMELONGEST) }); break; case PreferenceValue.MODIFYTYPEPASSWORD: edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); edit.setFilters(new InputFilter[] { new InputFilter.LengthFilter( PreferenceValue.PASSWORDLONGEST) }); break; case PreferenceValue.MODIFYTYPEEMAIL: edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); edit.setFilters(new InputFilter[] { new InputFilter.LengthFilter( PreferenceValue.EMAILLONGEST) }); break; } back = (Button) findViewById(R.id.TitleBarBack); back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = getIntent(); setResult(RESULT_CANCELED, intent); finish(); } }); Ok = (Button) findViewById(R.id.TitleBarOk); Ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { attemptFinish(); } }); } private void attemptFinish() { edit.setError(null); String info = edit.getText().toString(); boolean cancel = false; View focusView = null; switch (type) { case PreferenceValue.MODIFYTYPEUSERNAME: if (TextUtils.isEmpty(info)) { edit.setError(getString(R.string.error_field_required)); focusView = edit; cancel = true; } else if (info.length() < PreferenceValue.USERNAMESHORTEST) { edit.setError(getString(R.string.error_invalid_username)); focusView = edit; cancel = true; } break; case PreferenceValue.MODIFYTYPEPASSWORD: if (TextUtils.isEmpty(info)) { edit.setError(getString(R.string.error_field_required)); focusView = edit; cancel = true; } else if (info.length() < PreferenceValue.PASSWORDSHORTEST) { edit.setError(getString(R.string.error_invalid_password)); focusView = edit; cancel = true; } break; case PreferenceValue.MODIFYTYPEEMAIL: Pattern pattern = Pattern .compile("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"); if (TextUtils.isEmpty(info)) { Log.v("TAG", "mail1"); edit.setError(getString(R.string.error_field_required)); focusView = edit; cancel = true; } else if (!pattern.matcher(info).matches()) { Log.v("TAG", "mail2"); edit.setError(getString(R.string.error_invalid_mail)); focusView = edit; cancel = true; } break; } if (cancel) { focusView.requestFocus(); } else { Intent intent = getIntent(); Bundle bundle = new Bundle(); bundle.putString("info", info); intent.putExtras(bundle); setResult(RESULT_OK, intent); finish(); } } }