@Override
  protected void onStart() {
    super.onStart();

    runOnUiThread(
        new Runnable() {
          public void run() {
            setProgressBarIndeterminateVisibility(true);
          }
        });

    myCollection.bindToService(
        this,
        new Runnable() {
          public void run() {
            if (myAllBooksAdapter != null) {
              return;
            }

            if (myBook != null) {
              myThisBookAdapter = new BookmarksAdapter(createTab("thisBook", R.id.this_book), true);
            } else {
              findViewById(R.id.this_book).setVisibility(View.GONE);
            }
            myAllBooksAdapter = new BookmarksAdapter(createTab("allBooks", R.id.all_books), false);
            findViewById(R.id.search_results).setVisibility(View.GONE);

            new Thread(new Initializer()).start();
          }
        });

    OrientationUtil.setOrientation(this, getIntent());
  }
  @Override
  protected void onNewIntent(Intent intent) {
    OrientationUtil.setOrientation(this, intent);

    if (!Intent.ACTION_SEARCH.equals(intent.getAction())) {
      return;
    }
    String pattern = intent.getStringExtra(SearchManager.QUERY);
    myBookmarkSearchPatternOption.setValue(pattern);

    final LinkedList<Bookmark> bookmarks = new LinkedList<Bookmark>();
    pattern = pattern.toLowerCase();
    for (Bookmark b : myAllBooksAdapter.bookmarks()) {
      if (MiscUtil.matchesIgnoreCase(b.getText(), pattern)) {
        bookmarks.add(b);
      }
    }
    if (!bookmarks.isEmpty()) {
      showSearchResultsTab(bookmarks);
    } else {
      UIUtil.showErrorMessage(this, "bookmarkNotFound");
    }
  }