1212import android .widget .AdapterView ;
1313import android .widget .BaseAdapter ;
1414import android .widget .CompoundButton ;
15+ import android .widget .EditText ;
1516import android .widget .ImageButton ;
1617import android .widget .ListAdapter ;
1718import 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 >() {
0 commit comments