package com.diandi.demo.ui.fragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.diandi.demo.R;
import com.diandi.demo.adapter.PlanAdapter;
import com.diandi.demo.db.PlanDao;
import com.diandi.demo.model.Plan;
import com.diandi.demo.ui.activity.NoteActivity;
import com.diandi.demo.ui.activity.RadialProgressActivity;
import com.diandi.demo.ui.activity.WritePlanActivity;
import com.diandi.demo.widget.dialog.DialogTips;
import com.diandi.demo.widget.dialog.ListDialog;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
/**
* *******************************************************************************
* ********* Author : klob(kloblic@gmail.com) .
* ********* Date : 2014-11-29 .
* ********* Time : 11:46 .
* ********* Project name : Diandi1.18 .
* ********* Version : 1.0
* ********* Copyright @ 2014, klob, All Rights Reserved
* *******************************************************************************
*/
public class PlanFragment extends BaseFragment implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {
private PlanDao mPlanDao;
private ListView mPlanListView;
private View mView;
private PlanAdapter mPlanAdapter;
private List<Plan> mPlans;
private String mPlanCategory;
public String getPlanCategory() {
return mPlanCategory;
}
public void setPlanCategory(String planCategory) {
mPlanCategory = planCategory;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
mView = layoutInflater.inflate(R.layout.activity_my_list, null);
return mView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
findView();
initView();
}
@Override
public void onResume() {
super.onResume();
onRefresh();
}
public void onRefresh() {
loadData();
mPlanAdapter.setList(mPlans);
}
@Override
void findView() {
mPlanListView = (ListView) mView.findViewById(android.R.id.list);
}
@Override
void initView() {
mPlanDao = new PlanDao(getActivity());
loadData();
mPlanAdapter = new PlanAdapter(getActivity(), mPlans);
mPlanListView.setAdapter(mPlanAdapter);
bindEvent();
}
private void loadData() {
try {
mPlans = mPlanDao.query("category", mPlanCategory);
mPlanDao.sortPlans(mPlans);
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
void bindEvent() {
mPlanListView.setOnItemClickListener(this);
mPlanListView.setOnItemLongClickListener(this);
}
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long l) {
final Plan plan = mPlanAdapter.getItem(position);
DialogTips dialog = new DialogTips(getActivity(), plan.getTitle(), "删除计划", "确定", true, true);
dialog.SetOnSuccessListener(new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
mPlanDao.deletePlan(plan);
onRefresh();
}
});
dialog.show();
return true;
}
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
final Plan plan = mPlanAdapter.getItem(position);
final ArrayList<String> list = new ArrayList<String>();
list.add("设置进度");
list.add("修改计划");
list.add("标记完成");
list.add("修改笔记");
final ListDialog listDialog = new ListDialog(getActivity(), "操作", list);
listDialog.show();
listDialog.setOnListItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if (i == 0) {
Intent intent = new Intent(getActivity(), RadialProgressActivity.class);
intent.putExtra(Plan.PLAN_ID, plan.get_id());
startAnimActivity(intent);
listDialog.dismiss();
}
if (i == 1) {
Intent intent = new Intent(getActivity(), WritePlanActivity.class);
intent.putExtra(Plan.PLAN_ID, plan.get_id());
startAnimActivity(intent);
listDialog.dismiss();
}
if (i == 2) {
plan.setProgress(100);
plan.setTop("false");
mPlanDao.createPlan(plan);
onRefresh();
listDialog.dismiss();
}
if (i == 3) {
Intent intent = new Intent(getActivity(), NoteActivity.class);
intent.putExtra(Plan.PLAN_ID, plan.get_id());
startAnimActivity(intent);
listDialog.dismiss();
}
}
});
}
}