com.insthub.O2OMobile.Fragment.A2_MenuFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.insthub.O2OMobile.Fragment.A2_MenuFragment.java

Source

//
//       _/_/_/                      _/            _/_/_/_/_/
//    _/          _/_/      _/_/    _/  _/              _/      _/_/      _/_/
//   _/  _/_/  _/_/_/_/  _/_/_/_/  _/_/              _/      _/    _/  _/    _/
//  _/    _/  _/        _/        _/  _/          _/        _/    _/  _/    _/
//   _/_/_/    _/_/_/    _/_/_/  _/    _/      _/_/_/_/_/    _/_/      _/_/
//
//
//  Copyright (c) 2015-2016, Geek Zoo Studio
//  http://www.geek-zoo.com
//
//
//  Permission is hereby granted, free of charge, to any person obtaining a
//  copy of this software and associated documentation files (the "Software"),
//  to deal in the Software without restriction, including without limitation
//  the rights to use, copy, modify, merge, publish, distribute, sublicense,
//  and/or sell copies of the Software, and to permit persons to whom the
//  Software is furnished to do so, subject to the following conditions:
//
//  The above copyright notice and this permission notice shall be included in
//  all copies or substantial portions of the Software.
//
//  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
//  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
//  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
//  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
//  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
//  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
//  IN THE SOFTWARE.
//

package com.insthub.O2OMobile.Fragment;

import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.BeeFramework.Utils.Utils;
import com.BeeFramework.model.BusinessResponse;
import com.BeeFramework.view.RoundedWebImageView;
import com.external.androidquery.callback.AjaxStatus;
import com.external.eventbus.EventBus;
import com.insthub.O2OMobile.Activity.F0_ProfileActivity;
import com.insthub.O2OMobile.Activity.SlidingActivity;
import com.insthub.O2OMobile.O2OMobile;
import com.insthub.O2OMobile.O2OMobileAppConst;
import com.insthub.O2OMobile.MessageConstant;
import com.insthub.O2OMobile.Model.MessageUnreadCountModel;
import com.insthub.O2OMobile.Model.UserBalanceModel;
import com.insthub.O2OMobile.Protocol.ApiInterface;
import com.insthub.O2OMobile.Protocol.USER;
import com.insthub.O2OMobile.R;
import com.nostra13.universalimageloader.core.ImageLoader;

import org.json.JSONException;
import org.json.JSONObject;

public class A2_MenuFragment extends Fragment implements OnClickListener, BusinessResponse {
    private A0_HomeFragment mA0HomeFragment;

    private E0_PublishedOrdersFragment mMyOrderListFragment;
    private H0_MessageFragment mH0MessageFragment;
    private F4_RefferalFragment mG2RefferalShareFragment;
    private E2_ReceivedOrdersFragment mReceivedOrderListFragment;

    private View mHeaderView;
    private ListView mListView;

    private RoundedWebImageView mAvatar;
    private TextView mUserName;
    private TextView mIncome;
    private LinearLayout mHome;
    private TextView mHomeText;
    private ImageView mHomeArrow;
    private LinearLayout mIssuance;
    private TextView mIssuanceText;
    private ImageView mIssuanceArrow;
    private LinearLayout mOrderReceiving;
    private TextView mOrderReceivingText;
    private ImageView mOrderReceivingArrow;
    private LinearLayout mMessage;
    private TextView mMessageText;
    private TextView mMessageNum;
    private ImageView mMessageArrow;
    private LinearLayout mInvite;
    private TextView mInviteText;
    private ImageView mInviteArrow;
    private SharedPreferences mShared;
    private UserBalanceModel mUserBalance;
    private MessageUnreadCountModel mMessageUnreadCountModel;
    private UserBalanceModel mUserBalanceModel;
    private USER mUser;
    protected ImageLoader publicImageLoader = ImageLoader.getInstance();

