package com.sk.weichat.ui.me; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.lidroid.xutils.view.annotation.ViewInject; import com.sk.weichat.AppConstant; import com.sk.weichat.MyApplication; import com.sk.weichat.R; import com.sk.weichat.helper.AvatarHelper; import com.sk.weichat.ui.base.EasyFragment; import com.sk.weichat.ui.cardcast.CardcastActivity; import com.sk.weichat.ui.circle.BusinessCircleActivity; import com.sk.weichat.ui.erp.model.Master; import com.sk.weichat.ui.erp.util.CommonUtil; import com.sk.weichat.ui.erp.util.Constants; import com.sk.weichat.ui.erp.util.FlexJsonUtil; import com.sk.weichat.ui.erp.util.JsonValidator; import com.sk.weichat.ui.erp.util.StringUtils; import com.sk.weichat.ui.erp.util.ViewUtil; import com.sk.weichat.ui.erp.view.MasterDialog; import com.sk.weichat.ui.tool.SingleImagePreviewActivity; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; public class MeFragment extends EasyFragment implements View.OnClickListener { private ImageView mAvatarImg; private TextView mNickNameTv; private TextView mPhoneNumTv; @ViewInject(R.id.company_tv) private TextView company_tv; @ViewInject(R.id.master_tv) private TextView master_tv; @ViewInject(R.id.tv_uas_login) private TextView tv_uas_login; @ViewInject(R.id.tv_b2b_login) private TextView tv_b2b_login; @ViewInject(R.id.rl_company_change) private RelativeLayout rl_company_change; @ViewInject(R.id.rl_master_change) private RelativeLayout rl_master_change; private Context ct; public MasterDialog mDialog; private Handler mhandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1://获取中文账套 String result = msg.getData().getString("result"); //解析账套信息 boolean isJsonStr = new JsonValidator().validate(result); if (isJsonStr) { Map resultsMap = FlexJsonUtil.fromJson(result); List mList = FlexJsonUtil.fromJsonArray( FlexJsonUtil.toJson(resultsMap.get("masters")), Master.class); getChMaster(mList); } else { ViewUtil.ShowMessageFDialogAutoDismiss(ct, "获取账套信息失败!", 2000); } break; case 2://切换账套 result = msg.getData().getString("result"); Map resultsMap = FlexJsonUtil.fromJson(result); List mList = FlexJsonUtil.fromJsonArray( FlexJsonUtil.toJson(resultsMap.get("masters")), Master.class); Log.i("erp_master", FlexJsonUtil.toJson(resultsMap.get("masters"))); mDialog = new MasterDialog(ct, "切换账套", new MasterDialog.PickDialogListener() { @Override public void onListItemClick(int position, final Master master) { Login(master); } }); mDialog.show(); mDialog.initViewData(mList); break; case 3://切换账套登录 Map results = FlexJsonUtil.fromJson(msg .getData().getString("result")); if ((Boolean) results.get("success")) { com.sk.weichat.ui.erp.net.ViewUtil.ToastMessage(ct, "账套切换成功!"); String sessionId = results.get("sessionId").toString(); String master = msg.getData().getString("master"); String master_ch = msg.getData().getString("master_ch"); CommonUtil.setSharedPreferences(ct, "sessionId", sessionId); CommonUtil.setSharedPreferences(ct, "erp_master", master); CommonUtil.setSharedPreferences(ct, "Master_ch", master_ch); master_tv.setText(master_ch); // 发送给主页刷新的广播 Intent intent = new Intent("com.app.home.update"); intent.putExtra("falg", "home"); ct.sendBroadcast(intent); } else { com.sk.weichat.ui.erp.net.ViewUtil.ToastMessage(ct, "账套切换失败!"); } break; } } }; public MeFragment() { } @Override public void onResume() { super.onResume(); if (mNickNameTv != null) { mNickNameTv.setText(MyApplication.getInstance().mLoginUser.getNickName()); } } @Override protected int inflateLayoutId() { return R.layout.fragment_me; } @Override protected void onCreateView(Bundle savedInstanceState, boolean createView) { if (createView) { initView(); } } private void initView() { ct = getActivity(); findViewById(R.id.my_data_rl).setOnClickListener(this); findViewById(R.id.my_friend_rl).setOnClickListener(this); findViewById(R.id.my_space_rl).setOnClickListener(this); findViewById(R.id.local_video_rl).setOnClickListener(this); findViewById(R.id.setting_rl).setOnClickListener(this); rl_company_change.setOnClickListener(this); rl_master_change.setOnClickListener(this); mAvatarImg = (ImageView) findViewById(R.id.avatar_img); mNickNameTv = (TextView) findViewById(R.id.nick_name_tv); mPhoneNumTv = (TextView) findViewById(R.id.phone_number_tv); //init data company_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany")); master_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_master")); IntentFilter loginFilter = new IntentFilter(); loginFilter.addAction("com.app.home.update"); LocalBroadcastManager.getInstance(ct).registerReceiver(updateLoginState, loginFilter); String loginUserId = MyApplication.getInstance().mLoginUser.getUserId(); AvatarHelper.getInstance().displayAvatar(loginUserId, mAvatarImg, true); mNickNameTv.setText(MyApplication.getInstance().mLoginUser.getNickName()); mPhoneNumTv.setText(MyApplication.getInstance().mLoginUser.getTelephone()); mAvatarImg.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String loginUserId = MyApplication.getInstance().mLoginUser.getUserId(); Intent intent = new Intent(getActivity(), SingleImagePreviewActivity.class); intent.putExtra(AppConstant.EXTRA_IMAGE_URI, AvatarHelper.getAvatarUrl(loginUserId, false)); startActivity(intent); getActivity().overridePendingTransition(0, 0); } }); // 这样写的目的,是为了初始化本页面的时候,时时根据英文名字来查询当前的中文账套 if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct, "Master_ch"))) { master_tv.setText(CommonUtil.getSharedPreferences(ct, "Master_ch")); } getChinaMaster(); updateStatus(); } // private void setApl() { // // View view1=findViewById(R.id.info_rl); // View view2=findViewById(R.id.my_data_rl); // View view3=findViewById(R.id.my_friend_rl); // View view4=findViewById(R.id.my_space_rl); // View view5=findViewById(R.id.local_video_rl); // View view6=findViewById(R.id.rl_company_change); // View view7=findViewById(R.id.rl_master_change); // // ViewAlphaUtil.setViewAlpha(view1); // ViewAlphaUtil.setViewAlpha(view2); // ViewAlphaUtil.setViewAlpha(view3); // ViewAlphaUtil.setViewAlpha(view4); // ViewAlphaUtil.setViewAlpha(view5); // ViewAlphaUtil.setViewAlpha(view6); // ViewAlphaUtil.setViewAlpha(view7); // ViewAlphaUtil.setViewAlpha(findViewById(R.id.my_erp_rl)); // ViewAlphaUtil.setViewAlpha(findViewById(R.id.my_b2b_rl)); // ViewAlphaUtil.setViewAlpha(findViewById(R.id.setting_rl)); // // // } /** * @desc:账户设置菜单界面 * @author:Administrator on 2016/1/27 16:05 */ @Override public void onClick(View v) { int id = v.getId(); switch (id) { case R.id.rl_company_change: // Log.i("LoginApp","手机号:"+MyApplication.getInstance().mLoginUser.getTelephone() ); // Log.i("LoginApp","密码:"+ CommonUtil.getSharedPreferences(ct,"user_password")); String commpany = CommonUtil.getSharedPreferences(ct, "erp_commpany"); com.sk.weichat.ui.erp.net.ViewUtil.LoginTask(MyApplication.getInstance().mLoginUser.getTelephone() , CommonUtil.getSharedPreferences(ct, "user_password"), ct); break; case R.id.rl_master_change: changeMaster(); break; case R.id.my_data_rl:// 我的资料 startActivityForResult(new Intent(getActivity(), BasicInfoEditActivity.class), 1); break; case R.id.my_friend_rl:// 我的朋友 startActivity(new Intent(getActivity(), CardcastActivity.class)); break; case R.id.my_space_rl:// 我的空间 { Intent intent = new Intent(getActivity(), BusinessCircleActivity.class); intent.putExtra(AppConstant.EXTRA_CIRCLE_TYPE, AppConstant.CIRCLE_TYPE_PERSONAL_SPACE); startActivity(intent); } break; case R.id.local_video_rl:// 本地视频 startActivity(new Intent(getActivity(), LocalVideoActivity.class)); break; case R.id.setting_rl:// 设置 startActivity(new Intent(getActivity(), SettingActivity.class)); break; } } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 || resultCode == Activity.RESULT_OK) {// 个人资料更新了 AvatarHelper.getInstance().displayAvatar(MyApplication.getInstance().mLoginUser.getUserId(), mAvatarImg, true); mNickNameTv.setText(MyApplication.getInstance().mLoginUser.getNickName()); } } //获取中文账套 public void getChinaMaster() { String url = Constants.getAppBaseUrl(ct) + "mobile/getAllMasters.action"; Map params = new HashMap<>(); params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId")); LinkedHashMap headers = new LinkedHashMap<>(); headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId")); ViewUtil.httpSendRequest(ct, url, params, mhandler, headers, 1, null, null, "get"); } private void getChMaster(List mList) { if (!mList.isEmpty()) { String en_master = CommonUtil.getSharedPreferences(ct, "erp_master"); for (int i = 0; i < mList.size(); i++) { Master master = mList.get(i); if (master.getMa_user().equals(en_master)) { master_tv.setText(master.getMa_function()); CommonUtil.setSharedPreferences(ct, "Master_ch", master.getMa_function()); } } } else { master_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_master")); } } //切换账套 public void changeMaster() { String url = Constants.getAppBaseUrl(ct) + "mobile/getAllMasters.action"; Map params = new HashMap<>(); params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId")); LinkedHashMap headers = new LinkedHashMap<>(); headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId")); ViewUtil.httpSendRequest(ct, url, params, mhandler, headers, 2, null, null, "get"); } //切换登录 public void Login(Master master) { String url = Constants.getAppBaseUrl(ct) + "mobile/login.action"; Map params = new HashMap(); String username = CommonUtil.getSharedPreferences(ct, "erp_username"); String password = CommonUtil.getSharedPreferences(ct, "user_password"); params.put("username", username); params.put("password", password); params.put("master", master.getMa_user()); Message message = new Message(); Bundle bundle = new Bundle(); bundle.putString("master", master.getMa_user()); bundle.putString("master_ch", master.getMa_function()); message.setData(bundle); LinkedHashMap headers = new LinkedHashMap<>(); headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId")); ViewUtil.httpSendRequest(ct, url, params, mhandler, headers, 3, message, bundle, "get"); } public void updateStatus() { if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct, "user_phone"))) { if (CommonUtil.getSharedPreferencesBoolean(ct, "erp_login")) { company_tv.setText(CommonUtil.getSharedPreferences(ct, "erp_commpany")); // master_tv.setText(CommonUtil.getSharedPreferences(ct,"master")); tv_uas_login.setText("已登录"); } else { tv_uas_login.setText("未登录"); } if (CommonUtil.getSharedPreferencesBoolean(ct, "b2b_login")) { tv_b2b_login.setText("已登录");// 已登录 } else { tv_b2b_login.setText("未登录"); } } else { company_tv.setText(""); master_tv.setText(""); tv_b2b_login.setText("未登录"); tv_uas_login.setText("未登录"); } } /** * @desc:广播 * @author:Administrator on 2016/3/31 10:35 */ private BroadcastReceiver updateLoginState = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("com.app.home.update")) { String falg = intent.getStringExtra("falg"); // 过滤ERP登录成功//过滤falg if (!"home".equals(falg)) { updateStatus(); } if ("ERP".equals(falg)) { getChinaMaster(); } } } ; }; }