Преглед изворни кода

Merge branch 'develop' of https://github.com/swict/LifeplusAndroid into develop

hyodong.min пре 6 година
родитељ
комит
2e0aa8ba12

+ 4 - 15
app/src/main/java/kr/co/zumo/app/lifeplus/InstallReferrerReceiver.java

@@ -5,8 +5,10 @@ import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 
+import com.google.android.gms.common.internal.service.Common;
 import com.nasmob.nswitch.sdk.InstallReceiver;
 
+import io.fabric.sdk.android.services.common.CommonUtils;
 import io.reactivex.disposables.Disposable;
 import kr.co.cashslide.ReferrerReceiver;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
@@ -16,6 +18,7 @@ import kr.co.zumo.app.lifeplus.util.StringUtil;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.CookieOvenPostBackRequestBean;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.GetCookieOvenRequestBean;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.GetCookieOvenResultBean;
+import kr.co.zumo.app.lifeplus.zumo.common.CommonUtil;
 import kr.co.zumo.app.lifeplus.zumo.model.module.APICookieOvenPostBackModule;
 import kr.co.zumo.app.lifeplus.zumo.model.module.APIGetCookieOvenModule;
 
@@ -51,21 +54,7 @@ public class InstallReferrerReceiver extends BroadcastReceiver {
                                 @Override
                                 public void onApiSuccess(GetCookieOvenResultBean resultBean) {
                                     if(resultBean != null && StringUtil.isFull(resultBean.getClickKey())) {
-
-                                        // 해당 클릭 키 쿠키오븐서버에 확인 콜백
-                                        CookieOvenPostBackRequestBean cookieOvenPostBackRequestBean = new CookieOvenPostBackRequestBean();
-                                        cookieOvenPostBackRequestBean.setClick_key(resultBean.getClickKey());
-                                        new APICookieOvenPostBackModule().call(cookieOvenPostBackRequestBean, new APIModuleListener<LifeplusAPIBean>() {
-                                            @Override
-                                            public void onApiSuccess(LifeplusAPIBean resultBean) {
-                                                // 응답 확인 하지 않음
-                                            }
-
-                                            @Override
-                                            public void onApiError(String errorMessage, APIError error) {
-                                                // 응답 확인 하지 않음
-                                            }
-                                        });
+                                        CommonUtil.getCookieOvenPostBack(resultBean.getClickKey());
                                     }
                                 }
 

+ 1 - 34
app/src/main/java/kr/co/zumo/app/lifeplus/activity/SplashActivity.java

@@ -24,6 +24,7 @@ import kr.co.zumo.app.lifeplus.view.custom.FullScreenWithKeyBoardLayout;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.CookieOvenPostBackRequestBean;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.GetCookieOvenRequestBean;
 import kr.co.zumo.app.lifeplus.zumo.bean.api.GetCookieOvenResultBean;
+import kr.co.zumo.app.lifeplus.zumo.common.CommonUtil;
 import kr.co.zumo.app.lifeplus.zumo.model.module.APICookieOvenPostBackModule;
 import kr.co.zumo.app.lifeplus.zumo.model.module.APIGetCookieOvenModule;
 
@@ -65,7 +66,6 @@ public class SplashActivity extends ActivityBase {
     launchScreen(ScreenID.SPLASH);
 
     callAD();
-//    cookieOvenTest();
   }
 
   protected boolean hasLayout() {
@@ -107,37 +107,4 @@ public class SplashActivity extends ActivityBase {
     //Buzz Ad: CPE
     BATracker.actionCompleted(this);
   }
-
-  private void cookieOvenTest() {
-    GetCookieOvenRequestBean cookieOvenRequestBean = new GetCookieOvenRequestBean();
-    cookieOvenRequestBean.setKey("ed971dd1-8852-421b-b962-72c30c0ad9c8");
-    new APIGetCookieOvenModule().call(cookieOvenRequestBean, new APIModuleListener<GetCookieOvenResultBean>() {
-
-      @Override
-      public void onApiSuccess(GetCookieOvenResultBean resultBean) {
-        if(resultBean != null && StringUtil.isFull(resultBean.getClickKey())) {
-
-          // 해당 클릭 키 쿠키오븐서버에 확인 콜백
-          CookieOvenPostBackRequestBean cookieOvenPostBackRequestBean = new CookieOvenPostBackRequestBean();
-          cookieOvenPostBackRequestBean.setClick_key(resultBean.getClickKey());
-          new APICookieOvenPostBackModule().call(cookieOvenPostBackRequestBean, new APIModuleListener<LifeplusAPIBean>() {
-            @Override
-            public void onApiSuccess(LifeplusAPIBean resultBean) {
-              // 응답 확인 하지 않음
-            }
-
-            @Override
-            public void onApiError(String errorMessage, APIError error) {
-              // 응답 확인 하지 않음
-            }
-          });
-        }
-      }
-
-      @Override
-      public void onApiError(String errorMessage, APIError error) {
-        // 응답 확인 하지 않음
-      }
-    });
-  }
 }

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

@@ -63,7 +63,7 @@ public class AppShieldHelper {
       .subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
       .subscribe(result -> {
         Log.d("APP# AppShieldHelper | setup", "|" + "app shield result: " + result);
-        Log.d("APP# AppShieldHelper | setup", "|" + "app shield result: " + XecureAppShield.getInstance().GetErrorMsg(result));
+//        Log.d("APP# AppShieldHelper | setup", "|" + "app shield result: " + XecureAppShield.getInstance().GetErrorMsg(result));
         if (result != 0) {
           // error
           // fixme 에러 발송 필요

+ 1 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/network/api/LifeplusAPI.java

@@ -438,7 +438,7 @@ public interface LifeplusAPI {
   Single<LifeplusAPIBean> dmcyUserCncl(@Body DmcyUserCnclRequestBean bean);
 
   // 쿠키오븐
-  @GET("external/link/getCookieOvenData.zumonew")
+  @GET("mapi/external/link/getCookieOvenData.zumonew")
   Single<GetCookieOvenResultBean> getCookieOven(@Query("key") String value);
 
   // 쿠키오븐 포스트백

+ 21 - 8
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/category/CategoryMainPresenter.java

@@ -153,7 +153,9 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
 
         flagContentsBean = model.getSelectedRecommendBean();
 
-        googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.RECOMMEND_CONTENTS, getAnalyticsScreenName(), flagContentsBean.getTitle());
+        if(flagContentsBean != null) {
+          googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.RECOMMEND_CONTENTS, getAnalyticsScreenName(), flagContentsBean.getTitle());
+        }
         logContents(
           R.string.fa_type_recommend,
           event.getIndex(),
@@ -161,11 +163,15 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
         );
 
         if (getScreenId(flagContentsBean) == ScreenID.EVENT_DETAIL) {
-          googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.EVENT_DETAIL, flagContentsBean.getTitle());
+          if(flagContentsBean != null) {
+            googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.EVENT_DETAIL, flagContentsBean.getTitle());
+          }
           gotoEvent(flagContentsBean);
         }
         else {
-          googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CONTENTS_DETAIL, GoogleAnalyticsHelper.Label.CATEGORY, flagContentsBean.getTitle());
+          if(flagContentsBean != null) {
+            googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CONTENTS_DETAIL, GoogleAnalyticsHelper.Label.CATEGORY, flagContentsBean.getTitle());
+          }
           String itemNumber = model.getSelectedRecommendBean().getItemNo();
           Log.i("APP# CategoryMainPresenter | onEventInternal", "|" + "recommended item number: " + itemNumber);
           model.loadDetail(itemNumber);
@@ -173,13 +179,16 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
 
         break;
       case Event.CONTENTS:
-        googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CATE_ + getAnalyticsScreenName(), String.valueOf(event.getIndex()), model.getContents().get(event.getIndex()).getTitle());
+        if(model != null && model.getContents() != null && model.getContents().size() > event.getIndex()) {
+          googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CATE_ + getAnalyticsScreenName(), String.valueOf(event.getIndex()), model.getContents().get(event.getIndex()).getTitle());
+        }
 
         linkContents(R.string.fa_type_list, event.getIndex(), model.getContents().get(event.getIndex()));
         break;
       case Event.BANNER:
