package chen.testchat.ui.fragment;

import android.content.Intent;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.AlphabetIndexer;
import android.widget.LinearLayout;
import android.widget.SectionIndexer;
import android.widget.TextView;

import org.pointstone.cugappplat.baseadapter.BaseWrappedViewHolder;

import chen.testchat.R;
import chen.testchat.adapter.ContactsAdapter;
import chen.testchat.bean.User;
import chen.testchat.db.ChatDB;
import chen.testchat.listener.OnBaseItemClickListener;
import chen.testchat.manager.UserCacheManager;
import chen.testchat.ui.BlackListActivity;
import chen.testchat.ui.GroupListActivity;
import chen.testchat.ui.MainActivity;
import chen.testchat.ui.NearbyPeopleActivity;
import chen.testchat.ui.UserInfoActivity;
import chen.testchat.util.LogUtil;
import chen.testchat.view.ListViewDecoration;
import chen.testchat.view.MyLetterView;


/**
 * 项目名称:    HappyChat
 * 创建人:        陈锦军
 * 创建时间:    2016/9/15      15:25
 * QQ:             1981367757
 */
public class ContactsFragment extends org.pointstone.cugappplat.base.basemvp.BaseFragment implements MyLetterView.MyLetterChangeListener, View.OnClickListener {
        MyLetterView mMyLetterView;
        ContactsAdapter adapter;
        SectionIndexer mIndexer;
        TextView middle;
        String alphabet = "#ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        private RecyclerView display;
        private LinearLayoutManager mLinearLayoutManager;


        @Override
        protected boolean isNeedHeadLayout() {
                return false;
        }

        @Override
        protected boolean isNeedEmptyLayout() {
                return false;
        }

        @Override
        protected int getContentLayout() {
                return R.layout.fragment_contacts;
        }

        @Override
        public void initView() {
                display = (RecyclerView) findViewById(R.id.rcv_fragment_contacts_display);
                mMyLetterView = (MyLetterView) findViewById(R.id.ml_fragment_contacts_letter);
                middle = (TextView) findViewById(R.id.tv_fragment_contacts_middle);
                LinearLayout groupList = (LinearLayout) findViewById(R.id.ll_fragment_contacts_group);
                LinearLayout blackList = (LinearLayout) findViewById(R.id.ll_fragment_contacts_black);
                LinearLayout nearby = (LinearLayout) findViewById(R.id.ll_fragment_contacts_nearby);
                mMyLetterView.setListener(this);
                groupList.setOnClickListener(this);
                blackList.setOnClickListener(this);
                nearby.setOnClickListener(this);
        }





        @Override
        public void initData() {
                LogUtil.e("这里设置display的adapter121");
                mMyLetterView.setTextView(middle);
                adapter = new ContactsAdapter(UserCacheManager.getInstance().getAllContacts(), R.layout.fragment_contacts_list_item);
                LogUtil.e("初始化的所有好友信息");
                if (adapter.getAllData() != null && adapter.getAllData().size() > 0) {
                        for (User user :
                                adapter.getAllData()) {
                                LogUtil.e(user);
                        }
                }
                mIndexer = new AlphabetIndexer(ChatDB.create().getSortedKeyCursor(), 0, alphabet);

                adapter.setSectionIndexer(mIndexer);
                mLinearLayoutManager = new LinearLayoutManager(getActivity());
                display.setLayoutManager(mLinearLayoutManager);
                display.addItemDecoration(new ListViewDecoration(getActivity()));
                display.setItemAnimator(new DefaultItemAnimator());
                display.addOnItemTouchListener(new OnBaseItemClickListener() {
                        @Override
                        protected void onItemClick(BaseWrappedViewHolder baseWrappedViewHolder, int id, View view, int position) {
                                User user = adapter.getData(position);
                                Intent intent = new Intent(getActivity(), UserInfoActivity.class);
                                intent.putExtra("uid", user.getObjectId());
                                startActivity(intent);
                        }
                });
                display.setAdapter(adapter);
        }

        @Override
        protected void updateView() {

        }


        @Override
        public void onResume() {
                super.onResume();
                onHiddenChanged(false);
        }

        @Override
        public void onHiddenChanged(boolean hidden) {
                super.onHiddenChanged(hidden);
                if (!hidden) {
                        ((MainActivity) getActivity()).initActionBar("好友");
                }
        }

        @Override
        public void onLetterChanged(String s) {
                int index = alphabet.indexOf(s);
                mLinearLayoutManager.scrollToPosition(mIndexer.getPositionForSection(index));
        }


        public void updateContactsData(String belongId) {
                mIndexer = new AlphabetIndexer(ChatDB.create().getSortedKeyCursor(), 0, alphabet);
                adapter.setSectionIndexer(mIndexer);
                User user=UserCacheManager.getInstance().getUser(belongId);
                LogUtil.e("这里添加的好友星星如下");
                LogUtil.e(user);
                adapter.addData(user);
        }

        @Override
        public void onClick(View view) {
                switch (view.getId()) {
                        case R.id.ll_fragment_contacts_group:
                                GroupListActivity.start(getActivity());
                                break;
                        case R.id.ll_fragment_contacts_black:
                                BlackListActivity.start(getActivity());
                                break;
                        case R.id.ll_fragment_contacts_nearby:
                                NearbyPeopleActivity.start(getActivity());
                                break;


                }
        }
}