package com.cjj.cartoon;
import java.util.ArrayList;
import android.graphics.Typeface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.Toast;
import com.cjj.callback.ReLoadCallbackListener;
import com.cjj.cartoon.adapter.HomeListComicAdapter;
import com.cjj.cartoon.custom.TargetImageLayout;
import com.cjj.cartoon.dao.YinhunDao;
import com.cjj.cartoon.model.HeadViewDataModel;
import com.cjj.cartoon.model.LocalImageModel;
import com.cjj.cartoon.model.MousePaitedApplication;
import com.cjj.loading.LoadingCjjLayout;
import com.cjj.staggeredgridview.StaggeredGridView;
import com.cjj.volley.utils.LogUtil;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.handmark.pulltorefresh.library.PullToRefreshStaggeredGridView;
import com.norbsoft.typefacehelper.ActionBarHelper;
import com.norbsoft.typefacehelper.TypefaceHelper;
import de.keyboardsurfer.android.widget.crouton.Crouton;
public class ComicListActivity extends ActionBarActivity implements ReLoadCallbackListener{
private PullToRefreshListView mPullToRefreshListView;
private ListView lv;
private PullToRefreshStaggeredGridView ptrstgv;
private TargetImageLayout headView;
private HomeListComicAdapter mAdapter;
private ArrayList<LocalImageModel> list;
private StaggeredGridView staggeredGridView;
private View contentView;
private LoadingCjjLayout loadingView;
private boolean isRefresh = false;
private boolean isReloadData = false;
private LinearLayout view_line;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**init loadingView*/
initLoadView();
setContentView(loadingView);
loadingView.show_LoadingView();
intiToolBar();
ActionBarHelper.setTitle(getSupportActionBar(), TypefaceHelper.typeface(this, R.string.app_name2,MousePaitedApplication.instance.getRobotoTypeface(),Typeface.NORMAL));
view_line = (LinearLayout)findViewById(R.id.view_line);
ptrstgv = (PullToRefreshStaggeredGridView) findViewById(R.id.ptrstgv);
staggeredGridView = ptrstgv.getRefreshableView();
ptrstgv.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
headView = new TargetImageLayout(this);
/**
* 获取头部信息数据
*/
getHeadViewData();
ptrstgv.getRefreshableView().setHeaderView(headView);
ptrstgv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<StaggeredGridView>() {
@Override
public void onRefresh(
PullToRefreshBase<StaggeredGridView> refreshView) {
refreshData();
}
});
list = new ArrayList<LocalImageModel>();
LocalImageModel model = new LocalImageModel();
model.url = "huoying.jpeg";
model.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/naruto";
model.title = "火影忍者\n(Naruto)";
model.width = 400;
model.height = 484;
list.add(model);
LocalImageModel model4 = new LocalImageModel();
model4.url = "yinshi.jpg";
model4.title = "银魂\n(Gintama)";
model4.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/gintama";
model4.width = 400;
model4.height = 580;
list.add(model4);
LocalImageModel model5 = new LocalImageModel();
model5.url = "haizeiwang.jpg";
model5.title = "海贼王\n(One Piece)";
model5.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/op";
model5.width = 360;
model5.height = 480;
list.add(model5);
LocalImageModel model12 = new LocalImageModel();
model12.url = "xuejiufayuan.jpg";
model12.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/fating";
model12.title = "学纠法院\n(Court)";
model12.width = 400;
model12.height = 579;
list.add(model12);
LocalImageModel model3 = new LocalImageModel();
model3.url = "heizi.jpg";
model3.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/%E9%BB%91%E5%AD%90%E7%9A%84%E7%AF%AE%E7%90%83-zaixianmanhua";
model3.title = "黑子的篮球\n(Kuroko's Basketball)";
model3.width = 400;
model3.height = 572;
list.add(model3);
LocalImageModel model2 = new LocalImageModel();
model2.url = "dajian.jpg";
model2.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/cm";
model2.title = "大剑\n(Great Sword)";
model2.width = 400;
model2.height = 372;
list.add(model2);
LocalImageModel model6 = new LocalImageModel();
model6.url = "jinjidejuren.jpg";
model6.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/aot";
model6.title = "进击的巨人\n(Attack on Titan)";
model6.width = 400;
model6.height = 515;
list.add(model6);
LocalImageModel model7 = new LocalImageModel();
model7.url = "jinjidezhongxue.jpg";
model7.link ="http://www.ishuhui.com/archives/category/zaixianmanhua/school";
model7.title = "进击的中学\n(Secondary attack)";
model7.width = 400;
model7.height = 320;
list.add(model7);
LocalImageModel model8 = new LocalImageModel();
model8.url = "meishidefulu.jpg";
model8.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/toriko";
model8.title = "美食的俘虏\n(Food captives)";
model8.width = 381;
model8.height = 500;
list.add(model8);
LocalImageModel model9 = new LocalImageModel();
model9.url = "paiqiu.jpeg";
model9.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/paiqiu";
model9.title = "排球少年\n(Junior Volleyball)";
model9.width = 400;
model9.height = 590;
list.add(model9);
LocalImageModel model10 = new LocalImageModel();
model10.url = "qizayouxi.jpg";
model10.title = "欺诈游戏\n(Liar Game)";
model10.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/liargame";
model10.width = 400;
model10.height = 329;
list.add(model10);
LocalImageModel model11 = new LocalImageModel();
model11.url = "quanzhilieren.jpg";
model11.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/hunter";
model11.title = "全职猎人\n(HUNTER)";
model11.width = 400;
model11.height = 533;
list.add(model11);
LocalImageModel model13 = new LocalImageModel();
model13.url = "yaojingdeweiba.jpg";
model13.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/ft";
model13.title = "妖精的尾巴\n(Fairy Tail)";
model13.width = 327;
model13.height = 500;
list.add(model13);
LocalImageModel model14 = new LocalImageModel();
model14.url = "yaren.jpg";
model14.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/yaren";
model14.title = "亚人\n(Asian people)";
model14.width = 400;
model14.height = 537;
list.add(model14);
LocalImageModel model15 = new LocalImageModel();
model15.url = "yzdtk.jpg";
model15.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/area";
model15.title = "鸭子的天空\n(King Junior Basketball)";
model15.width = 400;
model15.height = 600;
list.add(model15);
LocalImageModel model16 = new LocalImageModel();
model16.url = "chufa.jpg";
model16.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/wt";
model16.title = "境界触发者\n(World Trigger)";
model16.width = 400;
model16.height = 600;
list.add(model16);
LocalImageModel model17 = new LocalImageModel();
model17.url = "wdyxxy.jpg";
model17.link = "http://www.ishuhui.com/archives/category/zaixianmanhua/hero";
model17.title = "我的英雄学院\n(My Hero Academy)";
model17.width = 400;
model17.height = 400;
list.add(model17);
mAdapter = new HomeListComicAdapter(ComicListActivity.this, list);
ptrstgv.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
}
private void initLoadView() {
contentView = getLayoutInflater().inflate(R.layout.activity_comic_list, null);
loadingView = new LoadingCjjLayout(this, contentView);
loadingView.setReLoadCallbackListener(this);
}
private void getHeadViewData() {
if(isReloadData)
{
isReloadData = false;
}else{
loadingView.show_LoadingView();
}
new HeadViewDataAsycTask().execute();
}
public void refreshData()
{
isRefresh = true;
getHeadViewData();
}
private void intiToolBar() {
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Gintama");
// toolbar.setLogo(R.drawable.app_in);
setSupportActionBar(toolbar);
// Menu item click 的監聽事件一樣要設定在 setSupportActionBar 才有作用
toolbar.setOnMenuItemClickListener(onMenuItemClick);
}
private Toolbar.OnMenuItemClickListener onMenuItemClick = new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
switch (menuItem.getItemId()) {
case R.id.action_refresh:
/**刷新获取数据*/
staggeredGridView.setSelectionToTop();
ptrstgv.setRefreshing(true);
break;
// case R.id.action_share:
// msg += "Click share";
// shareApp();
// break;
// case R.id.action_settings:
// msg += "Click setting";
// break;
}
// if(!msg.equals("aaaa")) {
// Toast.makeText(ComicListActivity.this, msg, Toast.LENGTH_SHORT).show();
// ptrstgv.setRefreshing(true);
// }
return true;
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
/**
* async get data
* @author cjj
*
*/
private class HeadViewDataAsycTask extends AsyncTask<Void, Void, ArrayList<HeadViewDataModel>>
{
ArrayList<HeadViewDataModel> dataHeadView ;
@Override
protected ArrayList<HeadViewDataModel> doInBackground(Void... params) {
try {
dataHeadView = YinhunDao.getInstance().getHeadViewDataFromNet();
return dataHeadView;
} catch (Exception e) {
LogUtil.LogMsg_I("cjj===>====>"+e);
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(ArrayList<HeadViewDataModel> result) {
if(dataHeadView!=null)
{
LogUtil.LogMsg_I("cjj===>====>1");
headView.setListImageData(ComicListActivity.this,result);
loadingView.show_ContentView();
//初始化
Animation translateAnimation = new TranslateAnimation(0.0f,0.0f,-200f,0.0f);
//设置动画时间
translateAnimation.setDuration(1000);
headView.startAnimation(translateAnimation);
if(isRefresh)
{
toastMsg();
}
}else
{
LogUtil.LogMsg_I("cjj===>====>2");
loadingView.show_FailView();
}
isRefresh = false;
ptrstgv.onRefreshComplete();
super.onPostExecute(result);
}
}
@Override
public void onReLoadCallback() {
isReloadData = true;
loadingView.show_reloadingView();
getHeadViewData();
}
/**
*刷新成功提示
*/
public void toastMsg()
{
showCustomViewCrouton();
}
public void showCustomViewCrouton()
{
View view = ComicListActivity.this.getLayoutInflater().inflate(
R.layout.crouton_custom_view, null);
final Crouton crouton;
// if (displayOnTop.isChecked()) {
// crouton = Crouton.make(this, view);
// } else {
showLLView();
crouton = Crouton.make(this, view,
R.id.view_line);
// }
crouton.show();
}
public void showLLView()
{
if(view_line!=null)
{
// if(view_line.getVisibility()==View.VISIBLE)
// {
// view_line.setVisibility(View.GONE);
// }else
// {
view_line.setVisibility(View.VISIBLE);
// }
}
}
@Override
protected void onDestroy() {
if(mAdapter!=null)
{
LogUtil.LOgMsg_W("ondestroy1");
mAdapter.recycleAdapterResource();
mAdapter = null;
System.gc();
}
LogUtil.LOgMsg_W("ondestroy");
super.onDestroy();
}
}