package com.dotcool.reader.activity; import java.util.ArrayList; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.ListView; import com.actionbarsherlock.app.SherlockListActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.dotcool.reader.Constants; import com.dotcool.R; import com.dotcool.reader.UIHelper; import com.dotcool.reader.adapter.BookmarkModelAdapter; import com.dotcool.reader.dao.NovelsDao; import com.dotcool.reader.model.BookmarkModel; import com.dotcool.view.BookReadActivity; public class DisplayBookmarkActivity extends SherlockListActivity { private boolean isInverted; private BookmarkModelAdapter adapter = null; private ArrayList<BookmarkModel> bookmarks = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); UIHelper.SetTheme(this, R.layout.activity_display_bookmark); UIHelper.SetActionBarDisplayHomeAsUp(this, true); isInverted = UIHelper.getColorPreferences(this); setTitle(getResources().getString(R.string.bookmarks)); getBookmarks(); } private void getBookmarks() { int resourceId = R.layout.bookmark_list_item; if (UIHelper.IsSmallScreen(this)) { resourceId = R.layout.bookmark_list_item; } bookmarks = NovelsDao.getInstance(this).getAllBookmarks(UIHelper.getAllBookmarkOrder(this)); adapter = new BookmarkModelAdapter(this, resourceId, bookmarks, null); adapter.showPage = true; adapter.showCheckBox = true; setListAdapter(adapter); } @Override protected void onRestart() { super.onRestart(); if (isInverted != UIHelper.getColorPreferences(this)) { UIHelper.Recreate(this); } if (adapter != null) adapter.notifyDataSetChanged(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getSupportMenuInflater().inflate(R.menu.activity_display_bookmark, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.invert_colors: UIHelper.ToggleColorPref(this); UIHelper.Recreate(this); return true; case R.id.menu_downloads_list: Intent downloadsItent = new Intent(this, DownloadListActivity.class); startActivity(downloadsItent); return true; case R.id.menu_bookmark_delete_selected: if (bookmarks != null) { for (BookmarkModel bookmark : bookmarks) { if (bookmark.isSelected()) NovelsDao.getInstance(this).deleteBookmark(bookmark); } if (adapter != null) adapter.refreshData(); } return true; case android.R.id.home: super.onBackPressed(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); // Get the item that was clicked BookmarkModel page = adapter.getItem(position); // Create new intent Intent intent = new Intent(this, BookReadActivity.class); intent.putExtra(Constants.EXTRA_PAGE, page.getPage()); intent.putExtra(Constants.EXTRA_P_INDEX, page.getpIndex()); startActivity(intent); } }