Handle group tear down only at group removed event

Handling group removal at disconnect causes issues where supplicant keeps
the group and then the next invocation fails

Bug: 7403755
Change-Id: Iea7e5ec98486607f8e2c4a55be3743e0545a9da7
diff --git a/framework/java/android/net/wifi/p2p/WifiP2pService.java b/framework/java/android/net/wifi/p2p/WifiP2pService.java
index 03a0434..039319d 100644
--- a/framework/java/android/net/wifi/p2p/WifiP2pService.java
+++ b/framework/java/android/net/wifi/p2p/WifiP2pService.java
@@ -1566,9 +1566,17 @@
                                 WifiP2pManager.ERROR);
                     }
                     break;
-                /* The supplicant misses the group removed event at times and just
-                 * sends a network disconnect event */
-                case WifiMonitor.NETWORK_DISCONNECTION_EVENT:
+                /* We do not listen to NETWORK_DISCONNECTION_EVENT for group removal
+                 * handling since supplicant actually tries to reconnect after a temporary
+                 * disconnect until group idle time out. Eventually, a group removal event
+                 * will come when group has been removed.
+                 *
+                 * When there are connectivity issues during temporary disconnect, the application
+                 * will also just remove the group.
+                 *
+                 * Treating network disconnection as group removal causes race conditions since
+                 * supplicant would still maintain the group at that stage.
+                 */
                 case WifiMonitor.P2P_GROUP_REMOVED_EVENT:
                     if (DBG) logd(getName() + " group removed");
                     handleGroupRemoved();