瀏覽代碼

1. Retrofit2 적용 중
- 설정메뉴 retrofit 적용 중.

aaron 8 年之前
父節點
當前提交
a1215a5bf1

+ 2 - 0
kneet_v3/build.gradle

@@ -115,5 +115,7 @@ dependencies {
     compile 'com.squareup.okhttp3:okhttp-urlconnection:3.8.1'
     compile 'com.squareup.okhttp3:logging-interceptor:3.8.1'
     compile 'com.google.code.gson:gson:2.8.1'
+    compile 'com.github.bumptech.glide:glide:4.0.0'
+    annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0'
     compile project(':color_picker')
 }

+ 11 - 1
kneet_v3/proguard-rules.pro

@@ -131,4 +131,14 @@
 
 #  public *** get();
 
-#}
+#}
+
+-keep public class * implements com.bumptech.glide.module.GlideModule
+-keep public class * extends com.bumptech.glide.AppGlideModule
+-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
+  **[] $VALUES;
+  public *;
+}
+
+# for DexGuard only
+-keepresourcexmlelements manifest/application/meta-data@value=GlideModule

+ 1 - 2
kneet_v3/src/main/java/com/ntels/kneet/v3/common/AppConfig.java

@@ -527,8 +527,7 @@ public class AppConfig extends MultiDexApplication {
   public String getSelect_Homegrp_Homehub_Online_State() {
 
     String onlineState = "";
-    if (sSelect_Homegrp_Homehub_Conn_State.equalsIgnoreCase("connect") &&
-        sSelect_Homegrp_Homehub_Dongle_State.equalsIgnoreCase("ON")) {
+    if ("connect".equalsIgnoreCase(sSelect_Homegrp_Homehub_Conn_State) && "connect".equalsIgnoreCase(sSelect_Homegrp_Homehub_Online_State)) {
       onlineState = "ON";
     } else {
       onlineState = "OFF";

+ 3 - 0
kneet_v3/src/main/java/com/ntels/kneet/v3/common/http/RetrofitClient.java

@@ -44,6 +44,9 @@ public class RetrofitClient {
     private static OkHttpClient mClient;
     private static Retrofit mInterface;
 
+    private  RetrofitClient() {
+    }
+
     public static synchronized Retrofit getClient() {
         if (null == mInterface) {
             // 로그.

+ 13 - 0
kneet_v3/src/main/java/com/ntels/kneet/v3/common/http/service/CommonService.java

@@ -24,6 +24,19 @@ import retrofit2.http.Query;
 
 public interface CommonService {
 
+    /**
+     * <pre>
+     * [3.6.3.1] 모바일 앱 버전 정보 조회.
+     * 서비스 이용이 가능한 모바일 앱 버전 정보를 조회한다.
+     *
+     * @param osType OS 유형(MA: 안드로이드, MI: iOS)
+     * @param storeCode 스토어 코드(G: Google Play, T: T-Store, A: Apple Store...)
+     * @param appVersion (현재 접속한)앱 버전
+     * @param serviceId 서비스 ID(30001: AoT@Home3.0)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @GET("mobile_app/version")
     Call<BaseResponse> appVersion(@Query("os_type") String osType, @Query("store_code") String storeCode,
                                   @Query("app_version") String appVersion, @Query("service_id") String serviceId);

+ 45 - 2
kneet_v3/src/main/java/com/ntels/kneet/v3/common/http/service/ThingsService.java

@@ -5,10 +5,8 @@
 
 package com.ntels.kneet.v3.common.http.service;
 
-import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 
-import com.ntels.kneet.v3.model.BaseResponse;
 import com.ntels.kneet.v3.model.things.Device;
 import com.ntels.kneet.v3.model.things.DeviceDetail;
 
@@ -33,13 +31,58 @@ import retrofit2.http.Path;
 
 public interface ThingsService {
 
+    /**
+     * <pre>
+     * [3.3.1.1] 디바이스 목록 조회.
+     * 해당 홈그룹의 전체 디바이스 목록을 조회한다.
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @GET("devices")
     Call<List<Device>> devices();
 
+    /**
+     * <pre>
+     * [3.3.1.2] 디바이스 상세 조회.
+     * 해당 디바이스의 상세 정보를 조회한다.(디바이스가 보유한 모든 커맨드클래스 목록을 보여준다.)
+     *
+     * @param deviceId 홈허브 디바이스 ID
+     * @param nodeId 노드 ID
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @GET("devices/{device_id}/{node_id}")
     Call<DeviceDetail> deviceDetail(@Path("device_id") String deviceId, @Path("node_id") String nodeId);
 
+    /**
+     * <pre>
+     * [3.3.1.3] 디바이스 속성 변경.
+     * 디바이스의 속성(ex> 이름)을 변경한다.
+     *
+     * @param deviceId 홈허브 디바이스 ID
+     * @param nodeId 노드 ID
+     * @param deviceName 변경할 디바이스 명
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @PUT("devices/{device_id}/{node_id}")
     Call<Void> deviceName(@Path("device_id") String deviceId, @Path("node_id") String nodeId,
                                  @Body JsonObject deviceName);
+
+    /**
+     * <pre>
+     * [3.3.1.4] 디바이스 소유권 변경.
+     * 기존 디바이스의 비밀번호를 확인하여 일치하면 소유권을 변경 처리한다.
+     *
+     * @param deviceId 홈허브 디바이스 ID
+     * @param body request body(API 문서 참조)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
+    @PUT("devices/{device_id}/ownership")
+    Call<JsonObject> ownership(@Path("device_id") String deviceId, @Body JsonObject body);
 }

+ 84 - 2
kneet_v3/src/main/java/com/ntels/kneet/v3/common/http/service/UserService.java

@@ -5,12 +5,21 @@
 
 package com.ntels.kneet.v3.common.http.service;
 
+import com.google.gson.JsonObject;
+
 import com.ntels.kneet.v3.model.user.Login;
 
+import okhttp3.MultipartBody;
+import okhttp3.RequestBody;
 import retrofit2.Call;
 import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Headers;
+import retrofit2.http.Multipart;
 import retrofit2.http.POST;
 import retrofit2.http.PUT;
+import retrofit2.http.Part;
+import retrofit2.http.Path;
 import retrofit2.http.Query;
 
 /**
@@ -26,13 +35,86 @@ import retrofit2.http.Query;
 
 public interface UserService {
 
+    /**
+     * <pre>
+     * [3.1.1.4] 회원 로그인.
+     * 회원 로그인을 처리한다.
+     *
+     * @param login request body 정보를 갖고있는 object(API 문서 참조)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @POST("member/login")
     Call<Login> login(@Body Login login);
 
+    /**
+     * <pre>
+     * [3.1.1.5] 새 모바일 기기 인증.
+     * 새로운 모바일 기기(스마트폰)로 로그인 시 모바일 기기 인증 번호를 확인하고, 모바일 기기를 등록 처리한다.
+     *
+     * @param login request body 정보를 갖고있는 object(API 문서 참조)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
+    @POST("member/new_mobile_device")
+    Call<Login> newMobileDevice(@Body Login login);
+
+    /**
+     * <pre>
+     * [3.1.1.6] 회원 로그인 정보 조회 및 푸시 노티 토큰 수정.
+     * 인증 토큰을 기준으로 회원의 로그인 정보를 조횧하고 푸시 노티 토큰을 등록/수정한다.
+     *
+     * @param osType 기기의 OS 유형(MA: 안드로이드, MI: iOS)
+     * @param deviceSn (모바일)기기 일련번호(애플기기: UUID/ 안드로이드 기기: IMEI or Mac Address)
+     * @param deviceToken (푸시 노티용)(모바일)기기 식별 코드(애플 기기: device token/ 안드로이드 기기: reg id)
+     * @param deviceHostName (모바일)기기 호스트 명(Wi-Fi Presence를 체크할 때 사용)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
     @PUT("member")
     Call<Login> autoLogin(@Query("os_type") String osType, @Query("device_sn") String deviceSn, @Query("device_token") String deviceToken,
                           @Query("device_hostname") String deviceHostName);
 
-    @POST("member/new_mobile_device")
-    Call<Login> newMobileDevice(@Body Login login);
+    /**
+     * <pre>
+     * [3.1.1.7] (기존)비밀번호 확인
+     * 기존 비밀번호를 확인한다. 개인 정보 보호를 위해 비밀번호를 한번 더 확인하고자 하는 경우 사용.
+     *
+     * @param password (확인할)비밀번호
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
+    @GET("member/password")
+    Call<Void> checkPassword(@Query("password") String password);
+
+    /**
+     * <pre>
+     * [3.1.1.8] 회원 정보 수정.
+     * 회원의 이메일(email), 비밀번호(password), 이름(name) 정보 등을 변경 처리한다.
+     *
+     * @param updateField 변경 구분(email: 이메일, password: 비밀번호, name: 이름)
+     * @param body request body 정보를 갖고있는 json object(API 문서 참조)
+     *
+     * @return 실제 요청을 수행 할 Call 객체
+     * </pre>
+     */
+    @PUT("member/{update_field}")
+    Call<Void> memberInfoUpdate(@Path("update_field") String updateField, @Body JsonObject body);
+
+    /**
+     * <pre>
+     * [3.1.1.9] 회원 프로필 이미지 등록
+     * 회원의 프로필 이미지를 등록(변경)한다.
+     *
+     * @return
+     * </pre>
+     */
+
+    @Multipart
+    @POST("member/profile_image")
+    Call<JsonObject> profileImage(@Part MultipartBody.Part requestPart);
 }

文件差異過大導致無法顯示
+ 3667 - 3647
kneet_v3/src/main/java/com/ntels/kneet/v3/common/util/Util.java


+ 4 - 7
kneet_v3/src/main/java/com/ntels/kneet/v3/view/Main.java

@@ -225,9 +225,8 @@ public class Main extends CustomActionBarActivity implements View.OnClickListene
                 if (messageType.equals(Constants.WEBSOCKET_TYPE_DEVICE_CONTENT)) {
                     notificationWsDeviceContent(jsonObject);
                 } else if (Constants.WEBSOCKET_TYPE_AUTH.equals(messageType)) {
-                    if (mAppConfig.getbWebSocketAuth()) {
-                        comHandler.sendEmptyMessageDelayed(MSG_COM_WS_DEVICE_ALIVE,
-                                Constants.HANDLER_DELAY_MILLIS);
+                    if (mAppConfig.getbWebSocketAuth() && !"".equals(mAppConfig.getSelect_Homegrp_Homehub_Device_Id())) {
+                        comHandler.sendEmptyMessageDelayed(MSG_COM_WS_DEVICE_ALIVE, Constants.HANDLER_DELAY_MILLIS);
                     }
                 } else if (Constants.WEBSOCKET_TYPE_DEVICE_ALIVE.equals(messageType)) {
                     resultWsDeviceAlive(jsonObject);
@@ -609,10 +608,8 @@ public class Main extends CustomActionBarActivity implements View.OnClickListene
     public void sendWsDeviceAlive() {
         HashMap<String, Object> sendParams = new HashMap<>();
         sendParams.put(Constants.WEBSOCKET_KEY_MESSAGE_TYPE, Constants.WEBSOCKET_TYPE_DEVICE_ALIVE);
-        sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_ID,
-                mAppConfig.getSelect_Homegrp_Homehub_Device_Id());
-        sendParams.put(Constants.WEBSOCKET_KEY_REQUEST_ID,
-                mAppConfig.getiSelect_Servicehub_Request_Id());
+        sendParams.put(Constants.WEBSOCKET_KEY_DEVICE_ID, mAppConfig.getSelect_Homegrp_Homehub_Device_Id());
+        sendParams.put(Constants.WEBSOCKET_KEY_REQUEST_ID, mAppConfig.getiSelect_Servicehub_Request_Id());
 
         mWebSocketService.send(Constants.WEBSOCKET_SEND_DEVICE_ALIVE, sendParams);
     }

文件差異過大導致無法顯示
+ 783 - 590
kneet_v3/src/main/java/com/ntels/kneet/v3/view/mainmore/Setting.java


+ 155 - 167
kneet_v3/src/main/java/com/ntels/kneet/v3/view/mainmore/SettingEmailChange.java

@@ -4,6 +4,19 @@
 
 package com.ntels.kneet.v3.view.mainmore;
 
+import com.google.gson.JsonObject;
+
+import com.ntels.kneet.v3.R;
+import com.ntels.kneet.v3.common.AppConfig;
+import com.ntels.kneet.v3.common.Constants;
+import com.ntels.kneet.v3.common.http.RetrofitCallback;
+import com.ntels.kneet.v3.common.http.RetrofitClient;
+import com.ntels.kneet.v3.common.http.RetrofitService;
+import com.ntels.kneet.v3.common.util.Util;
+import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.BaseResponse;
+import com.ntels.kneet.v3.view.dialog.CustomDialog;
+
 import android.app.Activity;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -14,18 +27,10 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Toast;
 
-import com.ntels.kneet.v3.R;
-import com.ntels.kneet.v3.common.AppConfig;
-import com.ntels.kneet.v3.common.Constants;
-import com.ntels.kneet.v3.common.c_interface.OnDataSendToReslut;
-import com.ntels.kneet.v3.common.http.HttpSend;
-import com.ntels.kneet.v3.common.http.Response;
-import com.ntels.kneet.v3.common.util.Dlog;
-import com.ntels.kneet.v3.common.util.Util;
-import com.ntels.kneet.v3.common.widget.CustomActivity;
-import com.ntels.kneet.v3.view.dialog.CustomDialog;
+import java.io.IOException;
 
-import org.json.JSONObject;
+import retrofit2.Call;
+import retrofit2.Callback;
 
 /**
  * <pre>
@@ -38,190 +43,173 @@ import org.json.JSONObject;
  * </pre>
  */
 public class SettingEmailChange extends CustomActivity implements View.OnClickListener,
-    CustomDialog.OnMsgAlterToResult {
-
-  private static final int MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD = 1;
-
-  /*통신 관련*/
-  private int type = 0;
+        CustomDialog.OnMsgAlterToResult {
 
-  /*공통*/
-  private Activity act;
-  private AppConfig appConfig;
-  private Intent intent;
-  private Util util = new Util();
-  private CustomDialog customDialog = new CustomDialog();
-  private String updateField = "";
-  private String newEmailId = "";
-  private String oldPassword = "";
-  private String newPassword = "";
-  private String confirmPassword = "";
-  private String nickname = "";
-  private String imageFileName = "";
+    private static final int MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD = 1;
+    private static final String MEMBER_UPDATE_FIELD_EMAIL = "email";
 
-  @Override
-  public void onCreate(Bundle savedInstanceState) {
+    /*통신 관련*/
+    private int type = 0;
 
-    super.onCreate(savedInstanceState);
+    /*공통*/
+    private Activity act;
+    private AppConfig appConfig;
+    private Intent intent;
+    private Util util = new Util();
+    private CustomDialog customDialog = new CustomDialog();
+    private String newEmailId = "";
 
-    act = SettingEmailChange.this;
-    appConfig = (AppConfig) act.getApplicationContext();
-    customDialog.setOnMsgAlterToResultEvent(this);
-
-    View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_email_change, null);
-    this.setContentView(viewToLoad);
-
-    util.getView(act, R.id.llBtn1).setOnClickListener(this);
-    util.getView(act, R.id.llBtn2).setOnClickListener(this);
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
 
-    updateField = "email";
-    setDisp();
-  }
+        super.onCreate(savedInstanceState);
 
-  /**
-   * UI display.
-   */
-  private void setDisp() {
+        act = SettingEmailChange.this;
+        appConfig = (AppConfig) act.getApplicationContext();
+        customDialog.setOnMsgAlterToResultEvent(this);
 
-    util.getTextView(act, R.id.edtEmail).setText(appConfig.getLogin_Id());
-  }
+        View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_email_change, null);
+        this.setContentView(viewToLoad);
 
-  @Override
-  public void onConfigurationChanged(Configuration newConfig) {
+        util.getView(act, R.id.llBtn1).setOnClickListener(this);
+        util.getView(act, R.id.llBtn2).setOnClickListener(this);
 
-    super.onConfigurationChanged(newConfig);
-  }
+        setDisp();
+    }
 
-  @Override
-  public void onClick(View view) {
+    /**
+     * UI display.
+     */
+    private void setDisp() {
 
-    switch (view.getId()) {
-      case R.id.llBtn1:
-        newEmailId = util.getEditTextVal(act, R.id.edtEmail);
-        if (newEmailId.equals("")) {
-          util.setShowToast(act, util.getString(act, R.string.MSG846), Toast.LENGTH_SHORT);
-          return;
-        }
-        view.setEnabled(false);
-        comHandler.sendMessageDelayed(comHandler.obtainMessage(
-            MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD), 10);
-        break;
-      case R.id.llBtn2:
-        onBackPressed();
-        break;
-      default:
-        break;
+        util.getTextView(act, R.id.edtEmail).setText(appConfig.getLogin_Id());
     }
-  }
 
-  Handler comHandler = new Handler(new IncomingHandlerCallBack());
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
 
-  class IncomingHandlerCallBack implements Handler.Callback {
+        super.onConfigurationChanged(newConfig);
+    }
 
     @Override
-    public boolean handleMessage(Message msg) {
-
-      type = msg.what;
-      switch (msg.what) {
-        case MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD:
-          sendPutMemberInfoUpdate();
-          break;
-        default:
-          break;
-      }
-      return true;
+    public void onClick(View view) {
+
+        switch (view.getId()) {
+            case R.id.llBtn1:
+                newEmailId = util.getEditTextVal(act, R.id.edtEmail);
+                if (newEmailId.equals("")) {
+                    util.setShowToast(act, util.getString(act, R.string.MSG846), Toast.LENGTH_SHORT);
+                    return;
+                }
+                view.setEnabled(false);
+                comHandler.sendMessageDelayed(comHandler.obtainMessage(
+                        MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD), 10);
+                break;
+            case R.id.llBtn2:
+                onBackPressed();
+                break;
+            default:
+                break;
+        }
     }
-  }
 
-  /**
-   * 회원 정보 수정(가입된 이메일, 비밀번호, 이름 정보에 대해 변경 처리한다) 요청.
-   */
-  private void sendPutMemberInfoUpdate() {
+    Handler comHandler = new Handler(new IncomingHandlerCallBack());
 
-    try {
-      HttpSend httpSend = new HttpSend(act);
-      httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
-        @Override
-        public void resultResponse(Response result) {
+    class IncomingHandlerCallBack implements Handler.Callback {
 
-          result_P_member_member_id_update_field(result);
+        @Override
+        public boolean handleMessage(Message msg) {
+
+            type = msg.what;
+            switch (msg.what) {
+                case MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD:
+                    requestMemberInfoUpdate();
+                    break;
+                default:
+                    break;
+            }
+            return true;
         }
-      });
-
-      //공통 변수 입력
-      httpSend.P_member_member_id_update_field(appConfig.getLogin_Member_Id(), updateField,
-          newEmailId, oldPassword, newPassword, confirmPassword,
-          nickname, imageFileName);
-    } catch (Exception ex) {
-      ex.printStackTrace();
     }
-  }
 
-  /**
-   * {@link #sendPutMemberInfoUpdate()} 요청 결과.
-   *
-   * @param response 결과 data
-   */
-  private void result_P_member_member_id_update_field(Response response) {
+    /**
+     * 회원 이메일 수정 요청.
+     */
+    @SuppressWarnings("unchecked")
+    private void requestMemberInfoUpdate() {
+
+        JsonObject body = new JsonObject();
+        body.addProperty(Constants.HTTP_new_email_id, newEmailId);
+        Call<Void> memberInfoUpdateCall = RetrofitService.getUserService().memberInfoUpdate(MEMBER_UPDATE_FIELD_EMAIL, body);
+        memberInfoUpdateCall.enqueue(new RetrofitCallback(act, new Callback<Void>() {
+            @Override
+            public void onResponse(Call<Void> call, retrofit2.Response<Void> response) {
+                if (null != response) {
+                    if (response.isSuccessful()) {
+                        util.setShowToast(act, util.getString(act, R.string.MSG844), Toast.LENGTH_SHORT);
+                        intent = new Intent();
+                        act.setResult(RESULT_OK, intent);
+                        finish();
+                    } else {
+                        BaseResponse errorResponse = null;
+                        try {
+                            errorResponse = (BaseResponse) RetrofitClient.getClient().responseBodyConverter(BaseResponse.class,
+                                    BaseResponse.class.getAnnotations()).convert(response.errorBody());
+
+                            if ("401".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG998, errorResponse.getErrMsg());
+                            } else if ("401-106".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG997, errorResponse.getErrMsg());
+                            } else {
+                                customDialog.msgAlert(act, Constants.MSG000, errorResponse.getErrMsg());
+                            }
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                            customDialog.msgAlert(act, Constants.MSG807);
+                        }
+
+                    }
+                } else {
+                    customDialog.msgAlert(act, Constants.MSG807);
+                }
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+
+            @Override
+            public void onFailure(Call<Void> call, Throwable t) {
+                t.printStackTrace();
+                customDialog.msgAlert(act, Constants.MSG807);
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+        }));
+    }
 
-    try {
-      if (response.getStatusCode() == 200) {
+    @Override
+    public void onBackPressed() {
 
-        util.setShowToast(act, util.getString(act, R.string.MSG844), Toast.LENGTH_SHORT);
         intent = new Intent();
-        act.setResult(RESULT_OK, intent);
+        act.setResult(RESULT_CANCELED, intent);
         finish();
-      } else {
-        JSONObject joResult = new JSONObject(response.getContent());
-        Dlog.v(joResult.toString());
-        String errorCode = util.null2string(joResult.get(Constants.HTTP_err_code));
-        String errorMsg = util.null2string(joResult.get(Constants.HTTP_err_msg));
-
-        if (errorCode.equals("401")) {
-          customDialog.msgAlert(act, Constants.MSG998, errorMsg);
-        } else if (errorCode.equals("401-106")) {
-          customDialog.msgAlert(act, Constants.MSG997, errorMsg);
-        } else {
-          customDialog.msgAlert(act, Constants.MSG000, errorMsg);
-        }
-      }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      customDialog.msgAlert(act, Constants.MSG807);
-    }
-    try {
-      util.getView(act, R.id.llBtn1).setEnabled(true);
-    } catch (Exception ex) {
-      ex.printStackTrace();
     }
-  }
-
-  @Override
-  public void onBackPressed() {
-
-    intent = new Intent();
-    act.setResult(RESULT_CANCELED, intent);
-    finish();
-  }
-
-  @Override
-  public void resultCustomDialogResponse(int msgId, int btnResult) {
-
-    switch (msgId) {
-
-      case Constants.MSG998:
-        util.callApp_Start(act, "LOGOUT");
-        break;
-      case Constants.MSG997:
-        util.callApp_Start(act, "HOME_RELOAD");
-        break;
-      case Constants.MSG807:
-        if (btnResult == 1) {
-          comHandler.sendMessageDelayed(comHandler.obtainMessage(type), 10);
+
+    @Override
+    public void resultCustomDialogResponse(int msgId, int btnResult) {
+
+        switch (msgId) {
+
+            case Constants.MSG998:
+                util.callApp_Start(act, "LOGOUT");
+                break;
+            case Constants.MSG997:
+                util.callApp_Start(act, "HOME_RELOAD");
+                break;
+            case Constants.MSG807:
+                if (btnResult == 1) {
+                    comHandler.sendMessageDelayed(comHandler.obtainMessage(type), 10);
+                }
+                break;
+            default:
+                break;
         }
-        break;
-      default:
-        break;
     }
-  }
 }

+ 58 - 64
kneet_v3/src/main/java/com/ntels/kneet/v3/view/mainmore/SettingNameChange.java

@@ -4,6 +4,8 @@
 
 package com.ntels.kneet.v3.view.mainmore;
 
+import com.google.gson.JsonObject;
+
 import android.app.Activity;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -20,13 +22,22 @@ import com.ntels.kneet.v3.common.Constants;
 import com.ntels.kneet.v3.common.c_interface.OnDataSendToReslut;
 import com.ntels.kneet.v3.common.http.HttpSend;
 import com.ntels.kneet.v3.common.http.Response;
+import com.ntels.kneet.v3.common.http.RetrofitCallback;
+import com.ntels.kneet.v3.common.http.RetrofitClient;
+import com.ntels.kneet.v3.common.http.RetrofitService;
 import com.ntels.kneet.v3.common.util.Dlog;
 import com.ntels.kneet.v3.common.util.Util;
 import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.BaseResponse;
 import com.ntels.kneet.v3.view.dialog.CustomDialog;
 
 import org.json.JSONObject;
 
+import java.io.IOException;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+
 /**
  * <pre>
  * 1. ClassName :   SettingNameChange
@@ -41,6 +52,7 @@ public class SettingNameChange extends CustomActivity implements View.OnClickLis
     CustomDialog.OnMsgAlterToResult {
 
   private static final int MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD = 1;
+  private static final String MEMBER_UPDATE_FIELD_NAME = "name";
 
   /*통신 관련*/
   private int type = 0;
@@ -51,13 +63,7 @@ public class SettingNameChange extends CustomActivity implements View.OnClickLis
   private Intent intent;
   private Util util = new Util();
   private CustomDialog customDialog = new CustomDialog();
-  private String updateField = "";
-  private String newEmailId = "";
-  private String oldPassword = "";
-  private String newPassword = "";
-  private String confirmPassword = "";
   private String nickname = "";
-  private String imageFileName = "";
 
   @Override
   public void onCreate(Bundle savedInstanceState) {
@@ -74,7 +80,6 @@ public class SettingNameChange extends CustomActivity implements View.OnClickLis
     util.getView(act, R.id.llBtn1).setOnClickListener(this);
     util.getView(act, R.id.llBtn2).setOnClickListener(this);
 
-    updateField = "name";
     setDisp();
   }
 
@@ -125,7 +130,7 @@ public class SettingNameChange extends CustomActivity implements View.OnClickLis
       type = msg.what;
       switch (msg.what) {
         case MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD:
-          sendPutMemberInfoUpdate();
+          requestMemberInfoUpdate();
           break;
         default:
           break;
@@ -135,66 +140,55 @@ public class SettingNameChange extends CustomActivity implements View.OnClickLis
   }
 
   /**
-   * 회원 정보 수정(가입된 이메일, 비밀번호, 이름 정보에 대해 변경 처리한다) 요청.
+   * 회원 이름 정 요청.
    */
-  private void sendPutMemberInfoUpdate() {
-
-    try {
-      HttpSend httpSend = new HttpSend(act);
-      httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
-        @Override
-        public void resultResponse(Response result) {
-
-          resultPutMemberInfoUpdate(result);
-        }
-      });
-
-      //공통 변수 입력
-      httpSend.P_member_member_id_update_field(appConfig.getLogin_Member_Id(),
-          updateField, newEmailId, oldPassword, newPassword, confirmPassword,
-          nickname, imageFileName);
-    } catch (Exception ex) {
-      ex.printStackTrace();
-    }
-  }
-
-  /**
-   * {@link #sendPutMemberInfoUpdate()} 요청 결과.
-   *
-   * @param response 결과 data
-   */
-  private void resultPutMemberInfoUpdate(Response response) {
-
-    try {
-      if (response.getStatusCode() == 200) {
-
-        util.setShowToast(act, util.getString(act, R.string.MSG843), Toast.LENGTH_SHORT);
-        intent = new Intent();
-        act.setResult(RESULT_OK, intent);
-        finish();
-      } else {
-        JSONObject joResult = new JSONObject(response.getContent());
-        Dlog.v(joResult.toString());
-        String errorCode = util.null2string(joResult.get(Constants.HTTP_err_code));
-        String errorMsg = util.null2string(joResult.get(Constants.HTTP_err_msg));
-
-        if (errorCode.equals("401")) {
-          customDialog.msgAlert(act, Constants.MSG998, errorMsg);
-        } else if (errorCode.equals("401-106")) {
-          customDialog.msgAlert(act, Constants.MSG997, errorMsg);
+  @SuppressWarnings("unchecked")
+  private void requestMemberInfoUpdate() {
+
+    JsonObject body = new JsonObject();
+    body.addProperty(Constants.HTTP_nickname, nickname);
+    Call<Void> memberInfoUpdateCall = RetrofitService.getUserService().memberInfoUpdate(MEMBER_UPDATE_FIELD_NAME, body);
+    memberInfoUpdateCall.enqueue(new RetrofitCallback(act, new Callback<Void>() {
+      @Override
+      public void onResponse(Call<Void> call, retrofit2.Response<Void> response) {
+        if (null != response) {
+          if (response.isSuccessful()) {
+            util.setShowToast(act, util.getString(act, R.string.MSG843), Toast.LENGTH_SHORT);
+            intent = new Intent();
+            act.setResult(RESULT_OK, intent);
+            finish();
+          } else {
+            BaseResponse errorResponse = null;
+            try {
+              errorResponse = (BaseResponse) RetrofitClient.getClient().responseBodyConverter(BaseResponse.class,
+                      BaseResponse.class.getAnnotations()).convert(response.errorBody());
+
+              if ("401".equals(errorResponse.getErrCode())) {
+                customDialog.msgAlert(act, Constants.MSG998, errorResponse.getErrMsg());
+              } else if ("401-106".equals(errorResponse.getErrCode())) {
+                customDialog.msgAlert(act, Constants.MSG997, errorResponse.getErrMsg());
+              } else {
+                customDialog.msgAlert(act, Constants.MSG000, errorResponse.getErrMsg());
+              }
+            } catch (IOException e) {
+              e.printStackTrace();
+              customDialog.msgAlert(act, Constants.MSG807);
+            }
+
+          }
         } else {
-          customDialog.msgAlert(act, Constants.MSG000, errorMsg);
+          customDialog.msgAlert(act, Constants.MSG807);
         }
+        util.getView(act, R.id.llBtn1).setEnabled(true);
       }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      customDialog.msgAlert(act, Constants.MSG807);
-    }
-    try {
-      util.getView(act, R.id.llBtn1).setEnabled(true);
-    } catch (Exception ex) {
-      ex.printStackTrace();
-    }
+
+      @Override
+      public void onFailure(Call<Void> call, Throwable t) {
+        t.printStackTrace();
+        customDialog.msgAlert(act, Constants.MSG807);
+        util.getView(act, R.id.llBtn1).setEnabled(true);
+      }
+    }));
   }
 
   @Override

+ 164 - 175
kneet_v3/src/main/java/com/ntels/kneet/v3/view/mainmore/SettingPasswordChange.java

@@ -4,6 +4,19 @@
 
 package com.ntels.kneet.v3.view.mainmore;
 
+import com.google.gson.JsonObject;
+
+import com.ntels.kneet.v3.R;
+import com.ntels.kneet.v3.common.AppConfig;
+import com.ntels.kneet.v3.common.Constants;
+import com.ntels.kneet.v3.common.http.RetrofitCallback;
+import com.ntels.kneet.v3.common.http.RetrofitClient;
+import com.ntels.kneet.v3.common.http.RetrofitService;
+import com.ntels.kneet.v3.common.util.Util;
+import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.BaseResponse;
+import com.ntels.kneet.v3.view.dialog.CustomDialog;
+
 import android.app.Activity;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -14,18 +27,10 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Toast;
 
-import com.ntels.kneet.v3.R;
-import com.ntels.kneet.v3.common.AppConfig;
-import com.ntels.kneet.v3.common.Constants;
-import com.ntels.kneet.v3.common.c_interface.OnDataSendToReslut;
-import com.ntels.kneet.v3.common.http.HttpSend;
-import com.ntels.kneet.v3.common.http.Response;
-import com.ntels.kneet.v3.common.util.Dlog;
-import com.ntels.kneet.v3.common.util.Util;
-import com.ntels.kneet.v3.common.widget.CustomActivity;
-import com.ntels.kneet.v3.view.dialog.CustomDialog;
+import java.io.IOException;
 
-import org.json.JSONObject;
+import retrofit2.Call;
+import retrofit2.Callback;
 
 /**
  * <pre>
@@ -38,191 +43,175 @@ import org.json.JSONObject;
  * </pre>
  */
 public class SettingPasswordChange extends CustomActivity implements View.OnClickListener,
-    CustomDialog.OnMsgAlterToResult {
-
-  private static final int MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD = 1;
-
-  /*통신 관련*/
-  private int type = 0;
-
-  /*공통*/
-  private Activity act;
-  private AppConfig appConfig;
-  private Intent intent;
-  private Util util = new Util();
-  private CustomDialog customDialog = new CustomDialog();
-  private String updateField = "";
-  private String newEmailId = "";
-  private String oldPassword = "";
-  private String newPassword = "";
-  private String confirmPassword = "";
-  private String nickname = "";
-  private String imageFileName = "";
-
-  @Override
-  public void onCreate(Bundle savedInstanceState) {
-
-    super.onCreate(savedInstanceState);
-
-    act = SettingPasswordChange.this;
-    appConfig = (AppConfig) act.getApplicationContext();
-    customDialog.setOnMsgAlterToResultEvent(this);
-
-    View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_password_change, null);
-    this.setContentView(viewToLoad);
-
-    if (null != getIntent()) {
-      Intent intent = getIntent();
-      oldPassword = intent.getStringExtra(Constants.EXTRA_PASSWORD);
-    }
+        CustomDialog.OnMsgAlterToResult {
 
-    util.getView(act, R.id.llBtn1).setOnClickListener(this);
-    util.getView(act, R.id.llBtn2).setOnClickListener(this);
+    private static final int MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD = 1;
+    private static final String MEMBER_UPDATE_FIELD_PASSWORD = "password";
 
-    updateField = "password";
-  }
+    /*통신 관련*/
+    private int type = 0;
 
-  @Override
-  public void onConfigurationChanged(Configuration newConfig) {
+    /*공통*/
+    private Activity act;
+    private Intent intent;
+    private Util util = new Util();
+    private CustomDialog customDialog = new CustomDialog();
+    private String oldPassword = "";
+    private String newPassword = "";
+    private String confirmPassword = "";
 
-    super.onConfigurationChanged(newConfig);
-  }
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
 
-  @Override
-  public void onClick(View view) {
+        super.onCreate(savedInstanceState);
 
-    switch (view.getId()) {
-      case R.id.llBtn1:
-        newPassword = util.getEditTextVal(act, R.id.edtPass);
-        if (newPassword.equals("")) {
-          util.setShowToast(act, util.getString(act, R.string.MSG847), Toast.LENGTH_SHORT);
-          return;
-        }
-        confirmPassword = util.getEditTextVal(act, R.id.edtPassConfirm);
-        if (confirmPassword.equals("")) {
-          util.setShowToast(act, util.getString(act, R.string.MSG848), Toast.LENGTH_SHORT);
-          return;
+        act = SettingPasswordChange.this;
+        customDialog.setOnMsgAlterToResultEvent(this);
+
+        View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_password_change, null);
+        this.setContentView(viewToLoad);
+
+        if (null != getIntent()) {
+            Intent intent = getIntent();
+            oldPassword = intent.getStringExtra(Constants.EXTRA_PASSWORD);
         }
-        view.setEnabled(false);
-        comHandler.sendMessageDelayed(comHandler.obtainMessage(
-            MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD), 10);
-        break;
-      case R.id.llBtn2:
-        onBackPressed();
-        break;
-      default:
-        break;
+
+        util.getView(act, R.id.llBtn1).setOnClickListener(this);
+        util.getView(act, R.id.llBtn2).setOnClickListener(this);
     }
-  }
 
-  Handler comHandler = new Handler(new IncomingHandlerCallBack());
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
 
-  class IncomingHandlerCallBack implements Handler.Callback {
+        super.onConfigurationChanged(newConfig);
+    }
 
     @Override
-    public boolean handleMessage(Message msg) {
-
-      type = msg.what;
-      switch (msg.what) {
-        case MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD:
-          sendPutMemberInfoUpdate();
-          break;
-        default:
-          break;
-      }
-      return true;
+    public void onClick(View view) {
+
+        switch (view.getId()) {
+            case R.id.llBtn1:
+                newPassword = util.getEditTextVal(act, R.id.edtPass);
+                if (newPassword.equals("")) {
+                    util.setShowToast(act, util.getString(act, R.string.MSG847), Toast.LENGTH_SHORT);
+                    return;
+                }
+                confirmPassword = util.getEditTextVal(act, R.id.edtPassConfirm);
+                if (confirmPassword.equals("")) {
+                    util.setShowToast(act, util.getString(act, R.string.MSG848), Toast.LENGTH_SHORT);
+                    return;
+                }
+                view.setEnabled(false);
+                comHandler.sendMessageDelayed(comHandler.obtainMessage(
+                        MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD), 10);
+                break;
+            case R.id.llBtn2:
+                onBackPressed();
+                break;
+            default:
+                break;
+        }
     }
-  }
 
-  /**
-   * 회원 정보 수정(가입된 이메일, 비밀번호, 이름 정보에 대해 변경 처리한다) 요청.
-   */
-  private void sendPutMemberInfoUpdate() {
+    Handler comHandler = new Handler(new IncomingHandlerCallBack());
 
-    try {
-      HttpSend httpSend = new HttpSend(act);
-      httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
-        @Override
-        public void resultResponse(Response result) {
+    class IncomingHandlerCallBack implements Handler.Callback {
 
-          resultPutMemberInfoUpdate(result);
-          dialog_dismiss();
+        @Override
+        public boolean handleMessage(Message msg) {
+
+            type = msg.what;
+            switch (msg.what) {
+                case MSG_COM_P_MEMBER_MEMBER_ID_UPDATE_FIELD:
+                    requestMemberInfoUpdate();
+                    break;
+                default:
+                    break;
+            }
+            return true;
         }
-      });
-
-      //공통 변수 입력
-      httpSend.P_member_member_id_update_field(appConfig.getLogin_Member_Id(),
-          updateField, newEmailId, oldPassword, newPassword, confirmPassword,
-          nickname, imageFileName);
-    } catch (Exception ex) {
-      ex.printStackTrace();
     }
-  }
-
-  /**
-   * {@link #sendPutMemberInfoUpdate()} 요청 결과.
-   *
-   * @param response 결과 data
-   */
-  private void resultPutMemberInfoUpdate(Response response) {
-
-    try {
-      if (response.getStatusCode() == 200) {
-        util.setShowToast(act, util.getString(act, R.string.MSG849), Toast.LENGTH_SHORT);
+
+    /**
+     * 회원 비밀번호 수정 요청.
+     */
+    @SuppressWarnings("unchecked")
+    private void requestMemberInfoUpdate() {
+
+        JsonObject body = new JsonObject();
+        body.addProperty(Constants.HTTP_old_password, oldPassword);
+        body.addProperty(Constants.HTTP_new_password, newPassword);
+        body.addProperty(Constants.HTTP_confirm_password, confirmPassword);
+        Call<Void> memberInfoUpdateCall = RetrofitService.getUserService().memberInfoUpdate(MEMBER_UPDATE_FIELD_PASSWORD, body);
+        memberInfoUpdateCall.enqueue(new RetrofitCallback(act, new Callback<Void>() {
+            @Override
+            public void onResponse(Call<Void> call, retrofit2.Response<Void> response) {
+                if (null != response) {
+                    if (response.isSuccessful()) {
+                        util.setShowToast(act, util.getString(act, R.string.MSG849), Toast.LENGTH_SHORT);
+                        intent = new Intent();
+                        act.setResult(RESULT_OK, intent);
+                        finish();
+                    } else {
+                        BaseResponse errorResponse = null;
+                        try {
+                            errorResponse = (BaseResponse) RetrofitClient.getClient().responseBodyConverter(BaseResponse.class,
+                                    BaseResponse.class.getAnnotations()).convert(response.errorBody());
+
+                            if ("401".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG998, errorResponse.getErrMsg());
+                            } else if ("401-106".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG997, errorResponse.getErrMsg());
+                            } else {
+                                customDialog.msgAlert(act, Constants.MSG000, errorResponse.getErrMsg());
+                            }
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                            customDialog.msgAlert(act, Constants.MSG807);
+                        }
+
+                    }
+                } else {
+                    customDialog.msgAlert(act, Constants.MSG807);
+                }
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+
+            @Override
+            public void onFailure(Call<Void> call, Throwable t) {
+                t.printStackTrace();
+                customDialog.msgAlert(act, Constants.MSG807);
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+        }));
+    }
+
+    @Override
+    public void onBackPressed() {
+
         intent = new Intent();
-        act.setResult(RESULT_OK, intent);
+        act.setResult(RESULT_CANCELED, intent);
         finish();
-      } else {
-        JSONObject joResult = new JSONObject(response.getContent());
-        Dlog.v(joResult.toString());
-        String errorCode = util.null2string(joResult.get(Constants.HTTP_err_code));
-        String errorMsg = util.null2string(joResult.get(Constants.HTTP_err_msg));
-
-        if (errorCode.equals("401")) {
-          customDialog.msgAlert(act, Constants.MSG998, errorMsg);
-        } else if (errorCode.equals("401-106")) {
-          customDialog.msgAlert(act, Constants.MSG997, errorMsg);
-        } else {
-          customDialog.msgAlert(act, Constants.MSG000, errorMsg);
-        }
-      }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      customDialog.msgAlert(act, Constants.MSG807);
-    }
-    try {
-      util.getView(act, R.id.llBtn1).setEnabled(true);
-    } catch (Exception ex) {
-      ex.printStackTrace();
     }
-  }
-
-  @Override
-  public void onBackPressed() {
-
-    intent = new Intent();
-    act.setResult(RESULT_CANCELED, intent);
-    finish();
-  }
-
-  @Override
-  public void resultCustomDialogResponse(int msgId, int btnResult) {
-
-    switch (msgId) {
-
-      case Constants.MSG998:
-        util.callApp_Start(act, "LOGOUT");
-        break;
-      case Constants.MSG997:
-        util.callApp_Start(act, "HOME_RELOAD");
-        break;
-      case Constants.MSG807:
-        if (btnResult == 1) {
-          comHandler.sendMessageDelayed(comHandler.obtainMessage(type), 10);
+
+    @Override
+    public void resultCustomDialogResponse(int msgId, int btnResult) {
+
+        switch (msgId) {
+
+            case Constants.MSG998:
+                util.callApp_Start(act, "LOGOUT");
+                break;
+            case Constants.MSG997:
+                util.callApp_Start(act, "HOME_RELOAD");
+                break;
+            case Constants.MSG807:
+                if (btnResult == 1) {
+                    comHandler.sendMessageDelayed(comHandler.obtainMessage(type), 10);
+                }
+                break;
+            default:
+                break;
         }
-        break;
-      default:
-        break;
     }
-  }
 }

+ 244 - 191
kneet_v3/src/main/java/com/ntels/kneet/v3/view/mainmore/SettingPasswordCheck.java

@@ -4,6 +4,17 @@
 
 package com.ntels.kneet.v3.view.mainmore;
 
+import com.ntels.kneet.v3.R;
+import com.ntels.kneet.v3.common.AppConfig;
+import com.ntels.kneet.v3.common.Constants;
+import com.ntels.kneet.v3.common.http.RetrofitCallback;
+import com.ntels.kneet.v3.common.http.RetrofitClient;
+import com.ntels.kneet.v3.common.http.RetrofitService;
+import com.ntels.kneet.v3.common.util.Util;
+import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.BaseResponse;
+import com.ntels.kneet.v3.view.dialog.CustomDialog;
+
 import android.app.Activity;
 import android.content.Intent;
 import android.content.res.Configuration;
@@ -14,18 +25,10 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Toast;
 
-import com.ntels.kneet.v3.R;
-import com.ntels.kneet.v3.common.AppConfig;
-import com.ntels.kneet.v3.common.Constants;
-import com.ntels.kneet.v3.common.c_interface.OnDataSendToReslut;
-import com.ntels.kneet.v3.common.http.HttpSend;
-import com.ntels.kneet.v3.common.http.Response;
-import com.ntels.kneet.v3.common.util.Dlog;
-import com.ntels.kneet.v3.common.util.Util;
-import com.ntels.kneet.v3.common.widget.CustomActivity;
-import com.ntels.kneet.v3.view.dialog.CustomDialog;
+import java.io.IOException;
 
-import org.json.JSONObject;
+import retrofit2.Call;
+import retrofit2.Callback;
 
 /**
  * <pre>
@@ -38,213 +41,263 @@ import org.json.JSONObject;
  * </pre>
  */
 public class SettingPasswordCheck extends CustomActivity implements View.OnClickListener,
-    CustomDialog.OnMsgAlterToResult {
+        CustomDialog.OnMsgAlterToResult {
 
-  private static final int MSG_COM_G_MEMBER_MEMBER_ID = 1;
+    private static final int MSG_COM_G_MEMBER_MEMBER_ID = 1;
 
-  /*통신 관련*/
-  private int tag = 0;
+    /*통신 관련*/
+    private int tag = 0;
 
-  /*공통*/
-  private Activity act;
-  private AppConfig appConfig;
-  private Intent intent;
-  private Util util = new Util();
-  private CustomDialog customDialog = new CustomDialog();
-  private String callType = "";
-  private String oldPassword = "";
+    /*공통*/
+    private Activity act;
+    private AppConfig appConfig;
+    private Intent intent;
+    private Util util = new Util();
+    private CustomDialog customDialog = new CustomDialog();
+    private String callType = "";
+    private String oldPassword = "";
 
-  @Override
-  public void onCreate(Bundle savedInstanceState) {
-
-    super.onCreate(savedInstanceState);
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
 
-    act = SettingPasswordCheck.this;
-    appConfig = (AppConfig) act.getApplicationContext();
-    customDialog.setOnMsgAlterToResultEvent(this);
+        super.onCreate(savedInstanceState);
 
-    View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_password_chk, null);
-    this.setContentView(viewToLoad);
+        act = SettingPasswordCheck.this;
+        appConfig = (AppConfig) act.getApplicationContext();
+        customDialog.setOnMsgAlterToResultEvent(this);
 
-    if (null != getIntent()) {
-      Intent intent = getIntent();
-      callType = intent.getStringExtra(Constants.EXTRA_CALL_TYPE);
-    }
+        View viewToLoad = LayoutInflater.from(act).inflate(R.layout.setting_password_chk, null);
+        this.setContentView(viewToLoad);
 
-    util.getView(act, R.id.llBtn1).setOnClickListener(this);
-    util.getView(act, R.id.llBtn2).setOnClickListener(this);
+        if (null != getIntent()) {
+            Intent intent = getIntent();
+            callType = intent.getStringExtra(Constants.EXTRA_CALL_TYPE);
+        }
 
-    util.getEditText(act, R.id.edtPassword).setText("");
-  }
+        util.getView(act, R.id.llBtn1).setOnClickListener(this);
+        util.getView(act, R.id.llBtn2).setOnClickListener(this);
 
-  @Override
-  public void onConfigurationChanged(Configuration newConfig) {
+        util.getEditText(act, R.id.edtPassword).setText("");
+    }
 
-    super.onConfigurationChanged(newConfig);
-  }
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
 
-  @Override
-  public void onClick(View view) {
+        super.onConfigurationChanged(newConfig);
+    }
 
-    switch (view.getId()) {
-      case R.id.llBtn1:
-        oldPassword = util.getEditTextVal(act, R.id.edtPassword);
-        if (oldPassword.equals("")) {
-          util.setShowToast(act, util.getString(act, R.string.MSG847), Toast.LENGTH_SHORT);
-          return;
+    @Override
+    public void onClick(View view) {
+
+        switch (view.getId()) {
+            case R.id.llBtn1:
+                oldPassword = util.getEditTextVal(act, R.id.edtPassword);
+                if ("".equals(oldPassword)) {
+                    util.setShowToast(act, util.getString(act, R.string.MSG847), Toast.LENGTH_SHORT);
+                    return;
+                }
+
+                view.setEnabled(false);
+                comHandler.sendMessageDelayed(comHandler.obtainMessage(MSG_COM_G_MEMBER_MEMBER_ID), 10);
+                break;
+            case R.id.llBtn2:
+                onBackPressed();
+                break;
+            default:
+                break;
         }
-
-        view.setEnabled(false);
-        comHandler.sendMessageDelayed(comHandler.obtainMessage(MSG_COM_G_MEMBER_MEMBER_ID), 10);
-        break;
-      case R.id.llBtn2:
-        onBackPressed();
-        break;
-      default:
-        break;
     }
-  }
 
-  Handler comHandler = new Handler(new IncomingHandlerCallBack());
+    Handler comHandler = new Handler(new IncomingHandlerCallBack());
 
-  class IncomingHandlerCallBack implements Handler.Callback {
+    class IncomingHandlerCallBack implements Handler.Callback {
 
-    @Override
-    public boolean handleMessage(Message msg) {
-
-      tag = msg.what;
-      switch (msg.what) {
-        case MSG_COM_G_MEMBER_MEMBER_ID:
-          sendGetMemberPassword();
-          break;
-        default:
-          break;
-      }
-      return true;
+        @Override
+        public boolean handleMessage(Message msg) {
+
+            tag = msg.what;
+            switch (msg.what) {
+                case MSG_COM_G_MEMBER_MEMBER_ID:
+                    requestCheckPassword();
+                    break;
+                default:
+                    break;
+            }
+            return true;
+        }
     }
-  }
 
-  /**
-   * (기존)비밀번호 확인(비밀번호 정보를 확인한다) 요청.
-   */
-  private void sendGetMemberPassword() {
-
-    try {
-      HttpSend httpSend = new HttpSend(act);
-      httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
-        @Override
-        public void resultResponse(Response result) {
+    /**
+     * (기존)비밀번호 확인(비밀번호 정보를 확인한다) 요청.
+     */
+    @SuppressWarnings("unchecked")
+    private void requestCheckPassword() {
+        Call<Void> checkPasswordCall = RetrofitService.getUserService().checkPassword(oldPassword);
+        checkPasswordCall.enqueue(new RetrofitCallback(act, new Callback<Void>() {
+            @Override
+            public void onResponse(Call<Void> call, retrofit2.Response<Void> response) {
+                if (null != response) {
+                    if (response.isSuccessful()) {
+                        if ("1".equals(callType)) {
+                            intent = new Intent(act, SettingPasswordChange.class);
+                            intent.putExtra(Constants.EXTRA_PASSWORD, oldPassword);
+                            util.callActivityForResultNoAnim(act, intent, Constants.ACT_SETTING_PASSWORD_CHANGE);
+                        }
+                    } else {
+                        BaseResponse errorResponse;
+                        try {
+                            errorResponse = (BaseResponse) RetrofitClient.getClient().responseBodyConverter(BaseResponse.class,
+                                    BaseResponse.class.getAnnotations()).convert(response.errorBody());
+
+                            if ("401".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG998, errorResponse.getErrMsg());
+                            } else if ("401-106".equals(errorResponse.getErrCode())) {
+                                customDialog.msgAlert(act, Constants.MSG997, errorResponse.getErrMsg());
+                            } else {
+                                customDialog.msgAlert(act, Constants.MSG000, errorResponse.getErrMsg());
+                            }
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                            customDialog.msgAlert(act, Constants.MSG807);
+                        }
+
+                    }
+                } else {
+                    customDialog.msgAlert(act, Constants.MSG807);
+                }
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+
+            @Override
+            public void onFailure(Call<Void> call, Throwable t) {
+                t.printStackTrace();
+                customDialog.msgAlert(act, Constants.MSG807);
+                util.getView(act, R.id.llBtn1).setEnabled(true);
+            }
+        }));
+    }
 
-          resultGetMemberPassword(result);
+    /**
+     * (기존)비밀번호 확인(비밀번호 정보를 확인한다) 요청.
+     */
+    /*private void sendGetMemberPassword() {
+
+        try {
+            HttpSend httpSend = new HttpSend(act);
+            httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
+                @Override
+                public void resultResponse(Response result) {
+
+                    resultGetMemberPassword(result);
+                }
+            });
+
+            //공통 변수 입력
+            httpSend.G_member_member_id(appConfig.getLogin_Member_Id(), oldPassword);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }*/
+
+    /**
+     * {@link #sendGetMemberPassword()} 요청 결과.
+     *
+     * @param response 결과 data
+     */
+    /*private void resultGetMemberPassword(Response response) {
+
+        try {
+            if (response.getStatusCode() == 200) {
+                if (callType.equals("1")) {
+                    intent = new Intent(act, SettingPasswordChange.class);
+                    intent.putExtra(Constants.EXTRA_PASSWORD, oldPassword);
+                    util.callActivityForResultNoAnim(act, intent, Constants.ACT_SETTING_PASSWORD_CHANGE);
+                }
+            } else {
+                JSONObject joResult = new JSONObject(response.getContent());
+                Dlog.v(joResult.toString());
+                String errorCode = util.null2string(joResult.get(Constants.HTTP_err_code));
+                String errorMsg = util.null2string(joResult.get(Constants.HTTP_err_msg));
+
+                if (errorCode.equals("401")) {
+                    customDialog.msgAlert(act, Constants.MSG998, errorMsg);
+                } else if (errorCode.equals("401-106")) {
+                    customDialog.msgAlert(act, Constants.MSG997, errorMsg);
+                } else {
+                    customDialog.msgAlert(act, Constants.MSG000, errorMsg);
+                }
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            customDialog.msgAlert(act, Constants.MSG807);
+        }
+        try {
+            util.getView(act, R.id.llBtn1).setEnabled(true);
+        } catch (Exception ex) {
+            ex.printStackTrace();
         }
-      });
+    }*/
 
-      //공통 변수 입력
-      httpSend.G_member_member_id(appConfig.getLogin_Member_Id(), oldPassword);
-    } catch (Exception ex) {
-      ex.printStackTrace();
+    @Override
+    public void onBackPressed() {
+
+        intent = new Intent();
+        act.setResult(RESULT_CANCELED, intent);
+        finish();
+        return;
     }
-  }
-
-  /**
-   * {@link #sendGetMemberPassword()} 요청 결과.
-   *
-   * @param response 결과 data
-   */
-  private void resultGetMemberPassword(Response response) {
-
-    try {
-      if (response.getStatusCode() == 200) {
-        if (callType.equals("1")) {
-          intent = new Intent(act, SettingPasswordChange.class);
-          intent.putExtra(Constants.EXTRA_PASSWORD, oldPassword);
-          util.callActivityForResultNoAnim(act, intent, Constants.ACT_SETTING_PASSWORD_CHANGE);
-        }
-      } else {
-        JSONObject joResult = new JSONObject(response.getContent());
-        Dlog.v(joResult.toString());
-        String errorCode = util.null2string(joResult.get(Constants.HTTP_err_code));
-        String errorMsg = util.null2string(joResult.get(Constants.HTTP_err_msg));
-
-        if (errorCode.equals("401")) {
-          customDialog.msgAlert(act, Constants.MSG998, errorMsg);
-        } else if (errorCode.equals("401-106")) {
-          customDialog.msgAlert(act, Constants.MSG997, errorMsg);
+
+    @Override
+    public void onActivityResult(int requestCode, int resultCode, Intent data) {
+
+        super.onActivityResult(requestCode, resultCode, data);
+        if (resultCode == RESULT_OK) {
+            switch (requestCode) {
+                case Constants.ACT_SETTING_PASSWORD_CHANGE:
+                    intent = new Intent();
+                    act.setResult(RESULT_OK, intent);
+                    finish();
+                    break;
+                case Constants.ACT_SETTING_HOME_DEL:
+                    intent = new Intent();
+                    act.setResult(RESULT_OK, intent);
+                    finish();
+                    break;
+                default:
+                    break;
+            }
         } else {
-          customDialog.msgAlert(act, Constants.MSG000, errorMsg);
+            switch (requestCode) {
+                case Constants.ACT_SETTING_ACCOUNT_DEL_CONFIRM:
+                case Constants.ACT_SETTING_PASSWORD_CHANGE:
+                    intent = new Intent();
+                    act.setResult(RESULT_OK, intent);
+                    finish();
+                    break;
+                default:
+                    break;
+            }
         }
-      }
-    } catch (Exception ex) {
-      ex.printStackTrace();
-      customDialog.msgAlert(act, Constants.MSG807);
     }
-    try {
-      util.getView(act, R.id.llBtn1).setEnabled(true);
-    } catch (Exception ex) {
-      ex.printStackTrace();
-    }
-  }
-
-  @Override
-  public void onBackPressed() {
-
-    intent = new Intent();
-    act.setResult(RESULT_CANCELED, intent);
-    finish();
-    return;
-  }
-
-  @Override
-  public void onActivityResult(int requestCode, int resultCode, Intent data) {
-
-    super.onActivityResult(requestCode, resultCode, data);
-    if (resultCode == RESULT_OK) {
-      switch (requestCode) {
-        case Constants.ACT_SETTING_PASSWORD_CHANGE:
-          intent = new Intent();
-          act.setResult(RESULT_OK, intent);
-          finish();
-          break;
-        case Constants.ACT_SETTING_HOME_DEL:
-          intent = new Intent();
-          act.setResult(RESULT_OK, intent);
-          finish();
-          break;
-        default:
-          break;
-      }
-    } else {
-      switch (requestCode) {
-        case Constants.ACT_SETTING_ACCOUNT_DEL_CONFIRM:
-        case Constants.ACT_SETTING_PASSWORD_CHANGE:
-          intent = new Intent();
-          act.setResult(RESULT_OK, intent);
-          finish();
-          break;
-        default:
-          break;
-      }
-    }
-  }
-
-  @Override
-  public void resultCustomDialogResponse(int msgId, int btnResult) {
-
-    switch (msgId) {
-
-      case Constants.MSG998:
-        util.callApp_Start(act, "LOGOUT");
-        break;
-      case Constants.MSG997:
-        util.callApp_Start(act, "HOME_RELOAD");
-        break;
-      case Constants.MSG807:
-        if (btnResult == 1) {
-          comHandler.sendMessageDelayed(comHandler.obtainMessage(tag), 10);
+
+    @Override
+    public void resultCustomDialogResponse(int msgId, int btnResult) {
+
+        switch (msgId) {
+
+            case Constants.MSG998:
+                util.callApp_Start(act, "LOGOUT");
+                break;
+            case Constants.MSG997:
+                util.callApp_Start(act, "HOME_RELOAD");
+                break;
+            case Constants.MSG807:
+                if (btnResult == 1) {
+                    comHandler.sendMessageDelayed(comHandler.obtainMessage(tag), 10);
+                }
+                break;
+            default:
+                break;
         }
-        break;
-      default:
-        break;
     }
-  }
 }

+ 9 - 9
kneet_v3/src/main/java/com/ntels/kneet/v3/view/things/FragmentThings.java

@@ -354,7 +354,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
                 ArrayList<HashMap<String, Object>> menus = new ArrayList<HashMap<String, Object>>();
                 menus.add(util.getPopMenu(6));
 
-                if (appConfig.getSelect_Homegrp_Grade_Code().equals("MAS")) {
+                if ("MAS".equals(appConfig.getSelect_Homegrp_Grade_Code())) {
                     menus.add(util.getPopMenu(9));
                     menus.add(util.getPopMenu(3));
                     menus.add(util.getPopMenu(20));
@@ -390,7 +390,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
      */
     public void setHomeHubStateTitle() {
 
-        if (appConfig.getSelect_Homegrp_Id().equals("")) {
+        if ("".equals(appConfig.getSelect_Homegrp_Id())) {
             //홈그룹 없을경우
             util.getView(toolbar, R.id.llToolbar).setVisibility(View.VISIBLE);
             util.getView(toolbar, R.id.llToolbarHomeHub).setVisibility(View.GONE);
@@ -401,7 +401,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
             }
         } else {
             //홈그룹 있을경우
-            if (appConfig.getSelect_Homegrp_Homehub_Device_Id().equals("")) {
+            if ("".equals(appConfig.getSelect_Homegrp_Homehub_Device_Id())) {
                 //홈그룹은 있고 홈허브가 없는경우
                 util.getView(toolbar, R.id.llToolbar).setVisibility(View.GONE);
                 util.getView(toolbar, R.id.llToolbarHomeHub).setVisibility(View.VISIBLE);
@@ -413,7 +413,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
                     dialogListBuilder.create().dismiss();
                 }
             } else {
-                if (appConfig.getSelect_Homegrp_Homehub_Online_State().equals("OFF")) {
+                if ("OFF".equals(appConfig.getSelect_Homegrp_Homehub_Online_State())) {
                     //홈그룹은 있고 홈허브가 오프라인인경우
                     util.getView(toolbar, R.id.llToolbar).setVisibility(View.GONE);
                     util.getView(toolbar, R.id.llToolbarHomeHub).setVisibility(View.VISIBLE);
@@ -449,7 +449,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
         util.getView(act, R.id.llNodata_Master_Smartcity).setVisibility(View.GONE);
         util.getView(act, R.id.llNodata_Guest_Smartcity).setVisibility(View.GONE);
 
-        if (appConfig.getSelect_Homegrp_Id().equals("")) {
+        if ("".equals(appConfig.getSelect_Homegrp_Id())) {
             //홈그룹 없을경우
             util.getView(act, R.id.llNoHub_Master).setVisibility(View.VISIBLE);
             dataAdapter.setListCheck(false);
@@ -460,9 +460,9 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
 
             LogUtil.e(TAG, "Homegrp id - " + appConfig.getSelect_Homegrp_Id());
 
-            if (appConfig.getSelect_Homegrp_Homehub_Device_Id().equals("")) {
+            if ("".equals(appConfig.getSelect_Homegrp_Homehub_Device_Id())) {
                 //홈그룹은 있고 홈허브가 없는경우
-                if (appConfig.getSelect_Homegrp_Grade_Code().equals("MAS")) {
+                if ("MAS".equals(appConfig.getSelect_Homegrp_Grade_Code())) {
                     util.getView(act, R.id.llNoHub_Master).setVisibility(View.VISIBLE);
                     dataAdapter.setListCheck(false);
                     dataAdapter.notifyDataSetChanged();
@@ -479,7 +479,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
                 } else {
                     if (!loading) {
                         if (!swipeRefreshLayout.isRefreshing()) {
-                            if (appConfig.getSelect_Homegrp_Grade_Code().equals("MAS")) {
+                            if ("MAS".equals(appConfig.getSelect_Homegrp_Grade_Code())) {
                                 util.getView(act, R.id.llNodata_Master).setVisibility(View.VISIBLE);
                                 util.getTextView(act, R.id.tvNodata_Master_Title)
                                         .setText(R.string.layout_nodata_desc_04);
@@ -492,7 +492,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener,
                     }
                     dataAdapter.setListCheck(false);
                 }
-                if (appConfig.getSelect_Homegrp_Grade_Code().equals("MAS")) {
+                if ("MAS".equals(appConfig.getSelect_Homegrp_Grade_Code())) {
                     dataAdapter.setFooterVisible(true);
                 } else {
                     dataAdapter.setFooterVisible(false);

+ 3 - 5
kneet_v3/src/main/java/com/ntels/kneet/v3/view/things/ThingsDetail.java

@@ -66,9 +66,7 @@ import retrofit2.Callback;
  * 6. Comment   :   Initialize
  * </pre>
  */
-public class ThingsDetail extends CustomActionBarActivity implements View.OnClickListener,
-        CustomDialog.OnMsgAlterToResult,
-        ListInterface {
+public class ThingsDetail extends CustomActionBarActivity implements View.OnClickListener, CustomDialog.OnMsgAlterToResult, ListInterface {
 
     private static final String TAG = ThingsDetail.class.getSimpleName();
 
@@ -668,8 +666,8 @@ public class ThingsDetail extends CustomActionBarActivity implements View.OnClic
                         case 5:
                             break;
                         case 6:
-                            comHandler.sendMessageDelayed(comHandler.obtainMessage(
-                                    MSG_COM_G_DEVICES_DEVICE_ID), 10);
+                            comHandler.sendMessageDelayed(comHandler.obtainMessage(MSG_COM_G_DEVICES_DEVICE_ID),
+                                    Constants.HANDLER_DELAY_MILLIS);
                             break;
                         case 7:
                             break;

+ 60 - 56
kneet_v3/src/main/java/com/ntels/kneet/v3/view/things/ThingsHomehubAssignPassword.java

@@ -4,17 +4,24 @@
 
 package com.ntels.kneet.v3.view.things;
 
+import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+
 import com.ntels.kneet.v3.R;
 import com.ntels.kneet.v3.common.AppConfig;
 import com.ntels.kneet.v3.common.Constants;
 import com.ntels.kneet.v3.common.c_interface.OnDataSendToReslut;
 import com.ntels.kneet.v3.common.http.HttpSend;
 import com.ntels.kneet.v3.common.http.Response;
+import com.ntels.kneet.v3.common.http.RetrofitCallback;
+import com.ntels.kneet.v3.common.http.RetrofitClient;
+import com.ntels.kneet.v3.common.http.RetrofitService;
 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.websocket.WebSocketService;
 import com.ntels.kneet.v3.common.widget.CustomActivity;
+import com.ntels.kneet.v3.model.BaseResponse;
 import com.ntels.kneet.v3.view.dialog.CustomDialog;
 
 import org.json.JSONObject;
@@ -32,6 +39,11 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Toast;
 
+import java.io.IOException;
+
+import retrofit2.Call;
+import retrofit2.Callback;
+
 /**
  * <pre>
  * 1. ClassName :   ThingsHomehubAssignPassword
@@ -163,64 +175,56 @@ public class ThingsHomehubAssignPassword extends CustomActivity implements View.
     /**
      * 기존 디바이스의 비밀번호를 확인하여 일치하면 소유권을 변경 처리 요청한다.
      */
-    private void sendPutDevicesOwnership() {
-
-        try {
-            HttpSend httpSend;
-            httpSend = new HttpSend(mActivity);
-            httpSend.setOnDataSendToReslutEvent(new OnDataSendToReslut() {
-                @Override
-                public void resultResponse(Response result) {
-
-                    resultPutDevicesOwnership(result);
-                }
-            });
-
-            httpSend.P_devices_device_id_ownership(mDeviceId, mPass);
-        } catch (Exception ex) {
-            ex.printStackTrace();
-        }
-    }
-
-    /**
-     * 소유권 변경 처리 요청 결과.
-     *
-     * @param result 결과 data
-     */
-    private void resultPutDevicesOwnership(Response result) {
-
-        try {
-            if (result.getStatusCode() == Response.OK) {
-                JSONObject joResult = new JSONObject(result.getContent());
-                Dlog.v(joResult.toString());
-
-                String deviceId = mUtil.null2string(joResult.get(Constants.HTTP_device_id));
-
-                mAppConfig.setSelect_Homegrp_Homehub_Device_Id(deviceId);
-
-                mWebSocketService.webSocketConnect();
-
-                mIntent = new Intent();
-                mActivity.setResult(RESULT_OK, mIntent);
-                finish();
-            } else {
-                JSONObject joResult = new JSONObject(result.getContent());
-                Dlog.v(joResult.toString());
-                String errorCode = mUtil.null2string(joResult.get(Constants.HTTP_err_code));
-                String errorMsg = mUtil.null2string(joResult.get(Constants.HTTP_err_msg));
-
-                if ("401".equals(errorCode)) {
-                    mCustomDialog.msgAlert(mActivity, Constants.MSG998, errorMsg);
-                } else if ("401-106".equals(errorCode)) {
-                    mCustomDialog.msgAlert(mActivity, Constants.MSG997, errorMsg);
+    @SuppressWarnings("unchecked")
+    private void requestOwnership() {
+        JsonObject body = new JsonObject();
+        body.addProperty(Constants.HTTP_owner_auth_password, mPass);
+        Call<JsonObject> ownershipCall = RetrofitService.getThingsService().ownership(mDeviceId, body);
+        ownershipCall.enqueue(new RetrofitCallback(mActivity, new Callback<JsonObject>() {
+            @Override
+            public void onResponse(Call<JsonObject> call, retrofit2.Response<JsonObject> response) {
+                if (null != response) {
+                    if (response.isSuccessful()) {
+                        JsonObject res = response.body();
+                        String deviceId = mUtil.null2string(res.get(Constants.HTTP_device_id).getAsString());
+
+                        mAppConfig.setSelect_Homegrp_Homehub_Device_Id(deviceId);
+
+                        mWebSocketService.webSocketConnect();
+
+                        mIntent = new Intent();
+                        mActivity.setResult(RESULT_OK, mIntent);
+                        finish();
+                    } else {
+                        BaseResponse errorResponse;
+                        try {
+                            errorResponse = (BaseResponse) RetrofitClient.getClient().responseBodyConverter(BaseResponse.class,
+                                    BaseResponse.class.getAnnotations()).convert(response.errorBody());
+
+                            if ("401".equals(errorResponse.getErrCode())) {
+                                mCustomDialog.msgAlert(mActivity, Constants.MSG998, errorResponse.getErrMsg());
+                            } else if ("401-106".equals(errorResponse.getErrCode())) {
+                                mCustomDialog.msgAlert(mActivity, Constants.MSG997, errorResponse.getErrMsg());
+                            } else {
+                                mUtil.setShowToast(mActivity, errorResponse.getErrMsg(), Toast.LENGTH_SHORT);
+                            }
+                        } catch (IOException e) {
+                            e.printStackTrace();
+                            mCustomDialog.msgAlert(mActivity, Constants.MSG807);
+                        }
+
+                    }
                 } else {
-                    mUtil.setShowToast(mActivity, errorMsg, Toast.LENGTH_SHORT);
+                    mCustomDialog.msgAlert(mActivity, Constants.MSG807);
                 }
             }
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            mCustomDialog.msgAlert(mActivity, Constants.MSG807);
-        }
+
+            @Override
+            public void onFailure(Call<JsonObject> call, Throwable t) {
+                t.printStackTrace();
+                mCustomDialog.msgAlert(mActivity, Constants.MSG807);
+            }
+        }));
     }
 
     /**
@@ -312,7 +316,7 @@ public class ThingsHomehubAssignPassword extends CustomActivity implements View.
                     sendPostHomegrp();
                     break;
                 case MSG_COM_P_DEVICES_DEVICE_ID_OWNERSHIP:
-                    sendPutDevicesOwnership();
+                    requestOwnership();
                     break;
 
                 default: