Kaynağa Gözat

[최진오]
홈허브 상태 변경 device.conn 처리
CustomActivity LocalBroadCast 등록삭제 위치 변경
장치 상세 위치 변경(홈허브정보, 노드 정보)

jinochoi 8 yıl önce
ebeveyn
işleme
7861ff275c

+ 1 - 0
onecable/src/main/java/com/ntels/onecable/common/Constants.java

@@ -1053,6 +1053,7 @@ public interface Constants {
 
   String WEBSOCKET_TYPE_DEVICE_REGISTER = "device.register";
   String WEBSOCKET_TYPE_DEVICE_DELETE = "device.delete";
+  String WEBSOCKET_TYPE_DEVICE_CONN = "device.conn";
   String WEBSOCKET_TYPE_DEVICE_CONTENT = "device.content";
   String WEBSOCKET_TYPE_DEVICE_COMMAND = "device.command";
   String WEBSOCKET_TYPE_DEVICE_COMMAND_RESULT = "device.command.result";

+ 24 - 9
onecable/src/main/java/com/ntels/onecable/common/websocket/WebSocketService.java

@@ -38,6 +38,8 @@ import javax.net.ssl.SSLContext;
 import javax.net.ssl.TrustManager;
 import javax.net.ssl.X509TrustManager;
 
+import static com.ntels.onecable.common.broadcast.DefaultLocalBroadCast.INTENT_NAME_TYPE;
+
 /**
  * <pre>
  * 1. ClassName :   WebSocketService
@@ -58,9 +60,7 @@ public class WebSocketService extends Service {
     private static final int TIMEOUT = 20;
     private final IBinder binder = new WebSocketBinder();
     private WebSocketClient mWebSocket = null;
-    private Util mUtil = new Util();
-    private AppConfig mAppConfig;
-//    private ArrayList<OnWebSocketResponse> webSocketResponses = new ArrayList<OnWebSocketResponse>();
+    //    private ArrayList<OnWebSocketResponse> webSocketResponses = new ArrayList<OnWebSocketResponse>();
     Handler handler = new Handler(new Handler.Callback() {
         @Override
         public boolean handleMessage(Message msg) {
@@ -75,6 +75,8 @@ public class WebSocketService extends Service {
             return false;
         }
     });
+    private Util mUtil = new Util();
+    private AppConfig mAppConfig;
     private int iTempApiId = 0;
     private HashMap<String, Object> hmTempParam;
     private boolean bFromUser = false;
@@ -145,11 +147,11 @@ public class WebSocketService extends Service {
      */
     public void webSocketConnect() {
         Dlog.i(TAG, "webSocketConnect()!!");
-        if (mAppConfig.getIsWebSocketConn()){
+        if (mAppConfig.getIsWebSocketConn()) {
             Dlog.i(TAG, "webSocketConnect() return1!!");
             return;
         }
-        if (isWebSocketConnected()){
+        if (isWebSocketConnected()) {
             Dlog.i(TAG, "webSocketConnect() return2!!");
             return;
         }
@@ -289,10 +291,17 @@ public class WebSocketService extends Service {
     private boolean checkBasicStatus(String message) {
         try {
             JSONObject jsonObject = new JSONObject(message);
-            if (jsonObject.get(Constants.KEY_MESSAGE_TYPE).equals(Constants.WEBSOCKET_TYPE_CONN)) {
+            if (jsonObject.get(Constants.KEY_MESSAGE_TYPE).equals(Constants.WEBSOCKET_TYPE_DEVICE_CONN)) {
 //                mAppConfig.setsSelect_Homegrp_Homehub_Conn_State(mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_CONN)));
-                mAppConfig.getDevicesList(mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_ID))).put(Constants.KEY_DEVICE_CONN, mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_CONN)));
 
+                String oldDeviceConn = mUtil.null2string(mAppConfig.getDevicesList(
+                        mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_ID))).get(Constants.KEY_DEVICE_CONN));
+                String newDeviceConn =mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_CONN));
+                if (!oldDeviceConn.equals(newDeviceConn)) {
+                    mAppConfig.getDevicesList(mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_ID))).put(Constants.KEY_DEVICE_CONN,
+                            mUtil.null2string(jsonObject.get(Constants.KEY_DEVICE_CONN)));
+                    sendMessageHomehubStateChangEvent();
+                }
 
                 return true;
             } else if (jsonObject.get(Constants.KEY_MESSAGE_TYPE).equals(Constants.WEBSOCKET_TYPE_AUTH)) {
@@ -481,7 +490,7 @@ public class WebSocketService extends Service {
     private void sendMessageReceivedEvent(String message) {
         LogUtil.i(TAG, "sendMessageReceivedEvent!!");
         Intent intent = new Intent(KneetMessageLocalBroadCast.INTENT_ACTION);
-        intent.putExtra(KneetMessageLocalBroadCast.INTENT_NAME_TYPE, KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED);
+        intent.putExtra(INTENT_NAME_TYPE, KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED);
         intent.putExtra(Constants.EXTRA_RESULT_STATE, WEBSOCKET_RECEIVED_SUCESS);
         intent.putExtra(Constants.EXTRA_RESULT, message);
         LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
@@ -489,13 +498,19 @@ public class WebSocketService extends Service {
 
     private void sendMessageErrorReceivedEvent(int errorcode, String message) {
         Intent intent = new Intent(KneetMessageLocalBroadCast.INTENT_ACTION);
-        intent.putExtra(KneetMessageLocalBroadCast.INTENT_NAME_TYPE, KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED);
+        intent.putExtra(INTENT_NAME_TYPE, KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED);
         intent.putExtra(Constants.EXTRA_RESULT_STATE, WEBSOCKET_RECEIVED_ERROR);
         intent.putExtra(Constants.EXTRA_ERROR_CODE, errorcode);
         intent.putExtra(Constants.EXTRA_RESULT, message);
         LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
     }
 
+    private void sendMessageHomehubStateChangEvent() {
+        Intent intent = new Intent(KneetMessageLocalBroadCast.INTENT_ACTION);
+        intent.putExtra(INTENT_NAME_TYPE, KneetMessageLocalBroadCast.INTENT_ACTION_HOMEHUB_STATE_CHANGE);
+        LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
+    }
+
     /**
      * Websocket binder class.
      *

+ 17 - 20
onecable/src/main/java/com/ntels/onecable/common/widget/CustomActivity.java

@@ -138,21 +138,18 @@ public class CustomActivity extends AppCompatActivity {
 
             if (nameType.equals(KneetMessageLocalBroadCast.INTENT_ACTION_HOMEHUB_STATE_CHANGE)) {
                 setHomeHubStateAll();
-            } else {
-                if (nameType.equals(KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED)) {
-                    recevicedWebSocket(intentData);
-                    Dlog.v("mKneetMessageReceiver mIsMain = " + mIsMain);
-                    if (!mIsMain) {
-                        return;
-                    }
-                }
+            } else if (nameType.equals(KneetMessageLocalBroadCast.INTENT_ACTION_WEBSOCKET_MSG_RECEIVED)) {
+                recevicedWebSocket(intentData);
+            }
+
+//            Dlog.v("mKneetMessageReceiver mIsMain = " + mIsMain);
+//            if (mIsMain) {
                 Bundle bundle = intentData.getExtras();
 
                 Intent intent = getIntent();
                 intent.putExtra(Constants.EXTRA_BUNDLE_DATA, bundle);
                 onNewIntent(intent);
-            }
-
+//            }
         }
     };
 
@@ -222,19 +219,19 @@ public class CustomActivity extends AppCompatActivity {
         //                overridePendingTransition(R.anim.right_in, R.anim.left_out);
         //            }
         //        }
+        LocalBroadcastManager.getInstance(this).registerReceiver(mKneetMessageReceiver, new IntentFilter(KneetMessageLocalBroadCast
+                .INTENT_ACTION));
     }
 
     @Override
     protected void onStart() {
         super.onStart();
-        Dlog.v("onStart");
+        Dlog.v("onStart mIsMain = " + mIsMain);
         GoogleAnalytics.getInstance(this).reportActivityStart(this);
-        LocalBroadcastManager.getInstance(this).registerReceiver(mKneetMessageReceiver, new IntentFilter(KneetMessageLocalBroadCast
-                .INTENT_ACTION));
         if (mIsWebSocket) {
 //            if (mWebSocketService == null) {
-                Intent intent = new Intent(this, WebSocketService.class);
-                bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
+            Intent intent = new Intent(this, WebSocketService.class);
+            bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
 //            }
         }
     }
@@ -293,13 +290,12 @@ public class CustomActivity extends AppCompatActivity {
     protected void onStop() {
         Dlog.v("onStop mIsMain = " + mIsMain);
 //        if (!mIsMain) {
-            if (mIsWebSocket) {
+        if (mIsWebSocket) {
 //                if (mWebSocketService != null) {
-                    Dlog.v("onStop unbindService");
-                    unbindService(mServiceConnection);
+            Dlog.v("onStop unbindService");
+            unbindService(mServiceConnection);
 //                }
-            }
-            LocalBroadcastManager.getInstance(this).unregisterReceiver(mKneetMessageReceiver);
+        }
 //        }
         GoogleAnalytics.getInstance(this).reportActivityStop(this);
         super.onStop();
@@ -309,6 +305,7 @@ public class CustomActivity extends AppCompatActivity {
     public void finish() {
 
         super.finish();
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(mKneetMessageReceiver);
         dialog_dismiss();
         String sAnimFinish = mActAnim.substring(1);
         if (sAnimFinish.equals("1")) {

+ 3 - 3
onecable/src/main/java/com/ntels/onecable/view/ImageSelect.java

@@ -53,9 +53,9 @@ import static com.ntels.onecable.view.dialog.PushDialog.mAct;
  */
 public class ImageSelect extends CustomActivity implements View.OnClickListener {
 
-    private static final int REQ_CODE_PICK_GALLERY = 900001;
-    private static final int REQ_CODE_PICK_CAMERA = 900002;
-    private static final int REQ_CODE_PICK_CROP = 900003;
+    private static final int REQ_CODE_PICK_GALLERY = 9001;
+    private static final int REQ_CODE_PICK_CAMERA = 9002;
+    private static final int REQ_CODE_PICK_CROP = 9003;
 
     private static final int DEFAULT_IMAGE_SIZE = 500;
     private static final int BITMAP_COMPRESS_QUALITY = 100;

+ 1 - 1
onecable/src/main/java/com/ntels/onecable/view/things/FragmentThings.java

@@ -1037,7 +1037,7 @@ public class FragmentThings extends Fragment implements View.OnClickListener
                 }
             });
             mSwipeRefreshLayout.setVisibility(View.GONE);
-            httpSend.putDeviceSeq("node");
+            httpSend.putDeviceSeqInit("node");
         } catch (Exception ex) {
             ex.printStackTrace();
         }

+ 1 - 0
onecable/src/main/java/com/ntels/onecable/view/things/FragmentThingsAdapter.java

@@ -250,6 +250,7 @@ public class FragmentThingsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
                     itemViewHolerView.llLoading.setVisibility(GONE);
                 }
 
