From 68c5e490f66802ed6ac7d0f38049d9fda3e2cd8b Mon Sep 17 00:00:00 2001 From: Vasiliy Bout Date: Wed, 28 Apr 2010 21:50:06 +0000 Subject: [PATCH] NetworkSearch has been moved to the NetworkLibrary git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@1301 6a642e6f-84f6-412e-ac94-c4a38d5a04b0 --- AndroidManifest.xml | 17 ++++-- AndroidManifest.xml.pattern | 17 ++++-- TODO.network | 9 ++- data/resources/application/en.xml | 4 +- data/resources/application/fr.xml | 4 +- data/resources/application/ru.xml | 4 +- data/resources/application/zh.xml | 6 +- .../android/fbreader/LibraryTabActivity.java | 1 - .../network/NetworkLibraryActivity.java | 25 ++++++++- .../network/NetworkSearchActivity.java | 55 +++++++++++++++++++ .../fbreader/network/NetworkLibrary.java | 3 + 11 files changed, 128 insertions(+), 17 deletions(-) create mode 100644 src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 13316b832..055e70778 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -37,10 +37,6 @@ - - - - @@ -78,5 +74,18 @@ + + + + + + + + + + + + + diff --git a/AndroidManifest.xml.pattern b/AndroidManifest.xml.pattern index 0c0a6e88d..57d548838 100644 --- a/AndroidManifest.xml.pattern +++ b/AndroidManifest.xml.pattern @@ -37,10 +37,6 @@ - - - - @@ -78,5 +74,18 @@ + + + + + + + + + + + + + diff --git a/TODO.network b/TODO.network index b0d996c59..ebd8c1a52 100644 --- a/TODO.network +++ b/TODO.network @@ -10,8 +10,11 @@ DONE Сделать кнопку "Остановить загрузку" для DELAYED более низкоуровневая обраотка остновки, чтобы не нужно было ждать загрузки item'а... DONE сделать menu item "Идет остановка загрузки" DELAYED сделать кнопку "Остановить загрузку" в Notification'е -** убрать иконку сетевого поиска из библиотеки --> перенести в NetworkLibrary -** сетевой поиск (посмотреть на activity в metadata) +DONE убрать иконку сетевого поиска из библиотеки --> перенести в NetworkLibrary +** сетевой поиск + ** NetworkSearchService + ** модель + функционал поиска + ** отображение результатов ** восставление пароля (use default e-mail) ** пополнение счета в litres с помощью sms ** Focus в Authentication dialog @@ -31,6 +34,8 @@ DONE показывать обложки для книжек с smashwords * сделать BookInfoActivity * возможность перечитать из файла метаинформацию для отдельной книги +BUG: Почему в SearchActivity нигде не вызывается метод onFailure()???? + ------------------------------ DONE Синхронизировать ресурсы (русские, французские и китайские) diff --git a/data/resources/application/en.xml b/data/resources/application/en.xml index 8abf0e254..28bf7e8fa 100644 --- a/data/resources/application/en.xml +++ b/data/resources/application/en.xml @@ -12,7 +12,6 @@ - @@ -47,6 +46,9 @@ + + + diff --git a/data/resources/application/fr.xml b/data/resources/application/fr.xml index 64b84fe2f..4ff30f6ee 100644 --- a/data/resources/application/fr.xml +++ b/data/resources/application/fr.xml @@ -13,7 +13,6 @@ - @@ -48,6 +47,9 @@ + + + diff --git a/data/resources/application/ru.xml b/data/resources/application/ru.xml index 9dd9a74d2..1fff5707b 100644 --- a/data/resources/application/ru.xml +++ b/data/resources/application/ru.xml @@ -12,7 +12,6 @@ - @@ -47,6 +46,9 @@ + + + diff --git a/data/resources/application/zh.xml b/data/resources/application/zh.xml index 2cd149508..53362c4db 100644 --- a/data/resources/application/zh.xml +++ b/data/resources/application/zh.xml @@ -12,8 +12,7 @@ - - + @@ -48,6 +47,9 @@ + + + diff --git a/src/org/geometerplus/android/fbreader/LibraryTabActivity.java b/src/org/geometerplus/android/fbreader/LibraryTabActivity.java index 135bc559f..cc0661018 100644 --- a/src/org/geometerplus/android/fbreader/LibraryTabActivity.java +++ b/src/org/geometerplus/android/fbreader/LibraryTabActivity.java @@ -121,7 +121,6 @@ public class LibraryTabActivity extends TabActivity implements MenuItem.OnMenuIt public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); addMenuItem(menu, 1, "localSearch", R.drawable.ic_menu_search); - addMenuItem(menu, 2, "networkSearch", R.drawable.ic_menu_networksearch).setEnabled(false); return true; } diff --git a/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java b/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java index 47b4dbcbb..9c17cb9a8 100644 --- a/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java +++ b/src/org/geometerplus/android/fbreader/network/NetworkLibraryActivity.java @@ -147,6 +147,7 @@ public class NetworkLibraryActivity extends ListActivity implements MenuItem.OnM myEventListeners.clear(); requestWindowFeature(Window.FEATURE_NO_TITLE); + setDefaultKeyMode(DEFAULT_KEYS_SEARCH_LOCAL); myConnection = new BookDownloaderServiceConnection(); bindService( @@ -459,12 +460,34 @@ public class NetworkLibraryActivity extends ListActivity implements MenuItem.OnM } + private MenuItem addMenuItem(Menu menu, int index, String resourceKey, int iconId) { + final String label = myResource.getResource("menu").getResource(resourceKey).getValue(); + final MenuItem item = menu.add(0, index, Menu.NONE, label); + item.setOnMenuItemClickListener(this); + item.setIcon(iconId); + return item; + } + @Override public boolean onCreateOptionsMenu(Menu menu) { - return super.onCreateOptionsMenu(menu); + super.onCreateOptionsMenu(menu); + addMenuItem(menu, 1, "networkSearch", R.drawable.ic_menu_networksearch); + return true; } public boolean onMenuItemClick(MenuItem item) { + switch (item.getItemId()) { + case 1: + return onSearchRequested(); + default: + return true; + } + } + + @Override + public boolean onSearchRequested() { + final NetworkLibrary library = NetworkLibrary.Instance(); + startSearch(library.NetworkSearchPatternOption.getValue(), true, null, false); return true; } } diff --git a/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java b/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java new file mode 100644 index 000000000..af0eae08c --- /dev/null +++ b/src/org/geometerplus/android/fbreader/network/NetworkSearchActivity.java @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2010 Geometer Plus + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + */ + +package org.geometerplus.android.fbreader.network; + +import android.os.*; +import android.app.*; +import android.content.Intent; + +import org.geometerplus.fbreader.network.NetworkLibrary; + + +public class NetworkSearchActivity extends Activity { + + @Override + public void onCreate(Bundle icicle) { + super.onCreate(icicle); + + Thread.setDefaultUncaughtExceptionHandler(new org.geometerplus.zlibrary.ui.android.library.UncaughtExceptionHandler(this)); + + final Intent intent = getIntent(); + if (Intent.ACTION_SEARCH.equals(intent.getAction())) { + final String pattern = intent.getStringExtra(SearchManager.QUERY); + } + finish(); + } + + + protected boolean runSearch(final String pattern) { + final NetworkLibrary library = NetworkLibrary.Instance(); + library.NetworkSearchPatternOption.setValue(pattern); + // run search + return true; // return error status + } + + protected Activity getParentActivity() { + return NetworkLibraryActivity.Instance; + } +} diff --git a/src/org/geometerplus/fbreader/network/NetworkLibrary.java b/src/org/geometerplus/fbreader/network/NetworkLibrary.java index f66a2f182..5eb3303e8 100644 --- a/src/org/geometerplus/fbreader/network/NetworkLibrary.java +++ b/src/org/geometerplus/fbreader/network/NetworkLibrary.java @@ -24,6 +24,7 @@ import java.util.*; import org.geometerplus.zlibrary.core.filesystem.*; import org.geometerplus.zlibrary.core.util.ZLNetworkUtil; +import org.geometerplus.zlibrary.core.options.ZLStringOption; import org.geometerplus.fbreader.tree.FBTree; import org.geometerplus.fbreader.network.tree.*; @@ -39,6 +40,8 @@ public class NetworkLibrary { return ourInstance; } + public final ZLStringOption NetworkSearchPatternOption = new ZLStringOption("NetworkSearch", "Pattern", ""); + private final ArrayList myLinks = new ArrayList(); private final RootTree myRootTree = new RootTree();