    public int publucLastSelectedMenu = -1;
    public static int publicMessageUnreadCount = 0;
    private ImageView mHomeIco;
    private ImageView mIssureIcon;
    private ImageView mReceiveIcon;
    private ImageView mMessageIcon;
    private ImageView mInviteIcon;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.a2_menu, null);
        mHeaderView = inflater.inflate(R.layout.a2_menu_header, null);
        mListView = (ListView) view.findViewById(R.id.menu_listview);

        mAvatar = (RoundedWebImageView) mHeaderView.findViewById(R.id.left_avatar);
        mUserName = (TextView) mHeaderView.findViewById(R.id.left_userName);
        mIncome = (TextView) mHeaderView.findViewById(R.id.left_income);
        mHome = (LinearLayout) mHeaderView.findViewById(R.id.left_home);
        mHomeText = (TextView) mHeaderView.findViewById(R.id.left_home_text);
        mHomeArrow = (ImageView) mHeaderView.findViewById(R.id.left_home_arrow);
        mIssuance = (LinearLayout) mHeaderView.findViewById(R.id.left_issuance);
        mIssuanceText = (TextView) mHeaderView.findViewById(R.id.left_issuance_text);
        mIssuanceArrow = (ImageView) mHeaderView.findViewById(R.id.left_issuance_arrow);
        mOrderReceiving = (LinearLayout) mHeaderView.findViewById(R.id.left_order_receiving);
        mOrderReceivingText = (TextView) mHeaderView.findViewById(R.id.left_order_receiving_text);
        mOrderReceivingArrow = (ImageView) mHeaderView.findViewById(R.id.left_order_receiving_arrow);
        mMessage = (LinearLayout) mHeaderView.findViewById(R.id.left_message);
        mMessageText = (TextView) mHeaderView.findViewById(R.id.left_message_text);
        mMessageNum = (TextView) mHeaderView.findViewById(R.id.left_message_num);
        mMessageArrow = (ImageView) mHeaderView.findViewById(R.id.left_message_arrow);
        mInvite = (LinearLayout) mHeaderView.findViewById(R.id.left_invite);
        mInviteText = (TextView) mHeaderView.findViewById(R.id.left_invite_text);
        mInviteArrow = (ImageView) mHeaderView.findViewById(R.id.left_invite_arrow);
        mHomeIco = (ImageView) mHeaderView.findViewById(R.id.home);
        mIssureIcon = (ImageView) mHeaderView.findViewById(R.id.issure);
        mReceiveIcon = (ImageView) mHeaderView.findViewById(R.id.receive);
        mMessageIcon = (ImageView) mHeaderView.findViewById(R.id.message);
        mInviteIcon = (ImageView) mHeaderView.findViewById(R.id.invite);
        mListView.addHeaderView(mHeaderView);
        mListView.setAdapter(null);
        view.setOnClickListener(this);
        mUserBalance = new UserBalanceModel(getActivity());
        mUserBalance.addResponseListener(this);

        mUserBalance.get();
        mMessageUnreadCountModel = new MessageUnreadCountModel(getActivity());
        mMessageUnreadCountModel.addResponseListener(this);

        mUserBalanceModel = new UserBalanceModel(getActivity());
        mUserBalanceModel.addResponseListener(this);

        if (!EventBus.getDefault().isregister(this)) {
            EventBus.getDefault().register(this);
        }

        return view;
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        publucLastSelectedMenu = mHome.getId();
        mHome.setOnClickListener(this);
        mIssuance.setOnClickListener(this);
        mOrderReceiving.setOnClickListener(this);
        mMessage.setOnClickListener(this);
        mInvite.setOnClickListener(this);
        mAvatar.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.left_home:
            changeTextColor(mHome);
            if (publucLastSelectedMenu == R.id.left_home) {
                if (getActivity() instanceof SlidingActivity) {
                    SlidingActivity slidingActivity = (SlidingActivity) getActivity();
                    slidingActivity.showLeft();
                }
            } else {
                mA0HomeFragment = new A0_HomeFragment();
                switchFragment((Fragment) mA0HomeFragment, true);
            }
            break;
        case R.id.left_issuance:
            changeTextColor(mIssuance);
            if (publucLastSelectedMenu == R.id.left_issuance) {
                if (getActivity() instanceof SlidingActivity) {
                    SlidingActivity slidingActivity = (SlidingActivity) getActivity();
                    slidingActivity.showLeft();
                }
            } else {
                mMyOrderListFragment = new E0_PublishedOrdersFragment();
                switchFragment((Fragment) mMyOrderListFragment, true);
            }
            break;
        case R.id.left_order_receiving:
            changeTextColor(mOrderReceiving);
            if (publucLastSelectedMenu == R.id.left_order_receiving) {
                if (getActivity() instanceof SlidingActivity) {
                    SlidingActivity slidingActivity = (SlidingActivity) getActivity();
                    slidingActivity.showLeft();
                }
            } else {
                mReceivedOrderListFragment = new E2_ReceivedOrdersFragment();
                switchFragment((Fragment) mReceivedOrderListFragment, true);
            }
            break;
        case R.id.left_message:
            changeTextColor(mMessage);
            if (publucLastSelectedMenu == R.id.left_message) {
                if (getActivity() instanceof SlidingActivity) {
                    SlidingActivity slidingActivity = (SlidingActivity) getActivity();
                    slidingActivity.showLeft();
                }
            } else {
                mH0MessageFragment = new H0_MessageFragment();
                switchFragment((Fragment) mH0MessageFragment, true);
            }
            break;
        case R.id.left_invite:
            changeTextColor(mInvite);
            if (publucLastSelectedMenu == R.id.left_invite) {
                if (getActivity() instanceof SlidingActivity) {
                    SlidingActivity slidingActivity = (SlidingActivity) getActivity();
                    slidingActivity.showLeft();
                }
            } else {
                mG2RefferalShareFragment = new F4_RefferalFragment();
                switchFragment((Fragment) mG2RefferalShareFragment, true);

            }
            break;
        case R.id.left_avatar:
            Intent intent_profile = new Intent(getActivity(), F0_ProfileActivity.class);
            intent_profile.putExtra(F0_ProfileActivity.USER_ID, mUser.id);
            startActivity(intent_profile);
            getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
            break;
        }
        publucLastSelectedMenu = v.getId();
    }

    private void changeTextColor(View view) {
        if (view == mHome) {
            mHomeIco.setImageResource(R.drawable.a3_ico_home_selected);
            mIssureIcon.setImageResource(R.drawable.a3_ico_issue);
            mReceiveIcon.setImageResource(R.drawable.a3_ico_receive);
            mInviteIcon.setImageResource(R.drawable.a3_ico_friends);
            mMessageIcon.setImageResource(R.drawable.a3_ico_message);

            mHomeText.setTextColor(Color.parseColor("#B3EF69"));
            mIssuanceText.setTextColor(Color.parseColor("#FAFCFD"));
            mOrderReceivingText.setTextColor(Color.parseColor("#FAFCFD"));
            mMessageText.setTextColor(Color.parseColor("#FAFCFD"));
            mInviteText.setTextColor(Color.parseColor("#FAFCFD"));

            mHomeArrow.setImageResource(R.drawable.ico_right_green);
            mIssuanceArrow.setImageResource(R.drawable.ico_right_grey);
            mOrderReceivingArrow.setImageResource(R.drawable.ico_right_grey);
            mMessageArrow.setImageResource(R.drawable.ico_right_grey);
            mInviteArrow.setImageResource(R.drawable.ico_right_grey);
        } else if (view == mIssuance) {
            mHomeIco.setImageResource(R.drawable.a3_ico_home);
            mIssureIcon.setImageResource(R.drawable.a3_ico_issue_selected);
            mReceiveIcon.setImageResource(R.drawable.a3_ico_receive);
            mInviteIcon.setImageResource(R.drawable.a3_ico_friends);
            mMessageIcon.setImageResource(R.drawable.a3_ico_message);

            mHomeText.setTextColor(Color.parseColor("#FAFCFD"));
            mIssuanceText.setTextColor(Color.parseColor("#B3EF69"));
            mOrderReceivingText.setTextColor(Color.parseColor("#FAFCFD"));
            mMessageText.setTextColor(Color.parseColor("#FAFCFD"));
            mInviteText.setTextColor(Color.parseColor("#FAFCFD"));

            mHomeArrow.setImageResource(R.drawable.ico_right_grey);
            mIssuanceArrow.setImageResource(R.drawable.ico_right_green);
            mOrderReceivingArrow.setImageResource(R.drawable.ico_right_grey);
            mMessageArrow.setImageResource(R.drawable.ico_right_grey);
            mInviteArrow.setImageResource(R.drawable.ico_right_grey);
        } else if (view == mOrderReceiving) {
            mHomeIco.setImageResource(R.drawable.a3_ico_home);
            mIssureIcon.setImageResource(R.drawable.a3_ico_issue);
            mReceiveIcon.setImageResource(R.drawable.a3_ico_receive_selected);
            mInviteIcon.setImageResource(R.drawable.a3_ico_friends);
            mMessageIcon.setImageResource(R.drawable.a3_ico_message);

            mHomeText.setTextColor(Color.parseColor("#FAFCFD"));
            mIssuanceText.setTextColor(Color.parseColor("#FAFCFD"));
            mOrderReceivingText.setTextColor(Color.parseColor("#B3EF69"));
            mMessageText.setTextColor(Color.parseColor("#FAFCFD"));
            mInviteText.setTextColor(Color.parseColor("#FAFCFD"));

            mHomeArrow.setImageResource(R.drawable.ico_right_green);
            mIssuanceArrow.setImageResource(R.drawable.ico_right_green);
            mOrderReceivingArrow.setImageResource(R.drawable.ico_right_green);
            mMessageArrow.setImageResource(R.drawable.ico_right_grey);
            mInviteArrow.setImageResource(R.drawable.ico_right_grey);
        } else if (view == mMessage) {
            mHomeIco.setImageResource(R.drawable.a3_ico_home);
            mIssureIcon.setImageResource(R.drawable.a3_ico_issue);
            mReceiveIcon.setImageResource(R.drawable.a3_ico_receive);
            mInviteIcon.setImageResource(R.drawable.a3_ico_friends);
            mMessageIcon.setImageResource(R.drawable.a3_ico_message_selected);

            mHomeText.setTextColor(Color.parseColor("#FAFCFD"));
            mIssuanceText.setTextColor(Color.parseColor("#FAFCFD"));
            mOrderReceivingText.setTextColor(Color.parseColor("#FAFCFD"));
            mMessageText.setTextColor(Color.parseColor("#B3EF69"));
            mInviteText.setTextColor(Color.parseColor("#FAFCFD"));

            mHomeArrow.setImageResource(R.drawable.ico_right_grey);
            mIssuanceArrow.setImageResource(R.drawable.ico_right_grey);
            mOrderReceivingArrow.setImageResource(R.drawable.ico_right_grey);
            mMessageArrow.setImageResource(R.drawable.ico_right_green);
            mInviteArrow.setImageResource(R.drawable.ico_right_grey);
        } else if (view == mInvite) {
            mHomeIco.setImageResource(R.drawable.a3_ico_home);
            mIssureIcon.setImageResource(R.drawable.a3_ico_issue);
            mReceiveIcon.setImageResource(R.drawable.a3_ico_receive);
            mInviteIcon.setImageResource(R.drawable.a3_ico_friends_selected);
            mMessageIcon.setImageResource(R.drawable.a3_ico_message);

            mHomeText.setTextColor(Color.parseColor("#FAFCFD"));
            mIssuanceText.setTextColor(Color.parseColor("#FAFCFD"));
            mOrderReceivingText.setTextColor(Color.parseColor("#FAFCFD"));
            mMessageText.setTextColor(Color.parseColor("#FAFCFD"));
            mInviteText.setTextColor(Color.parseColor("#B3EF69"));

            mHomeArrow.setImageResource(R.drawable.ico_right_grey);
            mIssuanceArrow.setImageResource(R.drawable.ico_right_grey);
            mOrderReceivingArrow.setImageResource(R.drawable.ico_right_grey);
            mMessageArrow.setImageResource(R.drawable.ico_right_grey);
            mInviteArrow.setImageResource(R.drawable.ico_right_green);
        }
    }

    public void switchFragment(Fragment fragment, boolean showLeft) {
        if (getActivity() == null)
            return;
        if (getActivity() instanceof SlidingActivity) {
            SlidingActivity slidingActivity = (SlidingActivity) getActivity();
            slidingActivity.switchContent(fragment);
            if (showLeft) {
                slidingActivity.isShowLeft(true);
                slidingActivity.showLeft();
            }
        }
    }

    @Override
    public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException {
        // TODO Auto-generated method stub
        if (url.endsWith(ApiInterface.USER_BALANCE)) {
            //int balanceInt = Float.valueOf(userBalance.balance).intValue();
            String balance = Utils.formatBalance(mUserBalance.publicBalance);
            mIncome.setText(getString(R.string.balance) + balance + getString(R.string.yuan));
        } else if (url.endsWith(ApiInterface.MESSAGE_UNREAD_COUNT)) {
            publicMessageUnreadCount = mMessageUnreadCountModel.publicUnreadCount;
            setMessageUnreadCount();
        } else if (url.endsWith(ApiInterface.USER_PROFILE)) {
            String userStr = mShared.getString("user", "");
            try {
                if (userStr != null) {
                    JSONObject userJson = new JSONObject(userStr);
                    mUser = new USER();
                    mUser.fromJson(userJson);
                    publicImageLoader.displayImage(mUser.avatar.thumb, mAvatar, O2OMobile.options_head);
                    mUserName.setText(Utils.replaceBlank(mUser.nickname));

                }
            } catch (Exception e) {

            }
        }
    }

    private void setMessageUnreadCount() {
        if (publicMessageUnreadCount <= 0) {
            mMessageNum.setVisibility(View.GONE);
        } else {
            mMessageNum.setVisibility(View.VISIBLE);
            if (publicMessageUnreadCount < 100) {
                mMessageNum.setText(publicMessageUnreadCount + "");
            } else {
                mMessageNum.setText("99+");
            }
        }
    }

    public void onEvent(Object event) {
        Message message = (Message) event;
        if (message.what == MessageConstant.MESSAGE_READ) {
            publicMessageUnreadCount = publicMessageUnreadCount - 1;
            setMessageUnreadCount();
        } else if (message.what == MessageConstant.APPLY_FREEMAN) {
            mUserBalanceModel.getProfile(mUser.id);
            changeTextColor(mHome);
            switchFragment(mA0HomeFragment, true);
        } else if (message.what == MessageConstant.SIGN_IN_SUCCESS) {
            mMessageUnreadCountModel.getMessageUnreadCount();
        }
    }

    @Override
    public void onDestroyView() {
        // TODO Auto-generated method stub
        if (EventBus.getDefault().isregister(this)) {
            EventBus.getDefault().unregister(this);
        }
        super.onDestroyView();
    }

    @Override
    public void onResume() {
        // TODO Auto-generated method stub
        super.onResume();
        mUserBalance.get();
        mMessageUnreadCountModel.getMessageUnreadCount();

        mShared = getActivity().getSharedPreferences(O2OMobileAppConst.USERINFO, 0);
        String userStr = mShared.getString("user", "");
        try {
            if (userStr != null) {
                JSONObject userJson = new JSONObject(userStr);
                mUser = new USER();
                mUser.fromJson(userJson);
                publicImageLoader.displayImage(mUser.avatar.thumb, mAvatar, O2OMobile.options_head);
                mUserName.setText(Utils.replaceBlank(mUser.nickname));

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

}