package com.emop.client; import static com.emop.client.Constants.TAG_EMOP; import java.util.HashMap; import java.util.Map; import android.app.ProgressDialog; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.EditText; import android.widget.ImageView; import android.widget.Toast; import com.emop.client.cache.ImageCache; import com.emop.client.io.ApiResult; import com.emop.client.io.FmeiClient; import com.emop.client.io.ImageLoader; import com.emop.client.io.WeiBoClient; import com.emop.client.io.WeiboUser; import com.weibo.net.Weibo; public class RegisterActivity extends BaseActivity { //private WeiBoClient weibo = null; private EditText nick = null; private EditText email = null; private EditText password = null; private WeiBoClient weibo = null; private ImageView icon = null; private ProgressDialog loading = null; private ImageCache cache = null; private WeiboUser weiboUser = null; private String userId = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register_view); loading = new ProgressDialog(this); loading.requestWindowFeature(Window.FEATURE_NO_TITLE); loading.setMessage("注册中..."); email = (EditText)findViewById(R.id.register_email_text); nick = (EditText)findViewById(R.id.register_nickname_text); password = (EditText)findViewById(R.id.register_passward_text); icon = (ImageView)findViewById(R.id.register_icon_icon); weibo = new WeiBoClient(this);//WeiBoClient.getInstance(); if(cache == null){ cache = FmeiClient.getInstance(null).appImgLoader.cache; } } protected void onResume (){ super.onResume(); String sinaId = this.getIntent().getStringExtra("uid"); userId = this.getIntent().getStringExtra("userId"); Log.d(TAG_EMOP, "login sinaID:" + sinaId); if(sinaId != null){ new GetUserInfoTask().execute(sinaId); } } public void doSaveRegister(View v){ String emailStr = email.getText().toString(); String nickStr = nick.getText().toString(); String passStr = password.getText().toString(); loading.show(); new RegisterRequest().execute(emailStr, nickStr, passStr); } private class GetUserInfoTask extends AsyncTask<String, Void, WeiboUser> { private Bitmap bitIcon = null; protected void onPostExecute(WeiboUser u) { if(nick != null && u != null && u.getString("screen_name") != null){ nick.setText(u.getString("screen_name")); } if(bitIcon != null){ icon.setImageBitmap(bitIcon); } } @Override protected WeiboUser doInBackground(String... uid) { //if(uid) //WeiboUser u = null; if(uid.length > 0){ weiboUser = weibo.getProfile(uid[0]); } if(weiboUser != null){ bitIcon = cache.get(weiboUser.getString("profile_image_url"), 0, false); } return weiboUser; } } private class RegisterRequest extends AsyncTask<String, Void, ApiResult> { protected void onPostExecute(ApiResult u) { loading.dismiss(); if(u != null && u.isOK){ client.saveLoginUser(RegisterActivity.this, userId); finish(); }else if(u != null){ Toast.makeText(RegisterActivity.this, u.getString("msg"), Toast.LENGTH_LONG).show(); } } @Override protected ApiResult doInBackground(String... uid) { ApiResult u = null; Map<String, Object> p = new HashMap<String, Object>(); p.put("email", uid[0]); p.put("user_name", uid[1]); p.put("password", uid[2]); p.put("user_status", "2001"); p.put("user_id", userId); if(weiboUser != null){ Weibo weibo = Weibo.getInstance(); p.put("profile_pic_url", weiboUser.getString("profile_image_url")); p.put("ref_uid", weiboUser.getString("id")); p.put("ref_token", weibo.getAccessToken().getToken()); p.put("ref_type", "sina"); } u = client.registerUser(p); return u; } } }