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

Java tutorial

Introduction

Here is the source code for com.insthub.O2OMobile.Fragment.E2_ReceivedOrdersFragment.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.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.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ImageView;
import android.widget.TextView;

import com.BeeFramework.model.BusinessResponse;
import com.external.androidquery.callback.AjaxStatus;
import com.external.eventbus.EventBus;
import com.external.maxwin.view.IXListViewListener;
import com.external.maxwin.view.XListView;
import com.insthub.O2OMobile.Activity.D1_OrderActivity;
import com.insthub.O2OMobile.Activity.SlidingActivity;
import com.insthub.O2OMobile.Adapter.E2_ReceivedOrderListAdapter;
import com.insthub.O2OMobile.MessageConstant;
import com.insthub.O2OMobile.Model.ReceivedOrderListModel;
import com.insthub.O2OMobile.Protocol.ApiInterface;
import com.insthub.O2OMobile.Protocol.ORDER_INFO;
import com.insthub.O2OMobile.Protocol.orderlistreceivedResponse;
import com.insthub.O2OMobile.R;

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

public class E2_ReceivedOrdersFragment extends Fragment implements BusinessResponse, IXListViewListener {
    private TextView mUndoneOrderTextView;
    private TextView mDoneOrderTextView;
    private XListView mUnfinishedListView;
    private XListView mFinishedListView;

    private E2_ReceivedOrderListAdapter mUndoListAdapter;
    private E2_ReceivedOrderListAdapter mDoneListAdapter;
    private ReceivedOrderListModel mOrderListModel;

    private ImageView mEmptyView;
    private ImageView mBackButton;

    public static int UNDONE_ORDER = 0;
    public static int DONE_ORDER = 1;
    private int mCurrentState = 0;

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View mainView = inflater.inflate(R.layout.e0_published_orders, null);
        mainView.setOnClickListener(null);

