Browse Source

[수정사항]
1. volley 적용 테스트 중

aaron 9 years ago
parent
commit
d86b406416

+ 2 - 1
kneet_v3/build.gradle

@@ -13,7 +13,7 @@ android {
         minSdkVersion 15
         targetSdkVersion 22
         multiDexEnabled true
-        versionCode 4
+        versionCode 5
         versionName "0.1.3"
     }
 
@@ -104,4 +104,5 @@ dependencies {
 //    compile 'com.android.support:design:23.4.0'
     compile 'com.android.support:support-v4:23.4.0'
     compile 'com.mcxiaoke.volley:library:1.0.+'
+    compile 'com.navercorp.volleyextensions:volleyer:2.0.+'
 }

+ 8 - 0
kneet_v3/src/main/java/com/ntels/kneet/v3/common/AppConfig.java

@@ -10,8 +10,11 @@ import android.util.Log;
 import android.webkit.CookieSyncManager;
 import android.support.multidex.MultiDexApplication;
 
+import com.android.volley.RequestQueue;
 import com.google.android.gms.analytics.GoogleAnalytics;
 import com.google.android.gms.analytics.Tracker;
+import com.navercorp.volleyextensions.volleyer.Volleyer;
+import com.navercorp.volleyextensions.volleyer.factory.DefaultRequestQueueFactory;
 import com.ntels.kneet.v3.R;
 import com.ntels.kneet.v3.common.util.LogUtil;
 import com.ntels.kneet.v3.common.util.Util;
@@ -97,6 +100,11 @@ public class AppConfig extends MultiDexApplication {
         instance = this;
         Typekit.getInstance().addNormal(Typekit.createFromAsset(this, "fonts/NotoSans-Light.otf")).addBold(Typekit.createFromAsset(this, "fonts/NotoSans-Regular.otf"));
 
+        // volleyer에 default request queue를 셋팅한다.
+        RequestQueue rq = DefaultRequestQueueFactory.create(this);
+        rq.start();
+        Volleyer.volleyer(rq).settings().setAsDefault().done();
+
         patchEOFException();
         CookieSyncManager.createInstance(this);
     }

+ 22 - 0
kneet_v3/src/main/java/com/ntels/kneet/v3/common/util/Util.java

@@ -1369,6 +1369,28 @@ public class Util {
         return result.toString();
     }
 
