mirror of
https://github.com/geometer/FBReaderJ.git
synced 2025-10-06 12:00:17 +02:00
Merge branch 'master' into file-manager
Conflicts: src/org/geometerplus/android/fbreader/library/LibraryBaseActivity.java
This commit is contained in:
commit
829c475bf4
3 changed files with 90 additions and 39 deletions
|
@ -9,7 +9,7 @@ DONE Search
|
|||
* Show wait message during search
|
||||
* File view
|
||||
DONE Activity caption
|
||||
* Book deleting
|
||||
DONE Book deleting
|
||||
* Show book info activity instead of immediate opening/menu
|
||||
* Main menu
|
||||
DONE Context menu
|
||||
|
|
|
@ -213,103 +213,103 @@
|
|||
<node name="rightIndent" value="Отступ справа"/>
|
||||
<node name="more" value="Другие стили">
|
||||
<node name="summary" value="Отдельные настройки для заголовков, эпиграфов, и т.д."/>
|
||||
<node name="Regular Paragraph" value="обычного текста">
|
||||
<node name="Regular Paragraph" value="Обычный текст">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Title" value="заголовка">
|
||||
<node name="Title" value="Заголовок">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Section Title" value="названия главы">
|
||||
<node name="Section Title" value="Название главы">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Poem Title" value="названия стихотворения">
|
||||
<node name="Poem Title" value="Название стихотворения">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Subtitle" value="подзаголовка">
|
||||
<node name="Subtitle" value="Подзаголовок">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Annotation" value="аннотации">
|
||||
<node name="Annotation" value="Аннотация">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Epigraph" value="эпиграфа">
|
||||
<node name="Epigraph" value="Эпиграф">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Stanza" value="строфы">
|
||||
<node name="Stanza" value="Строфа">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Verse" value="стихов">
|
||||
<node name="Verse" value="Стихи">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Preformatted text" value="текста внутри <pre>">
|
||||
<node name="Preformatted text" value="Текст внутри <pre>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Image" value="рисунка">
|
||||
<node name="Image" value="Рисунок">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Cite" value="цитаты">
|
||||
<node name="Cite" value="Цитата">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Author" value="имени автора">
|
||||
<node name="Author" value="Имя автора">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Date" value="даты">
|
||||
<node name="Date" value="Дата">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Internal Hyperlink" value="ссылки">
|
||||
<node name="Internal Hyperlink" value="Ссылка">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Footnote" value="сноски">
|
||||
<node name="Footnote" value="Сноска">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Emphasis" value="выделения (emphasis)">
|
||||
<node name="Emphasis" value="Выделение (emphasis)">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Strong" value="выделения (strong)">
|
||||
<node name="Strong" value="Выделение (strong)">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Subscript" value="нижнего индекса">
|
||||
<node name="Subscript" value="Нижний индекс">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Superscript" value="верхнего индекса">
|
||||
<node name="Superscript" value="Верхний индекс">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Code" value="текста программы">
|
||||
<node name="Code" value="Текст программы">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="StrikeThrough" value="зачеркнутого текста">
|
||||
<node name="StrikeThrough" value="Зачеркнутый текст">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Italic" value="курсива">
|
||||
<node name="Italic" value="Курсив">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Bold" value="жирного текста">
|
||||
<node name="Bold" value="Жирный текст">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Definition" value="определения">
|
||||
<node name="Definition" value="Определение">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Definition Description" value="текста определения">
|
||||
<node name="Definition Description" value="Текст определения">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 1" value="текста внутри <h1>">
|
||||
<node name="Header 1" value="Текст внутри <h1>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 2" value="текста внутри <h2>">
|
||||
<node name="Header 2" value="Текст внутри <h2>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 3" value="текста внутри <h3>">
|
||||
<node name="Header 3" value="Текст внутри <h3>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 4" value="текста внутри <h4>">
|
||||
<node name="Header 4" value="Текст внутри <h4>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 5" value="текста внутри <h5>">
|
||||
<node name="Header 5" value="Текст внутри <h5>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="Header 6" value="текста внутри <h6>">
|
||||
<node name="Header 6" value="Текст внутри <h6>">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
<node name="External Hyperlink" value="внешней ссылки">
|
||||
<node name="External Hyperlink" value="Внешняя ссылка">
|
||||
<node name="summary" value=""/>
|
||||
</node>
|
||||
</node>
|
||||
|
|
|
@ -22,6 +22,7 @@ package org.geometerplus.android.fbreader.library;
|
|||
import java.util.List;
|
||||
|
||||
import android.app.*;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
|
@ -65,13 +66,26 @@ abstract class LibraryBaseActivity extends ListActivity {
|
|||
protected final ZLResource myResource = ZLResource.resource("libraryView");
|
||||
protected String mySelectedBookPath;
|
||||
|
||||
private static int CHILD_LIST_REQUEST = 0;
|
||||
private static int RESULT_DONT_INVALIDATE_VIEWS = 0;
|
||||
private static int RESULT_INVALIDATE_VIEWS = 1;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
setResult(RESULT_DONT_INVALIDATE_VIEWS);
|
||||
Thread.setDefaultUncaughtExceptionHandler(new org.geometerplus.zlibrary.ui.android.library.UncaughtExceptionHandler(this));
|
||||
mySelectedBookPath = getIntent().getStringExtra(SELECTED_BOOK_PATH_KEY);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int returnCode, Intent intent) {
|
||||
if (requestCode == CHILD_LIST_REQUEST && returnCode == RESULT_INVALIDATE_VIEWS) {
|
||||
getListView().invalidateViews();
|
||||
setResult(RESULT_INVALIDATE_VIEWS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onSearchRequested() {
|
||||
startSearch(BookSearchPatternOption.getValue(), true, null, false);
|
||||
|
@ -221,26 +235,62 @@ abstract class LibraryBaseActivity extends ListActivity {
|
|||
final int position = ((AdapterView.AdapterContextMenuInfo)item.getMenuInfo()).position;
|
||||
final FBTree tree = ((LibraryAdapter)getListAdapter()).getItem(position);
|
||||
if (tree instanceof BookTree) {
|
||||
final BookTree bookTree = (BookTree)tree;
|
||||
final Book book = ((BookTree)tree).Book;
|
||||
switch (item.getItemId()) {
|
||||
case OPEN_BOOK_ITEM_ID:
|
||||
openBook(bookTree.Book);
|
||||
openBook(book);
|
||||
return true;
|
||||
case ADD_TO_FAVORITES_ITEM_ID:
|
||||
<<<<<<< HEAD
|
||||
LibraryInstance.addBookToFavorites(bookTree.Book);
|
||||
return true;
|
||||
case REMOVE_FROM_FAVORITES_ITEM_ID:
|
||||
LibraryInstance.removeBookFromFavorites(bookTree.Book);
|
||||
=======
|
||||
Library.addBookToFavorites(book);
|
||||
return true;
|
||||
case REMOVE_FROM_FAVORITES_ITEM_ID:
|
||||
Library.removeBookFromFavorites(book);
|
||||
>>>>>>> master
|
||||
getListView().invalidateViews();
|
||||
return true;
|
||||
case DELETE_BOOK_ITEM_ID:
|
||||
// TODO: implement
|
||||
tryToDeleteBook(book);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
||||
private class BookDeleter implements DialogInterface.OnClickListener {
|
||||
private final Book myBook;
|
||||
private final int myMode;
|
||||
|
||||
BookDeleter(Book book, int removeMode) {
|
||||
myBook = book;
|
||||
myMode = removeMode;
|
||||
}
|
||||
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Library.removeBook(myBook, myMode);
|
||||
getListView().invalidateViews();
|
||||
setResult(RESULT_INVALIDATE_VIEWS);
|
||||
}
|
||||
}
|
||||
|
||||
private void tryToDeleteBook(Book book) {
|
||||
final ZLResource dialogResource = ZLResource.resource("dialog");
|
||||
final ZLResource buttonResource = dialogResource.getResource("button");
|
||||
final ZLResource boxResource = dialogResource.getResource("deleteBookBox");
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle(book.getTitle())
|
||||
.setMessage(boxResource.getResource("message").getValue())
|
||||
.setIcon(0)
|
||||
.setPositiveButton(buttonResource.getResource("yes").getValue(), new BookDeleter(book, Library.REMOVE_FROM_DISK))
|
||||
.setNegativeButton(buttonResource.getResource("no").getValue(), null)
|
||||
.create().show();
|
||||
}
|
||||
|
||||
protected class OpenTreeRunnable implements Runnable {
|
||||
private final String myTreePath;
|
||||
private final String myParameter;
|
||||
|
@ -259,11 +309,12 @@ abstract class LibraryBaseActivity extends ListActivity {
|
|||
public void run() {
|
||||
final Runnable postRunnable = new Runnable() {
|
||||
public void run() {
|
||||
startActivity(
|
||||
startActivityForResult(
|
||||
new Intent(LibraryBaseActivity.this, LibraryTreeActivity.class)
|
||||
.putExtra(SELECTED_BOOK_PATH_KEY, mySelectedBookPath)
|
||||
.putExtra(TREE_PATH_KEY, myTreePath)
|
||||
.putExtra(PARAMETER_KEY, myParameter)
|
||||
.putExtra(PARAMETER_KEY, myParameter),
|
||||
CHILD_LIST_REQUEST
|
||||
);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue