package com.insthub.ecmobile.fragment; // // __ // /\ \ _ // ____ ____ ___\ \ \_/ \ _____ ___ ___ // / _ \ / __ \ / __ \ \ < __ /\__ \ / __ \ / __ \ // /\ \_\ \/\ __//\ __/\ \ \\ \ /\_\ \/_/ / /\ \_\ \/\ \_\ \ // \ \____ \ \____\ \____\\ \_\\_\ \/_/ /\____\\ \____/\ \____/ // \/____\ \/____/\/____/ \/_//_/ \/____/ \/___/ \/___/ // /\____/ // \/___/ // // Powered by BeeFramework // import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.content.Context; import android.content.res.Resources; import com.insthub.ecmobile.activity.*; import com.insthub.ecmobile.protocol.ApiInterface; import com.umeng.analytics.MobclickAgent; import org.json.JSONObject; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.external.activeandroid.query.Select; import com.external.androidquery.callback.AjaxStatus; import com.external.maxwin.view.XListView; import com.external.maxwin.view.XListView.IXListViewListener; import com.insthub.BeeFramework.fragment.BaseFragment; import com.insthub.BeeFramework.model.BusinessResponse; import com.insthub.BeeFramework.view.WebImageView; import com.insthub.ecmobile.R; import com.insthub.ecmobile.model.ProtocolConst; import com.insthub.ecmobile.model.UserInfoModel; import com.insthub.ecmobile.protocol.USER; /** * 身份主页 */ public class E0_ProfileFragment extends BaseFragment implements IXListViewListener, OnClickListener, BusinessResponse { private File file; private View view; private View headView; private XListView xlistView; private ImageView setting; private WebImageView photo; private ImageView camera; private TextView name; private FrameLayout payment; private TextView payment_num; private FrameLayout ship; private TextView ship_num; private FrameLayout receipt; private TextView receipt_num; private FrameLayout history; private TextView history_num; private TextView collect_num; private LinearLayout collect; private LinearLayout notify; private LinearLayout address_manage; private LinearLayout memberLevelLayout; private TextView memberLevelName; private ImageView memberLevelIcon; private LinearLayout help; private USER user; private UserInfoModel userInfoModel; private SharedPreferences shared; private SharedPreferences.Editor editor; private ImageView image; private String uid; public static boolean isRefresh = false; protected Context mContext; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.e0_profile, null); mContext = getActivity(); shared = getActivity().getSharedPreferences("userInfo", 0); editor = shared.edit(); headView = LayoutInflater.from(getActivity()).inflate(R.layout.e0_profile_head, null); image = (ImageView) view.findViewById(R.id.profile_setting); image.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), G0_SettingActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } }); xlistView = (XListView) view.findViewById(R.id.profile_list); xlistView.addHeaderView(headView); xlistView.setPullLoadEnable(false); xlistView.setRefreshTime(); xlistView.setXListViewListener(this,1); xlistView.setAdapter(null); memberLevelLayout = (LinearLayout)headView.findViewById(R.id.member_level_layout); memberLevelName = (TextView)headView.findViewById(R.id.member_level); memberLevelIcon = (ImageView)headView.findViewById(R.id.member_level_icon); setting = (ImageView) headView.findViewById(R.id.profile_head_setting); photo = (WebImageView) headView.findViewById(R.id.profile_head_photo); camera = (ImageView) headView.findViewById(R.id.profile_head_camera); name = (TextView) headView.findViewById(R.id.profile_head_name); payment = (FrameLayout) headView.findViewById(R.id.profile_head_payment); payment_num = (TextView) headView.findViewById(R.id.profile_head_payment_num); ship = (FrameLayout) headView.findViewById(R.id.profile_head_ship); ship_num = (TextView) headView.findViewById(R.id.profile_head_ship_num); receipt = (FrameLayout) headView.findViewById(R.id.profile_head_receipt); receipt_num = (TextView) headView.findViewById(R.id.profile_head_receipt_num); history = (FrameLayout) headView.findViewById(R.id.profile_head_history); history_num = (TextView) headView.findViewById(R.id.profile_head_history_num); collect = (LinearLayout) headView.findViewById(R.id.profile_head_collect); notify = (LinearLayout) headView.findViewById(R.id.profile_head_notify); address_manage = (LinearLayout) headView.findViewById(R.id.profile_head_address_manage); collect_num = (TextView) headView.findViewById(R.id.profile_head_collect_num); help = (LinearLayout)headView.findViewById(R.id.profile_help); setting.setOnClickListener(this); camera.setOnClickListener(this); payment.setOnClickListener(this); ship.setOnClickListener(this); receipt.setOnClickListener(this); history.setOnClickListener(this); collect.setOnClickListener(this); notify.setOnClickListener(this); address_manage.setOnClickListener(this); name.setOnClickListener(this); help.setOnClickListener(this); uid = shared.getString("uid", ""); File files = new File(getActivity().getCacheDir()+"/ECMobile/cache"+"/"+uid+"-temp.jpg"); if(files.exists()&&!uid.equals("")) { photo.setImageBitmap(BitmapFactory.decodeFile(getActivity().getCacheDir()+"/ECMobile/cache"+"/"+uid+"-temp.jpg")); } else { photo.setImageResource(R.drawable.profile_no_avarta_icon); } photo.setOnClickListener(this); if (null == userInfoModel) { userInfoModel = new UserInfoModel(getActivity()); } userInfoModel.addResponseListener(this); if (uid.equals("")) { Resources resource = mContext.getResources(); String click=resource.getString(R.string.click_to_login); name.setText(click); camera.setVisibility(View.GONE); memberLevelLayout.setVisibility(View.GONE); } else { userInfoModel.getUserInfo(); camera.setVisibility(View.VISIBLE); memberLevelLayout.setVisibility(View.VISIBLE); } return view; } @Override public void onResume() { super.onResume(); uid = shared.getString("uid", ""); if (!uid.equals("")) { if(isRefresh == true) { userInfoModel.getUserInfo(); } camera.setVisibility(View.VISIBLE); } else { camera.setVisibility(View.GONE); } isRefresh = false; MobclickAgent.onPageStart("Profile"); } // set User 信息 public void setUserInfo() { name.setText(user.name); File files = new File(getActivity().getCacheDir()+"/ECMobile/cache"+"/"+uid+"-temp.jpg"); if(files.exists()&&!uid.equals("")) { photo.setImageBitmap(BitmapFactory.decodeFile(getActivity().getCacheDir()+"/ECMobile/cache"+"/"+uid+"-temp.jpg")); } else { photo.setImageResource(R.drawable.profile_no_avarta_icon); } memberLevelName.setText(user.rank_name); memberLevelLayout.setVisibility(View.VISIBLE); Resources resource = mContext.getResources(); if (user.rank_level != UserInfoModel.RANK_LEVEL_NORMAL) { memberLevelIcon.setVisibility(View.VISIBLE); } else { memberLevelIcon.setVisibility(View.GONE); } if(!user.order_num.await_pay.equals("0")) { payment_num.setVisibility(View.VISIBLE); payment_num.setText(user.order_num.await_pay); } else { payment_num.setVisibility(View.GONE); } if(!user.order_num.await_ship.equals("0")) { ship_num.setVisibility(View.VISIBLE); ship_num.setText(user.order_num.await_ship); } else { ship_num.setVisibility(View.GONE); } if(!user.order_num.shipped.equals("0")) { receipt_num.setVisibility(View.VISIBLE); receipt_num.setText(user.order_num.shipped); } else { receipt_num.setVisibility(View.GONE); } if(!user.order_num.finished.equals("0")) { history_num.setVisibility(View.VISIBLE); history_num.setText(user.order_num.finished); } else { history_num.setVisibility(View.GONE); } if(user.collection_num.equals("0")){ collect_num.setText(resource.getString(R.string.no_product)); }else{ collect_num.setText(user.collection_num+resource.getString(R.string.no_of_items)); } } @Override public void onClick(View v) { Intent intent; switch(v.getId()) { case R.id.profile_head_setting: uid = shared.getString("uid", ""); if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), G0_SettingActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_camera: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_payment: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), E4_HistoryActivity.class); intent.putExtra("flag", "await_pay"); startActivityForResult(intent, 2); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_ship: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), E4_HistoryActivity.class); intent.putExtra("flag", "await_ship"); startActivityForResult(intent, 2); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_receipt: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), E4_HistoryActivity.class); intent.putExtra("flag", "shipped"); startActivityForResult(intent, 2); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_history: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), E4_HistoryActivity.class); intent.putExtra("flag", "finished"); startActivityForResult(intent, 2); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_collect: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), E5_CollectionActivity.class); startActivityForResult(intent, 2); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_notify: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { } break; case R.id.profile_head_address_manage: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } else { intent = new Intent(getActivity(), F0_AddressListActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; case R.id.profile_head_name: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); } break; case R.id.profile_help: intent = new Intent(getActivity(), G2_InfoActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); break; case R.id.profile_head_photo: if (uid.equals("")) { isRefresh = true; intent = new Intent(getActivity(), A0_SigninActivity.class); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_buttom_in,R.anim.push_buttom_out); }else{ intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, 1); getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out); } break; } } @Override public void onRefresh(int id) { if (!uid.equals("")) { userInfoModel.getUserInfo(); } } @Override public void onLoadMore(int id) { } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == Activity.RESULT_OK) { if(requestCode == 1) { String sdStatus = Environment.getExternalStorageState(); Bundle bundle = data.getExtras(); Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式 if (file == null) { file = new File(ProtocolConst.FILEPATH); if (!file.exists()) { file.mkdirs(); } } FileOutputStream b = null; String fileName = getActivity().getCacheDir()+"/ECMobile/cache"+"/"+uid+"-temp.jpg"; try { b = new FileOutputStream(fileName); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件 } catch (FileNotFoundException e) { e.printStackTrace(); } finally { try { b.flush(); b.close(); } catch (IOException e) { e.printStackTrace(); } } ((ImageView) view.findViewById(R.id.profile_head_photo)).setImageBitmap(bitmap);// 将图片显示在ImageView里 } } if(requestCode == 2) { userInfoModel.getUserInfo(); } } public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) { if (url.endsWith(ApiInterface.USER_INFO)) { xlistView.stopRefresh(); xlistView.setRefreshTime(); user = userInfoModel.user; // 从网络获取 setUserInfo(); } } public static USER userInfo(String uid) { return new Select().from(USER.class).where("USER_id = ?", uid).executeSingle(); } @Override public void onDestroy() { userInfoModel.removeResponseListener(this); super.onDestroy(); } @Override public void onPause() { super.onPause(); MobclickAgent.onPageEnd("Profile"); } }