package com.dreamspace.uucampus.ui.activity.Login; import android.app.ProgressDialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import com.dreamspace.uucampus.R; import com.dreamspace.uucampus.api.ApiManager; import com.dreamspace.uucampus.common.ImageCaptureManager; import com.dreamspace.uucampus.common.utils.CommonUtils; import com.dreamspace.uucampus.common.utils.NetUtils; import com.dreamspace.uucampus.model.api.CommonStatusRes; import com.dreamspace.uucampus.model.api.LocationAllRes; import com.dreamspace.uucampus.model.api.UpdateUserInfoReq; import com.dreamspace.uucampus.ui.base.AbsActivity; import com.dreamspace.uucampus.ui.dialog.SelectPhotoDialog; import com.dreamspace.uucampus.ui.dialog.WheelViewDialog; import java.util.ArrayList; import butterknife.Bind; import butterknife.ButterKnife; import de.hdodenhof.circleimageview.CircleImageView; import retrofit.Callback; import retrofit.RetrofitError; import retrofit.client.Response; /** * Created by money on 2015/10/13. */ public class RegisterInfoActivity extends AbsActivity { @Bind(R.id.iv_user_icon) CircleImageView ivUserIcon; @Bind(R.id.register_personinfo_username) EditText userNameTextView; @Bind(R.id.register_personinfo_school) TextView schoolTextView; @Bind(R.id.personinfo_button) Button personInfoButton; @Bind(R.id.register_personinfo_enrolledtime) TextView enrolledTime; private String path; private String userName; private String school; private String year; public static final int AVATER = 1; ProgressDialog progressDialog; private ArrayList<String> locations; private SelectPhotoDialog selectPhotoDialog; private ImageCaptureManager captureManager; public static final int SELECT_AVATER = 1; public static final int TAKE_AVATER = 2; @Override protected int getContentView() { return R.layout.activity_register_personinfo_page; } @Override protected void prepareDatas() { ButterKnife.bind(this); captureManager = new ImageCaptureManager(this); } @Override protected void initViews() { initListeners(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(selectPhotoDialog != null){ selectPhotoDialog.dismiss(); } if(requestCode == SELECT_AVATER && resultCode == RESULT_OK){ Uri uri = data.getData(); path = CommonUtils.getRealPathFromURI(this,uri); CommonUtils.showImageWithGlideInCiv(this, ivUserIcon, path); }else if(requestCode == TAKE_AVATER && resultCode == RESULT_OK){ if(captureManager.getCurrentPhotoPath() != null){ path = captureManager.getCurrentPhotoPath(); CommonUtils.showImageWithGlideInCiv(this, ivUserIcon, path); } } } @Override protected void onSaveInstanceState(Bundle outState) { captureManager.onSaveInstanceState(outState); super.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); captureManager.onRestoreInstanceState(savedInstanceState); } private void initListeners(){ ivUserIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { initSelectPhotoDialog(); selectPhotoDialog.show(); } }); personInfoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { registerInfo(); } }); enrolledTime.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showYearDialog(); } }); schoolTextView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showSchoolDialog(); } }); } //显示学校选择对话框 private void showSchoolDialog(){ getSchools(); } //获取所有校区 private void getSchools(){ if(NetUtils.isNetworkConnected(this)){ ApiManager.getService(this).getAllLocation(new Callback<LocationAllRes>() { @Override public void success(LocationAllRes locationAllRes, Response response) { final WheelViewDialog inSchoolDialog = new WheelViewDialog(RegisterInfoActivity.this,locationAllRes.getLocation(),"选择校区"); inSchoolDialog.setNegativeButton(getString(R.string.cancel), new View.OnClickListener() { @Override public void onClick(View v) { inSchoolDialog.dismiss(); } }); inSchoolDialog.setPositiveButton(getString(R.string.confirm), new View.OnClickListener() { @Override public void onClick(View v) { school = inSchoolDialog.getSelected(); schoolTextView.setText(school); inSchoolDialog.dismiss(); } }); } @Override public void failure(RetrofitError error) { showInnerError(error); } }); }else{ showNetWorkError(); } } //显示年份选择对话框 private void showYearDialog(){ ArrayList<String> years = new ArrayList<>(); for(int i = 2010;i < 2020;i++){ years.add(i + ""); } final WheelViewDialog inSchoolYeardialog = new WheelViewDialog(this,years,getString(R.string.select_in_school_year)); inSchoolYeardialog.setNegativeButton(getString(R.string.cancel), new View.OnClickListener() { @Override public void onClick(View v) { inSchoolYeardialog.dismiss(); } }); inSchoolYeardialog.setPositiveButton(getString(R.string.confirm), new View.OnClickListener() { @Override public void onClick(View v) { year = inSchoolYeardialog.getSelected(); enrolledTime.setText(year); inSchoolYeardialog.dismiss(); } }); } private boolean isValid(){ school = schoolTextView.getText().toString(); userName = userNameTextView.getText().toString(); if(CommonUtils.isEmpty(path)){ showToast("请选择一张图片~"); return false; } if(CommonUtils.isEmpty(userName)){ showToast("请填写您的昵称~"); return false; } if(CommonUtils.isEmpty(school)){ showToast("请选择您的学校~"); return false; } return true; } //上传用户信息 private void registerInfo(){ if(isValid()) { progressDialog = ProgressDialog.show(this, "", "正在上传用户信息~~", true, false); if (NetUtils.isNetworkConnected(this)) { UpdateUserInfoReq updateUserInfoReq = new UpdateUserInfoReq(); updateUserInfoReq.setImage(path); updateUserInfoReq.setEnroll_year(year); updateUserInfoReq.setLocation(school); updateUserInfoReq.setName(userName); ApiManager.getService(this.getApplicationContext()).updateUserInfo(updateUserInfoReq, new Callback<CommonStatusRes>() { @Override public void success(CommonStatusRes response, Response response2) { progressDialog.dismiss(); showToast("用户信息上传成功~~"); readyGoThenKill(RegisterSucceedActivity.class); } @Override public void failure(RetrofitError error) { progressDialog.dismiss(); showInnerError(error); } }); } else { progressDialog.dismiss(); showNetWorkError(); } } } @Override protected View getLoadingTargetView() { return null; } private void initSelectPhotoDialog(){ if(selectPhotoDialog != null){ return; } selectPhotoDialog = new SelectPhotoDialog(this,captureManager,SELECT_AVATER,TAKE_AVATER); } }