Skip to content

Commit 9592008

Browse files
committed
bookmarks, citations user ui, corrections
1 parent b0d5cd4 commit 9592008

File tree

4 files changed

+69
-6
lines changed

4 files changed

+69
-6
lines changed

android/res/layout/userdic_list_dialog.xml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,31 @@
5151
android:text="_" />
5252
</TableRow>
5353
</TableLayout>
54+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
55+
android:id="@+id/page_item_body"
56+
android:orientation="horizontal"
57+
android:layout_width="fill_parent"
58+
android:layout_height="wrap_content">
59+
<EditText
60+
android:id="@+id/search_text"
61+
android:layout_width="0dip"
62+
android:layout_weight="6"
63+
android:layout_height="wrap_content"
64+
android:text=""
65+
style="@style/TextAppearance.Widget.EditText"
66+
android:editable="true" android:hint="@string/dlg_search_hint" android:singleLine="true"
67+
/>
68+
<ImageButton
69+
android:id="@+id/btn_search"
70+
android:layout_width="0dip"
71+
android:layout_height="wrap_content"
72+
android:checked="false"
73+
android:layout_weight="1"
74+
android:src="@drawable/icons8_search"
75+
android:background="@null"
76+
android:contentDescription="@string/dlg_bookmark_user_dic"
77+
android:text="@null" />
78+
</LinearLayout>
5479

5580
<RadioGroup
5681
android:id="@+id/rg_scope"

android/src/org/coolreader/crengine/BookmarkEditDialog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ protected void onPositiveButtonClick() {
4646
) {
4747
UserDicEntry ude = new UserDicEntry();
4848
ude.setId(0L);
49-
ude.setDic_word(posEdit.getText().toString().toLowerCase());
49+
ude.setDic_word(posEdit.getText().toString());
5050
ude.setDic_word_translate(commentEdit.getText().toString());
5151
final String sBookFName = mBookInfo.getFileInfo().filename;
5252
CRC32 crc = new CRC32();

android/src/org/coolreader/crengine/UserDicDlg.java

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import android.widget.AdapterView;
1313
import android.widget.BaseAdapter;
1414
import android.widget.CompoundButton;
15+
import android.widget.EditText;
1516
import android.widget.ImageButton;
1617
import android.widget.ListAdapter;
1718
import android.widget.ListView;
@@ -41,7 +42,8 @@ public class UserDicDlg extends BaseDialog {
4142
final RadioButton btnPage;
4243
final RadioButton btnBook;
4344
final RadioButton btnAll;
44-
45+
final ImageButton searchButton;
46+
final EditText selEdit;
4547

4648
private ArrayList<UserDicEntry> mUserDic = new ArrayList<UserDicEntry>();
4749

@@ -183,10 +185,17 @@ public void updateAdapter( UserDicAdapter adapter ) {
183185

184186
private void setChecked(ImageButton btn) {
185187
rb_descr.setText(btn.getContentDescription()+" ");
188+
btnPage.setEnabled(true);
186189
if (btn.getContentDescription().equals(mCoolReader.getString(R.string.dlg_bookmark_user_dic))) {
187190
openPage = 0;
188191
}
189192
if (btn.getContentDescription().equals(mCoolReader.getString(R.string.dlg_bookmark_citation))) {
193+
if (openPage == 0) {
194+
if (btnPage.isChecked()) {
195+
btnBook.setChecked(true);
196+
}
197+
}
198+
btnPage.setEnabled(false);
190199
openPage = 1;
191200
}
192201
int colorGray;
@@ -224,7 +233,15 @@ private void checkedCallback(RadioButton btn) {
224233
if (bPageC) {
225234
mUserDic.clear();
226235
for (UserDicEntry ude: mCoolReader.getmReaderFrame().getUserDicPanel().getArrUdeWords()) {
227-
if (ude.getIs_citation()==openPage) mUserDic.add(ude);
236+
if (ude.getIs_citation()==openPage)
237+
if (
238+
(selEdit.getText().toString().trim().equals("")) ||
239+
(
240+
(ude.getDic_word().toLowerCase().contains(selEdit.getText().toString().toLowerCase().trim())) ||
241+
(ude.getDic_word_translate().toLowerCase().contains(selEdit.getText().toString().toLowerCase().trim()))
242+
)
243+
)
244+
mUserDic.add(ude);
228245
}
229246
}
230247
if (bBookC) {
@@ -247,7 +264,8 @@ public UserDicDlg(final CoolReader activity, final int openPage)
247264
mCoolReader = activity;
248265
mUserDic.clear();
249266
for (UserDicEntry ude: activity.getmReaderFrame().getUserDicPanel().getArrUdeWords()) {
250-
if (ude.getIs_citation()==openPage) mUserDic.add(ude);
267+
if (ude.getIs_citation()==openPage)
268+
mUserDic.add(ude);
251269
//mCoolReader.showToast(ude.getDic_word()+" "+ude.getIs_citation());
252270
}
253271
View frame = mInflater.inflate(R.layout.userdic_list_dialog, null);
@@ -264,8 +282,19 @@ public UserDicDlg(final CoolReader activity, final int openPage)
264282
if (openPage==1) setChecked(btnCitation);
265283
body.addView(mList);
266284
setView(frame);
285+
searchButton = (ImageButton) frame.findViewById(R.id.btn_search);
286+
selEdit = (EditText) frame.findViewById(R.id.search_text);
287+
selEdit.clearFocus();
288+
searchButton.requestFocus();
267289
setFlingHandlers(mList, null, null);
268290

291+
searchButton.setOnClickListener(new View.OnClickListener() {
292+
@Override
293+
public void onClick(View v) {
294+
checkedCallback(null);
295+
}
296+
});
297+
269298
btnPage.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
270299
@Override
271300
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -313,7 +342,15 @@ private void updUserDic(String sCRC) {
313342
Map.Entry pair = (Map.Entry)it.next();
314343
UserDicEntry ude = (UserDicEntry)pair.getValue();
315344
if (((ude.getDic_from_book().equals(sCRC))||(sCRC.equals(""))) &&
316-
(openPage==ude.getIs_citation())) mUserDic.add(ude);
345+
(openPage==ude.getIs_citation()))
346+
if (
347+
(selEdit.getText().toString().trim().equals("")) ||
348+
(
349+
(ude.getDic_word().toLowerCase().contains(selEdit.getText().toString().toLowerCase().trim())) ||
350+
(ude.getDic_word_translate().toLowerCase().contains(selEdit.getText().toString().toLowerCase().trim()))
351+
)
352+
)
353+
mUserDic.add(ude);
317354
//mCoolReader.showToast(ude.getDic_word()+" "+ude.getIs_citation());
318355
}
319356
Collections.sort(mUserDic, new Comparator<UserDicEntry>() {

android/src/org/coolreader/db/MainDB.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,8 @@ public boolean saveUserDic(UserDicEntry ude, int action) {
345345
return false;
346346
if ((sWordTranslate==null)&&(action == UserDicEntry.ACTION_NEW))
347347
return false;
348-
sWord = sWord.trim().toLowerCase();
348+
if (ude.getIs_citation()==0)
349+
sWord = sWord.trim().toLowerCase();
349350
if (sWord.length()==0)
350351
return false;
351352
sWordTranslate = sWordTranslate.trim();

0 commit comments

Comments
 (0)