mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-05 10:49:24 +02:00
Library.Instance() is back, separate activity for library search
This commit is contained in:
parent
f7408cadff
commit
7fec42eecb
6 changed files with 30 additions and 21 deletions
|
@ -76,12 +76,15 @@
|
||||||
<activity android:name="org.geometerplus.android.fbreader.image.ImageViewActivity" android:process=":imageView" android:configChanges="orientation|keyboardHidden"/>
|
<activity android:name="org.geometerplus.android.fbreader.image.ImageViewActivity" android:process=":imageView" android:configChanges="orientation|keyboardHidden"/>
|
||||||
<activity android:name="org.geometerplus.android.fbreader.library.BookInfoActivity" android:configChanges="orientation|keyboardHidden" android:process=":library"/>
|
<activity android:name="org.geometerplus.android.fbreader.library.BookInfoActivity" android:configChanges="orientation|keyboardHidden" android:process=":library"/>
|
||||||
<receiver android:name="org.geometerplus.android.fbreader.library.KillerCallback" android:process=":library" />
|
<receiver android:name="org.geometerplus.android.fbreader.library.KillerCallback" android:process=":library" />
|
||||||
<activity android:name="org.geometerplus.android.fbreader.library.LibraryActivity" android:launchMode="singleTask" android:process=":library" android:configChanges="orientation|keyboardHidden">
|
<activity android:name="org.geometerplus.android.fbreader.library.LibrarySearchActivity" android:process=":library" android:theme="@android:style/Theme.NoDisplay">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.SEARCH" />
|
<action android:name="android.intent.action.SEARCH" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
|
<meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
|
||||||
</activity>
|
</activity>
|
||||||
|
<activity android:name="org.geometerplus.android.fbreader.library.LibraryActivity" android:launchMode="singleTask" android:process=":library" android:configChanges="orientation|keyboardHidden">
|
||||||
|
<meta-data android:name="android.app.default_searchable" android:value="org.geometerplus.android.fbreader.library.LibrarySearchActivity" />
|
||||||
|
</activity>
|
||||||
<activity android:name="org.geometerplus.android.fbreader.TOCActivity" android:configChanges="orientation|keyboardHidden" />
|
<activity android:name="org.geometerplus.android.fbreader.TOCActivity" android:configChanges="orientation|keyboardHidden" />
|
||||||
<activity android:name="org.geometerplus.android.fbreader.BookmarksActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden">
|
<activity android:name="org.geometerplus.android.fbreader.BookmarksActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
|
@ -76,12 +76,15 @@
|
||||||
<activity android:name="org.geometerplus.android.fbreader.image.ImageViewActivity" android:process=":imageView" android:configChanges="orientation|keyboardHidden"/>
|
<activity android:name="org.geometerplus.android.fbreader.image.ImageViewActivity" android:process=":imageView" android:configChanges="orientation|keyboardHidden"/>
|
||||||
<activity android:name="org.geometerplus.android.fbreader.library.BookInfoActivity" android:configChanges="orientation|keyboardHidden" android:process=":library"/>
|
<activity android:name="org.geometerplus.android.fbreader.library.BookInfoActivity" android:configChanges="orientation|keyboardHidden" android:process=":library"/>
|
||||||
<receiver android:name="org.geometerplus.android.fbreader.library.KillerCallback" android:process=":library" />
|
<receiver android:name="org.geometerplus.android.fbreader.library.KillerCallback" android:process=":library" />
|
||||||
<activity android:name="org.geometerplus.android.fbreader.library.LibraryActivity" android:launchMode="singleTask" android:process=":library" android:configChanges="orientation|keyboardHidden">
|
<activity android:name="org.geometerplus.android.fbreader.library.LibrarySearchActivity" android:process=":library" android:theme="@android:style/Theme.NoDisplay">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.SEARCH" />
|
<action android:name="android.intent.action.SEARCH" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
<meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
|
<meta-data android:name="android.app.searchable" android:resource="@xml/searchable" />
|
||||||
</activity>
|
</activity>
|
||||||
|
<activity android:name="org.geometerplus.android.fbreader.library.LibraryActivity" android:launchMode="singleTask" android:process=":library" android:configChanges="orientation|keyboardHidden">
|
||||||
|
<meta-data android:name="android.app.default_searchable" android:value="org.geometerplus.android.fbreader.library.LibrarySearchActivity" />
|
||||||
|
</activity>
|
||||||
<activity android:name="org.geometerplus.android.fbreader.TOCActivity" android:configChanges="orientation|keyboardHidden" />
|
<activity android:name="org.geometerplus.android.fbreader.TOCActivity" android:configChanges="orientation|keyboardHidden" />
|
||||||
<activity android:name="org.geometerplus.android.fbreader.BookmarksActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden">
|
<activity android:name="org.geometerplus.android.fbreader.BookmarksActivity" android:launchMode="singleTask" android:configChanges="orientation|keyboardHidden">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
Romanian string
|
Romanian string
|
||||||
'FBReader is not installed' message in litres plugin
|
'FBReader is not installed' message in litres plugin
|
||||||
|
do we cache cover images?
|
||||||
|
|
||||||
states:
|
states:
|
||||||
A registered, logged in
|
A registered, logged in
|
||||||
|
|
|
@ -519,8 +519,8 @@
|
||||||
<node name="summaryOff" value="Кнопки увеличения/уменьшения звука работают как обычно"/>
|
<node name="summaryOff" value="Кнопки увеличения/уменьшения звука работают как обычно"/>
|
||||||
</node>
|
</node>
|
||||||
<node name="invertVolumeKeys" value="Перелистывать кнопками в обратную сторону">
|
<node name="invertVolumeKeys" value="Перелистывать кнопками в обратную сторону">
|
||||||
<node name="summaryOn" value="Нижняя кнопка листает страницу вперед"/>
|
<node name="summaryOn" value="Верхняя кнопка листает страницу вперед"/>
|
||||||
<node name="summaryOff" value="Верхняя кнопка листает страницу вперед"/>
|
<node name="summaryOff" value="Нижняя кнопка листает страницу вперед"/>
|
||||||
</node>
|
</node>
|
||||||
<node name="animation" value="Анимация">
|
<node name="animation" value="Анимация">
|
||||||
<node name="none" value="Выключить анимацию"/>
|
<node name="none" value="Выключить анимацию"/>
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
package org.geometerplus.android.fbreader.library;
|
package org.geometerplus.android.fbreader.library;
|
||||||
|
|
||||||
import android.app.SearchManager;
|
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
|
@ -58,7 +57,7 @@ public class LibraryActivity extends TreeActivity implements MenuItem.OnMenuItem
|
||||||
myDatabase = new SQLiteBooksDatabase(this, "LIBRARY");
|
myDatabase = new SQLiteBooksDatabase(this, "LIBRARY");
|
||||||
}
|
}
|
||||||
if (myLibrary == null) {
|
if (myLibrary == null) {
|
||||||
myLibrary = new Library();
|
myLibrary = Library.Instance();
|
||||||
myLibrary.addChangeListener(this);
|
myLibrary.addChangeListener(this);
|
||||||
myLibrary.startBuild();
|
myLibrary.startBuild();
|
||||||
}
|
}
|
||||||
|
@ -140,19 +139,6 @@ public class LibraryActivity extends TreeActivity implements MenuItem.OnMenuItem
|
||||||
static final ZLStringOption BookSearchPatternOption =
|
static final ZLStringOption BookSearchPatternOption =
|
||||||
new ZLStringOption("BookSearch", "Pattern", "");
|
new ZLStringOption("BookSearch", "Pattern", "");
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onNewIntent(Intent intent) {
|
|
||||||
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
|
|
||||||
final String pattern = intent.getStringExtra(SearchManager.QUERY);
|
|
||||||
if (pattern != null && pattern.length() > 0) {
|
|
||||||
BookSearchPatternOption.setValue(pattern);
|
|
||||||
myLibrary.startBookSearch(pattern);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
super.onNewIntent(intent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void openSearchResults() {
|
private void openSearchResults() {
|
||||||
final FBTree tree = myLibrary.getRootTree().getSubTree(Library.ROOT_SEARCH_RESULTS);
|
final FBTree tree = myLibrary.getRootTree().getSubTree(Library.ROOT_SEARCH_RESULTS);
|
||||||
if (tree != null) {
|
if (tree != null) {
|
||||||
|
|
|
@ -54,6 +54,14 @@ public final class Library {
|
||||||
public static final String ROOT_BY_TAG = "byTag";
|
public static final String ROOT_BY_TAG = "byTag";
|
||||||
public static final String ROOT_FILE_TREE = "fileTree";
|
public static final String ROOT_FILE_TREE = "fileTree";
|
||||||
|
|
||||||
|
private static Library ourInstance;
|
||||||
|
public static Library Instance() {
|
||||||
|
if (ourInstance == null) {
|
||||||
|
ourInstance = new Library();
|
||||||
|
}
|
||||||
|
return ourInstance;
|
||||||
|
}
|
||||||
|
|
||||||
public static ZLResource resource() {
|
public static ZLResource resource() {
|
||||||
return ZLResource.resource("library");
|
return ZLResource.resource("library");
|
||||||
}
|
}
|
||||||
|
@ -73,7 +81,7 @@ public final class Library {
|
||||||
fireModelChangedEvent(ChangeListener.Code.StatusChanged);
|
fireModelChangedEvent(ChangeListener.Code.StatusChanged);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Library() {
|
private Library() {
|
||||||
new FavoritesTree(myRootTree, ROOT_FAVORITES);
|
new FavoritesTree(myRootTree, ROOT_FAVORITES);
|
||||||
new FirstLevelTree(myRootTree, ROOT_RECENT);
|
new FirstLevelTree(myRootTree, ROOT_RECENT);
|
||||||
new FirstLevelTree(myRootTree, ROOT_BY_AUTHOR);
|
new FirstLevelTree(myRootTree, ROOT_BY_AUTHOR);
|
||||||
|
@ -420,7 +428,15 @@ public final class Library {
|
||||||
db.setExistingFlag(newBooks, true);
|
db.setExistingFlag(newBooks, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void startBuild() {
|
private volatile boolean myBuildStarted = false;
|
||||||
|
|
||||||
|
public synchronized void startBuild() {
|
||||||
|
if (myBuildStarted) {
|
||||||
|
fireModelChangedEvent(ChangeListener.Code.StatusChanged);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
myBuildStarted = true;
|
||||||
|
|
||||||
setStatus(myStatusMask | STATUS_LOADING);
|
setStatus(myStatusMask | STATUS_LOADING);
|
||||||
final Thread builder = new Thread("Library.build") {
|
final Thread builder = new Thread("Library.build") {
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue