Skip to content

Commit dcbacfa

Browse files
author
bahram
committed
Update
1 parent 50de8b7 commit dcbacfa

File tree

3 files changed

+40
-8
lines changed

3 files changed

+40
-8
lines changed

SearchView/src/main/java/com/mrnadimi/searchview/SearchView.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,32 @@ public void setSearchListener(SearchViewListener<?> searchListener){
292292
this.editText.addTextChangedListener(searchListener.getTextWatcher(this));
293293
}
294294

295+
public SearchViewListener<?> getSearchListener() {
296+
return searchListener;
297+
}
298+
299+
public void startFocus(){
300+
editText.performClick();
301+
editText.requestFocus();
302+
}
303+
304+
/**
305+
* set text without callback
306+
*/
307+
public void setForceText(String text){
308+
if (this.searchListener != null){
309+
this.editText.removeTextChangedListener(this.searchListener.getTextWatcher(this));
310+
setText(text);
311+
this.editText.addTextChangedListener(searchListener.getTextWatcher(this));
312+
}else{
313+
setText(text);
314+
}
315+
}
316+
317+
public void setText(CharSequence text){
318+
editText.setText(text);
319+
editText.setSelection(editText.getText().length());
320+
}
295321

296322
public void clearText(){
297323
editText.setText("");

SearchView/src/main/java/com/mrnadimi/searchview/SearchWithoutPagingListener.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.util.Log;
66
import android.view.View;
77

8+
import java.util.ArrayList;
89
import java.util.HashMap;
910
import java.util.List;
1011
import java.util.Map;
@@ -28,7 +29,7 @@ public abstract class SearchWithoutPagingListener<T> extends SearchViewListener<
2829
* zakhire mikonim ta dar surate search mojadad haman kalame
2930
* zaman ra bekharim
3031
*/
31-
private Map<String, List<T>> lastCachedResults;
32+
private final Map<String, List<T>> lastCachedResults;
3233
/*
3334
* search haye dar hale anjam ra dar inja ghrara midahad ta dobare search nashavad va
3435
* montazer pasokh bemanad
@@ -74,22 +75,25 @@ public void afterTextChanged(Editable s) {
7475
activeRequests.put(beforeText, false);
7576
}
7677

77-
activeRequests.put(query, true);
78-
79-
if (lastCachedResults.containsKey(query)) {
78+
if (query.isEmpty()) {
8079
if (canRevokeOnResult(searchView)) {
81-
onResult(query, lastCachedResults.get(query));
80+
onResult(query, new ArrayList<>());
8281
}
8382
return;
8483
}
8584

86-
if (query.isEmpty()) {
85+
activeRequests.put(query, true);
86+
87+
if (lastCachedResults.containsKey(query)) {
8788
if (canRevokeOnResult(searchView)) {
88-
onResult(query, null);
89+
onResult(query, lastCachedResults.get(query));
8990
}
9091
return;
9192
}
9293

94+
95+
96+
9397
Boolean b = activeRequests.get(query);
9498
if (b != null && !b) {
9599
return;
@@ -150,7 +154,7 @@ public void run() {
150154
t.start();
151155
} else {
152156
if (canRevokeOnResult(searchView)) {
153-
onResult("", null);
157+
onResult("", new ArrayList<>());
154158
}
155159
}
156160
} catch (Exception ex) {
@@ -182,6 +186,7 @@ synchronized void notifyUpdate() {
182186
}
183187

184188

189+
185190
void dispose() {
186191
try {
187192
this.activeRequests.clear();

SearchView/src/main/res/values/dimens.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<resources>
33
<dimen name="size_12sp">12sp</dimen>
44
<dimen name="size_14sp">14sp</dimen>
5+
<dimen name="size_15sp">15sp</dimen>
56
<dimen name="size_16sp">16sp</dimen>
67
<dimen name="size_17sp">17sp</dimen>
78
<dimen name="size_22sp">22sp</dimen>

0 commit comments

Comments
 (0)