package com.swifty.fillcolor.controller.categorylist;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.swifty.fillcolor.MyApplication;
import com.swifty.fillcolor.R;
import com.swifty.fillcolor.controller.BaseActivity;
import com.swifty.fillcolor.controller.paint.PaintActivity;
import com.swifty.fillcolor.model.GridViewActivityModel;
import com.swifty.fillcolor.model.OnRecycleViewItemClickListener;
import com.swifty.fillcolor.model.bean.PictureBean;
import com.swifty.fillcolor.util.L;
import com.swifty.fillcolor.util.ListAnimationUtil;
import com.swifty.fillcolor.util.NetWorkUtil;
import com.swifty.fillcolor.util.UmengUtil;
import com.swifty.fillcolor.view.EmptyRecyclerView;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Created by Swifty.Wang on 2015/7/31.
*/
public class GridViewActivity extends BaseActivity {
private int categoryId;
private EmptyRecyclerView gridView;
List<PictureBean.Picture> pictureBeans;
GirdRecyclerViewAdapter gridViewAdapter;
private TextView titleView;
private SwipeRefreshLayout swipeView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
categoryId = getIntent().getExtras().getInt(MyApplication.THEMEID);
initViews();
}
private void loadLocaldata() {
try {
pictureBeans = getSecretGardenBean(new ArrayList<>(Arrays.asList(getAssets().list("SecretGarden"))));
L.e(pictureBeans.size() + "");
if (pictureBeans == null) {
Toast.makeText(GridViewActivity.this, getString(R.string.loadfailed), Toast.LENGTH_SHORT).show();
} else {
showGrid(true);
}
} catch (IOException e) {
L.e(e.toString());
e.printStackTrace();
}
}
/**
* put sercet garden uri into PictureBean
*
* @param secretGarden
* @return
*/
private List<PictureBean.Picture> getSecretGardenBean(ArrayList<String> secretGarden) {
List<PictureBean.Picture> pictureBeans = new ArrayList<>();
for (String s : secretGarden) {
pictureBeans.add(new PictureBean.Picture(s));
}
return pictureBeans;
}
private void loadPicsInthisTheme(int anInt) {
swipeView.post(new Runnable() {
@Override
public void run() {
swipeView.setRefreshing(true);
}
});
GridViewActivityModel.getInstance().loadPictureData(this, anInt, new GridViewActivityModel.OnLoadPicFinishListener() {
@Override
public void LoadPicFinish(List<PictureBean.Picture> pictures) {
swipeView.post(new Runnable() {
@Override
public void run() {
swipeView.setRefreshing(false);
}
});
if (pictures != null && !pictures.isEmpty()) {
pictureBeans = pictures;
showGrid(false);
} else {
Toast.makeText(GridViewActivity.this, getString(R.string.loadfailed), Toast.LENGTH_SHORT).show();
}
}
@Override
public void LoadPicFailed(String error) {
swipeView.post(new Runnable() {
@Override
public void run() {
swipeView.setRefreshing(false);
}
});
Toast.makeText(GridViewActivity.this, getString(R.string.loadfailed), Toast.LENGTH_SHORT).show();
}
});
// } else {
// showGrid(false);
// }
}
private void initViews() {
setContentView(R.layout.activity_gridview);
titleView = (TextView) findViewById(R.id.toolbar_title);
swipeView = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
gridView = (EmptyRecyclerView) findViewById(R.id.detail_gird);
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
gridView.setLayoutManager(layoutManager);
titleView.setText(getIntent().getStringExtra(MyApplication.THEMENAME));
swipeView.setColorSchemeResources(R.color.red, R.color.orange, R.color.green, R.color.maincolor);
swipeView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
if (NetWorkUtil.isNetworkConnected(GridViewActivity.this)) {
GridViewActivityModel.getInstance().refreshPictureData(GridViewActivity.this, categoryId, new GridViewActivityModel.OnLoadPicFinishListener() {
@Override
public void LoadPicFinish(List<PictureBean.Picture> pictureBeans) {
swipeView.setRefreshing(false);
showGrid(false);
}
@Override
public void LoadPicFailed(String error) {
swipeView.setRefreshing(false);
Toast.makeText(GridViewActivity.this, getString(R.string.loadfailed), Toast.LENGTH_SHORT).show();
}
});
} else {
swipeView.setRefreshing(false);
Toast.makeText(GridViewActivity.this, getString(R.string.network_notconnet), Toast.LENGTH_SHORT).show();
}
}
});
}
private void gotoPaintActivity(String s) {
UmengUtil.analysitic(this, UmengUtil.MODELNUMBER, getIntent().getStringExtra(MyApplication.THEMENAME) + categoryId);
Intent intent = new Intent(this, PaintActivity.class);
if (s.contains(MyApplication.MainUrl)) {
intent.putExtra(MyApplication.BIGPIC, s);
} else {
intent.putExtra(MyApplication.BIGPIC, MyApplication.SECRETGARDENLOCATION + s);
}
startActivity(intent);
}
private void showGrid(final boolean isLocal) {
gridViewAdapter = new GirdRecyclerViewAdapter(this, pictureBeans, categoryId, isLocal);
gridViewAdapter.setOnRecycleViewItemClickListener(new OnRecycleViewItemClickListener() {
@Override
public void recycleViewItemClickListener(View view, int i) {
if (isLocal) {
gotoPaintActivity(pictureBeans.get(i).getUri());
} else {
gotoPaintActivity(String.format(MyApplication.ImageLageUrl, categoryId, pictureBeans.get(i).getId()));
}
}
});
gridView.setAdapter(ListAnimationUtil.addScaleandAlphaAnim(gridViewAdapter));
}
@Override
protected void onResume() {
super.onResume();
if (categoryId == -1) {
loadLocaldata();
} else {
loadPicsInthisTheme(categoryId);
}
}
}