diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f4ab67bcf..6d6e8c8b7 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -70,6 +70,9 @@
+
+
+
diff --git a/AndroidManifest.xml.pattern b/AndroidManifest.xml.pattern
index 92b72a1a4..f21153bb4 100644
--- a/AndroidManifest.xml.pattern
+++ b/AndroidManifest.xml.pattern
@@ -70,6 +70,9 @@
+
+
+
diff --git a/TODO.library b/TODO.library
index 66d508d25..0dd961779 100644
--- a/TODO.library
+++ b/TODO.library
@@ -4,7 +4,7 @@
DONE Covers loading in background
DONE Wait messages
* Favorites
-* Search
+DONE Search
* File view
* Activity caption
* Book deleting
diff --git a/src/org/geometerplus/android/fbreader/library/LibraryTreeActivity.java b/src/org/geometerplus/android/fbreader/library/LibraryTreeActivity.java
index da898393c..ee62774ed 100644
--- a/src/org/geometerplus/android/fbreader/library/LibraryTreeActivity.java
+++ b/src/org/geometerplus/android/fbreader/library/LibraryTreeActivity.java
@@ -48,8 +48,16 @@ public class LibraryTreeActivity extends LibraryBaseActivity {
final Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
- // TODO: implement
- finish();
+ if (runSearch(intent)) {
+ startActivity(intent
+ .setAction(ACTION_FOUND)
+ .setClass(getApplicationContext(), LibraryTopLevelActivity.class)
+ .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
+ );
+ } else {
+ showNotFoundToast();
+ finish();
+ }
} else {
myTreePathString = getIntent().getStringExtra(TREE_PATH_KEY);
mySelectedBookPath = getIntent().getStringExtra(SELECTED_BOOK_PATH_KEY);