package com.ntp.ui.me; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import com.ntp.ui.R; import com.ntp.util.ConstantValue; import com.ntp.util.AppConfig; import com.ntp.dao.UserDao; import com.ntp.model.User; import com.ntp.util.BitmapUtil; import com.loopj.android.http.AsyncHttpClient; import com.loopj.android.http.AsyncHttpResponseHandler; import com.ntp.view.CircleImageView; import org.apache.http.Header; /** * 我(个人中心)界面,可以查看学生本人选的课程和一些系统设置 */ public class MeFragment extends Fragment implements View.OnClickListener { private TextView myCourse, myDownload, setting;//我的课程、我的下载、设置 private CircleImageView login; private TextView username; private static final int REQUEST_CODE = 3;//请求码 private static final String TAG = "MeFragment"; private UserDao userDao; private AsyncHttpClient asyncHttpClient = new AsyncHttpClient(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate"); } @Override public void onResume() {//用户退出,返回此Activity,清除登录状态 super.onResume(); if (AppConfig.getLoadName(getActivity()).equals("")) { username.setText(""); login.setImageDrawable(getResources().getDrawable(R.drawable.default_head)); } if (null == userDao) { userDao = new UserDao(getActivity().getApplicationContext()); } Log.i(TAG, "onResume"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_me, container, false); login = (CircleImageView) view.findViewById(R.id.login); myCourse = (TextView) view.findViewById(R.id.myCourse); myDownload = (TextView) view.findViewById(R.id.myDownload); username = (TextView) view.findViewById(R.id.username); setting = (TextView) view.findViewById(R.id.setting); username.setText(AppConfig.getLoadName(getActivity())); login.setOnClickListener(this); myCourse.setOnClickListener(this); myDownload.setOnClickListener(this); setting.setOnClickListener(this); userDao = new UserDao(getActivity().getApplicationContext()); if (!AppConfig.getLoadName(getActivity().getApplicationContext()).equals("")) {//已有用户登陆 displayHead(); } return view; } /** * 显示本地缓存头像 */ private void displayHead() { User user = userDao.findByName(AppConfig.getLoadName(getActivity().getApplicationContext()).trim()); if (null==user){ return; } if (user.getHead() != null) {//数据库有缓存头像 Bitmap bitmap = BitmapFactory.decodeByteArray(user.getHead(), 0, user.getHead().length); login.setImageBitmap(bitmap); } else {//没有显示默认应用默认头像 Log.d(TAG,"头像为空"); login.setImageDrawable(getResources().getDrawable(R.drawable.head_default)); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.login://登录 String name = AppConfig.getLoadName(getActivity().getApplicationContext()); //检查是否有登录 if (!name.equals("")) {//已登录 Intent intent = new Intent(getActivity(), MeInformationActivity.class); Bundle bundle = new Bundle(); bundle.putString("username", name); intent.putExtras(bundle); startActivity(intent); } else { Intent intent = new Intent(getActivity(), LoginActivity.class); startActivityForResult(intent, REQUEST_CODE); } break; case R.id.myCourse://我的课程 startActivity(new Intent(getActivity().getApplicationContext(),MyCourseActivity.class)); break; case R.id.myDownload://我的下载 startActivity(new Intent(getActivity().getApplicationContext(),MyDownloadActivity.class)); break; case R.id.setting://设置 startActivity(new Intent(getActivity(), SettingActivity.class)); break; } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE) { if (resultCode == LoginActivity.RESULT_CODE) { String name = data.getExtras().getString("username"); username.setText(name); String head = data.getExtras().getString("head"); if (head.equals("error")) {//用户没有服务器没有头像 login.setImageDrawable(getResources().getDrawable(R.drawable.head_default)); User user = new User(); user.setUsername(name); if (userDao.findByName(name)!=null){ userDao.update(user); }else { userDao.save(user); } return; } login.setImageDrawable(getResources().getDrawable(R.drawable.default_head_loading)); String imageUri =head; asyncHttpClient.post(imageUri, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { Bitmap bitmap = BitmapFactory.decodeByteArray(responseBody, 0, responseBody.length); Bitmap bitmap1 = BitmapUtil.createBitmapZoop(bitmap, 70, 70); User user = new User(); user.setUsername(username.getText().toString()); user.setHead(BitmapUtil.getBitmapByte(bitmap1)); if (null == userDao) { Log.w(TAG,"userDao is null"); userDao = new UserDao(getActivity().getApplicationContext()); } Log.e(TAG,user.toString()); Log.e(TAG, userDao + ""); if (userDao.findByName(user.getUsername())!=null){ userDao.update(user); }else { userDao.save(user); } login.setImageBitmap(bitmap1); } @Override public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { error.printStackTrace(); } }); } } } @Override public void onDestroy() { userDao.close(); super.onDestroy(); } }