-        googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.BANNER, GoogleAnalyticsHelper.Action.CLICK, model.getBannerBeans().get(event.getIndex()).getTitle());
-
+        if(model != null && model.getBannerBeans() != null && model.getBannerBeans().size() > event.getIndex()) {
+          googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.BANNER, GoogleAnalyticsHelper.Action.CLICK, model.getBannerBeans().get(event.getIndex()).getTitle());
+        }
         linkContents(R.string.fa_type_banner, event.getIndex(), model.getBannerBeans().get(event.getIndex()));
         break;
       case Event.EXPOSURE_BANNER:
@@ -196,11 +205,15 @@ public abstract class CategoryMainPresenter<M extends CategoryMainModel, V exten
     logContents(type, index, flagContentsBean.getTitleWithTrim());
 
     if (getScreenId(flagContentsBean) == ScreenID.EVENT_DETAIL) {
-      googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.EVENT_DETAIL, flagContentsBean.getTitle());
+      if(flagContentsBean != null) {
+        googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.EVENT_DETAIL, flagContentsBean.getTitle());
+      }
       gotoEvent(flagContentsBean);
     }
     else {
-      googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CONTENTS_DETAIL, GoogleAnalyticsHelper.Label.CATEGORY, flagContentsBean.getTitle());
+      if(flagContentsBean != null) {
+        googleAnalyticsHelper.sendGA(GoogleAnalyticsHelper.Category.CONTENTS_DETAIL, GoogleAnalyticsHelper.Label.CATEGORY, flagContentsBean.getTitle());
+      }
       setContentsHelper(flagContentsBean);
 
       go(ScreenID.CONTENTS);

