[ConnectivityManagerFacade] Changes to Natt Keepalive APIs

CHERRY PICKED FROM AOSP

connectivityStartNattKeepalive() returns a key which allows us to listen
for a 'Started' event using
connectivityNattKeepaliveStartListeningForEvent(). Similarly, to listen
to a 'Stopped' event we use
connectivityNattKeepaliveStopListeningForEvent(). However,
connectivityStopNattKeepalive() deletes the key, which makes the API
useless. Added a new API to delete the key.

Bug: 72420688
Test: Verified the changes
Change-Id: Ia7a43e5d03ee55a92b367035d7152901ec907df3
Merged-In: I762ad5e0f8e7346d09d2c2904d7cbd65a25e58e8
diff --git a/Common/src/com/googlecode/android_scripting/facade/ConnectivityManagerFacade.java b/Common/src/com/googlecode/android_scripting/facade/ConnectivityManagerFacade.java
index bd81bb8..2b3697f 100644
--- a/Common/src/com/googlecode/android_scripting/facade/ConnectivityManagerFacade.java
+++ b/Common/src/com/googlecode/android_scripting/facade/ConnectivityManagerFacade.java
@@ -501,7 +501,6 @@
         PacketKeepaliveReceiver mPacketKeepaliveReceiver =
                 mPacketKeepaliveReceiverMap.get(key);
         if (mPacketKeepaliveReceiver != null) {
-            mPacketKeepaliveReceiverMap.remove(key);
             mPacketKeepaliveReceiver.mPacketKeepalive.stop();
             return true;
         } else {
@@ -509,6 +508,14 @@
         }
     }
 
+    /**
+     * Remove key from the PacketKeepaliveReceiver map
+     */
+    @Rpc(description = "remove PacketKeepaliveReceiver key")
+    public void connectivityRemovePacketKeepaliveReceiverKey(String key) {
+        mPacketKeepaliveReceiverMap.remove(key);
+    }
+
     @Rpc(description = "start listening for NattKeepalive Event")
     public Boolean connectivityNattKeepaliveStartListeningForEvent(String key, String eventString) {
         PacketKeepaliveReceiver mPacketKeepaliveReceiver =