Browse Source

[공통][New] Google Analytics - 검색: 필터

hyodong.min 6 years ago
parent
commit
45a5d2b358

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/helper/FirebaseAnalyticsHelper.java

@@ -274,7 +274,7 @@ public class FirebaseAnalyticsHelper extends Helper {
    * @param filterGroup
    * @param filterItem
    */
-  public void logCategoryFilter(String screen, int categoryIndex, String categoryLabel, String filterGroup, String filterItem) {
+  public void logFilter(String screen, int categoryIndex, String categoryLabel, String filterGroup, String filterItem) {
     Bundle params = new Bundle();
     params.putString(Param.SCREEN, screen);
     params.putString(Param.CATEGORY_INDEX, String.valueOf(categoryIndex));

+ 4 - 6
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/category/CategoryFilterPresenter.java

@@ -88,8 +88,7 @@ public abstract class CategoryFilterPresenter<M extends CategoryFilterModel, V e
             loadFilteringContents();
 
             // 선택된 상세 필터 로깅
-            Map<String, List<String>> map = model.getFilterDetailMap();
-            logCategoryFilter(R.string.fa_screen_category_filter_detail, map);
+            logFilter(R.string.fa_screen_category_filter_detail, model.getFilterDetailMap());
           }
 
           @Override
@@ -100,8 +99,7 @@ public abstract class CategoryFilterPresenter<M extends CategoryFilterModel, V e
             model.commitFilter();
 
             // 선택된 수만큼 로깅
-            Map<String, List<String>> map = model.getFilterMap();
-            logCategoryFilter(R.string.fa_screen_category_filter, map);
+            logFilter(R.string.fa_screen_category_filter, model.getFilterMap());
           }
 
           @Override
@@ -147,10 +145,10 @@ public abstract class CategoryFilterPresenter<M extends CategoryFilterModel, V e
     }
   }
 
-  private void logCategoryFilter(int screen, Map<String, List<String>> map) {
+  private void logFilter(int screen, Map<String, List<String>> map) {
     for (String key : map.keySet()) {
       for (String filter : map.get(key)) {
-        firebaseAnalyticsHelper.logCategoryFilter(
+        firebaseAnalyticsHelper.logFilter(
           ResourceUtil.getString(screen),
           model.getCategoryIndex() + 1,
           getAnalyticsScreenName(),

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

@@ -12,6 +12,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 import io.reactivex.disposables.Disposable;
 import kr.co.zumo.app.R;
@@ -39,6 +40,7 @@ import kr.co.zumo.app.lifeplus.model.module.APISearchFilterModule;
 import kr.co.zumo.app.lifeplus.model.module.APISearchModule;
 import kr.co.zumo.app.lifeplus.model.module.FilterDetailParser;
 import kr.co.zumo.app.lifeplus.supervisor.ContentsFlagHelper;
+import kr.co.zumo.app.lifeplus.util.FilterUtil;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -929,4 +931,23 @@ public class SearchResultModel extends Model {
       }
     }
   }
+
+
+  /**
+   * GA 를 위한 필터링 맵
+   *
+   * @return
+   */
+  public Map<String, List<String>> getFilterMap() {
+    return FilterUtil.getFilterMap(filterSectionBeans);
+  }
+
+  /**
+   * GA 를 위한 필터링 상세 맵
+   *
+   * @return
+   */
+  public Map<String, List<String>> getFilterDetailMap() {
+    return FilterUtil.getFilterDetailMap(filterSectionBeans);
+  }
 }

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

@@ -6,12 +6,14 @@ package kr.co.zumo.app.lifeplus.view.screen.search;
 import android.util.Log;
 
 import java.util.List;
+import java.util.Map;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.ContentsDeliveryBean;
 import kr.co.zumo.app.lifeplus.bean.api.FilterBean;
 import kr.co.zumo.app.lifeplus.bean.api.SearchContentsBean;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
+import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.IWaiterCallable;
@@ -245,6 +247,9 @@ public class SearchResultPresenter extends Presenter<SearchResultModel, ISearchR
                 filterDialog.setContentsCount(0);
               }
             });
+
+            // 선택된 상세 필터 로깅
+            logFilter(R.string.fa_screen_search_filter_detail, model.getFilterDetailMap());
           }
 
           @Override
@@ -253,6 +258,9 @@ public class SearchResultPresenter extends Presenter<SearchResultModel, ISearchR
             dialog.dispose();
 
             model.commitFilter();
+
+            // 선택된 수만큼 로깅
+            logFilter(R.string.fa_screen_search_filter, model.getFilterMap());
           }
 
           @Override
@@ -313,4 +321,17 @@ public class SearchResultPresenter extends Presenter<SearchResultModel, ISearchR
       filterWaiter = null;
     }
   }
+
+
+  private void logFilter(int screen, Map<String, List<String>> map) {
+    for (String key : map.keySet()) {
+      for (String filter : map.get(key)) {
+        firebaseAnalyticsHelper.logFilter(
+          ResourceUtil.getString(screen),
+          0,
+          "",
+          key, filter);
+      }
+    }
+  }
 }