Quellcode durchsuchen

Remove VODs/Each VOD, Stop Service's functional logic was changed and minor update for stable source code.

Trishia vor 4 Jahren
Ursprung
Commit
e760217ef4

+ 3 - 1
app/src/main/java/org/iotivity/bridge/homeserver/BridgeServer.java

@@ -172,9 +172,11 @@ public class BridgeServer {
         Log.d(TAG, "VOD Nums = ["+dev_count+"], Core Res Nums = ["+OCCoreRes.getNumDevices()+"]");
         for (int index = 1 ; index <= dev_count; index++) {
             OCVirtualDevice vod = OCBridge.getVirtualDeviceInfo(index);
+            if(vod!=null) continue;
             Log.d(TAG, "VODs Device [" + index + ", "+vod.getIndex()+", vod_id="+OCUuidUtil.bytesToString(vod.getId())+ "]");
+
             OCDeviceInfo info = OCCoreRes.getDeviceInfo(index);
-            if(vod != null && info != null) {
+            if(info != null) {
                 Log.d(TAG, "Core Device [" + index + ", "+vod.getIndex()+" piid="+OCUuidUtil.uuidToString(info.getPiid())+ "]");
                 if(info.getName() != null) {
                     Log.d(TAG, "VODs Device [" + index + ", " + vod.getIndex() + "], " + vod.getEconame() + ", " + info.getName() + " will be reset!");

+ 49 - 21
app/src/main/java/org/iotivity/bridge/homeserver/BridgeServerActivity.java

@@ -335,7 +335,11 @@ public class BridgeServerActivity extends AppCompatActivity {
                 resetBridgeDialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        if(bridgeServer!=null) bridgeServer.resetBridgeServer();
+                        if(bridgeServer!=null) {
+                            bridgeServer.resetBridgeServer();
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.resetBridgeOkMessage)
+                                    , Toast.LENGTH_LONG).show();
+                        }
                     }
                 });
 
@@ -359,10 +363,11 @@ public class BridgeServerActivity extends AppCompatActivity {
                     resetVodsDialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
-                            if(bridgeServer!=null) bridgeServer.resetVirtualOCFDevices();
-                            Toast.makeText(BridgeServerActivity.this,
-                                    getString(R.string.resetVODsOkMessage)
-                                    , Toast.LENGTH_LONG).show();
+                            if(bridgeServer!=null) {
+                                bridgeServer.resetVirtualOCFDevices();
+                                Toast.makeText(BridgeServerActivity.this, getString(R.string.resetVODsOkMessage)
+                                        , Toast.LENGTH_LONG).show();
+                            }
                         }
                     });
 
@@ -461,6 +466,8 @@ public class BridgeServerActivity extends AppCompatActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         if(bridgeServer!=null) {
                             bridgeServer.addLightVirtualOCFServer(BridgeServer.LIGHT_UUID, "Light Switch", "ocf");
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.addVOSOkMessage)
+                                    , Toast.LENGTH_LONG).show();
                         }
                     }
                 });
@@ -486,6 +493,8 @@ public class BridgeServerActivity extends AppCompatActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         if(bridgeServer!=null) {
                             bridgeServer.addVirtualOCFClient(BridgeServer.CLIENT_UUID, "Virtual OCF Client", "ocf");
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.addVOCOkMessage)
+                                    , Toast.LENGTH_LONG).show();
                         }
                     }
                 });
@@ -504,15 +513,17 @@ public class BridgeServerActivity extends AppCompatActivity {
             {
                 AlertDialog.Builder removeVodsDialogBuilder = new AlertDialog.Builder(BridgeServerActivity.this);
                 removeVodsDialogBuilder.setTitle(getString(R.string.removeVODs));
-                removeVodsDialogBuilder.setMessage(getString(R.string.removeVOSsMessage));
+                removeVodsDialogBuilder.setMessage(getString(R.string.removeVODsMessage));
 
                 removeVodsDialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        if(bridgeServer!=null) bridgeServer.deleteVirtualOCFDevices();
-                        Toast.makeText(BridgeServerActivity.this,
-                                getString(R.string.removeVODsOkMessage)
-                                , Toast.LENGTH_LONG).show();
+                        if(bridgeServer!=null) {
+                            //bridgeServer.deleteVirtualOCFDevices();
+                            bridgeServer.removeVirtualOCFDevices();
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.removeVODsOkMessage)
+                                    , Toast.LENGTH_LONG).show();
+                        }
                     }
                 });
 
