Ver código fonte

[검색][New] 최근 검색 선택 후 재입력 시 오류 수정

hyodong.min 7 anos atrás
pai
commit
e3d8243bec

+ 11 - 9
app/src/main/java/kr/co/zumo/app/lifeplus/view/CharFinder.java

@@ -4,6 +4,7 @@
 package kr.co.zumo.app.lifeplus.view;
 
 import android.support.annotation.NonNull;
+import android.util.Log;
 
 /**
  * CharFinder
@@ -22,7 +23,7 @@ public class CharFinder {
   }
 
   public CharFinder(String prevStr) {
-    this.prevStr = prevStr;
+    setPrevStr(prevStr);
   }
 
   /**
@@ -35,15 +36,11 @@ public class CharFinder {
    * @return isBackspace: backspace 입력이 있는지 확인
    */
   public boolean find(@NonNull String currentStr, @NonNull char[] str, @NonNull int[] index) {
-    if (prevStr.length() == currentStr.length()) {
+    if (prevStr.length() == currentStr.length() || Math.abs(prevStr.length() - currentStr.length()) > 1) {
       // 길이가 같아서 구분할 수 없음
-      prevStr = currentStr;
-      index[0] = -1;
-      return false;
-    }
-    else if (Math.abs(prevStr.length() - currentStr.length()) > 1) {
       // 길이 차이가 2이상일 경우 정상 입력이 아님
-      prevStr = currentStr;
+      setPrevStr(currentStr);
+      str[0] = Character.MIN_VALUE;
       index[0] = -1;
       return false;
     }
@@ -79,11 +76,16 @@ public class CharFinder {
       }
     }
 
-    prevStr = currentStr;
+    setPrevStr(currentStr);
 
     return isBackspace;
   }
 
+  public void setPrevStr(String prevStr) {
+    this.prevStr = prevStr;
+    Log.e("APP#  CharFinder | CharFinder", "|" + "str ====> " + prevStr);
+  }
+
   /**
    * length
    *

+ 4 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/search/SearchModel.java

@@ -209,6 +209,10 @@ public class SearchModel extends Model {
       @Override
       public void onApiSuccess(SearchAutoCompletionResultBean resultBean) {
         List<TagBean> list = resultBean.getData();
+        if (null == list || list.size() == 0) {
+          // data 없으면 업데이트 안함
+          return;
+        }
 
         StringBuilder stringBuilder = new StringBuilder();
         int len = tags.length - 1;

+ 4 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/search/SearchPresenter.java

@@ -156,7 +156,10 @@ public class SearchPresenter extends Presenter<SearchModel, ISearchView> {
           // 키워드를 텍스트필드에 넣을 때 이벤트 발생을 막기위해 리스너 제거/재등록
           view.removeTextWatcher();
           view.setBoldGuideHash(false);
-          view.setKeyword(stripTag(tag));
+          // finder 선택 태그로 설정
+          String stripTag = stripTag(tag);
+          finder = new CharFinder(stripTag);
+          view.setKeyword(stripTag);
           view.addTextWatcher();
 
           search(tag);