        mUndoneOrderTextView = (TextView) mainView.findViewById(R.id.e0_undone_order);
        mDoneOrderTextView = (TextView) mainView.findViewById(R.id.e0_done_order);
        mUnfinishedListView = (XListView) mainView.findViewById(R.id.e0_orderlist_undone);
        mFinishedListView = (XListView) mainView.findViewById(R.id.e0_orderlist_done);
        mUnfinishedListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (position - 1 < mOrderListModel.publicUnfinishedOrderList.size()) {
                    ORDER_INFO order_info = mOrderListModel.publicUnfinishedOrderList.get(position - 1);
                    Intent intent = new Intent(getActivity(), D1_OrderActivity.class);
                    intent.putExtra(D1_OrderActivity.ORDER_ID, order_info.id);
                    startActivity(intent);
                    getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
                }
            }
        });

        mUnfinishedListView.setPullRefreshEnable(true);
        mUnfinishedListView.setPullLoadEnable(true);
        mUnfinishedListView.setXListViewListener(this, 1);

        mFinishedListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (position - 1 < mOrderListModel.publicFinishedOrderList.size()) {
                    ORDER_INFO order_info = mOrderListModel.publicFinishedOrderList.get(position - 1);
                    Intent intent = new Intent(getActivity(), D1_OrderActivity.class);
                    intent.putExtra(D1_OrderActivity.ORDER_ID, order_info.id);
                    startActivity(intent);
                    getActivity().overridePendingTransition(R.anim.push_right_in, R.anim.push_right_out);
                }
            }
        });

        mFinishedListView.setPullRefreshEnable(true);
        mFinishedListView.setPullLoadEnable(true);
        mFinishedListView.setXListViewListener(this, 2);

        mBackButton = (ImageView) mainView.findViewById(R.id.home_menu);
        mBackButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                ((SlidingActivity) getActivity()).showLeft();
            }
        });

        mOrderListModel = new ReceivedOrderListModel(getActivity());
        mOrderListModel.addResponseListener(this);
        mOrderListModel.loadCacheRecivedUnfinished();
        if (mOrderListModel.publicUnfinishedOrderList != null
                && mOrderListModel.publicUnfinishedOrderList.size() > 0) {
            mUndoListAdapter = new E2_ReceivedOrderListAdapter(getActivity(),
                    mOrderListModel.publicUnfinishedOrderList);
            mUnfinishedListView.setAdapter(mUndoListAdapter);
            mUnfinishedListView.loadMoreHide();
        }

        mOrderListModel.fetchPreUnfinished();

        mUndoneOrderTextView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mEmptyView.setVisibility(View.GONE);
                mUnfinishedListView.setVisibility(View.VISIBLE);
                mFinishedListView.setVisibility(View.GONE);
                mCurrentState = UNDONE_ORDER;
                mUndoneOrderTextView.setTextColor(Color.WHITE);
                mUndoneOrderTextView.setBackgroundResource(R.drawable.e0_nav_left_selected);
                mDoneOrderTextView.setTextColor(getResources().getColor(R.color.select_item));
                mDoneOrderTextView.setBackgroundResource(R.drawable.e0_nav_right_normal);
                if (null == mUndoListAdapter) {
                    if (mOrderListModel.publicUnfinishedOrderList != null
                            && mOrderListModel.publicUnfinishedOrderList.size() > 0) {
                        mUndoListAdapter = new E2_ReceivedOrderListAdapter(getActivity(),
                                mOrderListModel.publicUnfinishedOrderList);
                        mUnfinishedListView.setAdapter(mUndoListAdapter);
                        mUnfinishedListView.loadMoreHide();
                    }
                    mOrderListModel.fetchPreUnfinished();
                }
            }
        });

        mDoneOrderTextView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mEmptyView.setVisibility(View.GONE);
                mFinishedListView.setVisibility(View.VISIBLE);
                mUnfinishedListView.setVisibility(View.GONE);
                mCurrentState = DONE_ORDER;

                mUndoneOrderTextView.setTextColor(getResources().getColor(R.color.select_item));
                mUndoneOrderTextView.setBackgroundResource(R.drawable.e0_nav_left_normal);
                mDoneOrderTextView.setTextColor(Color.WHITE);
                mDoneOrderTextView.setBackgroundResource(R.drawable.e0_nav_right_selected);

                if (null == mDoneListAdapter) {
                    mOrderListModel.loadCacheRecivedfinished();
                    if (mOrderListModel.publicFinishedOrderList != null
                            && mOrderListModel.publicFinishedOrderList.size() > 0) {
                        mDoneListAdapter = new E2_ReceivedOrderListAdapter(getActivity(),
                                mOrderListModel.publicFinishedOrderList);
                        mFinishedListView.setAdapter(mDoneListAdapter);
                        mFinishedListView.loadMoreHide();
                    }
                    mOrderListModel.fetchPrefinished();
                }

            }
        });

        mEmptyView = (ImageView) mainView.findViewById(R.id.e0_empty_view);
        mEmptyView.setVisibility(View.GONE);
        mEmptyView.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mCurrentState == UNDONE_ORDER) {
                    mOrderListModel.fetchPreUnfinished();
                } else {
                    mOrderListModel.fetchPrefinished();
                }
            }
        });
        if (!EventBus.getDefault().isregister(this)) {
            EventBus.getDefault().register(this);
        }
        return mainView;
    }

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

    @Override
    public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException {
        mUnfinishedListView.stopRefresh();
        mUnfinishedListView.stopLoadMore();
        mFinishedListView.stopRefresh();
        mFinishedListView.stopLoadMore();
        if (url.endsWith(ApiInterface.ORDERLIST_RECEIVED)) {
            if (mCurrentState == UNDONE_ORDER) {
                if (null != jo) {
                    mUnfinishedListView.loadMoreShow();
                    mEmptyView.setVisibility(View.GONE);
                    mUnfinishedListView.setVisibility(View.VISIBLE);
                    if (null == mUndoListAdapter) {
                        mUndoListAdapter = new E2_ReceivedOrderListAdapter(getActivity(),
                                mOrderListModel.publicUnfinishedOrderList);
                        mUnfinishedListView.setAdapter(mUndoListAdapter);
                    } else {
                        mUndoListAdapter.notifyDataSetChanged();
                    }

                    orderlistreceivedResponse response = new orderlistreceivedResponse();
                    response.fromJson(jo);
                    if (0 == response.more) {
                        mUnfinishedListView.stopLoadMore();
                        mUnfinishedListView.setPullLoadEnable(false);
                    } else {
                        mUnfinishedListView.stopLoadMore();
                        mUnfinishedListView.setPullLoadEnable(true);
                    }
                } else {
                    if (mOrderListModel.publicUnfinishedOrderList.size() == 0) {
                        mEmptyView.setVisibility(View.VISIBLE);
                        mUnfinishedListView.setVisibility(View.GONE);
                    }
                }

            } else {

                if (null != jo) {
                    mFinishedListView.loadMoreShow();
                    mEmptyView.setVisibility(View.GONE);
                    mFinishedListView.setVisibility(View.VISIBLE);
                    if (null == mDoneListAdapter) {
                        mDoneListAdapter = new E2_ReceivedOrderListAdapter(getActivity(),
                                mOrderListModel.publicFinishedOrderList);
                        mFinishedListView.setAdapter(mDoneListAdapter);
                    } else {
                        mDoneListAdapter.notifyDataSetChanged();
                    }

                    orderlistreceivedResponse response = new orderlistreceivedResponse();
                    response.fromJson(jo);
                    if (0 == response.more) {
                        mFinishedListView.stopLoadMore();
                        mFinishedListView.setPullLoadEnable(false);
                    } else {
                        mFinishedListView.stopLoadMore();
                        mFinishedListView.setPullLoadEnable(true);
                    }
                } else {
                    if (mOrderListModel.publicFinishedOrderList.size() == 0) {
                        mEmptyView.setVisibility(View.VISIBLE);
                        mFinishedListView.setVisibility(View.GONE);
                    }
                }

            }

        }
    }

    @Override
    public void onRefresh(int id) {
        if (id == 1) {
            mOrderListModel.fetchPreUnfinished();
        } else {
            mOrderListModel.fetchPrefinished();
        }
    }

    @Override
    public void onLoadMore(int id) {
        if (id == 1) {
            mOrderListModel.fetchNextUnfinished();
        } else {
            mOrderListModel.fetchNextfinished();
        }
    }

    public void onEvent(Object event) {
        Message message = (Message) event;
        if (message.what == MessageConstant.SIGN_IN_SUCCESS) {
            if (mCurrentState == UNDONE_ORDER) {
                mOrderListModel.fetchPreUnfinished();
            } else {
                mOrderListModel.fetchPrefinished();
            }
        }
    }
}