@@ -570,10 +581,13 @@ public class BridgeServerActivity extends AppCompatActivity {
                             public void onClick(DialogInterface dialog, int which) {
 
                                 final String device_name = info.getName();
-                                bridgeServer.deleteVirtualOCFDevice(device.getVODIndex());
-                                Toast.makeText(BridgeServerActivity.this,
-                                        getString(R.string.removeVODOkMessage).replace("?", device_name)
-                                        , Toast.LENGTH_LONG).show();
+                                if(bridgeServer!=null) {
+                                    //bridgeServer.deleteVirtualOCFDevice(device.getVODIndex());
+                                    bridgeServer.removeVirtualOCFDevice(device.getVODIndex());
+                                    Toast.makeText(BridgeServerActivity.this,
+                                            getString(R.string.removeVODOkMessage).replace("?", device_name)
+                                            , Toast.LENGTH_LONG).show();
+                                }
                             }
                         });
 
@@ -612,6 +626,8 @@ public class BridgeServerActivity extends AppCompatActivity {
                         if(bridgeService!=null) {
                             bridgeService.bindLightControlService();
                             bridgeService.startScheduledTaskForLightControl();
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.startBridgedClientOkMessage)
+                                    , Toast.LENGTH_LONG).show();
                         }
                     }
                 });
@@ -637,14 +653,17 @@ public class BridgeServerActivity extends AppCompatActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         if(bridgeService != null ) {
                             bridgeService.stopScheduledTaskForLightControl();
-                            if(bridgeServer != null && bridgeServer.getVirtualOCFDeviceList() != null) {
-                                for (VirtualOCFDevice vod : bridgeServer.getVirtualOCFDeviceList()) {
+                            if(bridgeServer != null ) {
+                                ArrayList<VirtualOCFDevice> vods = (ArrayList<VirtualOCFDevice>)bridgeServer.getVirtualOCFDeviceList().clone();
+                                for (VirtualOCFDevice vod : vods) {
                                     if (vod.getEcoName().equalsIgnoreCase(BridgeService.LightControlServiceConnection.ECO_NAME)) {
                                         bridgeServer.removeVirtualOCFDevice(vod.getVODIndex());
                                     }
                                 }
                             }
                             bridgeService.unbindLightControlService();
+                            Toast.makeText(BridgeServerActivity.this, getString(R.string.stopBridgedClientOkMessage)
+                                    , Toast.LENGTH_LONG).show();
                         }
                     }
                 });
@@ -668,8 +687,12 @@ public class BridgeServerActivity extends AppCompatActivity {
                 stopServiceDialogBuilder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                     @Override
                     public void onClick(DialogInterface dialog, int which) {
-                        // Stop Bridge Service
-                        stopBridgeService();
+                        // stop Bridge Service
+                        if(bridgeService!=null ) {
+                            //stopBridgeService();
+                            bridgeService.stopScheduledTaskForPairwised();
+                        }
+                        unbindBridgeService();
                     }
                 });
 
@@ -695,6 +718,7 @@ public class BridgeServerActivity extends AppCompatActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         // kill Bridge Service
                         stopBridgeService();
+
                         Log.d(TAG, "System.exit() will be called");
                         System.runFinalizersOnExit(true);
                         System.exit(0);
