package cn.edu.ustc.appseed.clubseed.fragment; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import java.util.LinkedList; import cn.edu.ustc.appseed.clubseed.R; import cn.edu.ustc.appseed.clubseed.activity.EventContentActivity; import cn.edu.ustc.appseed.clubseed.activity.StarContentActivity; import cn.edu.ustc.appseed.clubseed.adapter.StarListViewAdapter; import cn.edu.ustc.appseed.clubseed.data.Event; import cn.edu.ustc.appseed.clubseed.utils.AppUtils; import cn.edu.ustc.appseed.clubseed.utils.Debug; import cn.edu.ustc.appseed.clubseed.widget.SwipeListView; /** * A simple {@link Fragment} subclass. */ public class StarFragment extends Fragment implements SwipeListView.RemoveListener { private SwipeListView mListView; private TextView mTextView; StarListViewAdapter adapter; public static String EXTRA_ID = "ID"; public StarFragment() { // Required empty public constructor } @Override public void onCreate(final Bundle savedInstanceState){ super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View v = inflater.inflate(R.layout.fragment_star, container, false); mTextView = (TextView) v.findViewById(R.id.listViewNoStar); mListView = (SwipeListView) v.findViewById(R.id.listViewStars); adapter = new StarListViewAdapter(getActivity()); if (AppUtils.savedEvents.isEmpty()) { mTextView.setVisibility(View.VISIBLE); mListView.setVisibility(View.INVISIBLE); } else { mTextView.setVisibility(View.INVISIBLE); mListView.setVisibility(View.VISIBLE); adapter.resetData(AppUtils.savedEvents); mListView.setAdapter(adapter); mListView.setRemoveListener(this); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Event event = (Event) parent.getItemAtPosition(position); Intent i = new Intent(getActivity(), StarContentActivity.class); i.putExtra(EXTRA_ID, Integer.parseInt(event.getID())); startActivity(i); } }); } return v; } @Override public void onHiddenChanged(boolean hidden){ super.onHiddenChanged(hidden); if(AppUtils.savedEvents.isEmpty()){ mTextView.setVisibility(View.VISIBLE); mListView.setVisibility(View.INVISIBLE); }else{ mTextView.setVisibility(View.INVISIBLE); mListView.setVisibility(View.VISIBLE); Debug.isNull(adapter); adapter.resetData(AppUtils.savedEvents); mListView.setAdapter(adapter); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Event event = (Event) parent.getItemAtPosition(position); Intent i = new Intent(getActivity(), StarContentActivity.class); i.putExtra(EXTRA_ID, Integer.parseInt(event.getID())); startActivity(i); } }); } } @Override public void removeItem(SwipeListView.RemoveDirection direction, int position) { Debug.showLog(String.valueOf(position)); Event event = (Event)adapter.getItem(position); adapter.remove(event); mListView.setAdapter(adapter); AppUtils.savedEvents.remove(Integer.parseInt(event.getID())); new DelEventAsyncTask().execute(event); if(AppUtils.savedEvents.isEmpty()){ mTextView.setVisibility(View.VISIBLE); mListView.setVisibility(View.INVISIBLE); } } private class DelEventAsyncTask extends AsyncTask<Event, Void, Void> { @Override protected Void doInBackground(Event... params) { Event event = params[0]; try { AppUtils.deleteStar(event.getID() + ".event"); AppUtils.deleteStar(event.getID() + ".png"); } catch (Exception e) { e.printStackTrace(); }return null; } } }