+ 83 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/zumo/common/CommonUtil.java

@@ -5,10 +5,22 @@ import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.os.AsyncTask;
+import android.support.annotation.NonNull;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import kr.co.zumo.app.BuildConfig;
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.activity.MainActivity;
 import kr.co.zumo.app.lifeplus.activity.ScreenStarter;
@@ -26,6 +38,8 @@ import kr.co.zumo.app.lifeplus.activity.ScreenStarter;
 @Deprecated
 public class CommonUtil {
 
+    private static final String TAG = "CommonUtil";
+
     private static AlertDialog mAlertDialog;
 
     /**
@@ -82,4 +96,73 @@ public class CommonUtil {
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         activity.startActivity(intent);
     }
+
+    public static void getCookieOvenPostBack(@NonNull String clickKey) {
+        new AsyncCookieOvenPostBack(clickKey).execute();
+    }
+
+    public static class AsyncCookieOvenPostBack extends AsyncTask<Void, Void, String> {
+
+        private String clickKey;
+
+        AsyncCookieOvenPostBack(@NonNull String click_key) {
+            this.clickKey = click_key;
+        }
+
+        @Override
+        protected void onPreExecute() {
+            super.onPreExecute();
+        }
+
+        @Override
+        protected void onPostExecute(String response) {
+            super.onPostExecute(response);
+
+            if(BuildConfig.DEBUG) {
+                Log.i(TAG, "AsyncCookieOvenPostBack->onPostExecute: response: " + response);
+            }
+        }
+
+        @Override
+        protected String doInBackground(Void... params) {
+            BufferedReader reader;
+            StringBuffer buffer;
+            String res = null;
+            try {
+                URL url = new URL("https://postback-ao.adison.co/api/postbacks/server?click_key=" + clickKey);
+                HttpURLConnection con = (HttpURLConnection) url.openConnection();
+                con.setReadTimeout(40000);
+                con.setConnectTimeout(40000);
+                con.setRequestMethod("GET");
+                con.setRequestProperty("Content-Type", "application/json");
+
+                int status = con.getResponseCode();
+                InputStream inputStream;
+                if (status == HttpURLConnection.HTTP_OK) {
+                    inputStream = con.getInputStream();
+                } else {
+                    inputStream = con.getErrorStream();
+                }
+
+                reader = new BufferedReader(new InputStreamReader(inputStream));
+
+                buffer = new StringBuffer();
+
+                String line;
+                while ((line = reader.readLine()) != null) {
+                    buffer.append(line);
+                }
+                res = buffer.toString();
+            } catch (MalformedURLException e) {
+                if(BuildConfig.DEBUG) {
+                    Log.e(TAG, "AsyncCookieOvenPostBack->doInBackground: MalformedURLException");
+                }
+            } catch (IOException e) {
+                if(BuildConfig.DEBUG) {
+                    Log.e(TAG, "AsyncCookieOvenPostBack->doInBackground: IOException");
+                }
+            }
+            return res;
+        }
+    }
 }