/*
* Copyright 2017 lizhaotailang
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.marktony.zhihudaily.homepage;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.marktony.zhihudaily.adapter.GuokrNewsAdapter;
import com.marktony.zhihudaily.R;
import com.marktony.zhihudaily.bean.GuokrHandpickNews;
import com.marktony.zhihudaily.interfaze.OnRecyclerViewOnClickListener;
import java.util.ArrayList;
/**
* Created by lizhaotailang on 2016/6/13.
* 果壳精选
* guokr handpick
*/
public class GuokrFragment extends Fragment implements GuokrContract.View{
private RecyclerView recyclerView;
private SwipeRefreshLayout refreshLayout;
private GuokrNewsAdapter adapter;
private GuokrContract.Presenter presenter;
// require an empty constructor
public GuokrFragment(){
}
public static GuokrFragment newInstance() {
return new GuokrFragment();
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_list,container,false);
initViews(view);
presenter.start();
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
presenter.refresh();
}
});
return view;
}
@Override
public void setPresenter(GuokrContract.Presenter presenter) {
if (presenter != null){
this.presenter = presenter;
}
}
@Override
public void initViews(View view) {
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
refreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.refreshLayout);
//设置下拉刷新的按钮的颜色
refreshLayout.setColorSchemeResources(R.color.colorPrimary);
}
@Override
public void showError() {
Snackbar.make(refreshLayout, R.string.loaded_failed,Snackbar.LENGTH_INDEFINITE)
.setAction(R.string.retry, new View.OnClickListener() {
@Override
public void onClick(View v) {
presenter.refresh();
}
})
.show();
}
@Override
public void showResults(ArrayList<GuokrHandpickNews.result> list) {
if (adapter == null) {
adapter = new GuokrNewsAdapter(getContext(), list);
adapter.setItemClickListener(new OnRecyclerViewOnClickListener() {
@Override
public void OnItemClick(View v, int position) {
presenter.startReading(position);
}
});
recyclerView.setAdapter(adapter);
} else {
adapter.notifyDataSetChanged();
}
}
@Override
public void showLoading() {
refreshLayout.setRefreshing(true);
}
@Override
public void stopLoading() {
refreshLayout.setRefreshing(false);
}
}