/* * Copyright 2016 Freelander * <p> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.jun.elephant.ui.user.message; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import com.jun.elephant.R; import com.jun.elephant.entity.user.MessageEntity; import com.jun.elephant.entity.user.UserMessageEntity; import com.jun.elephant.mvpframe.base.BaseFrameActivity; import com.jun.elephant.ui.adapter.UserMessageAdapter; import com.jun.elephant.ui.widget.MultiStateView; import com.jun.elephant.ui.widget.MySwipeRefreshLayout; import java.util.ArrayList; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; import in.srain.cube.views.ptr.PtrDefaultHandler2; import in.srain.cube.views.ptr.PtrFrameLayout; /** * Created by Jun on 2016/5/6. */ public class UserMessageActivity extends BaseFrameActivity<MessagePresenter, MessageModel> implements MessageListContract.View { @Bind(R.id.toolBar) Toolbar mToolBar; @Bind(R.id.recyclerView) RecyclerView mRecyclerView; @Bind(R.id.multiStateView) MultiStateView mMultiStateView; @Bind(R.id.swipe_layout) MySwipeRefreshLayout mSwipeLayout; private UserMessageAdapter mAdapter; private List<MessageEntity> mMessageList; private int mPageIndex = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_message); ButterKnife.bind(this); } @Override public void initData() { super.initData(); mMessageList = new ArrayList<>(); mAdapter = new UserMessageAdapter(this, mMessageList); } @Override public void initView() { super.initView(); setToolbar(mToolBar, getString(R.string.app_user_message)); mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.setAdapter(mAdapter); } @Override public void initListener() { super.initListener(); mSwipeLayout.setPtrHandler(new PtrDefaultHandler2() { @Override public void onLoadMoreBegin(PtrFrameLayout ptrFrameLayout) { mPageIndex ++; mPresenter.getMessageList(mPageIndex); } @Override public void onRefreshBegin(PtrFrameLayout ptrFrameLayout) { mPageIndex = 1; mPresenter.getMessageList(mPageIndex); } }); } @Override public void initLoad() { super.initLoad(); mMultiStateView.setViewState(MultiStateView.VIEW_STATE_LOADING); mPresenter.getMessageList(mPageIndex); } @Override public void refreshMessageList(UserMessageEntity userMessageEntity) { if (userMessageEntity.getData().size() == 0){ mMultiStateView.setViewState(MultiStateView.VIEW_STATE_EMPTY); return; } mMessageList.clear(); mMessageList.addAll(userMessageEntity.getData()); mAdapter.notifyDataSetChanged(); } @Override public void loadMoreMessageList(UserMessageEntity userMessageEntity) { mMessageList.addAll(userMessageEntity.getData()); mAdapter.notifyDataSetChanged(); } @Override public void onRequestStart() { } @Override public void onRequestEnd() { mSwipeLayout.refreshComplete(); mMultiStateView.setViewState(MultiStateView.VIEW_STATE_CONTENT); } @Override public void onRequestError(String msg) { super.onRequestError(msg); mMultiStateView.setViewState(MultiStateView.VIEW_STATE_ERROR); } }