@@ -845,9 +869,13 @@ public class BridgeServerActivity extends AppCompatActivity {
         discoverDevicesButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                deviceArrayAdapter.setNotifyOnChange(false);
-                deviceArrayAdapter.clear();
-                deviceArrayAdapter.setNotifyOnChange(true);
+
+                synchronized (arrayAdapterSync) {
+                    deviceArrayAdapter.setNotifyOnChange(false);
+                    deviceArrayAdapter.clear();
+                    deviceArrayAdapter.setNotifyOnChange(true);
+                }
+                deviceArrayAdapter.notifyDataSetChanged();
 
                 if(bridgeService!=null) {
                     bridgeService.clearPairwisedDevices();

+ 1 - 1
app/src/main/java/org/iotivity/bridge/homeserver/BridgeService.java

@@ -307,9 +307,9 @@ public class BridgeService extends IntentService {
         Log.d(TAG, "SecheduledTaskInit : bindLightControlService() called.");
 
         // Light Control Service Remote Bind
+        //lIntent.setClassName("com.icontrols.service.control", "com.iconstrols.service.control.LightControlService"); // TODO : need to modify with real info
         Intent lIntent = new Intent();
         lIntent.setClassName("org.iotivity.bridge.homeserver", "org.iotivity.bridge.homeserver.BridgeService");
-        //lIntent.setClassName("com.icontrols.service.control", "com.iconstrols.service.control.LightControlService"); // TODO : need to modify with real
         lIntent.setAction(ILightControlService.class.getName());
         bindService(lIntent, lightConn, Context.BIND_AUTO_CREATE);
         Log.d(TAG, "bind Light Control Service with Remote Connection");

+ 18 - 5
app/src/main/res/values/strings.xml

@@ -7,6 +7,8 @@
     <string name="discoveredResources">Discovered Resources</string>
     <string name="resetBridge">Reset Bridge</string>
     <string name="resetBridgeMessage">Note: This Bridge will be reset so that device id will be changed to new one.</string>
+    <string name="resetBridgeOkMessage">Bridge platform was reset successfully.</string>
+
     <!--<string name="resetBridge">Reset </string>
     <string name="resetBridgeMessage">Note: This Client including SVRs will be reset.</string>-->
     <string name="resetVODs">Reset VODs</string>
@@ -21,25 +23,36 @@
 
     <string name="addVOS">Add Virtual OCF Server</string>
     <string name="addVOSMessage">Note: Virtual OCF Server(Light Switch) will be added to operate CTT as a first VOD.</string>
+    <string name="addVOSOkMessage">Virtual OCF Server(Light Switch) was added successfully.</string>
 
     <string name="addVOC">Add Virtual OCF Client</string>
     <string name="addVOCMessage">Note: Virtual OCF Client will be added to operate CTT as a second VOD.</string>
+    <string name="addVOCOkMessage">Virtual OCF Client was added successfully.</string>
 
     <string name="removeVOD">Remove Each VOD</string>
-    <string name="removeVODMessage">Note: Selected VOD - ? will be deleted so this device will no longer be visible.</string>
-    <string name="removeVODOkMessage">Selected VOD - ? was deleted successfully.</string>
+    <string name="removeVODMessage">Note: Selected VOD - ? will be disconnected so this device will no longer be visible.</string>
+    <string name="removeVODOkMessage">Selected VOD - ? was disconnected successfully.</string>
     <string name="removeVODs">Remove VODs</string>
-    <string name="removeVOSsMessage">Note: All Virtual OCF Device will be deleted and no longer be visible.</string>
-    <string name="removeVODsOkMessage">All Virtual OCF Devices was deleted successfully.</string>
+    <string name="removeVODsMessage">Note: All Virtual OCF Device will be disconnected and no longer be visible.</string>
+    <string name="removeVODsOkMessage">All Virtual OCF Devices was disconnected successfully.</string>
+
+    <string name="deleteVOD">Delete Each VOD</string>
+    <string name="deleteVODMessage">Note: Selected VOD - ? will be deleted so this device will no longer be doable.</string>
+    <string name="deleteVODOkMessage">Selected VOD - ? was deleted successfully.</string>
+    <string name="deleteVODs">Delete VODs</string>
+    <string name="deleteVODsMessage">Note: All Virtual OCF Device will be deleted and no longer be doable.</string>
+    <string name="deleteVODsOkMessage">All Virtual OCF Devices was deleted successfully.</string>
 
     <string name="startBridgedClient">Connect Light Control</string>
     <string name="startBridgedClientMessage">Note: Bridge Client will be connected to Light Control Service and then Virtual OCF Servers will be registered.</string>
+    <string name="startBridgedClientOkMessage">Bridge Client was connected successfully.</string>
 
     <string name="stopBridgedClient">Disconnect Light Control</string>
     <string name="stopBridgedClientMessage">Note: Bridge Client will be disconnected to Light Control Service and Virtual OCF Servers will be removed. </string>
+    <string name="stopBridgedClientOkMessage">Bridge Client was disconnected successfully.</string>
 
     <string name="stopBridgeService">Stop Bridge Service</string>
-    <string name="stopBridgeMessage">Note: All Service Client Callbacks will be unbind and stop but Bridge Service may not be destroyed.</string>
+    <string name="stopBridgeMessage">Note: Scheduled Task in Bridge Service will be stop and All Activity Client will be unbind so Activity Client can not receive any notification.</string>
 
     <string name="killBridgeService">Kill Bridge Service</string>
     <string name="killBridgeMessage">Note: Bridge Service and Activity will be killed completely.</string>