+                itemViewHolerView.btnRowControl.setEnabled(true);
                 itemViewHolerView.btnRowControl.setTag(position);
                 switch (cmdclsTypeIdNum) {
                     //SENSOR_BINARY

+ 1 - 2
onecable/src/main/java/com/ntels/onecable/view/things/ThingsDetail.java

@@ -1173,8 +1173,7 @@ public class ThingsDetail extends CustomActivity implements View.OnClickListener
             mUtil.setVibrator(100);
         }
 
-        comHandler.sendMessageDelayed(comHandler.obtainMessage(MSG_COM_WS_NODE_COMMAND),
-                Constants.HANDLER_DELAY_MILLIS);
+        comHandler.sendMessageDelayed(comHandler.obtainMessage(MSG_COM_WS_NODE_COMMAND), Constants.HANDLER_DELAY_MILLIS);
     }
 
     /**

+ 18 - 13
onecable/src/main/res/layout/things_detail.xml

@@ -54,21 +54,11 @@
             android:orientation="vertical"
             android:background="@drawable/color_body_01"
             android:gravity="center_vertical"
-            android:paddingBottom="15dp"
+            android:paddingBottom="30dp"
             android:paddingLeft="15dp"
             android:paddingRight="15dp"
             android:paddingTop="20dp">
 
-          <TextView
-              android:id="@+id/tvDeviceName"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:gravity="left"
-              android:includeFontPadding="false"
-              android:text="@string/layout_things_detail_02"
-              android:textColor="@color/color_text_03"
-              android:textSize="@dimen/size_font_03"
-              android:textStyle="bold"/>
 
           <TextView
               android:id="@+id/tvUpdateAlram"
@@ -112,14 +102,29 @@
             android:orientation="vertical">
         </LinearLayout>
 
+        <TextView
+                android:id="@+id/tvDeviceName"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:gravity="left"
+                android:layout_marginLeft="15dp"
+                android:includeFontPadding="false"
+                android:layout_marginTop="10dp"
+                android:paddingRight="15dp"
+                android:text="@string/layout_things_detail_02"
+                android:textColor="@color/color_text_03"
+                android:textSize="@dimen/size_font_03"
+                android:textStyle="bold"/>
+
         <TextView
                 android:id="@+id/tvNodeId"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:gravity="right"
+                android:gravity="left"
+                android:layout_marginLeft="15dp"
                 android:includeFontPadding="false"
                 android:layout_marginTop="10dp"
-                android:paddingRight="25dp"
+                android:paddingRight="15dp"
                 android:text="@string/layout_things_detail_04"
                 android:textColor="@color/color_text_03"
                 android:textSize="@dimen/size_font_03"

+ 2 - 2
onecable/src/main/res/values/strings_layout.xml

@@ -418,9 +418,9 @@
     <string name="layout_things_device_del_03_02"><![CDATA["장치를 삭제했습니다"]]></string>
 
     <string name="layout_things_detail_01"><![CDATA["장치 상세"]]></string>
-    <string name="layout_things_detail_02"><![CDATA["홈 허브 "]]></string>
+    <string name="layout_things_detail_02"><![CDATA["홈 허브 : "]]></string>
     <string name="layout_things_detail_03"><![CDATA["장치를 최신버전으로 업데이트 하세요."]]></string>
-    <string name="layout_things_detail_04"><![CDATA["장치 ID "]]></string>
+    <string name="layout_things_detail_04"><![CDATA["장치 ID : "]]></string>
 
     <string name="layout_rules_01"><![CDATA["활성"]]></string>
     <string name="layout_rules_02"><![CDATA["비활성"]]></string>