+    public String convGetParam(HashMap<String, Object> params) throws UnsupportedEncodingException {
+
+        StringBuilder result = new StringBuilder();
+        boolean first = true;
+
+        for ( String key : params.keySet() ) {
+            if ( first ) {
+                result.append("?");
+                first = false;
+            } else {
+                result.append("&");
+            }
+
+            result.append(URLEncoder.encode(key, "UTF-8"));
+            result.append("=");
+            result.append(URLEncoder.encode(null2string(params.get(key)), "UTF-8"));
+        }
+
+        LogUtil.i(TAG, "convert query parameter : " + result.toString());
+        return result.toString();
+    }
+
     public String convPostBodyJson(List<HashMap<String, Object>> params) throws UnsupportedEncodingException, JSONException {
 
         JSONObject joResult = new JSONObject();

+ 26 - 0
kneet_v3/src/main/java/com/ntels/kneet/v3/model/ParentModel.java

@@ -0,0 +1,26 @@
+package com.ntels.kneet.v3.model;
+
+import org.codehaus.jackson.annotate.JsonIgnoreProperties;
+import org.codehaus.jackson.annotate.JsonProperty;
+
+/**
+ * 1. ClassName :   ParentModel
+ * 2. FileName  :   ParentModel.java
+ * 3. Package   :   com.ntels.kneet.v3.model
+ * 4. Date      :   2016-10-19
+ * 5. Author    :   aaron
+ * 6. Comment   :   Initialize
+ */
+
+@JsonIgnoreProperties(ignoreUnknown = true)
+public class ParentModel {
+
+    @JsonProperty("result_code")
+    public String resultCode;
+
+    @JsonProperty("err_code")
+    public String errorCode;
+
+    @JsonProperty("err_msg")
+    public String errorMsg;
+}

+ 98 - 1
kneet_v3/src/main/java/com/ntels/kneet/v3/view/Intro.java

@@ -28,6 +28,17 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.RelativeLayout;
 
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.RetryPolicy;
+import com.android.volley.VolleyError;
+import com.navercorp.volleyextensions.volleyer.Volleyer;
+import com.navercorp.volleyextensions.volleyer.VolleyerConfiguration;
+import com.navercorp.volleyextensions.volleyer.http.HttpContent;
+import com.navercorp.volleyextensions.volleyer.http.HttpMethod;
+import com.navercorp.volleyextensions.volleyer.request.creator.RequestCreator;
+import com.navercorp.volleyextensions.volleyer.request.executor.RequestExecutor;
+import com.navercorp.volleyextensions.volleyer.response.parser.NetworkResponseParser;
 import com.ntels.kneet.v3.R;
 import com.ntels.kneet.v3.common.AppConfig;
 import com.ntels.kneet.v3.common.Constants;
@@ -43,12 +54,15 @@ import com.ntels.kneet.v3.common.util.Dlog;
 import com.ntels.kneet.v3.common.util.LogUtil;
 import com.ntels.kneet.v3.common.util.Util;
 import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.ParentModel;
 import com.ntels.kneet.v3.view.dialog.CustomDialog;
 import com.ntels.kneet.v3.view.dialog.Dialog_Spinner;
 
 import org.json.JSONObject;
 
+import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 public class Intro extends CustomActivity implements CustomDialog.OnMsgAlterToResult {
 
@@ -476,7 +490,8 @@ public class Intro extends CustomActivity implements CustomDialog.OnMsgAlterToRe
             iType = msg.what;
             switch (msg.what) {
                 case MSG_COM_G_APP_VERSION:
-                    send_G_app_version();
+//                    send_G_app_version();
+                    requestAppVersion();
                     break;
                 case MSG_COM_ACTINIT:
                     actinit();
@@ -492,6 +507,88 @@ public class Intro extends CustomActivity implements CustomDialog.OnMsgAlterToRe
         }
     }
 
+    private void requestAppVersion() {
+        String url = appConfig.getUrl() + util.getString(act, R.string.API_VERSION) + util.getString(act, R.string.SEND_G_app_version);
+        String param = "";
+        String requestUrl = "";
+
+        HashMap<String, Object> mapParam = new HashMap<>();
+        mapParam.put(Constants.HTTP_os_type, Constants.OS_TYPE);
+        mapParam.put(Constants.HTTP_store_code, Constants.APP_STORE_CD);
+        mapParam.put(Constants.HTTP_app_version, appConfig.getVer());
+        mapParam.put(Constants.HTTP_service_id, appConfig.getService_Id());
+
+        try {
+            param = util.convGetParam(mapParam);
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+
+        requestUrl = url + param;
+        LogUtil.i(TAG, "Request url : " + requestUrl);
+
+        Volleyer.volleyer()
+                .get(requestUrl)
+                .withTargetClass(ParentModel.class)
+                .withListener(new com.android.volley.Response.Listener<ParentModel>() {
+                    @Override
+                    public void onResponse(ParentModel response) {
+                        LogUtil.i(TAG, "App version result code -> " + response.resultCode);
+                        if (response.resultCode.equals("00")) {
+                            setBackLoadLogin();
+                        } else if (response.resultCode.equals("01")) {
+                            customDialog.MsgAlert(act, Constants.MSG819);
+                        } else if (response.resultCode.equals("99")) {
+                            // 업데이트 진행해야 함
+                            customDialog.MsgAlert(act, Constants.MSG821);
+                        }
+                    }
+                })
+                .withErrorListener(new com.android.volley.Response.ErrorListener() {
+                    @Override
+                    public void onErrorResponse(VolleyError error) {
+                        customDialog.MsgAlert(act, Constants.MSG807);
+                    }
+                })
+                .execute();
+    }
+
+    public class CustomConfiguration extends VolleyerConfiguration {
+
+        public CustomConfiguration(RequestCreator requestCreator, RequestExecutor requestExecutor, NetworkResponseParser networkResponseParser, com.android.volley.Response.ErrorListener errorListener) {
+            super(requestCreator, requestExecutor, networkResponseParser, errorListener);
+        }
+    }
+
+  /*  public class  CustomRequestExecutor implements RequestExecutor {
+
+        *//**
+         * <pre>
+         * Execute a {@code Request}.
+         * @param requestQueue running {@code RequestQueue}
+         * @param request A {@code Request} instance which was made just now
+         *//*
+        @Override
+        public <T> void executeRequest(RequestQueue requestQueue, Request<T> request) {
+            request.setRetryPolicy(new RetryPolicy() {
+                @Override
+                public int getCurrentTimeout() {
+                    return 0;
+                }
+
+                @Override
+                public int getCurrentRetryCount() {
+                    return 0;
+                }
+
+                @Override
+                public void retry(VolleyError error) throws VolleyError {
+
+                }
+            })
+        }
+    }*/
+
     private void send_G_app_version() {
 
         try {